| 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 | 
|---|