VistA-WorldVistAEHR/r/SPINAL_CORD_DYSFUNCTION-SPN/SPNLS1.m

47 lines
2.2 KiB
Mathematica

SPNLS1 ;ISCSF/RAH - Continuation Parts from SPNLS ;9/27/95 11:00
;;2.0;Spinal Cord Dysfunction;;01/02/1997
FINLUPD ;
S (SPNLPID,SPNLPID(0))=0,SPNLCT=0
F S SPNLPID=$O(^TMP("SPNLS",$J,SPNLPID)) Q:SPNLPID'>0 D
.S SPNLPTX=^TMP("SPNLS",$J,SPNLPID)
.S SPNLFDT=$P(SPNLPTX,U,2)
.S SPNLTDT=$P(SPNLPTX,U,3),SPNLCT=SPNLCT+1
.S DIE="^SPNL(154.9,",DR="1////^S X=SPNLFDT;2////^S X=SPNLTDT"
.S DA=SPNLPID D ^DIE K DIE
.S SPNLPID(0)=SPNLPID
K %,X D NOW^%DTC S SPNLT=%,$P(SPNLNODE,U,8,9)=SPNLT_"^"_SPNLCT K %,X
S $P(SPNLNODE,U,8,9)=SPNLSDT_U_SPNLCT
S DIE="^SPNL(154.93,",DA=SPNLTMP
S DR="2///^S X=SPNLT;4///^S X=SPNLCT;5///^S X=SPNLTYPE;6///^S X=SPNXRECS;7///^S X=SPNXRUN;9////^S X=SPNLPID(0)"
D ^DIE K DIE
I SPNLFULL D
.S $P(SPNLNODE,U,5)=SPNLT
.S DIE="^SPNL(154.93,",DA=SPNLTMP S DR="9////0" D ^DIE K Y,X,DIE,DR
.S SPNLHST=^SPNL(154.93,SPNLTMP,0)
.F SPNLX=1:1:10 S SPNL(SPNLX)=$P(SPNLHST,U,SPNLX)
.S $P(SPNLHST,U,1)=$P(SPNLHST,U,1)+1,SPNLHIEN=$P(SPNLHST,U,1)
.K DD,DIC,DINUM,DO S DIC(0)="LMN",DIC="^SPNL(154.94,",X=SPNLTMP,DINUM=SPNLTMP,DLAYGO=154.94 D FILE^DICN K DIC,Y,X
.S SPNLDR="" F SPNLX=1:1:9 S SPNLDR=SPNLDR_SPNL(SPNLX)_"^"
.S SPNLDR=$E(SPNLDR,1,$L(SPNLDR)-1) S ^SPNL(154.94,SPNLTMP,0)=SPNLDR
.K DD,DIC,DINUM,DO S DIC(0)="LMN",DIC="^SPNL(154.93,",X=SPNLHIEN,DINUM=SPNLHIEN,DLAYGO=154.93 D FILE^DICN K DIC
.S $P(SPNLHST,U,2)=SPNLT,$P(SPNLHST,U,3)="" S ^SPNL(154.93,SPNLHIEN,0)=SPNLHST
.S DA=SPNLTMP,DIK="^SPNL(154.93," D ^DIK K DIK,DA
D FINISHUP^SPNLGE(SPNLNODE)
; fall thru
RESCHED ;
Q S SPNLRRUN=$E($P(SPNLSTRT,".",2),1,4)
S SPNLTIME=$S($E(SPNLFREQ,$L(SPNLFREQ))="W":SPNLFREQ*7,$E(SPNLFREQ,$L(SPNLFREQ))="D":SPNLFREQ,1:1)
S SPNLYRS=$E(SPNLSDT,1,3),SPNLMOS=+$E(SPNLSDT,4,5),SPNLDYS=$E(SPNLSDT,6,7),SPNLDYS=SPNLTIME+SPNLDYS
I SPNLDYS>30 D
.F S SPNLDYS=SPNLDYS-30,SPNLMOS=SPNLMOS+1 Q:SPNLDYS'>30
.I SPNLMOS#12=2&(SPNLDYS>28) S SPNLDYS=28
I SPNLMOS>12 D
.F S SPNLMOS=SPNLMOS-12,SPNLYRS=SPNLYRS+1 Q:SPNLMOS'>12
S:SPNLMOS<10 SPNLMOS="0"_SPNLMOS S:SPNLDYS<10 SPNLDYS="0"_SPNLDYS
S ZTDTH=SPNLYRS_SPNLMOS_SPNLDYS_"."_SPNLRRUN,ZTIO=""
S ZTRTN="SPNLS",ZTDESC="SCD SPINAL CORD REGISTRY EXTRACT"
D ^%ZTLOAD
I '$D(ZTSK) S SPNLERR="6 COULD NOT (RE)TASK SCD EXTRACT" D ERRMSG^SPNLS
K SPNLDYS
Q