1 | ECUTL0 ;ALB/ESD - Event Capture Eligibility and In/Outpat Utilities ;4 May 98
|
---|
2 | ;;2.0; EVENT CAPTURE ;**10**;8 May 96
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | CHKDSS(DSSU,INOUT) ; Determine if DSS Unit is sending data to PCE
|
---|
6 | ;
|
---|
7 | ; Input:
|
---|
8 | ; DSSU - DSS Unit IEN
|
---|
9 | ; INOUT - Inpatient or Outpatient
|
---|
10 | ;
|
---|
11 | ; Output:
|
---|
12 | ; Function Value - 0 if DSS Unit not sending to PCE or input
|
---|
13 | ; parameters not passed in
|
---|
14 | ; 1 if DSS Unit sending to PCE
|
---|
15 | ;
|
---|
16 | N ECDSS,ECSEND
|
---|
17 | ;
|
---|
18 | ;- Drops out if invalid condition
|
---|
19 | D
|
---|
20 | . I '$G(DSSU),($G(INOUT)="") S ECDSS=0 Q
|
---|
21 | .;
|
---|
22 | .;- Get 'Send to PCE' field
|
---|
23 | . S ECSEND=$P($G(^ECD(+DSSU,0)),"^",14)
|
---|
24 | . I ECSEND="A"!(ECSEND="O"&(INOUT="O")) S ECDSS=1
|
---|
25 | . E S ECDSS=0
|
---|
26 | Q ECDSS
|
---|
27 | ;
|
---|
28 | ;
|
---|
29 | ELGLST() ; Display list of patient eligibilities and allow user to
|
---|
30 | ; select eligibility, given ELIG^VADPT has been previously called.
|
---|
31 | ;
|
---|
32 | ; Input:
|
---|
33 | ; None
|
---|
34 | ; Output:
|
---|
35 | ; Function value - IEN of eligibility from ELIGIBILITY CODE file
|
---|
36 | ; (#8) or 0 if unsuccessful
|
---|
37 | ;
|
---|
38 | N ECALLEL,ECELIEN,ECELIG,ECPRIMEL
|
---|
39 | S (ECELIEN,ECELIG)=0
|
---|
40 | ;
|
---|
41 | ;- If VAEL not previously called, exit with error condition
|
---|
42 | I '$D(VAEL)!('$G(VAEL(1))) G ELGLSTQ
|
---|
43 | ELIG S ECALLEL=""
|
---|
44 | S ECPRIMEL=$P(VAEL(1),"^",2)
|
---|
45 | W !!,"THIS PATIENT HAS OTHER ENTITLED ELIGIBILITIES:"
|
---|
46 | ;
|
---|
47 | ;- Display all of patient's eligibilities
|
---|
48 | F ECELIEN=0:0 S ECELIEN=$O(VAEL(1,ECELIEN)) Q:'ECELIEN D
|
---|
49 | . W !?5,$P(VAEL(1,ECELIEN),"^",2)
|
---|
50 | . S ECALLEL=ECALLEL_"^"_$P(VAEL(1,ECELIEN),"^",2)
|
---|
51 | ;
|
---|
52 | ;- Use patient's primary elig as default
|
---|
53 | CHOOSE W !!,"ENTER THE ELIGIBILITY FOR THIS APPOINTMENT: "_ECPRIMEL_"// "
|
---|
54 | ;
|
---|
55 | ;- If return, uparrow, or time out get prim elig w/o searching for match
|
---|
56 | R X:DTIME G PRIMELG:"^"[X!('$T) S X=$$UPPER^VALM1(X) G ELIG:X["?",CHOOSE:ECALLEL'[("^"_X)
|
---|
57 | S ECPRIMEL=X_$P($P(ECALLEL,"^"_X,2),"^")
|
---|
58 | W $P($P(ECALLEL,"^"_X,2),"^")
|
---|
59 | ;
|
---|
60 | ;- If match found, exit with eligibility IEN from file #8
|
---|
61 | F ECELIEN=0:0 S ECELIEN=$O(VAEL(1,ECELIEN)) Q:'ECELIEN I $P(VAEL(1,ECELIEN),"^",2)=ECPRIMEL S ECELIG=+ECELIEN G ELGLSTQ
|
---|
62 | ;
|
---|
63 | ;- If default or error cond exit with IEN of primary elig from file #8
|
---|
64 | PRIMELG I ('$T)!(X["^") D ELIGERR^ECUTL0
|
---|
65 | I ('$T)!(X["^")!($P(VAEL(1),"^",2)=ECPRIMEL) S ECELIG=+$P(VAEL(1),"^")
|
---|
66 | ;
|
---|
67 | ELGLSTQ Q ECELIG
|
---|
68 | ;
|
---|
69 | ;
|
---|
70 | MULTELG(DFN) ; Determine if patient has multiple eligibilites (calls
|
---|
71 | ; ELIG^VADPT).
|
---|
72 | ;
|
---|
73 | ; Input:
|
---|
74 | ; DFN - IEN of Patient file (#2)
|
---|
75 | ; Output:
|
---|
76 | ; Function value - 0 if no additional eligibilities exist,
|
---|
77 | ; otherwise a number greater than 0 if addt'l eligibilities exist
|
---|
78 | ;
|
---|
79 | D ELIG^VADPT
|
---|
80 | Q +$O(VAEL(1,0))
|
---|
81 | ;
|
---|
82 | ;
|
---|
83 | ASKIF(ELIGNM) ; Ask user whether to edit the eligibility during the edit
|
---|
84 | ; of an existing EC Patient file (#721) record
|
---|
85 | ;
|
---|
86 | ; Input:
|
---|
87 | ; ELIGNM - Eligibility Name
|
---|
88 | ;
|
---|
89 | ; Output:
|
---|
90 | ; Function value - 1 if user wants to edit eligibility
|
---|
91 | ; 0 if user does not want to edit eligibility
|
---|
92 | ; -1 if uparrow or time out
|
---|
93 | ;
|
---|
94 | N DIR
|
---|
95 | Q:$G(ELIGNM)="" 0
|
---|
96 | ;- Display patient's current eligibility
|
---|
97 | W !!,"The eligibility previously filed for this patient's procedure is:",!?5,ELIGNM,!!
|
---|
98 | ;- Ask user
|
---|
99 | S DIR(0)="YA"
|
---|
100 | S DIR("A")="Do you wish to edit the patient's eligibility? "
|
---|
101 | S DIR("B")="NO"
|
---|
102 | D ^DIR
|
---|
103 | Q $S($D(DIRUT):-1,'Y:0,1:Y)
|
---|
104 | ;
|
---|
105 | ;
|
---|
106 | ELIGERR ; If user uparrows or times out while choosing eligibility, display
|
---|
107 | ; primary eligibility msg to screen
|
---|
108 | ;
|
---|
109 | ; Input:
|
---|
110 | ; None
|
---|
111 | ;
|
---|
112 | ; Output:
|
---|
113 | ; Display primary eligibility message to screen
|
---|
114 | ;
|
---|
115 | W !!?5,"No eligibility entered. The primary eligibility of the patient"
|
---|
116 | W !?5,"will be sent to PCE for workload reporting (if the patient's"
|
---|
117 | W !?5,"procedure data is complete).",!
|
---|
118 | Q
|
---|
119 | ;
|
---|
120 | ;
|
---|
121 | INOUTPT(DFN,PROCDT) ; Determine inpatient/outpatient status
|
---|
122 | ;
|
---|
123 | ; Input:
|
---|
124 | ; DFN - IEN of Patient file (#2)
|
---|
125 | ; PROCDT - Procedure Date/Time
|
---|
126 | ;
|
---|
127 | ; Output:
|
---|
128 | ; Function value - I if inpatient, O if outpatient, null if error
|
---|
129 | ;
|
---|
130 | N ECPTSTAT
|
---|
131 | S ECPTSTAT=1
|
---|
132 | I '$G(DFN)!('$G(PROCDT)) S ECPTSTAT=0
|
---|
133 | ;
|
---|
134 | ;- Call inpat/outpat function if both input variables are present
|
---|
135 | I ECPTSTAT D
|
---|
136 | . S ECPTSTAT=$$INP^SDAM2(DFN,PROCDT)
|
---|
137 | . I $G(ECPTSTAT)="" S ECPTSTAT="O"
|
---|
138 | ;
|
---|
139 | ;- If either one of input variables are missing, return null (otherwise
|
---|
140 | ; return "I" or "O")
|
---|
141 | Q $S(ECPTSTAT=0:"",1:ECPTSTAT)
|
---|
142 | ;
|
---|
143 | ;
|
---|
144 | DSPSTAT(ECSTAT) ; Display inpatient/outpatient status
|
---|
145 | ;
|
---|
146 | ; Input:
|
---|
147 | ; ECSTAT - Inpatient/Outpatient status (I=inpatient, O=outpatient)
|
---|
148 | ;
|
---|
149 | ; Output:
|
---|
150 | ; Display inpatient/outpatient status to screen
|
---|
151 | ;
|
---|
152 | N ECTXT
|
---|
153 | S ECTXT="This patient is an "
|
---|
154 | W !!,ECTXT_$S(ECSTAT="I":"Inpatient",1:"Outpatient"),!
|
---|
155 | Q
|
---|
156 | ;
|
---|
157 | ;
|
---|
158 | INOUTERR ; Display inpat/outpat status error msg to screen and set exit
|
---|
159 | ; variable
|
---|
160 | ;
|
---|
161 | ; Input:
|
---|
162 | ; None
|
---|
163 | ;
|
---|
164 | ; Output:
|
---|
165 | ; Display error message to screen
|
---|
166 | ;
|
---|
167 | W !,"Patient record data or procedure date/time data is missing. No action taken."
|
---|
168 | S ECOUT=1
|
---|
169 | Q
|
---|