1 | SPNLUTL0 ;HISCWDE,DAD-SCD REGISTRY FILE UTILITIES ;8/16/96 14:06
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**7,11,13,19**;01/02/1997
|
---|
3 | ;
|
---|
4 | EN1(SPND0) ; ***COMPLETENESS OF INJURY
|
---|
5 | ; SPND0 = Internal entry number in SCD REGISTRY file (#154)
|
---|
6 | N SPNDATA,SPNFEEL,SPNINJRY,SPNMOVE
|
---|
7 | S SPNDATA(5)=$G(^SPNL(154,+SPND0,5))
|
---|
8 | S SPNMOVE=$P(SPNDATA(5),U,11),SPNFEEL=$P(SPNDATA(5),U,12)
|
---|
9 | S SPNINJRY=1
|
---|
10 | I (SPNMOVE=1)&(SPNFEEL=1) S SPNINJRY=2
|
---|
11 | I SPNMOVE=2 S SPNINJRY=3
|
---|
12 | I SPNFEEL=2 S SPNINJRY=4
|
---|
13 | I SPNMOVE=3 S SPNINJRY=5
|
---|
14 | I SPNFEEL=3 S SPNINJRY=6
|
---|
15 | I (SPNMOVE=2)&(SPNFEEL=2) S SPNINJRY=7
|
---|
16 | I (SPNMOVE=2)&(SPNFEEL=3) S SPNINJRY=8
|
---|
17 | I (SPNMOVE=3)&(SPNFEEL=2) S SPNINJRY=9
|
---|
18 | I (SPNMOVE=3)&(SPNFEEL=3) S SPNINJRY=10
|
---|
19 | Q $P($T(EN1DATA+SPNINJRY),";",3)
|
---|
20 | EN1DATA ;; Completeness of injury text
|
---|
21 | ;;DON'T KNOW
|
---|
22 | ;;NONE
|
---|
23 | ;;INCOMPLETE MOTOR
|
---|
24 | ;;INCOMPLETE SENSORY
|
---|
25 | ;;COMPLETE MOTOR
|
---|
26 | ;;COMPLETE SENSORY
|
---|
27 | ;;INCOMPLETE SENSORY AND MOTOR
|
---|
28 | ;;COMPLETE SENSORY AND INCOMPLETE MOTOR
|
---|
29 | ;;INCOMPLETE SENSORY AND COMPLETE MOTOR
|
---|
30 | ;;COMPLETE SENSORY AND MOTOR
|
---|
31 | ;
|
---|
32 | EN2(SPND0) ; *** EXTENT OF PARALYSIS
|
---|
33 | ; SPND0 = Internal entry number in SCD REGISTRY file (#154)
|
---|
34 | N SPNARM,SPNDATA,SPNLEG,SPNXTENT
|
---|
35 | S SPNDATA(5)=$G(^SPNL(154,+SPND0,5))
|
---|
36 | S SPNARM(1)=$P(SPNDATA(5),U,6),SPNARM(2)=$P(SPNDATA(5),U,8)
|
---|
37 | S SPNLEG(1)=$P(SPNDATA(5),U,7),SPNLEG(2)=$P(SPNDATA(5),U,9)
|
---|
38 | S SPNXTENT=1
|
---|
39 | I SPNARM(1)!SPNLEG(1) S SPNXTENT=2
|
---|
40 | I SPNARM(1)&SPNLEG(1) S SPNXTENT=3
|
---|
41 | I SPNLEG(2) S SPNXTENT=4
|
---|
42 | I SPNARM(2)&SPNLEG(2) S SPNXTENT=5
|
---|
43 | Q $P($T(EN2DATA+SPNXTENT),";",3)
|
---|
44 | EN2DATA ;; Extent of paralysis text
|
---|
45 | ;;DON'T KNOW
|
---|
46 | ;;MONOPLEGIA
|
---|
47 | ;;HEMIPLEGIA
|
---|
48 | ;;PARAPLEGIA
|
---|
49 | ;;TETRAPLEGIA
|
---|
50 | ;
|
---|
51 | EN3(SPNLDA) ; *** ONE/BOTH ARM/LEG & OTHER BODY PART AFFECTED FIELD CHECK
|
---|
52 | N SPNLDATA,SPNLERR,SPNLFLD,SPNLTEXT,DA
|
---|
53 | K DDSERROR
|
---|
54 | S DA=SPNLDA
|
---|
55 | F SPNLFLD=2.4,2.5,5.06:.01:5.1 D
|
---|
56 | . S SPNLDATA(SPNLFLD)=$$GET^DDSVAL(154,DA,SPNLFLD,.SPNLERR,"I")
|
---|
57 | . Q
|
---|
58 | S SPNLDATA(5.01)=$$GET^DDSVAL(154,DA,5.01,.SPNLERR,"E")
|
---|
59 | S SPNLTEXT=0
|
---|
60 | ;I SPNLDATA(5.01)'["OTHER",SPNLDATA(2.4)]"" D
|
---|
61 | ;. S SPNLTEXT=SPNLTEXT+1
|
---|
62 | ;. S SPNLTEXT(SPNLTEXT)="You have not answered OTHER for CAUSE OF INJURY,"
|
---|
63 | ;. S SPNLTEXT=SPNLTEXT+1
|
---|
64 | ;. S SPNLTEXT(SPNLTEXT)="the DESCRIBE OTHER field should be left blank."
|
---|
65 | ;. Q
|
---|
66 | I SPNLDATA(5.06),SPNLDATA(5.08) D
|
---|
67 | . S SPNLTEXT=SPNLTEXT+1
|
---|
68 | . S SPNLTEXT(SPNLTEXT)="You have answered YES to ONE ARM AFFECTED and BOTH ARMS AFFECTED."
|
---|
69 | . S SPNLTEXT=SPNLTEXT+1
|
---|
70 | . S SPNLTEXT(SPNLTEXT)="You may only answer YES to one of these two fields."
|
---|
71 | . Q
|
---|
72 | I SPNLDATA(5.07),SPNLDATA(5.09) D
|
---|
73 | . S SPNLTEXT=SPNLTEXT+1
|
---|
74 | . S SPNLTEXT(SPNLTEXT)="You have answered YES to ONE LEG AFFECTED and BOTH LEGS AFFECTED."
|
---|
75 | . S SPNLTEXT=SPNLTEXT+1
|
---|
76 | . S SPNLTEXT(SPNLTEXT)="You may only answer YES to one of these two fields."
|
---|
77 | . Q
|
---|
78 | I SPNLDATA(5.1)'>0,SPNLDATA(2.5)]"" D
|
---|
79 | . S SPNLTEXT=SPNLTEXT+1
|
---|
80 | . S SPNLTEXT(SPNLTEXT)="You have answered NO to OTHER BODY PART AFFECTED, the"
|
---|
81 | . S SPNLTEXT=SPNLTEXT+1
|
---|
82 | . S SPNLTEXT(SPNLTEXT)="DESCRIBE OTHER field should be left blank."
|
---|
83 | . Q
|
---|
84 | I SPNLTEXT D HLP^DDSUTL(.SPNLTEXT) S DDSERROR=1
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | EN4(SPND0) ; *** Cause of SCD
|
---|
88 | ; Input: SPND0 = Internal entry number in SCD REGISTRY file (#154)
|
---|
89 | ; Output: Traumatic, Non-traumatic, Unknown, Indeterminate
|
---|
90 | S (SPNCAUSE("TC"),SPNCAUSE("NTC"),SPNCAUSE("U"),SPND1)=0
|
---|
91 | F S SPND1=$O(^SPNL(154,SPND0,"E",SPND1)) Q:SPND1'>0 D
|
---|
92 | . S SPNETIOL=$P($G(^SPNL(154,SPND0,"E",SPND1,0)),U,2)
|
---|
93 | . S SPNCAUSE=$P($G(^SPNL(154.03,+SPNETIOL,0)),U,2)
|
---|
94 | . I "^TC^NTC^U^"'[(U_SPNCAUSE_U) Q
|
---|
95 | . S SPNCAUSE(SPNCAUSE)=SPNCAUSE(SPNCAUSE)+1
|
---|
96 | . Q
|
---|
97 | S X=""
|
---|
98 | I SPNCAUSE("TC") S X="TRAUMATIC"
|
---|
99 | I SPNCAUSE("NTC") S X=X_$S(X]"":", ",1:"")_"NON-TRAUMATIC"
|
---|
100 | I SPNCAUSE("U") S X=X_$S(X]"":", ",1:"")_"UNKNOWN"
|
---|
101 | I X="" S X="INDETERMINATE"
|
---|
102 | Q X
|
---|
103 | EN5(SPNLDA) ; This routine is to determine if the patient has a
|
---|
104 | ; Clinician on file for this FIM report.
|
---|
105 | ;
|
---|
106 | N SPNLTEXT
|
---|
107 | S SPNLTEXT=0
|
---|
108 | I $O(^SPNL(154.1,SPNLDA,1,0))<1 D
|
---|
109 | . S SPNLTEXT=SPNLTEXT+1
|
---|
110 | . S SPNLTEXT(SPNLTEXT)="This patient has no Clinician entered for this FIM ."
|
---|
111 | . Q
|
---|
112 | I SPNLTEXT D HLP^DDSUTL(.SPNLTEXT) S DDSERROR=1
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | EN6(SPNLDA) ; This is to confirm that the patient does have a Etiology
|
---|
116 | ; on file.
|
---|
117 | ;
|
---|
118 | N SPNLTEXT
|
---|
119 | S SPNLTEXT=0
|
---|
120 | I $O(^SPNL(154,SPNLDA,"E",0))<1 D
|
---|
121 | . S SPNLTEXT=SPNLTEXT+1
|
---|
122 | . S SPNLTEXT(SPNLTEXT)="There is no Cause of SCD (Etioloty) on file for this patient."
|
---|
123 | . Q
|
---|
124 | I SPNLTEXT D HLP^DDSUTL(.SPNLTEXT) S DDSERROR=1
|
---|
125 | Q
|
---|
126 | EN7(SPNDT1,SPNDT2,SPNTYP) ; This function is to validate the two dates
|
---|
127 | ; Input:
|
---|
128 | ; SPNDT1 THE FIRST DATE
|
---|
129 | ; SPNDT2 THE SECOND DATE
|
---|
130 | ; THE TYPE OF DATE:
|
---|
131 | ; 1 = RECEIVE DATE
|
---|
132 | ; 2 = NEXT DUE DATE
|
---|
133 | ;
|
---|
134 | N SPNLTEXT K DDSERROR,DDSBR
|
---|
135 | I SPNDT2<SPNDT1 D
|
---|
136 | .S SPNLTEXT(1)="The Date "_$S(SPNTYP=1:"Received",SPNTYP=2:"Next Due",1:"")_" must not be before the Date "_$S(SPNTYP=1:"Offered",SPNTYP=2:"Received",1:"")_"."
|
---|
137 | .S DDSERROR=1
|
---|
138 | .D HLP^DDSUTL(.SPNLTEXT)
|
---|
139 | .S DDSBR=(SPNTYP+1)_U_3_U_3
|
---|
140 | .Q
|
---|
141 | Q
|
---|
142 | EN9(SPNDFN) ;See if pt has any etiology is on file.
|
---|
143 | ;wde this is callable from all points just need the ifn of the pt from file 154
|
---|
144 | ; will return 1 if the pt has an etiology
|
---|
145 | ; will return 0 if the pt has zip entered in the etiology field
|
---|
146 | N SPNLFLG,SPNTIFN
|
---|
147 | S (SPNLFLG,SPNTIFN)=0
|
---|
148 | F S SPNTIFN=$O(^SPNL(154,SPNDFN,"E",SPNTIFN)) Q:(SPNTIFN="")!('+SPNTIFN) D Q:+SPNLFLG
|
---|
149 | .I $P(^SPNL(154,SPNDFN,"E",SPNTIFN,0),U,1)'="" S SPNLFLG=1
|
---|
150 | .Q
|
---|
151 | Q SPNLFLG
|
---|
152 | EN10 ;data validation for a Reg Status of 'Expired'
|
---|
153 | ;cm Called from Block SPNLPBLK1 of Form SPNLPFM1
|
---|
154 | S SPNLFLG=0
|
---|
155 | S:"EXxex"'[DDSX&($P($G(^DPT(D0,.35)),U,1)) SPNLFLG=1,DDSERROR=1 W:$D(DDSERROR) *7 D:SPNLFLG=1 HLP^DDSUTL("Patient is deceased.")
|
---|
156 | Q
|
---|