[628] | 1 | SPNLRE ;ISC-SF/GB,SD/WDE SCD PT FOLLOW-UP (LAST ANNUAL EVAL) REPORT ;4/29/98
|
---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**3,6,12,19**;01/02/1997
|
---|
| 3 | ASK(QLIST,ABORT) ; Report-specific question
|
---|
| 4 | N DIR,Y,DIRUT,ANS,UNITS,LEN,NUM
|
---|
| 5 | S DIR(0)="154.91,5" ; file #,field # from Site Parameters file
|
---|
| 6 | S DIR("A")="Show Pts whose Last Annual Rehab Eval was more than how long ago"
|
---|
| 7 | S DIR("B")=$P($G(^SPNL(154.91,1,0)),U,6) ; from Site Parameters file
|
---|
| 8 | S:DIR("B")="" DIR("B")="1Y"
|
---|
| 9 | D ^DIR I $D(DIRUT) S ABORT=1 Q
|
---|
| 10 | S ANS=Y,LEN=$L(Y)
|
---|
| 11 | S UNITS=$E(ANS,LEN,LEN)
|
---|
| 12 | S NUM=+ANS
|
---|
| 13 | S UNITS=$S(UNITS="D":"Day",UNITS="W":"Week",UNITS="M":"Month",UNITS="Y":"Year",1:"Unit")_$S(NUM>1:"s",1:"")
|
---|
| 14 | S QLIST("PERIOD")=NUM_" "_UNITS
|
---|
| 15 | S QLIST("SINCE")=$$DATEMATH^SPNLRUDT(DT,"-"_ANS)
|
---|
| 16 | Q
|
---|
| 17 | GATHER(DFN,FDATE,TDATE,HIUSERS,QLIST) ;
|
---|
| 18 | ; DFN Patient's internal entry number in the Patient file
|
---|
| 19 | ; FDATE "From" date
|
---|
| 20 | ; TDATE "Thru" date, default=today
|
---|
| 21 | ; Gathers patients who have not been seen since the SINCE date.
|
---|
| 22 | ; Data will be placed into the following global:
|
---|
| 23 | ; ^TMP("SPN",$J,"FU",
|
---|
| 24 | ; with the following nodes:
|
---|
| 25 | ; date last rehab eval,name^ssn) =""
|
---|
| 26 | N VADM,VA,ISDEAD,SSNLAST4,NAME,LASTEVAL
|
---|
| 27 | S LASTEVAL=$$ARD(DFN)
|
---|
| 28 | Q:LASTEVAL=""
|
---|
| 29 | Q:LASTEVAL'<QLIST("SINCE")
|
---|
| 30 | D DEM^VADPT ; Get patient demographics
|
---|
| 31 | ; We will ignore dead patients
|
---|
| 32 | S ISDEAD=+$P($G(VADM(6)),U,1)
|
---|
| 33 | Q:ISDEAD
|
---|
| 34 | S NAME=VADM(1)
|
---|
| 35 | S SSNLAST4=VA("BID")
|
---|
| 36 | S ^TMP("SPN",$J,"FU",LASTEVAL,NAME_"^"_SSNLAST4)=""
|
---|
| 37 | Q
|
---|
| 38 | ARD(DFN) ;Get the latest annual rehab date
|
---|
| 39 | I '$O(^SPNL(154,DFN,"REHAB",0)) Q ""
|
---|
| 40 | N X,DAT1,DAT2
|
---|
| 41 | ; This subroutine will find the most current annual rehab received
|
---|
| 42 | S (X,DAT1,DAT2)=0
|
---|
| 43 | F S X=$O(^SPNL(154,DFN,"REHAB",X)) Q:X<1 D
|
---|
| 44 | .Q:'$D(^SPNL(154,DFN,"REHAB",X,0))
|
---|
| 45 | .S DAT2=$P(^SPNL(154,DFN,"REHAB",X,0),U,2)
|
---|
| 46 | .I DAT2>DAT1 S DAT1=DAT2
|
---|
| 47 | .Q
|
---|
| 48 | Q DAT1
|
---|
| 49 | ;
|
---|
| 50 | PRINT(FACNAME,XFDATE,XTDATE,HIUSERS,QLIST,ABORT) ;
|
---|
| 51 | ; PAGELEN Number of lines per page
|
---|
| 52 | ; TITLE Array of header lines (titles)
|
---|
| 53 | N TITLE,PAGELEN
|
---|
| 54 | S PAGELEN=IOSL-3
|
---|
| 55 | S TYPEFMT=4
|
---|
| 56 | S TITLE(1)=$$CENTER^SPNLRU("SCD - Patient Follow Up")
|
---|
| 57 | S TITLE(2)=$$CENTER^SPNLRU(FACNAME)
|
---|
| 58 | I $D(SPNLTRM1) S TITLE(2.5)=$$CENTER^SPNLRU(SPNLTRM1)
|
---|
| 59 | S TITLE(3)=$$CENTER^SPNLRU("Patients at Risk of Loss to Follow Up")
|
---|
| 60 | S TITLE(4)=$$CENTER^SPNLRU("(Last Annual Rehab Eval Received over "_QLIST("PERIOD")_" ago, before "_$$DATEFMT^SPNLRUDT(QLIST("SINCE"),TYPEFMT))_")"
|
---|
| 61 | D P1(.TITLE,PAGELEN,.ABORT) Q:ABORT
|
---|
| 62 | Q
|
---|
| 63 | P1(TITLE,PAGELEN,ABORT) ;
|
---|
| 64 | N LASTEVAL,PAT
|
---|
| 65 | S TITLE(5)=""
|
---|
| 66 | ; " 1 2 3 4 5 6"
|
---|
| 67 | S TITLE(6)="Last Eval Name Last Four"
|
---|
| 68 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
| 69 | S LASTEVAL=""
|
---|
| 70 | F S LASTEVAL=$O(^TMP("SPN",$J,"FU",LASTEVAL)) Q:LASTEVAL="" D Q:ABORT
|
---|
| 71 | . S PAT=""
|
---|
| 72 | . F S PAT=$O(^TMP("SPN",$J,"FU",LASTEVAL,PAT)) Q:PAT="" D Q:ABORT
|
---|
| 73 | . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
| 74 | . . W !,$S(LASTEVAL=0:"no record",1:$E(LASTEVAL,4,5)_"/"_$E(LASTEVAL,6,7)_"/"_$S($E(LASTEVAL,2)>7:"19"_$E(LASTEVAL,2,3),1:"20"_$E(LASTEVAL,2,3)))
|
---|
| 75 | . . W ?14,$P(PAT,U,1),?52,$P(PAT,U,2)
|
---|
| 76 | Q
|
---|