| 1 | SPNPSR15 ;HIRMFO/DAD,WAA-HUNT: CHANGE IN TOTAL FIM SCORE ;9/22/95  12:35
 | 
|---|
| 2 |  ;;2.0;Spinal Cord Dysfunction;**11,19**;01/02/1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN1(D0,FIMTYPE,BDELTA,EDELTA,BDATE,EDATE) ; *** Search entry point
 | 
|---|
| 5 |  ; Input:
 | 
|---|
| 6 |  ;  ACTION,SEQUENCE = Search ACTION,SEQUENCE number
 | 
|---|
| 7 |  ;  D0       = SCD (SPINAL CORD) REGISTRY file (#154) IEN
 | 
|---|
| 8 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"RECORD TYPE") = 1 ! 2 ^ External
 | 
|---|
| 9 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINNING DELTA VALUE") = # ^ #
 | 
|---|
| 10 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DELTA VALUE") = # ^ #
 | 
|---|
| 11 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINNING DATE") = Date ^ Date_(Ext)
 | 
|---|
| 12 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DATE") = Date ^ Date_(Ext)
 | 
|---|
| 13 |  ;       FIMTYPE = Patient FIM Type
 | 
|---|
| 14 |  ;        BDELTA = Beginning Delta Value
 | 
|---|
| 15 |  ;        EDELTA = Ending Delta Value
 | 
|---|
| 16 |  ;         BDATE = Beginning Date
 | 
|---|
| 17 |  ;         EDATE = Ending Date
 | 
|---|
| 18 |  ; Output:
 | 
|---|
| 19 |  ;  $S( D0_Meets_Search_Criteria : 1 , 1 : 0 )
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  N DELTAFIM,DFN,FIMDIFF,I,LASTFIM,MEETSRCH,TOTALFIM
 | 
|---|
| 22 |  S MEETSRCH=0
 | 
|---|
| 23 |  S DELTAFIM("BEGINNING DELTA VALUE")=BDELTA
 | 
|---|
| 24 |  S DELTAFIM("ENDING DELTA VALUE")=EDELTA
 | 
|---|
| 25 |  S RECDATE("BEGINNING DATE")=BDATE
 | 
|---|
| 26 |  S RECDATE("ENDING DATE")=EDATE
 | 
|---|
| 27 |  S SPNLDATE=RECDATE("BEGINNING DATE")-.0000001 K LASTFIM
 | 
|---|
| 28 |  S LASTFIM=0
 | 
|---|
| 29 |  F  S SPNLDATE=$O(^SPNL(154.1,"AA",FIMTYPE,D0,SPNLDATE)) Q:(SPNLDATE'>0)!(SPNLDATE>RECDATE("ENDING DATE"))!MEETSRCH  D
 | 
|---|
| 30 |  . S SPNLD0=0,SPNLD0=$O(^SPNL(154.1,"AA",FIMTYPE,D0,SPNLDATE,SPNLD0)) Q:SPNLD0'>0!MEETSRCH  D
 | 
|---|
| 31 |  .. S TOTALFIM=+$$EN3^SPNFUTL0(SPNLD0)
 | 
|---|
| 32 |  .. I (TOTALFIM'>0) Q
 | 
|---|
| 33 |  .. S FIMDIFF=TOTALFIM-LASTFIM
 | 
|---|
| 34 |  .. I FIMDIFF'<DELTAFIM("BEGINNING DELTA VALUE"),FIMDIFF'>DELTAFIM("ENDING DELTA VALUE") S MEETSRCH=1
 | 
|---|
| 35 |  .. S LASTFIM=TOTALFIM
 | 
|---|
| 36 |  .. Q
 | 
|---|
| 37 |  . Q
 | 
|---|
| 38 |  Q MEETSRCH
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | EN2(ACTION,SEQUENCE) ; *** Prompt entry point
 | 
|---|
| 41 |  ; Input:
 | 
|---|
| 42 |  ;  ACTION,SEQUENCE = Search ACTION,SEQUENCE number
 | 
|---|
| 43 |  ; Output:
 | 
|---|
| 44 |  ;  SPNLEXIT = $S( User_Abort/Timeout : 1 , 1 : 0 )
 | 
|---|
| 45 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"RECORD TYPE") = 1 ! 2 ^ External
 | 
|---|
| 46 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINNING DELTA VALUE") = # ^ #
 | 
|---|
| 47 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DELTA VALUE") = # ^ #
 | 
|---|
| 48 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINNING DATE") = Date ^ Date_(Ext)
 | 
|---|
| 49 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DATE") = Date ^ Date_(Ext)
 | 
|---|
| 50 |  ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,0) = $$EN1^SPNPSR15(D0,FIMTYPE,BDELTA,EDELTA,BDATE,EDATE)
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  N DELTAFIM,DIR,DIRUT,DTOUT,DUOUT,FIMTYPE,I
 | 
|---|
| 53 |  K ^TMP($J,"SPNPRT",ACTION,SEQUENCE)
 | 
|---|
| 54 |  K DIR S DIR(0)="SOAM^1:Self Report of Function;2:FIM;"
 | 
|---|
| 55 |  S DIR("A")="Record Type: "
 | 
|---|
| 56 |  S DIR("?")="Enter 1 for Self Report of Function, or 2 for FIM"
 | 
|---|
| 57 |  D ^DIR S FIMTYPE=Y,FIMTYPE(0)=$G(Y(0))
 | 
|---|
| 58 |  S SPNLEXIT=$S($D(DTOUT):1,$D(DUOUT):1,1:0)
 | 
|---|
| 59 |  Q:SPNLEXIT
 | 
|---|
| 60 |  Q:Y=""
 | 
|---|
| 61 |  S DELTAFIM=$S(FIMTYPE=1:39,1:108)
 | 
|---|
| 62 |  K DIR S DIR(0)="NOA^"_-DELTAFIM_":"_DELTAFIM
 | 
|---|
| 63 |  S DIR("A")="Beginning delta value: "
 | 
|---|
| 64 |  S DIR("?")="Enter a number from "_-DELTAFIM_" to "_DELTAFIM
 | 
|---|
| 65 |  D ^DIR S (DELTAFIM("BEGINNING DELTA VALUE"),BDELTA)=Y
 | 
|---|
| 66 |  S SPNLEXIT=$S($D(DTOUT):1,$D(DUOUT):1,1:0)
 | 
|---|
| 67 |  Q:SPNLEXIT
 | 
|---|
| 68 |  Q:Y=""
 | 
|---|
| 69 |  K DIR S DIR(0)="NOA^"_DELTAFIM("BEGINNING DELTA VALUE")_":"_DELTAFIM
 | 
|---|
| 70 |  S DIR("A")="Ending delta value:   "
 | 
|---|
| 71 |  S DIR("?")="Enter a number from "_DELTAFIM("BEGINNING DELTA VALUE")_" to "_DELTAFIM
 | 
|---|
| 72 |  D ^DIR S (DELTAFIM("ENDING DELTA VALUE"),EDELTA)=Y
 | 
|---|
| 73 |  S SPNLEXIT=$S($D(DTOUT):1,$D(DUOUT):1,1:0)
 | 
|---|
| 74 |  Q:SPNLEXIT
 | 
|---|
| 75 |  Q:Y=""
 | 
|---|
| 76 |  S (BDATE,EDATE)=""
 | 
|---|
| 77 |  D EN1^SPNPSR00(ACTION,SEQUENCE+.2,.BDATE,.EDATE) Q:SPNLEXIT
 | 
|---|
| 78 |  S ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"RECORD TYPE")=FIMTYPE_U_FIMTYPE(0)
 | 
|---|
| 79 |  F I="BEGINNING DELTA VALUE","ENDING DELTA VALUE" D
 | 
|---|
| 80 |  . S ^TMP($J,"SPNPRT",ACTION,SEQUENCE+.1,I)=$G(DELTAFIM(I))_U_$G(DELTAFIM(I))
 | 
|---|
| 81 |  . Q
 | 
|---|
| 82 |  I BDATE=""!(EDATE="") K ^TMP($J,"SPNPRT",ACTION,SEQUENCE+.1),^TMP($J,"SPNPRT",ACTION,SEQUENCE) Q
 | 
|---|
| 83 |  S ^TMP($J,"SPNPRT",ACTION,SEQUENCE,0)="$$EN1^SPNPSR15(D0,"_FIMTYPE_","_BDELTA_","_EDELTA_","_BDATE_","_EDATE_")"
 | 
|---|
| 84 |  Q
 | 
|---|