| 1 | SPNFEDT0 ;HISC/DAD/WAA-FIM EDIT ;7/30/96  14:23 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**10,12,19**;01/02/1997 | 
|---|
| 3 | ; | 
|---|
| 4 | REPT(SPNFDFN) ; This is to select the type of data to enter for a patient. | 
|---|
| 5 | ; If none of the reports are selected then SPNFEXIT is set to 1 | 
|---|
| 6 | ; and the program exits. | 
|---|
| 7 | ; Returns SPNFFIM as a value of 1 to 4 indicating the type | 
|---|
| 8 | ; of report to be entered/edited | 
|---|
| 9 | ; Input: | 
|---|
| 10 | ;      SPNFDFN = Patient DFN | 
|---|
| 11 | ; | 
|---|
| 12 | ; Output: | 
|---|
| 13 | ;      SPNFEXIT = 1 User exited | 
|---|
| 14 | ;                 0 User passed | 
|---|
| 15 | S SPNFEXIT=0 | 
|---|
| 16 | I $D(IOF) W @IOF | 
|---|
| 17 | K DIRUT | 
|---|
| 18 | N SPNFMS | 
|---|
| 19 | S SPNFMS=0 | 
|---|
| 20 | I $G(^SPNL(154,SPNFDFN,0))'="" D | 
|---|
| 21 | . S SPNFMS=$$EN2^SPNLUTL1(SPNFDFN,"MULTIPLE SCLEROSIS") | 
|---|
| 22 | . Q | 
|---|
| 23 | D  Q:SPNFEXIT!(SPNFFIM<1) | 
|---|
| 24 | . I $D(IOF) W @IOF | 
|---|
| 25 | . I $D(SPNFDFN)=0 I $D(SPNDFN) S SPNFDFN=SPNDFN | 
|---|
| 26 | . S SPNFFIM=0 | 
|---|
| 27 | . K DIR S DIR(0)="SOM^1:Self Report of Function;2:FIM;3:ASIA;4:CHART;5:FAM;6:DIENER;7:DUSOI" | 
|---|
| 28 | . I SPNFMS S DIR(0)=DIR(0)_";8:Multiple Sclerosis" | 
|---|
| 29 | . S DIR("A")="Select the Record Type for this outcome" | 
|---|
| 30 | . S DIR("?",1)="   Enter 1 to enter/edit a Self Report of Function score." | 
|---|
| 31 | . S DIR("?",2)="   Enter 2 to enter/edit a FIM score." | 
|---|
| 32 | . S DIR("?",3)="   Enter 3 to enter/edit an ASIA score." | 
|---|
| 33 | . S DIR("?",4)="   Enter 4 to enter/edit a CHART score." | 
|---|
| 34 | . S DIR("?",5)="   Enter 5 to enter/edit a FAM score." | 
|---|
| 35 | . S DIR("?",6)="   Enter 6 to enter/edit a DIENER score." | 
|---|
| 36 | . S DIR("?",7)="   Enter 7 to enter/edit a DUSOI score." | 
|---|
| 37 | . S:SPNFMS DIR("?",8)="   Enter 8 to enter/edit a Multiple Sclerosis score." | 
|---|
| 38 | . S DIR("?")="   Choose either 1,2,3,4,5,6,7 " S:SPNFMS DIR("?")=DIR("?")_"or 8." | 
|---|
| 39 | . W ! D ^DIR K DIR S SPNFFIM=+Y | 
|---|
| 40 | . I $D(DIRUT) S SPNFEXIT=1 Q | 
|---|
| 41 | . I $D(DIRUT) S:$D(DTOUT)!($D(DUOUT)) SPNFEXIT=1 Q | 
|---|
| 42 | . Q:SPNFFIM<1 | 
|---|
| 43 | . ;I SPNSEL="A" D ADD | 
|---|
| 44 | . S SPNFTYPE=SPNFFIM | 
|---|
| 45 | . Q | 
|---|
| 46 | ;I $D(IOF) W @IOF  ;commented out 8/1/02 | 
|---|
| 47 | Q | 
|---|
| 48 | ADD ; *** Add a record to the Outcomes file (#154.1) | 
|---|
| 49 | ;K DIR S DIR("A")="Enter a New Record Date : ",DIR(0)="DAO^:NOW" | 
|---|
| 50 | ;D DATES^SPNLKUPC  ;Date range set up of dir(0) set above as saftey | 
|---|
| 51 | ;D ^DIR | 
|---|
| 52 | ;I '+Y K DIR,Y S SPNFEXIT=1 Q | 
|---|
| 53 | ;S SPNDATE=Y | 
|---|
| 54 | ;K DD,DIC,DINUM,DO | 
|---|
| 55 | ;S SPNFD0=-1 | 
|---|
| 56 | ;S DIC="^SPNL(154.1,",DIC(0)="L" | 
|---|
| 57 | ;S DLAYGO=154.1,X=SPNFDFN | 
|---|
| 58 | ;D FILE^DICN W ! S SPNFD0=+Y | 
|---|
| 59 | ;K DA,DIE,DR | 
|---|
| 60 | ;I $G(SPNSCOR)="" S SPNSCOR="" | 
|---|
| 61 | ;S DIE="^SPNL(154.1,",DA=SPNFD0 | 
|---|
| 62 | ;S DR=".02///^S X="_SPNFTYPE_";.04///"_SPNDATE_";.021///"_SPNSCOR_";.023///"_$$EN^SPNMAIN(DUZ)_";1001///"_SPNCDT | 
|---|
| 63 | ;D ^DIE | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | EDIT ; *** Edit a record in the Outcomes file (#154.1) | 
|---|
| 67 | I $G(SPNFD0)="" S SPNFEXIT=1 Q | 
|---|
| 68 | I $P($G(^SPNL(154.1,+SPNFD0,0)),U)'>0 Q | 
|---|
| 69 | L +^SPNL(154.1,SPNFD0):0 I '$T D  Q | 
|---|
| 70 | . W !!?5,"Another user is editing this record." | 
|---|
| 71 | . W !?5,"Please try again later.",$C(7) | 
|---|
| 72 | . Q | 
|---|
| 73 | K DA,DDSFILE,DDSPAGE,DDSPARAM,DR,DTOUT | 
|---|
| 74 | S DDSFILE="^SPNL(154.1,",DA=SPNFD0 | 
|---|
| 75 | S DR="["_$P($P($T(SCREEN+SPNFTYPE),";;",2),U)_"]" | 
|---|
| 76 | S DDSPARM="C" D ^DDS | 
|---|
| 77 | ;if its a new record and the user did not save the screen delete stub | 
|---|
| 78 | I $G(SPNNEW)="YES" I $G(DDSCHANG)="" D | 
|---|
| 79 | .S DIK="^SPNL(154.1,",DA=SPNFD0 | 
|---|
| 80 | .D ^DIK | 
|---|
| 81 | .S SPNEXIT=1 | 
|---|
| 82 | .Q | 
|---|
| 83 | K DDSPARM,CNT,SPNLTRIG,DR | 
|---|
| 84 | L -^SPNL(154.1,SPNFD0) | 
|---|
| 85 | I $P($G(^SPNL(154.1,SPNFD0,0)),U,4)'>0 D | 
|---|
| 86 | . S DIK="^SPNL(154.1,",DA=SPNFD0 | 
|---|
| 87 | . D ^DIK | 
|---|
| 88 | . Q | 
|---|
| 89 | I $D(DTOUT) Q | 
|---|
| 90 | I $D(DIMSG) W !!,"The screen-based entry process has failed!!",! Q | 
|---|
| 91 | I SPNFTYPE<3,$D(^SPNL(154.1,SPNFD0,0))#2 D SCORE^SPNFEDT2(SPNFD0) | 
|---|
| 92 | ;to close episodes | 
|---|
| 93 | I SPNEXIT'=1 I $G(SPNCLOSE)'="" I SPNCLOSE=1 D CLOSE^SPNCTCLS S SPNXMIT=1 | 
|---|
| 94 | ;sets up care end date on closing outcome record just added | 
|---|
| 95 | I SPNEXIT'=1 I $G(SPNCLOSE)'="" I SPNCLOSE=1 I $P($G(^SPNL(154.1,SPNFD0,8)),U,2)="" S $P(^SPNL(154.1,SPNFD0,8),U,2)=SPNDATE | 
|---|
| 96 | HL7 ; | 
|---|
| 97 | ;this tag is to call the hl7 interface | 
|---|
| 98 | ;      spnxmit is set in spnctcls | 
|---|
| 99 | ;       spnxmit=0 just transmit the one record in the group | 
|---|
| 100 | ;       spnxmit=1 transmit all in the group (the group was closed) | 
|---|
| 101 | ; | 
|---|
| 102 | I $G(SPNXMIT)="" S SPNXMIT=0 | 
|---|
| 103 | I $G(DDSCHANG)=1 I $G(^SPNL(154.1,SPNFD0,0))]"" D | 
|---|
| 104 | .D CHK^SPNHL71(SPNFD0) | 
|---|
| 105 | .D EXIT^SPNHL7 | 
|---|
| 106 | .Q | 
|---|
| 107 | I SPNXMIT=1 D | 
|---|
| 108 | .S SPNA=0 F  S SPNA=$O(^TMP($J,SPNA)) Q:SPNA=""  S SPNB=0 S SPNB=$O(^TMP($J,SPNA,SPNB)) Q:SPNB=""  S SPNC=0 S SPNC=$O(^TMP($J,SPNA,SPNB,SPNC)) Q:SPNC=""  D | 
|---|
| 109 | ..S SPNFD0=$P($G(^TMP($J,SPNA,SPNB,SPNC)),U,1) | 
|---|
| 110 | ..D CHK^SPNHL71(SPNFD0) | 
|---|
| 111 | ..D EXIT^SPNHL7 | 
|---|
| 112 | I SPNCT<3 D ^SPNOGRDA  ;display template grid routines INPAT AND OUTPT ONLY | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | SCREEN ; This is a list of what type goes to what Screenman screens. | 
|---|
| 116 | ;;SPNLP FUN MES^1 - Self Report of Function | 
|---|
| 117 | ;;SPNLP FIM FM1^2 - FIM | 
|---|
| 118 | ;;SPNLP ASIA MES^3 - ASIA | 
|---|
| 119 | ;;SPNLP CHART FM1^4 - CHART | 
|---|
| 120 | ;;SPNLP FAM FM1^5 - FAM | 
|---|
| 121 | ;;SPNLP DIENER FM1^6 - DIENER | 
|---|
| 122 | ;;SPNLP DUSOI FM1^7 - DUSOI | 
|---|
| 123 | ;;SPNLP MS FM1^8 - Multiple Sclerosis | 
|---|
| 124 | Q | 
|---|