1 | PSOAFPTS ;VFA/HMS autofinish print for star printer ;3/13/07 19:26
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**208**;DEC 1997;Build 39
|
---|
3 | ; Copyright (C) GNU GPL 2007 WorldVistA
|
---|
4 | ;
|
---|
5 | PRNT ;PAGEMODE for Star Micronics
|
---|
6 | ;
|
---|
7 | U IO ;vfah fax
|
---|
8 | ;
|
---|
9 | F DR=1:1 Q:$G(SGY(DR))="" S SN=19+DR D
|
---|
10 | .S AFSIG(SN)=$G(SGY(DR))
|
---|
11 | S SIGL=DR-1
|
---|
12 | ;
|
---|
13 | S AFESFLAG=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",3)
|
---|
14 | S AFORD=$P(^PSRX(RX,"OR1"),"^",2)
|
---|
15 | I $G(AFESFLAG)="Y" D
|
---|
16 | .S AFES=$P($G(^OR(100,AFORD,8,1,0)),"^",4)
|
---|
17 | .I $G(AFES)=1 S AFESYN="Y"
|
---|
18 | .I $G(AFESYN)="Y" S AFESIGN=$P($G(^OR(100,AFORD,8,1,0)),"^",5)
|
---|
19 | ;
|
---|
20 | S AFWET2=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",6)
|
---|
21 | S AFDEA=$P(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),0),"^",3)
|
---|
22 | ;
|
---|
23 | I $G(AFWET2)="Y"&($G(AFDEA)["2") S AFESFLAG="" ;Turns off ES for Sch IIs if wet sig for IIs set in File#59
|
---|
24 | I $G(AFWET2)="Y"&($G(AFDEA)["2") S AFESYN=""
|
---|
25 | ;
|
---|
26 | S AFS=0,DONE="N",AFSYN="" F L=1:1 S AFS=$O(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),1,AFS)) Q:AFS=""!(DONE="Y") D
|
---|
27 | .I $P(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),1,AFS,0),"^",3)="0" D
|
---|
28 | ..S AFSYN=$P($G(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),1,AFS,0)),"^",1),DONE="Y"
|
---|
29 | K DONE
|
---|
30 | ;
|
---|
31 | DIAG ;
|
---|
32 | S AFICD9(1)="None",AFICD(1)="Not Available",L=2
|
---|
33 | I $D(^OR(100,AFORD,5.1,0)) D
|
---|
34 | .S AFORL=0
|
---|
35 | .F L=1:1 S AFORL=$O(^OR(100,AFORD,5.1,AFORL)) Q:AFORL="B"!(AFORL=0)!(AFORL="") D
|
---|
36 | ..S AFORIN=$P($G(^OR(100,AFORD,5.1,AFORL,0)),"^",1)
|
---|
37 | ..I AFORIN>"" D
|
---|
38 | ...S AFICD9(L)=$P($G(^ICD9(AFORIN,0)),"^",1)
|
---|
39 | ...S AFICD(L)=$P($G(^ICD9(AFORIN,0)),"^",3)
|
---|
40 | S AFICDN=L-1
|
---|
41 | ;
|
---|
42 | PRC ;
|
---|
43 | K ^UTILITY($J,"W") S PSNACNT=1,DIWL=0,DIWR=70,DIWF="",(PSSIXFL,PSSEVFL)=0 F ZZ=0:0 S ZZ=$O(^PSRX(RX,"PRC",ZZ)) Q:'ZZ I $D(^(ZZ,0)) S X=^(0) D ^DIWP
|
---|
44 | F ZZ=0:0 S ZZ=$O(^UTILITY($J,"W",DIWL,ZZ)) Q:'ZZ I $D(^(ZZ,0)) S PSOAFZZ=ZZ
|
---|
45 | ;
|
---|
46 | W $C(27),"C",$C(10),$C(0) ;Clear format
|
---|
47 | ;
|
---|
48 | W $C(27),"L00;0110,0030,0920,0030,0,6",$C(10),$C(0) ;T
|
---|
49 | W $C(27),"L01;0025,0100,0025,0230,1,6",$C(10),$C(0) ;L
|
---|
50 | W $C(27),"L02;1000,0100,1000,0238,1,6",$C(10),$C(0) ;R
|
---|
51 | W $C(27),"L03;0025,0230,1000,0230,0,6",$C(10),$C(0) ;B
|
---|
52 | W $C(27),"L10;0920,0030,0920,0100,1,6",$C(10),$C(0) ;R
|
---|
53 | W $C(27),"L11;0920,0100,1000,0100,0,6",$C(10),$C(0) ;B
|
---|
54 | W $C(27),"L12;0110,0030,0110,0102,1,6",$C(10),$C(0) ;R
|
---|
55 | W $C(27),"L13;0025,0100,0112,0100,0,6",$C(10),$C(0) ;B
|
---|
56 | ;
|
---|
57 | W $C(27),"L05;0025,0470,1000,0470,0,2",$C(10),$C(0) ;Div Line
|
---|
58 | ;
|
---|
59 | W $C(27),"PC00;0210,0055,1,1,4,00,00",$C(10),$C(0) ;Dr
|
---|
60 | W $C(27),"PC01;0025,0100,1,1,2,00,00",$C(10),$C(0) ;Dr
|
---|
61 | W $C(27),"PC02;0025,0145,1,1,2,00,00",$C(10),$C(0) ;Dr Phone
|
---|
62 | W $C(27),"PC70;0025,0190,1,1,2,00,00",$C(10),$C(0) ;Free line
|
---|
63 | ;
|
---|
64 | W $C(27),"PC03;0025,0285,1,1,1,00,03",$C(10),$C(0) ;Rx For
|
---|
65 | W $C(27),"PC04;0130,0280,1,1,2,00,00",$C(10),$C(0) ;Pat Name
|
---|
66 | W $C(27),"PC05;0130,0320,1,1,2,00,00",$C(10),$C(0) ;Pat Str1
|
---|
67 | W $C(27),"PC06;0130,0360,1,1,2,00,00",$C(10),$C(0) ;Pat Str2
|
---|
68 | W $C(27),"PC07;0130,0400,1,1,2,00,00",$C(10),$C(0) ;Pat Str3
|
---|
69 | W $C(27),"PC08;0130,0440,1,1,2,00,00",$C(10),$C(0) ;Pat City
|
---|
70 | ;
|
---|
71 | S DHL=4
|
---|
72 | S:$L(DRUG)>33 DHL=2 ;Reduce size for L>33
|
---|
73 | W $C(27),"PC09;0025,0500,1,1,"_DHL_",00,00",$C(10),$C(0) ;Drug
|
---|
74 | ;
|
---|
75 | W $C(27),"PC72;0025,0558,1,1,1,00,03",$C(10),$C(0) ;AKA Notice
|
---|
76 | W $C(27),"PC71;0225,0550,1,1,2,00,00",$C(10),$C(0) ;Drug Syn
|
---|
77 | ;
|
---|
78 | W $C(27),"PC10;0025,0590,1,1,1,00,03",$C(10),$C(0) ;SDD Disclaimer
|
---|
79 | ;
|
---|
80 | S SL=19,VP=590
|
---|
81 | F L=1:1:SIGL D
|
---|
82 | .S SL=SL+1,VP=VP+40
|
---|
83 | .D SVP
|
---|
84 | .W $C(27),"PC"_SL_";0025,"_VP_",1,1,2,00,00",$C(10),$C(0)
|
---|
85 | ;
|
---|
86 | S VP=VP+60 D SVP
|
---|
87 | W $C(27),"PC50;0085,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Disp:
|
---|
88 | W $C(27),"PC51;0300,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Disp Num
|
---|
89 | ;
|
---|
90 | ;S VP=VP+40 D SVP
|
---|
91 | W $C(27),"PC52;0450,"_VP_",1,1,1,00,03",$C(10),$C(0) ;Disp Disclaimer
|
---|
92 | ;
|
---|
93 | S VP=VP+40 D SVP
|
---|
94 | W $C(27),"PC53;0025,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Days
|
---|
95 | W $C(27),"PC54;0300,"_VP_",1,1,2,00,00",$C(10),$C(0) ; Supply
|
---|
96 | ;
|
---|
97 | S VP=VP+40 D SVP
|
---|
98 | W $C(27),"PC55;0065,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Refill
|
---|
99 | W $C(27),"PC56;0300,"_VP_",1,1,2,00,00",$C(10),$C(0)
|
---|
100 | ;
|
---|
101 | S VP=VP+40 D SVP
|
---|
102 | W $C(27),"PC57;0045,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Issue
|
---|
103 | W $C(27),"PC58;0300,"_VP_",1,1,2,00,00",$C(10),$C(0) ; Date #
|
---|
104 | ;
|
---|
105 | ;Diag Line Logo
|
---|
106 | S VP=VP+40 D SVP
|
---|
107 | W $C(27),"PC79;0065,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Diag
|
---|
108 | ;
|
---|
109 | S SL=79,VP=VP-40 ;Diag lines
|
---|
110 | F L=1:1:AFICDN D
|
---|
111 | .S SL=SL+1,VP=VP+40
|
---|
112 | .D SVP
|
---|
113 | .W $C(27),"PC"_SL_";0300,"_VP_",1,1,2,00,00",$C(10),$C(0)
|
---|
114 | .S SL=SL+1
|
---|
115 | .W $C(27),"PC"_SL_";0475,"_VP_",1,1,2,00,00",$C(10),$C(0)
|
---|
116 | ;
|
---|
117 | ;DOB Line
|
---|
118 | S SL=SL+1,VP=VP+40 D SVP
|
---|
119 | W $C(27),"PC"_SL_";0065,"_VP_",1,1,2,00,00",$C(10),$C(0) ;DOB:
|
---|
120 | S SL=SL+1
|
---|
121 | W $C(27),"PC"_SL_";0300,"_VP_",1,1,2,00,00",$C(10),$C(0) ;DOB
|
---|
122 | ;
|
---|
123 | ;Comment Line Logo
|
---|
124 | I $G(PSOAFZZ)>0 D
|
---|
125 | .S SL=SL+1,VP=VP+40 D SVP
|
---|
126 | .W $C(27),"PC"_SL_";0008,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Comment Logo
|
---|
127 | ;
|
---|
128 | I $G(PSOAFZZ)>0 D
|
---|
129 | .S VP=VP-40 ;Comment lines
|
---|
130 | .F L=1:1:PSOAFZZ D
|
---|
131 | ..S SL=SL+1,VP=VP+$S(L=1:48,1:25)
|
---|
132 | ..D SVP
|
---|
133 | ..W $C(27),"PC"_SL_";0300,"_VP_",1,1,1,00,00",$C(10),$C(0)
|
---|
134 | ;
|
---|
135 | ;Signature lines start here
|
---|
136 | I $G(AFESYN)="Y" S VP=VP+130 D SVP G SIGNL
|
---|
137 | S VP=VP+130 D SVP
|
---|
138 | W $C(27),"PC59;0025,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Sig:
|
---|
139 | ;
|
---|
140 | S VP=VP+30 D SVP
|
---|
141 | W $C(27),"L04;0230,"_VP_",1000,"_VP_",0,2",$C(10),$C(0) ;Line
|
---|
142 | ;
|
---|
143 | SIGNL S VP=VP+10 D SVP
|
---|
144 | I $G(AFESYN)="Y" G SIGNL1
|
---|
145 | W $C(27),"PC60;0240,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Prov Name
|
---|
146 | SIGNL1 W $C(27),"PC60;0025,"_VP_",1,1,2,00,00",$C(10),$C(0) ;ES Prov Name
|
---|
147 | ;
|
---|
148 | S VP=VP+110 D SVP
|
---|
149 | W $C(27),"PC61;0025,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Trail
|
---|
150 | ;
|
---|
151 | S VP=VP+90 D SVP
|
---|
152 | W $C(27),"PC62;0025,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Printed On:
|
---|
153 | W $C(27),"PC63;0320,"_VP_",1,1,2,00,00",$C(10),$C(0) ;Printed On D/T
|
---|
154 | ;
|
---|
155 | ;Testing form length on Star
|
---|
156 | S PA=$S(VP>1501:1900,1:1500)
|
---|
157 | W $C(27),"D"_PA_"",$C(10),$C(0) ;Set print area
|
---|
158 | ;
|
---|
159 | W $C(27),"B",$C(10),$C(0) ;Enable cutter
|
---|
160 | ;
|
---|
161 | S OFF=$P(PS,"^",1)
|
---|
162 | S VFAX=OFF,VFAM=20
|
---|
163 | D CENTER
|
---|
164 | S OFF=VFAX
|
---|
165 | W $C(27),"RC00;"_OFF_"",$C(10),$C(0)
|
---|
166 | ;
|
---|
167 | S OFFAD=$P(PS,"^",7)_","_STATE_" "_$G(PSOHZIP)
|
---|
168 | S VFAX=OFFAD,VFAM=49
|
---|
169 | D CENTER
|
---|
170 | S OFFAD=VFAX
|
---|
171 | W $C(27),"RC01;"_OFFAD_"",$C(10),$C(0)
|
---|
172 | ;
|
---|
173 | S OFFTEL=$P(PS,"^",3)_"-"_$P(PS,"^",4)
|
---|
174 | S VFAX=OFFTEL,VFAM=49
|
---|
175 | D CENTER
|
---|
176 | S OFFTEL=VFAX
|
---|
177 | W $C(27),"RC02;"_OFFTEL_"",$C(10),$C(0)
|
---|
178 | ;
|
---|
179 | S OFFFREE=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",4)
|
---|
180 | S VFAX=OFFFREE,VFAM=49
|
---|
181 | D CENTER
|
---|
182 | S OFFFREE=VFAX
|
---|
183 | W $C(27),"RC70;"_OFFFREE_"",$C(10),$C(0)
|
---|
184 | ;
|
---|
185 | W $C(27),"RC03;Rx for:",$C(10),$C(0)
|
---|
186 | ;
|
---|
187 | D 6^VADPT,PID^VADPT
|
---|
188 | S PSOAFPTI=$S(DUZ("AG")="V":$E($G(VA("PID")),5,12),1:$G(VA("PID")))
|
---|
189 | S AFPNAM=PNM_" "_$G(PSOAFPTI)
|
---|
190 | W $C(27),"RC04;"_AFPNAM_"",$C(10),$C(0)
|
---|
191 | ;
|
---|
192 | S AFPADD1=$G(VAPA(1))
|
---|
193 | W $C(27),"RC05;"_AFPADD1_"",$C(10),$C(0)
|
---|
194 | ;
|
---|
195 | S AFPADD2=$G(ADDR(2))
|
---|
196 | W $C(27),"RC06;"_AFPADD2_"",$C(10),$C(0)
|
---|
197 | ;
|
---|
198 | S AFPADD3=$G(ADDR(3))
|
---|
199 | W $C(27),"RC07;"_AFPADD3_"",$C(10),$C(0)
|
---|
200 | ;
|
---|
201 | S AFPADD4=$G(ADDR(4))
|
---|
202 | W $C(27),"RC08;"_AFPADD4_"",$C(10),$C(0)
|
---|
203 | ;
|
---|
204 | S AFDRUG=DRUG
|
---|
205 | W $C(27),"RC09;"_AFDRUG_"",$C(10),$C(0)
|
---|
206 | ;
|
---|
207 | S SYNFLAG=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",5)
|
---|
208 | I SYNFLAG="Y"&(AFSYN'="") D
|
---|
209 | .W $C(27),"RC72;Also known as:",$C(10),$C(0) ;L-72
|
---|
210 | .W $C(27),"RC71;"_AFSYN_"",$C(10),$C(0) ;L-71
|
---|
211 | ;
|
---|
212 | I $P($G(^PSRX(RX,"RXFIN")),"^",1)="Y" S VFASDD="Y"
|
---|
213 | I $G(VFASDD)="Y" D
|
---|
214 | .W $C(27),"RC10;Pharmacy may choose strength(s) of drug to meet requirements of directions",$C(10),$C(0)
|
---|
215 | ;
|
---|
216 | ;
|
---|
217 | SIG S SN=19
|
---|
218 | F L=1:1:SIGL S SN=SN+1 W $C(27),"RC"_SN_";"_AFSIG(SN)_"",$C(10),$C(0)
|
---|
219 | ;
|
---|
220 | W $C(27),"RC50;Dispense:",$C(10),$C(0)
|
---|
221 | S AFDISP=$G(QTY)_" "_$G(PSDU)
|
---|
222 | W $C(27),"RC51;"_AFDISP_"",$C(10),$C(0)
|
---|
223 | ;
|
---|
224 | I $G(VFASDD)="Y" W $C(27),"RC52;Pharmacy to adjust qty for # of days",$C(10),$C(0)
|
---|
225 | ;
|
---|
226 | W $C(27),"RC53;Days Supply:",$C(10),$C(0)
|
---|
227 | S VFADAYS=$G(DAYS)
|
---|
228 | W $C(27),"RC54;"_VFADAYS_"",$C(10),$C(0)
|
---|
229 | ;
|
---|
230 | W $C(27),"RC55;Refill(s):",$C(10),$C(0)
|
---|
231 | S AFRF=$P(RXY,"^",9)
|
---|
232 | W $C(27),"RC56;"_AFRF_"",$C(10),$C(0)
|
---|
233 | ;
|
---|
234 | W $C(27),"RC57;Issue Date:",$C(10),$C(0)
|
---|
235 | W $C(27),"RC58;"_DATE_"",$C(10),$C(0)
|
---|
236 | ;
|
---|
237 | DIA S PSOAFDOB=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",8)
|
---|
238 | I PSOAFDOB="Y" D
|
---|
239 | .W $C(27),"RC79;Diagnosis:",$C(10),$C(0)
|
---|
240 | .S SN=79
|
---|
241 | .F L=1:1:AFICDN S SN=SN+1 D
|
---|
242 | ..W $C(27),"RC"_SN_";"_AFICD9(L)_"",$C(10),$C(0)
|
---|
243 | ..S SN=SN+1
|
---|
244 | ..W $C(27),"RC"_SN_";"_AFICD(L)_"",$C(10),$C(0)
|
---|
245 | I PSOAFDOB="" S SN=80+AFICDN
|
---|
246 | ;
|
---|
247 | DOB ;DOB
|
---|
248 | S PSOAFDIG=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",7)
|
---|
249 | I PSOAFDIG="Y" D
|
---|
250 | .S PSOAFDOB=$P($G(VADM(3)),"^",2),PSOAFDOL=" DOB:"
|
---|
251 | .S SN=SN+1
|
---|
252 | .W $C(27),"RC"_SN_"; DOB:",$C(10),$C(0)
|
---|
253 | .S SN=SN+1
|
---|
254 | .W $C(27),"RC"_SN_";"_PSOAFDOB_"",$C(10),$C(0)
|
---|
255 | I PSOAFDIG="" S SN=SN+2
|
---|
256 | ;
|
---|
257 | COM ;
|
---|
258 | I $D(^UTILITY($J,"W")) D
|
---|
259 | .S SN=SN+1
|
---|
260 | .W $C(27),"RC"_SN_"; MD Comments:",$C(10),$C(0)
|
---|
261 | .F ZZ=0:0:PSOAFZZ S ZZ=$O(^UTILITY($J,"W",DIWL,ZZ)) Q:'ZZ I $D(^(ZZ,0)) S PSOAFCOM=^(0),SN=SN+1 W $C(27),"RC"_SN_";"_PSOAFCOM_"",$C(10),$C(0)
|
---|
262 | K PSOZAFZZ,^UTILITY($J,"W")
|
---|
263 | ;
|
---|
264 | ;Signature Block
|
---|
265 | SIGN ;Prints DEA if it exists-if no DEA# prints VA# if it exists
|
---|
266 | I $G(AFESFLAG)="Y" D
|
---|
267 | .I $G(AFESYN)="Y" D
|
---|
268 | ..S AFDEA=$$GET1^DIQ(200,AFESIGN,53.2,"I")
|
---|
269 | ..I AFDEA="" D
|
---|
270 | ...S AFDEA=$$GET1^DIQ(200,AFESIGN,53.3,"I")
|
---|
271 | ..S AFESIGNN=$$GET1^DIQ(200,AFESIGN,.01,"I")
|
---|
272 | ..S AFSIGN=$G(AFESIGNN)_" "_AFDEA
|
---|
273 | ;
|
---|
274 | SIGN1 I $G(AFESFLAG)'="Y" D
|
---|
275 | .W $C(27),"RC59;Signature:",$C(10),$C(0) ;SCD
|
---|
276 | .;vfah prints DEA if it exists-if no DEA# prints VA# if it exists
|
---|
277 | .S AFDEA=$$GET1^DIQ(200,PSOAFPRV,53.2,"I")
|
---|
278 | .I AFDEA="" D
|
---|
279 | ..S AFDEA=$$GET1^DIQ(200,PSOAFPRV,53.3,"I")
|
---|
280 | .S AFSIGN=" "_$G(PHYS)_" "_AFDEA
|
---|
281 | ;
|
---|
282 | SIGNP I $G(AFESYN)="Y" S AFSIGN="Signed: /ES/"_AFSIGN
|
---|
283 | W $C(27),"RC60;"_AFSIGN_"",$C(10),$C(0) ;SCD
|
---|
284 | ;
|
---|
285 | K AFESYN,AFESIGN,AFESIGNN
|
---|
286 | ;
|
---|
287 | W $C(27),"RC61;Must write BRAND NECESSARY to dispense brand drug",$C(10),$C(0) ;SCD
|
---|
288 | ;
|
---|
289 | S AFPTIM=$S($D(REPRINT):"Re-Printed on:",1:"Printed on:")
|
---|
290 | W $C(27),"RC62;"_AFPTIM_"",$C(10),$C(0) ;SCD
|
---|
291 | D NOW^%DTC S Y=% X ^DD("DD")
|
---|
292 | S AFPRNDT=Y_" ("_RX_")"
|
---|
293 | W $C(27),"RC63;"_AFPRNDT_"",$C(10),$C(0) ;SCD
|
---|
294 | ;
|
---|
295 | WRITE W $C(27),"I",$C(10),$C(0) ;Print label
|
---|
296 | ;
|
---|
297 | K VFASDD
|
---|
298 | Q
|
---|
299 | ;
|
---|
300 | SVP S VP=$S($L(VP)=1:"000"_VP,$L(VP)=2:"00"_VP,$L(VP)=3:"0"_VP,1:VP)
|
---|
301 | Q
|
---|
302 | ;
|
---|
303 | CENTER ;Center header
|
---|
304 | S VFAS=(VFAM-$L(VFAX))\2
|
---|
305 | F L=1:1:VFAS S VFAX=" "_VFAX
|
---|