| 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
 | 
|---|