| 1 | SPNFPLT1 ;HISC/DAD-FIM SCORE REPORT ;10/18/01  10:41
 | 
|---|
| 2 |  ;;2.0;Spinal Cord Dysfunction;**3,6,16**;01/02/1997
 | 
|---|
| 3 | PRINT ;
 | 
|---|
| 4 |  S SPNTODAY=$$FMTE^XLFDT(DT),SPNEXIT=0,SPNFPAGE(0)=1
 | 
|---|
| 5 |  K SPNFUNDL S $P(SPNFUNDL,"-",81)=""
 | 
|---|
| 6 |  ; I +SPNFSTYP=1 S SPNFHI=91,SPNFLO=13
 | 
|---|
| 7 |  ; I +SPNFSTYP=2 S SPNFHI=35,SPNFLO=5
 | 
|---|
| 8 |  ; I +SPNFSTYP=3 S SPNFHI=$S(+SPNFFTYP=1:52,1:126),SPNFLO=$S(+SPNFFTYP=1:13,1:18)
 | 
|---|
| 9 |  U IO
 | 
|---|
| 10 |  S SPNFDFN(0)=""
 | 
|---|
| 11 |  F  S SPNFDFN(0)=$O(^TMP($J,"SPNFPLT0",SPNFDFN(0))) Q:SPNFDFN(0)=""!SPNEXIT  D
 | 
|---|
| 12 |  . S SPNFDFN=0
 | 
|---|
| 13 |  . F  S SPNFDFN=$O(^TMP($J,"SPNFPLT0",SPNFDFN(0),SPNFDFN)) Q:SPNFDFN'>0!SPNEXIT  D DFN
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | DFN ;
 | 
|---|
| 17 |  S SPNFDFN(1)=$P($G(^SPNL(154.1,SPNFDFN,0)),U)
 | 
|---|
| 18 |  S SPNFDFN(154)=$$GET1^DIQ(154.1,SPNFDFN,.01,"I")
 | 
|---|
| 19 |  S SPNFPAGE=1,SPNFOUND=0
 | 
|---|
| 20 |  S DIC="^SPNL(154.1," K SPNFDATA
 | 
|---|
| 21 |  F DR=999.01,999.02,999.03,999.04,999.05 D
 | 
|---|
| 22 |  . S DIQ="SPNFDATA(",DIQ(0)="E",DA=SPNFDFN
 | 
|---|
| 23 |  . D EN^DIQ1
 | 
|---|
| 24 |  . S:'$D(SPNFDATA(154.1,SPNFDFN,DR,"E")) SPNFDATA(154,SPNFDFN(1),DR,"E")="UNKNOWN"
 | 
|---|
| 25 |  D HEAD
 | 
|---|
| 26 |  S SPNFDATE=SPNFBDT-.0000001
 | 
|---|
| 27 |  F  S SPNFDATE=$O(^SPNL(154.1,"AA",+SPNFFTYP,SPNFDFN(1),SPNFDATE)) Q:(SPNFDATE'>0)!(SPNFDATE>(SPNFEDT+.9))!SPNEXIT  D
 | 
|---|
| 28 |  . S SPNFD0=0
 | 
|---|
| 29 |  . F  S SPNFD0=$O(^SPNL(154.1,"AA",+SPNFFTYP,SPNFDFN(1),SPNFDATE,SPNFD0)) Q:SPNFD0'>0!SPNEXIT  D LINE
 | 
|---|
| 30 |  . Q
 | 
|---|
| 31 |  I SPNFOUND'>0 W !!,"No data found for this patient"
 | 
|---|
| 32 |  D FOOT,PAUSE:'SPNEXIT
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 | LINE ;
 | 
|---|
| 35 |  S SPNSCORE=-1
 | 
|---|
| 36 |  I +SPNFSTYP=1 S SPNSCORE=$$EN1^SPNFUTL0(SPNFD0)
 | 
|---|
| 37 |  I +SPNFSTYP=2 S SPNSCORE=$$EN2^SPNFUTL0(SPNFD0)
 | 
|---|
| 38 |  I +SPNFSTYP=3 S SPNSCORE=$$EN3^SPNFUTL0(SPNFD0)
 | 
|---|
| 39 |  I SPNSCORE<0 Q
 | 
|---|
| 40 |  ; W !?18,$TR($J("",SPNSCORE-SPNFLO+1*(62/(SPNFHI-SPNFLO+1)))," ","*")
 | 
|---|
| 41 |  S SPNSCORE(0)=$S(SPNSCORE:$J(+SPNSCORE,6,1),1:$J(SPNSCORE,6))
 | 
|---|
| 42 |  S SPNSCORE(0)=SPNSCORE(0)_$S(SPNSCORE["*":"*",1:"")
 | 
|---|
| 43 |  S SPNFOUND=1
 | 
|---|
| 44 |  ;**MOD,SD/AB,1/27/98, Commented out next line, replaced /w line that follows
 | 
|---|
| 45 |  S SPNFDATE(0)=$E(SPNFDATE,4,5)_"/"_$E(SPNFDATE,6,7)_"/"_$E(SPNFDATE,2,3)
 | 
|---|
| 46 |  ;S SPNFDATE(0)=$$DATEFMT^SPNLRUDT(SPNFDATE,4)
 | 
|---|
| 47 |  W !,SPNFDATE(0),?9,SPNSCORE(0)
 | 
|---|
| 48 |  S SPNFDATA=$P($G(^SPNL(154.1,SPNFD0,0)),U,5,22)
 | 
|---|
| 49 |  I (+SPNFFTYP=1)!(+SPNFSTYP=1) S $P(SPNFDATA,U,14,18)="^^^^"
 | 
|---|
| 50 |  I +SPNFSTYP=2 S $P(SPNFDATA,U,1,13)="^^^^^^^^^^^^"
 | 
|---|
| 51 |  S SPNFTAB=20
 | 
|---|
| 52 |  F SPNPIECE=1:1:18 D
 | 
|---|
| 53 |  . S SPNFLEVL=+$P(SPNFDATA,U,SPNPIECE)
 | 
|---|
| 54 |  . I SPNFLEVL W ?SPNFTAB,$P($G(^SPNL(154.11,SPNFLEVL,0)),U)
 | 
|---|
| 55 |  . S SPNFTAB=SPNFTAB+3
 | 
|---|
| 56 |  . Q
 | 
|---|
| 57 |  I $Y>(IOSL-6) D PAUSE,HEAD
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | PAUSE ;
 | 
|---|
| 60 |  I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR S SPNEXIT=$S(Y'>0:1,1:0)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | HEAD ;
 | 
|---|
| 63 |  I SPNEXIT Q
 | 
|---|
| 64 |  W:($E(IOST)="C")!(SPNFPAGE(0)>1) @IOF
 | 
|---|
| 65 |  S SPNFPAGE(0)=SPNFPAGE(0)+1
 | 
|---|
| 66 |  S X=$P(SPNFFTYP,U,2)_" "_$P(SPNFSTYP,U,2)
 | 
|---|
| 67 |  W !?80-$L(X)/2,X,?68,"Page: ",SPNFPAGE S SPNFPAGE=SPNFPAGE+1
 | 
|---|
| 68 |  S X="for "_SPNFDFN(0)
 | 
|---|
| 69 |  W !?80-$L(X)/2,X,?68,SPNTODAY
 | 
|---|
| 70 |  S X="SSN: "_SPNFDATA(154.1,SPNFDFN,999.01,"E")
 | 
|---|
| 71 |  S X=X_", DOB: "_SPNFDATA(154.1,SPNFDFN,999.02,"E")
 | 
|---|
| 72 |  W !?80-$L(X)/2,X
 | 
|---|
| 73 |  S X="Extent & Completeness: "_$$GET1^DIQ(154,SPNFDFN(154),999.04,"E")
 | 
|---|
| 74 |  S X=X_" - "_$$GET1^DIQ(154,SPNFDFN(154),999.03,"E")
 | 
|---|
| 75 |  W !?80-$L(X)/2,X
 | 
|---|
| 76 |  S X="Type of Injury: "_$$GET1^DIQ(154,SPNFDFN(154),999.05,"E")
 | 
|---|
| 77 |  W !?80-$L(X)/2,X
 | 
|---|
| 78 |  W !!,"DATE",?10,"SCORE"
 | 
|---|
| 79 |  S SPNFTAB=20
 | 
|---|
| 80 |  F SPNPIECE=1:1:$S($P(SPNFFTYP,U,1)=1:13,1:18) W ?SPNFTAB,$C(64+SPNPIECE) S SPNFTAB=SPNFTAB+3
 | 
|---|
| 81 |  W !,SPNFUNDL,!
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | FOOT ;
 | 
|---|
| 84 |  ;-- Check to see if enough room at page bottom to write footer information
 | 
|---|
| 85 |  I $Y>(IOSL-8) D PAUSE,HEAD
 | 
|---|
| 86 |  ;-- Next write blank linefeeds until 8 lines up from the bottom og page
 | 
|---|
| 87 |  F  W ! Q:$Y=(IOSL-8)
 | 
|---|
| 88 |  ;-- Now write footer information 
 | 
|---|
| 89 |  W !,"A-EATING                G-BLADDER MANAGEMENT              M-STAIRS"
 | 
|---|
| 90 |  I $P(SPNFFTYP,U,1)=2 W !,"B-GROOMING              H-BOWEL MANAGEMENT                N-COMPREHENSION"
 | 
|---|
| 91 |  E  W !,"B-GROOMING              H-BOWEL MANAGEMENT"
 | 
|---|
| 92 |  I $P(SPNFFTYP,U,1)=2 W !,"C-BATHING               I-TRANSFER TO BED/CHAIR           O-EXPRESSION"
 | 
|---|
| 93 |  E  W !,"C-BATHING               I-TRANSFER TO BED/CHAIR"
 | 
|---|
| 94 |  I $P(SPNFFTYP,U,1)=2 W !,"D-DRESSING UPPER BODY   J-TRANSFER TO TOILET              P-SOCIAL INTERACTION"
 | 
|---|
| 95 |  E  W !,"D-DRESSING UPPER BODY   J-TRANSFER TO TOILET"
 | 
|---|
| 96 |  I $P(SPNFFTYP,U,1)=2 W !,"E-DRESSING LOWER BODY   K-TRANSFER TO TUB/SHOWER          Q-PROBLEM SOLVING"
 | 
|---|
| 97 |  E  W !,"E-DRESSING LOWER BODY   K-TRANSFER TO TUB/SHOWER"
 | 
|---|
| 98 |  I $P(SPNFFTYP,U,1)=2 W !,"F-TOILETING             L-MOVE AROUND INSIDE YOUR HOUSE   R-MEMORY"
 | 
|---|
| 99 |  E  W !,"F-TOILETING             L-MOVE AROUND INSIDE YOUR HOUSE"
 | 
|---|
| 100 |  W !,"  Star ""*"" indicates the score is incomplete."
 | 
|---|
| 101 |  Q
 | 
|---|