1 | PSOAFPTL ;VFA/HMS autofinish print for laser printer ; 3/6/07 9:25pm
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**208**;DEC 1997;Build 39
|
---|
3 | ; Copyright (C) 2007 WorldVistA
|
---|
4 | ;
|
---|
5 | ; This program is free software; you can redistribute it and/or modify
|
---|
6 | ; it under the terms of the GNU General Public License as published by
|
---|
7 | ; the Free Software Foundation; either version 2 of the License, or
|
---|
8 | ; (at your option) any later version.
|
---|
9 | ;
|
---|
10 | ; This program is distributed in the hope that it will be useful,
|
---|
11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
13 | ; GNU General Public License for more details.
|
---|
14 | ;
|
---|
15 | ; You should have received a copy of the GNU General Public License
|
---|
16 | ; along with this program; if not, write to the Free Software
|
---|
17 | ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
---|
18 | BEGLP ;
|
---|
19 | U IO ;hms fax stuff
|
---|
20 | ;
|
---|
21 | F DR=1:1 Q:$G(SGY(DR))="" S SN=19+DR D
|
---|
22 | .S AFSIG(SN)=$G(SGY(DR))
|
---|
23 | S SIGL=DR-1
|
---|
24 | ;
|
---|
25 | ;CHECK FOR ES
|
---|
26 | S AFESFLAG=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",3)
|
---|
27 | S AFORD=$P(^PSRX(RX,"OR1"),"^",2)
|
---|
28 | I $G(AFESFLAG)="Y" D
|
---|
29 | .S AFES=$P($G(^OR(100,AFORD,8,1,0)),"^",4)
|
---|
30 | .I $G(AFES)=1 S AFESYN="Y"
|
---|
31 | .I $G(AFESYN)="Y" S AFESIGN=$P($G(^OR(100,AFORD,8,1,0)),"^",5)
|
---|
32 | ;
|
---|
33 | ;CHECK FOR SCHEDULE II WET SIGNATUIRE
|
---|
34 | S AFWET2=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",6)
|
---|
35 | S AFDEA=$P(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),0),"^",3)
|
---|
36 | ;
|
---|
37 | I $G(AFWET2)="Y"&($G(AFDEA)["2") S AFESFLAG="" ;Turns off ES for Sch IIs if wet sig for IIs set in File#59
|
---|
38 | I $G(AFWET2)="Y"&($G(AFDEA)["2") S AFESYN=""
|
---|
39 | ;
|
---|
40 | ;Get Synonym
|
---|
41 | 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
|
---|
42 | .I $P(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),1,AFS,0),"^",3)="0" D
|
---|
43 | ..S AFSYN=$P($G(^PSDRUG($P($G(^PSRX(RX,0)),"^",6),1,AFS,0)),"^",1),DONE="Y"
|
---|
44 | K DONE
|
---|
45 | ;
|
---|
46 | FAX ;
|
---|
47 | K AFFAX
|
---|
48 | S FAXNUM=$G(PSOAFFXP) ;PSOAFFXP from PSOLBLN
|
---|
49 | S FAXLCNUM=$G(PSOAFFXL)_"@"_FAXNUM
|
---|
50 | S FAXSER=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",10)
|
---|
51 | I $G(FAXNUM)'=""&(FAXSER'="") D
|
---|
52 | . S AFFAX="Y"
|
---|
53 | I IO["AFFAX"!($G(AFFAX)="Y") D
|
---|
54 | .D NOW^%DTC
|
---|
55 | .S FAXDATE=$P(%,".",1)_"Z"_$P(%,".",2)
|
---|
56 | .S FAXJOB=RX_"Z"_DFN_"Z"_FAXDATE
|
---|
57 | .D OPEN^%ZISH("HFSFAX",FAXSER,FAXJOB_"+"_FAXLCNUM_".TXT","A")
|
---|
58 | .S AFFAX="Y"
|
---|
59 | .U IO
|
---|
60 | ;
|
---|
61 | ;Checks to see if 1st 3 lines should print
|
---|
62 | S PSOAFPFT=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",9)
|
---|
63 | ;
|
---|
64 | EN1 S OFF=$P(PS,"^",1)
|
---|
65 | W $S(PSOAFPFT="N":"",1:OFF)
|
---|
66 | ;
|
---|
67 | S OFFAD=$P(PS,"^",7)_","_STATE_" "_$G(PSOHZIP)
|
---|
68 | W !
|
---|
69 | W $S(PSOAFPFT="N":"",1:OFFAD)
|
---|
70 | ;
|
---|
71 | S OFFTEL=$P(PS,"^",3)_"-"_$P(PS,"^",4)
|
---|
72 | W !
|
---|
73 | W $S(PSOAFPFT="N":"",1:OFFTEL)
|
---|
74 | ;
|
---|
75 | S OFFFREE=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",4)
|
---|
76 | W !,OFFFREE
|
---|
77 | ;
|
---|
78 | W !,"---------------------------------------------------------------",!
|
---|
79 | ;
|
---|
80 | W !,"Rx for: "
|
---|
81 | ;
|
---|
82 | D 6^VADPT,PID^VADPT
|
---|
83 | S PSOAFPTI=$S(DUZ("AG")="V":$E($G(VA("PID")),5,12),1:$G(VA("PID")))
|
---|
84 | S AFPNAM=PNM_" "_$G(PSOAFPTI)
|
---|
85 | W AFPNAM
|
---|
86 | ;
|
---|
87 | S AFPADD1=$G(VAPA(1))
|
---|
88 | W !," ",AFPADD1
|
---|
89 | ;
|
---|
90 | S AFPADD2=$G(ADDR(2))
|
---|
91 | W !," ",AFPADD2
|
---|
92 | ;
|
---|
93 | S AFPADD3=$G(ADDR(3))
|
---|
94 | W !," ",AFPADD3
|
---|
95 | ;
|
---|
96 | S AFPADD4=$G(ADDR(4))
|
---|
97 | W !," ",AFPADD4
|
---|
98 | ;
|
---|
99 | W !,"---------------------------------------------------------------",!
|
---|
100 | S AFDRUG=DRUG
|
---|
101 | W !,AFDRUG
|
---|
102 | ;
|
---|
103 | S SYNFLAG=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",5)
|
---|
104 | I SYNFLAG="Y"&(AFSYN'="") D
|
---|
105 | .W !,"Also known as: "
|
---|
106 | .W AFSYN
|
---|
107 | ;
|
---|
108 | I $P($G(^PSRX(RX,"RXFIN")),"^",1)="Y" S VFASDD="Y"
|
---|
109 | I $G(VFASDD)="Y" D
|
---|
110 | .W !,"Pharmacy may choose strength(s) of drug to meet requirements of directions"
|
---|
111 | ;
|
---|
112 | ;
|
---|
113 | SIG S SN=19
|
---|
114 | W !
|
---|
115 | F L=1:1:SIGL S SN=SN+1 W !,AFSIG(SN)
|
---|
116 | W !
|
---|
117 | ;
|
---|
118 | W !," Dispense: "
|
---|
119 | S AFDISP=$G(QTY)_" "_$G(PSDU)
|
---|
120 | W AFDISP
|
---|
121 | ;
|
---|
122 | I $G(VFASDD)="Y" W " Pharmacy to adjust qty for # of days"
|
---|
123 | ;
|
---|
124 | W !,"Days Supply: "
|
---|
125 | S VFADAYS=$G(DAYS)
|
---|
126 | W VFADAYS
|
---|
127 | ;
|
---|
128 | W !," Refill(s): "
|
---|
129 | S AFRF=$P(RXY,"^",9)
|
---|
130 | W AFRF
|
---|
131 | ;
|
---|
132 | W !," Issue Date: "
|
---|
133 | W DATE
|
---|
134 | ;
|
---|
135 | ;Print Diagnosis
|
---|
136 | I $P($G(^PS(59,PSOSITE,"RXFIN")),"^",8)="Y" D
|
---|
137 | DIAG .W !," Diagnosis:"
|
---|
138 | .S AFICD9="None",AFICD="Not Available"
|
---|
139 | .I $D(^OR(100,AFORD,5.1,0)) D
|
---|
140 | ..S AFORL=0
|
---|
141 | ..F L=1:1 S AFORL=$O(^OR(100,AFORD,5.1,AFORL)) Q:AFORL="B"!(AFORL=0)!(AFORL="") D
|
---|
142 | ...S AFORIN=$P($G(^OR(100,AFORD,5.1,AFORL,0)),"^",1)
|
---|
143 | ...I AFORIN>"" D
|
---|
144 | ....S AFICD9=$P($G(^ICD9(AFORIN,0)),"^",1)
|
---|
145 | ....S AFICD=$P($G(^ICD9(AFORIN,0)),"^",3)
|
---|
146 | ....W ?13,AFICD9,?23,AFICD
|
---|
147 | .I AFICD9="None" W ?13,AFICD9,?23,AFICD
|
---|
148 | ;
|
---|
149 | ;Prints DOB
|
---|
150 | I $P($G(^PS(59,PSOSITE,"RXFIN")),"^",7)="Y" D
|
---|
151 | .S PSOAFDOB=$P($G(VADM(3)),"^",2)
|
---|
152 | .W !," DOB: "_PSOAFDOB,!
|
---|
153 | ;
|
---|
154 | ;Prints Provider Comments
|
---|
155 | ;W "MD Comments:"
|
---|
156 | K ^UTILITY($J,"W") S PSNACNT=1,DIWL=0,DIWR=48,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
|
---|
157 | ;D ^DIWW
|
---|
158 | I $D(^UTILITY($J,"W")) D
|
---|
159 | .W "MD Comments:"
|
---|
160 | .F ZZ=0:0 S ZZ=$O(^UTILITY($J,"W",DIWL,ZZ)) Q:'ZZ I $D(^(ZZ,0)) W ?13,^(0),!
|
---|
161 | K ^UTILITY($J,"W")
|
---|
162 | ;
|
---|
163 | SIGN ;Prints DEA if it exists-if no DEA# prints VA# if it exists
|
---|
164 | I $G(AFESFLAG)="Y" D
|
---|
165 | .I $G(AFESYN)="Y" D
|
---|
166 | ..S AFDEA=$$GET1^DIQ(200,AFESIGN,53.2,"I")
|
---|
167 | ..I AFDEA="" D
|
---|
168 | ...S AFDEA=$$GET1^DIQ(200,AFESIGN,53.3,"I")
|
---|
169 | ..S AFESIGNN=$$GET1^DIQ(200,AFESIGN,.01,"I")
|
---|
170 | ..S AFSIGN=$G(AFESIGNN)_" "_AFDEA
|
---|
171 | ;
|
---|
172 | SIGN1 I $G(AFESFLAG)'="Y" D
|
---|
173 | .W !!!,"Signature:_________________________________________________"
|
---|
174 | .;vfah prints DEA if it exists-if no DEA# prints VA# if it exists
|
---|
175 | .S AFDEA=$$GET1^DIQ(200,PSOAFPRV,53.2,"I")
|
---|
176 | .I AFDEA="" D
|
---|
177 | ..S AFDEA=$$GET1^DIQ(200,PSOAFPRV,53.3,"I")
|
---|
178 | .S AFSIGN=" "_$G(PHYS)_" "_AFDEA
|
---|
179 | ;
|
---|
180 | SIGNP I $G(AFESYN)="Y" S AFSIGN="Signed: /ES/"_AFSIGN
|
---|
181 | W !,AFSIGN
|
---|
182 | ;
|
---|
183 | K AFESYN,AFESIGN,AFESIGNN
|
---|
184 | ;
|
---|
185 | W !!,"Must write BRAND NECESSARY to dispense brand drug"
|
---|
186 | ;
|
---|
187 | S AFPTIM=$S($D(REPRINT):"Re-Printed on: ",1:"Printed on: ")
|
---|
188 | W !!,AFPTIM
|
---|
189 | ;
|
---|
190 | D NOW^%DTC S Y=% X ^DD("DD")
|
---|
191 | S AFPRNDT=Y_" ("_RX_")"
|
---|
192 | W AFPRNDT
|
---|
193 | ;
|
---|
194 | I IO["AFFAX"!($G(AFFAX)="Y") D
|
---|
195 | .S FAXFROM=$P($G(^PS(59,PSOSITE,"RXFIN")),"^",11)
|
---|
196 | .W !!,"Faxed from: ",FAXFROM," ON ",Y
|
---|
197 | ;
|
---|
198 | I $D(REPRINT)&($G(PSOCKHN)'=",") W @IOF
|
---|
199 | ;
|
---|
200 | K VFASDD
|
---|
201 | ;
|
---|
202 | I IO["AFFAX"!($G(AFFAX)="Y") D CLOSE^%ZISH("HFSFAX") ;HMS CLOSE HFS FILE
|
---|
203 | ;
|
---|
204 | I $G(REPRINT)'=1 D
|
---|
205 | .I IO["AFFAX"!($G(AFFAX)="Y") D
|
---|
206 | ..S PSOLAP=$G(^SC(+ORL,"AFRXCLINPRNT"))
|
---|
207 | ..S PSOLAP=$P(^%ZIS(1,PSOLAP,0),"^",1)
|
---|
208 | ..S IOP=PSOLAP D ^%ZIS
|
---|
209 | ..U IO
|
---|
210 | ;
|
---|
211 | ACT ;Set activity log if faxed
|
---|
212 | I IO["AFFAX"!($G(AFFAX)="Y") D
|
---|
213 | .S (X,PCOM,PCOMX)="Faxed to: "_PSOAFFXP_" on "_Y
|
---|
214 | .I '$D(PSOCLC) S PSOCLC=DUZ
|
---|
215 | ACT1 .S RXF=0 F J=0:0 S J=$O(^PSRX(RX,1,J)) Q:'J S RXF=J S:J>5 RXF=J+1
|
---|
216 | .S IR=0 F J=0:0 S J=$O(^PSRX(RX,"A",J)) Q:'J S IR=J
|
---|
217 | .S PSOAFPTZ=$S($D(REPRINT):"W",1:"AFFAX")
|
---|
218 | .S IR=IR+1,^PSRX(RX,"A",0)="^52.3DA^"_IR_"^"_IR
|
---|
219 | .D NOW^%DTC S ^PSRX(RX,"A",IR,0)=%_"^"_PSOAFPTZ_"^"_DUZ_"^"_RXF_"^"_PCOM K PC,IR,PS,PCOM,XX,%,%H,%I,RXF
|
---|
220 | ;
|
---|
221 | K PSOAFFXP,PSOAFFXL
|
---|
222 | ;
|
---|
223 | Q
|
---|