1 | PXBAPI1 ;ISL/JVS,dee - PCE's API - interview questions ;5/6/05 2:59pm
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**1,9,23,56,104,111,113,122,116,130,147,151,124,164,182**;Aug 12, 1996;Build 3
|
---|
3 | ;;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | PROCESS(PXBEXIT) ;
|
---|
7 | N PXBREQ
|
---|
8 | I WHAT="INTV" D
|
---|
9 | . ;-- Interview is all of the questions
|
---|
10 | . D ADQ(.PXBEXIT) I PXBEXIT<1 Q
|
---|
11 | 1 . D PRV(.PXBEXIT) I PXBEXIT<1 Q
|
---|
12 | 3 . D POV(.PXBEXIT) I PXBEXIT<1 Q
|
---|
13 | 2 . D CPT(.PXBEXIT) I PXBEXIT<1 Q
|
---|
14 | . I $P($G(^AUPNVSIT($G(PXBVST),150)),"^",3)="O" S PXBEXIT=0 Q
|
---|
15 | . I '$$DISPOSIT^PXUTL1($G(PXBPAT),$P($G(^AUPNVSIT(PXBVST,0)),"^",1),$G(PXBVST)) D STP(.PXBEXIT) I PXBEXIT<1 Q
|
---|
16 | E I WHAT="ADDEDIT" D
|
---|
17 | . D ADDEDIT
|
---|
18 | E I WHAT="ADQ" D
|
---|
19 | . ;-- Adminstrative questions
|
---|
20 | . D ADQ(.PXBEXIT)
|
---|
21 | E I WHAT="CODT" D
|
---|
22 | . ;-- Check out Date/Time
|
---|
23 | . D CODT(.PXBEXIT)
|
---|
24 | . Q:PXBEXIT<1
|
---|
25 | . D VISIT(.PXBEXIT)
|
---|
26 | . I PXBVST'>0 S PXBEXIT=-2 Q
|
---|
27 | E I WHAT="SCC" D
|
---|
28 | . ;-- Service connected conditions
|
---|
29 | . S PXCECAT="VST" D SCC(.PXBEXIT) K PXCECAT
|
---|
30 | . Q:PXBEXIT<1
|
---|
31 | . D VISIT(.PXBEXIT)
|
---|
32 | . I PXBVST'>0 S PXBEXIT=-2 Q
|
---|
33 | E I WHAT="PRV" D
|
---|
34 | . ;-- Providers
|
---|
35 | . D PRV(.PXBEXIT)
|
---|
36 | E I WHAT="CPT" D
|
---|
37 | . ;-- Providers and CPT codes
|
---|
38 | . D CPT(.PXBEXIT)
|
---|
39 | E I WHAT="POV" D
|
---|
40 | . ;-- Diagnoses
|
---|
41 | . D POV(.PXBEXIT)
|
---|
42 | E I WHAT="STP" D
|
---|
43 | . ;-- Stop Codes
|
---|
44 | . D STP(.PXBEXIT)
|
---|
45 | E S PXBEXIT=-3 W !,"Procedure ""INTV^PXAPI"" was called incorrectly, contact IRM."
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | ADDEDIT ;
|
---|
49 | N PXANS
|
---|
50 | ADDEDIT1 ;
|
---|
51 | D ADQ(.PXBEXIT)
|
---|
52 | G:PXBEXIT<1 ADDEDIT2
|
---|
53 | D PRV(.PXBEXIT)
|
---|
54 | G:PXBEXIT<1 ADDEDIT2
|
---|
55 | D POV(.PXBEXIT)
|
---|
56 | G:PXBEXIT<1 ADDEDIT2
|
---|
57 | ;
|
---|
58 | ;Call to CPT is not determined by a credit stop code any more
|
---|
59 | ;
|
---|
60 | D CPT(.PXBEXIT)
|
---|
61 | G:PXBEXIT<1 ADDEDIT2
|
---|
62 | I PXBVST>0,'$D(^AUPNVCPT("AD",PXBVST)) D ADDEDIT3 ;PX*1.0*182
|
---|
63 | Q ; PX*1.0*182 added quit, otherwise user is forced to delete enc.
|
---|
64 | ;
|
---|
65 | ADDEDIT2 ;
|
---|
66 | I PXBVST>0,'$D(^AUPNVCPT("AD",PXBVST)),'$D(^AUPNVSIT("AD",PXBVST)) D I PXANS'=1 S PXBEXIT=1 G ADDEDIT1
|
---|
67 | . N DIR,X,Y
|
---|
68 | . W !!
|
---|
69 | . S DIR(0)="Y"
|
---|
70 | . S DIR("A",1)="Must have a STOP CODE or a PROCEDURE to complete this action."
|
---|
71 | . S DIR("A")="Do you want to delete this encounter"
|
---|
72 | . S DIR("B")="NO"
|
---|
73 | . D ^DIR
|
---|
74 | . S PXANS=Y
|
---|
75 | . Q:PXANS'=1
|
---|
76 | . I $$DELVFILE^PXAPIDEL("ALL",PXBVST,"","","","","")=1 S PXBEXIT=-1
|
---|
77 | I PXBVST>0,'$D(^AUPNVSIT(PXBVST,0)) S PXBVST=""
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | ADDEDIT3 ;added PX*1.0*182
|
---|
81 | N DIR,X,Y
|
---|
82 | W !!
|
---|
83 | S DIR(0)="Y"
|
---|
84 | S DIR("A",1)="Must have a STOP CODE or a PROCEDURE to complete this action."
|
---|
85 | S DIR("A")="Do you want to delete this encounter"
|
---|
86 | S DIR("B")="NO"
|
---|
87 | D ^DIR
|
---|
88 | Q:Y'=1
|
---|
89 | I $$DELVFILE^PXAPIDEL("ALL",PXBVST,"","","","","")=1 S PXBVST=""
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | ADQ(PXBEXIT) ;Ask the Administration questions
|
---|
93 | I PXBVST'>0 D
|
---|
94 | . ;This is only done for new visits
|
---|
95 | . I PXBPAT'>0 S PXBPAT=$$ASKPAT I PXBPAT'>0 S PXBEXIT=-1 Q
|
---|
96 | . S DFN=PXBPAT
|
---|
97 | . I PXBHLOC'>0 S PXBHLOC=$$ASKHL I PXBHLOC'>0 S PXBEXIT=-1 Q
|
---|
98 | . S PXBVSTDT=$S(PXBAPPT>0:PXBAPPT,1:$$ASKDT) I PXBVSTDT'>0 S PXBEXIT=-1 Q
|
---|
99 | . I PXBAPPT'>0&PXBHLOC'=+$G(^DPT(PXBPAT,"S",PXBVSTDT,0)) D
|
---|
100 | .. ;This is only done if there is no appointment.
|
---|
101 | .. S PXELAP=$$ELAP^SDPCE(PXBPAT,PXBHLOC)
|
---|
102 | I PXBEXIT'<1,PXBHLOC'>0 S PXBHLOC=$$ASKHL I PXBHLOC'>0 S PXBEXIT=-1 Q
|
---|
103 | I PXBEXIT'<1 D CODT(.PXBEXIT)
|
---|
104 | I PXBEXIT'<1,WHAT'="INTV" S PXCECAT="VST" D SCC(.PXBEXIT) K PXCECAT
|
---|
105 | I PXBEXIT'<1 D
|
---|
106 | . D VISIT(.PXBEXIT)
|
---|
107 | . I PXBVST'>0 S PXBEXIT=-2 Q
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | ASKPAT() ;Ask user for a patient
|
---|
111 | ;DIC on file 9000001
|
---|
112 | N DIR,DIC,Y,X,DA
|
---|
113 | S DIR(0)="P^9000001:AEMQ"
|
---|
114 | S DIR("A")="Patient Name"
|
---|
115 | D ^DIR
|
---|
116 | Q $S(+Y>0:+Y,1:-1)
|
---|
117 | ;
|
---|
118 | ASKHL() ;Ask user for a Hospital Location
|
---|
119 | ASKHL2 ;DIC on file 44
|
---|
120 | N DIR,DIC,Y,X,DA,PXRES
|
---|
121 | S DIR(0)="PA^44:AEMQ"
|
---|
122 | S DIR("A")="Clinic: "
|
---|
123 | ; not occasion of service and not dispositioning
|
---|
124 | ;I PXALHLOC S DIR("S")="I '+$G(^(""OOS""))&'$O(^PX(815,1,""DHL"",""B"",Y,0))"
|
---|
125 | ; not occasion of service only ;PX*1.0*116
|
---|
126 | I PXALHLOC S DIR("S")="I '+$G(^(""OOS""))" ;PX*1.0*116
|
---|
127 | ; only clinic that are not occasion of service and not dispositioning
|
---|
128 | ;E S DIR("S")="I $P(^(0),U,3)=""C""&'+$G(^(""OOS""))&'$O(^PX(815,1,""DHL"",""B"",Y,0))"
|
---|
129 | E S DIR("S")="I $P(^(0),U,3)=""C""&'+$G(^(""OOS""))" ;PX*1.0*116
|
---|
130 | D ^DIR
|
---|
131 | ;enable to select a disposition clinic ;PX*1.0*116
|
---|
132 | ;I $D(^PX(815,1,"DHL","B",+Y)) D HELPDISP^PXCEVSIT W !,$C(7) G ASKHL2
|
---|
133 | ; disallow selection of clinics with non conforming stop codes
|
---|
134 | I +Y>0 S PXRES=$$CLNCK^SDUTL2(+Y,1) I 'PXRES D G ASKHL2
|
---|
135 | .W !,?5,"Clinic MUST be corrected before continuing."
|
---|
136 | Q $S(+Y>0:+Y,1:-1)
|
---|
137 | ;
|
---|
138 | ASKDT() ;Ask user for the encounter Date/Time
|
---|
139 | N DIR,Y,X,DA
|
---|
140 | S DIR(0)="D^"_$S(PXLIMDT>2960000:PXLIMDT,1:"")_":"_(DT+.24)_":AEPRSX"
|
---|
141 | S DIR("A")="Encounter Date and Time"
|
---|
142 | S DIR("?")="Enter the Date and Time of this encounter"
|
---|
143 | D ^DIR
|
---|
144 | Q $S(+Y>0:+Y,1:-1)
|
---|
145 | ;
|
---|
146 | CODT(PXBEXIT) ;Ask the user the Check out Date/Time
|
---|
147 | N PXCHKOUT
|
---|
148 | D CHIKOUT^PXBAPI2("",PXBPAT,PXBHLOC,PXBVSTDT)
|
---|
149 | S PXBCODT=PXCHKOUT
|
---|
150 | S:PXCHKOUT=-1 PXBCODT=""
|
---|
151 | ;; PX*1*113 - Change for EAS*1*3 Appointment processing removed
|
---|
152 | ;S X="EASMTCHK" X ^%ZOSF("TEST") I $T D Q:PXBEXIT<1
|
---|
153 | ;. S:$G(EASACT)'="W" EASACT="C"
|
---|
154 | ;. I $$MT^EASMTCHK(PXBPAT,"",EASACT,PXBVSTDT) D S PXBEXIT=-1
|
---|
155 | ;. . D PAUSE^VALM1
|
---|
156 | I WHAT'["ADDEDIT",PXCHKOUT=-1 S PXBEXIT=-1
|
---|
157 | I $G(PXBVST),$$DISPOSIT^PXUTL1(DFN,$P($G(^AUPNVSIT(PXBVST,0)),"^",1),PXBVST) S PXBEXIT=1
|
---|
158 | Q
|
---|
159 | ;
|
---|
160 | SCC(PXBEXIT) ;Ask the user the Service connected conditions
|
---|
161 | N PXBDATA,PXBCLASS,PXBOUTEN,PXDOD
|
---|
162 | S (PXBOUTEN,PXDOD)=""
|
---|
163 | ;I $$APPOINT^PXUTL1(PXBPAT,PXBVSTDT,PXBHLOC) D
|
---|
164 | ;. S PXBOUTEN=$P($G(^DPT(+PXBPAT,"S",+PXBVSTDT,0)),"^",20)
|
---|
165 | ;E I $$DISPOSIT^PXUTL1(PXBPAT,PXBVSTDT,PXBVST) D
|
---|
166 | ;. S PXBOUTEN=+$P($G(^DPT(+PXBPAT,"DIS",9999999-PXBVSTDT,0)),"^",18)
|
---|
167 | ;I 'PXBOUTEN,$G(PXBVST)>0 S PXBOUTEN=$O(^SCE("AVSIT",PXBVST,0))
|
---|
168 | ;D CLASS^PXBAPI21(PXBOUTEN,PXBPAT,PXBVSTDT,PXBHLOC)
|
---|
169 | D CLASS^PXBAPI21(PXBOUTEN,PXBPAT,PXBVSTDT,PXBHLOC,PXBVST)
|
---|
170 | ;PX*1*111 - Add HNC
|
---|
171 | F PXBCLASS=1:1:7 I $G(PXBDATA("ERR",PXBCLASS))=4 S PXBEXIT=-1 Q ; changed 6/17/98 for MST enhancement
|
---|
172 | Q:PXBEXIT<1
|
---|
173 | I $G(PXDOD) S PXBEXIT=-1 Q
|
---|
174 | S PXB800(1)=$P($G(PXBDATA(3)),"^",2)
|
---|
175 | S PXB800(2)=$P($G(PXBDATA(1)),"^",2)
|
---|
176 | S PXB800(3)=$P($G(PXBDATA(2)),"^",2)
|
---|
177 | S PXB800(4)=$P($G(PXBDATA(4)),"^",2)
|
---|
178 | S PXB800(5)=$P($G(PXBDATA(5)),"^",2) ;added 6/17/98 for MST enhancement
|
---|
179 | ;PX*1*111 - Add HNC
|
---|
180 | S PXB800(6)=$P($G(PXBDATA(6)),"^",2)
|
---|
181 | S PXB800(7)=$P($G(PXBDATA(7)),"^",2)
|
---|
182 | Q
|
---|
183 | ;
|
---|
184 | VISIT(PXBEXIT) ;Creat or edit the Visit
|
---|
185 | ;Set up ^TMP("PXK",$J and call PXK
|
---|
186 | I PXBVST>0 L +^AUPNVSIT(PXBVST):10 E W !!,$C(7),"Cannot edit at this time, try again later." D WAIT^PXCEHELP S PXBEXIT=-2 Q
|
---|
187 | K ^TMP("PXK",$J)
|
---|
188 | N PXBNODE,PXBAFTER,PXKERROR
|
---|
189 | F PXBNODE=0,21,150,800,811,812 D
|
---|
190 | . S PXBAFTER(PXBNODE)=$S(PXBVST>0:$G(^AUPNVSIT(PXBVST,PXBNODE)),1:"")
|
---|
191 | . S ^TMP("PXK",$J,"VST",1,PXBNODE,"BEFORE")=PXBAFTER(PXBNODE)
|
---|
192 | I PXBVST'>0 D
|
---|
193 | . S $P(PXBAFTER(0),"^",1)=PXBVSTDT
|
---|
194 | . S $P(PXBAFTER(0),"^",5)=PXBPAT
|
---|
195 | . S $P(PXBAFTER(0),"^",8)=$P(^SC(PXBHLOC,0),"^",7)
|
---|
196 | . S:PXBAPPT>0 $P(PXBAFTER(0),"^",7)="A" ;PX*1*124
|
---|
197 | . S $P(PXBAFTER(150),"^",3)="P"
|
---|
198 | . S $P(PXBAFTER(812),"^",2)=PXBPKG
|
---|
199 | . S $P(PXBAFTER(812),"^",3)=PXBSOURC
|
---|
200 | S $P(PXBAFTER(0),"^",18)=$G(PXBCODT)
|
---|
201 | S:$P(PXBAFTER(0),"^",22)="" $P(PXBAFTER(0),"^",22)=PXBHLOC
|
---|
202 | S $P(PXBAFTER(800),"^",1)=$G(PXB800(1))
|
---|
203 | S $P(PXBAFTER(800),"^",2)=$G(PXB800(2))
|
---|
204 | S $P(PXBAFTER(800),"^",3)=$G(PXB800(3))
|
---|
205 | S $P(PXBAFTER(800),"^",4)=$G(PXB800(4))
|
---|
206 | S $P(PXBAFTER(800),"^",5)=$G(PXB800(5)) ;added 6/17/98 for MST emhancement
|
---|
207 | ;PX*1*111 - Add HNC
|
---|
208 | S $P(PXBAFTER(800),"^",6)=$G(PXB800(6))
|
---|
209 | S $P(PXBAFTER(800),"^",7)=$G(PXB800(7))
|
---|
210 | I $D(PXELAP)#2 D
|
---|
211 | . S $P(PXBAFTER(0),"^",21)=+PXELAP
|
---|
212 | F PXBNODE=0,21,150,800,811,812 D
|
---|
213 | . S ^TMP("PXK",$J,"VST",1,PXBNODE,"AFTER")=PXBAFTER(PXBNODE)
|
---|
214 | S ^TMP("PXK",$J,"VST",1,"IEN")=$S(PXBVST>0:PXBVST,1:"")
|
---|
215 | S ^TMP("PXK",$J,"SOR")=PXBSOURC
|
---|
216 | D EN1^PXKMAIN
|
---|
217 | I PXBVST>0 L -^AUPNVSIT(PXBVST):5
|
---|
218 | S PXBVST=$G(^TMP("PXK",$J,"VST",1,"IEN"))
|
---|
219 | Q
|
---|
220 | ;
|
---|
221 | CPT(PXBEXIT) ;Ask the user Providers and CTPs
|
---|
222 | D CPT^PXBMCPT(PXBVST) K PRVDR
|
---|
223 | Q
|
---|
224 | ;
|
---|
225 | POV(PXBEXIT) ;Ask the user Diagnoses
|
---|
226 | D POV^PXBMPOV(PXBVST) K PRVDR
|
---|
227 | Q
|
---|
228 | ;
|
---|
229 | PRV(PXBEXIT) ;Ask the user Providers
|
---|
230 | D PRV^PXBMPRV(PXBVST,"PRV") K PRVDR
|
---|
231 | Q
|
---|
232 | ;
|
---|
233 | STP(PXBEXIT) ;Ask the user Stop Codes
|
---|
234 | I $L($T(DATE^SCDXUTL)),$$DATE^SCDXUTL(+$G(^AUPNVSIT(PXBVST,0))) Q
|
---|
235 | D STP^PXBMSTP(PXBVST) K PRVDR
|
---|
236 | Q
|
---|
237 | ;
|
---|