| 1 | SPNPRT08 ;HIRMFO/WAA,SD/AB- PRINT OUTCOME SCORES ;5/12/98 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**6,19**;01/02/1997 | 
|---|
| 3 | ;; | 
|---|
| 4 | EN1(SPNTEMP,SPNTYPE) ; Main Entry Point | 
|---|
| 5 | ; SPNTEMP  = The name of the print template to use. | 
|---|
| 6 | ; SPNTYPE  = The type of report | 
|---|
| 7 | ; SPNTEMP        SPNTYPE | 
|---|
| 8 | ;----------      ------- | 
|---|
| 9 | ;SPN PRINT SELF    1 | 
|---|
| 10 | ;SPN PRINT FIM     2 | 
|---|
| 11 | ;SPN PRINT OUT     4 | 
|---|
| 12 | ;SPN PRINT MS      8 | 
|---|
| 13 | S U="^" | 
|---|
| 14 | S SPNPICK=0 | 
|---|
| 15 | I SPNTYPE=4 D PICK Q:'+SPNPICK | 
|---|
| 16 | ; Select patient | 
|---|
| 17 | N SPNLEXIT,SPNDFN,SPNIO,SPNPAGE,SPNDATE S SPNPAGE=1 | 
|---|
| 18 | S (SPNLEXIT,SPNDFN)=0 | 
|---|
| 19 | D PAT^SPNPATUL(.SPNDFN) | 
|---|
| 20 | I $O(SPNDFN(""))="" S SPNLEXIT=1 | 
|---|
| 21 | Q:SPNLEXIT | 
|---|
| 22 | I $D(SPNDFN("ALL")) K SPNDFN S SPNDFN=0 | 
|---|
| 23 | I SPNDFN=0 D EN1^SPNPRTMT Q:SPNLEXIT  ; Do Filters selection if no pat | 
|---|
| 24 | I IO'="" D PRINT,EXIT Q  ; Print was not Queued | 
|---|
| 25 | Q | 
|---|
| 26 | EXIT ; Exit routine | 
|---|
| 27 | K ^TMP($J,"SPN"),^TMP($J,"SPNPRT","AUTO"),^TMP($J,"SPNPRT","POST") | 
|---|
| 28 | K SPNDATE,SPNHOLD,SPNNODE,SPNPICK | 
|---|
| 29 | Q | 
|---|
| 30 | PRINT ; Print main Body | 
|---|
| 31 | W !,"One Moment Please..." | 
|---|
| 32 | K ^TMP($J,"SPN") | 
|---|
| 33 | S SPNLEXIT=$G(SPNLEXIT,0) ; Ensure that the exit is set | 
|---|
| 34 | N SPNX,SPNPRT | 
|---|
| 35 | S SPNPAGE=1 | 
|---|
| 36 | S (SPNLPRT,SPNPRT)=0 | 
|---|
| 37 | Q:SPNLEXIT | 
|---|
| 38 | I 'SPNDFN D | 
|---|
| 39 | .N SPNDFN1 | 
|---|
| 40 | .S SPNDFN1=0 | 
|---|
| 41 | .F  S SPNDFN1=$O(^SPNL(154.1,"AA",SPNTYPE,SPNDFN1)) Q:SPNDFN1<1  D | 
|---|
| 42 | .. I 'SPNDFN,'$$EN2^SPNPRTMT(SPNDFN1) Q  ; Patient fail the filters | 
|---|
| 43 | .. D PPAT Q:SPNLEXIT | 
|---|
| 44 | .. Q | 
|---|
| 45 | .Q | 
|---|
| 46 | E  D | 
|---|
| 47 | .S SPNDFN1=0 | 
|---|
| 48 | .F  S SPNDFN1=$O(SPNDFN(SPNDFN1)) Q:SPNDFN1<1  D PPAT  Q:SPNLEXIT | 
|---|
| 49 | .Q | 
|---|
| 50 | I 'SPNPRT  W !,"     ******* No Data for this report. *******" | 
|---|
| 51 | ;I $E(IOST,1)="C" N DIR S DIR(0)="E" D ^DIR  K Y | 
|---|
| 52 | E  D PATIENT | 
|---|
| 53 | Q | 
|---|
| 54 | PPAT ; print patient data | 
|---|
| 55 | N SPNDATE S SPNDATE=0 | 
|---|
| 56 | F  S SPNDATE=$O(^SPNL(154.1,"AA",SPNTYPE,SPNDFN1,SPNDATE)) Q:SPNDATE<1  D  Q:SPNLEXIT | 
|---|
| 57 | .N SPNIEN S SPNIEN=0 | 
|---|
| 58 | .F  S SPNIEN=$O(^SPNL(154.1,"AA",SPNTYPE,SPNDFN1,SPNDATE,SPNIEN)) Q:SPNIEN<1  D  Q:SPNLEXIT | 
|---|
| 59 | .. S ^TMP($J,"SPN",SPNIEN)="" | 
|---|
| 60 | .. S SPNPRT=SPNPRT+1 W:'(SPNPRT#10) "." | 
|---|
| 61 | .. Q | 
|---|
| 62 | . Q | 
|---|
| 63 | Q | 
|---|
| 64 | PATIENT ; Print Patient data | 
|---|
| 65 | N DIC,FLDS,BY,FROM,TO | 
|---|
| 66 | S DIC="^SPNL(154.1,",FLDS="["_SPNTEMP_"]" | 
|---|
| 67 | S BY=.01,BY(0)="^TMP($J,""SPN"",",(FR,TO)="" | 
|---|
| 68 | S L=0,L(0)=1 | 
|---|
| 69 | S DHD="@" | 
|---|
| 70 | S SPNNODE=$S(SPNPICK=1:"CHART",SPNPICK=2:"FAM",SPNPICK=3:"SCORE",SPNPICK=4:"SCORE",1:0) | 
|---|
| 71 | I SPNPICK=1 S DIS(0)="I $D(^SPNL(154.1,D0,SPNNODE))" | 
|---|
| 72 | I SPNPICK=2 S DIS(0)="I $D(^SPNL(154.1,D0,SPNNODE))" | 
|---|
| 73 | S DHIT="R SPNHOLD:DTIME S:SPNHOLD[U SPNLEXIT=1 Q:SPNLEXIT  W:$D(IOF) @IOF" | 
|---|
| 74 | D EN1^DIP | 
|---|
| 75 | Q | 
|---|
| 76 | ROWCHK ;-- Called from SPN PRINT FIM print template, 5/12/98 | 
|---|
| 77 | N X,DX,DY | 
|---|
| 78 | ;-- Check for existence of ^UTILITY($J,"H",1), quit it doesn't exist | 
|---|
| 79 | ;-- (this should ensure that FM variable DN exists) | 
|---|
| 80 | Q:'$D(^UTILITY($J,"H",1)) | 
|---|
| 81 | I $P($G(IOST),"-")["C" D | 
|---|
| 82 | .W !! | 
|---|
| 83 | .R "Press Enter key to continue...",X:$S(+$G(DTIME)>0:DTIME,1:60) | 
|---|
| 84 | .W:$D(IOF) @IOF | 
|---|
| 85 | .S (DX,DY)=0 X ^%ZOSF("XY") | 
|---|
| 86 | .I X["^" S DX=0,DY=IOSL X ^%ZOSF("XY") S DN=0 | 
|---|
| 87 | .Q | 
|---|
| 88 | Q | 
|---|
| 89 | PICK ; pick Record Type of CHART, FAM, DIENER, or DUSOI | 
|---|
| 90 | W !!,?12,"1  CHART" | 
|---|
| 91 | W !,?12,"2  FAM" | 
|---|
| 92 | W !,?12,"3  DIENER" | 
|---|
| 93 | W !,?12,"4  DUSOI",! | 
|---|
| 94 | R !,"Pick an Outcome report from above list: ",SPNPICK:DTIME | 
|---|
| 95 | I '$T!(SPNPICK[U)!(SPNPICK="") Q | 
|---|
| 96 | I SPNPICK["?" W !!,"Enter a number from 1-4, indicating the Outcome report tp print." G PICK | 
|---|
| 97 | I SPNPICK<1!(SPNPICK>4) W *7,!!,"Enter a number from 1-4." G PICK | 
|---|
| 98 | S SPNTYPE=$S(SPNPICK=1:4,SPNPICK=2:5,SPNPICK=3:6,SPNPICK=4:7,1:4) | 
|---|
| 99 | S SPNTEMP=$S(SPNPICK=1:"SPN PRINT OUT",SPNPICK=2:"SPN PRINT FAM",SPNPICK=3:"SPN PRINT DIE",SPNPICK=4:"SPN PRINT DUS",1:"SPN PRINT OUT") | 
|---|
| 100 | Q | 
|---|