| 1 | PSORENW1 ;BIR/DSD - Renew Main Driver Continuation ;03/29/93 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**20,37,51,46,71,117,157,143,219,239**;DEC 1997 | 
|---|
| 3 | ;External reference ^VA(200 supported by DBIA 10060 | 
|---|
| 4 | ; | 
|---|
| 5 | START ; | 
|---|
| 6 | S PSORENW("RX0")=^PSRX(PSORENW("OIRXN"),0),PSORENW("RX2")=^(2),PSORENW("RX3")=^(3),PSORENW("STA")=^("STA"),PSORENW("TN")=$G(^("TN")),SIGOK=+$P($G(^("SIG")),"^",2) | 
|---|
| 7 | S PSOIBOLD=$G(PSORENW("OIRXN")) | 
|---|
| 8 | D SETIB | 
|---|
| 9 | S PSORENW("PROVIDER")=$P(PSORENW("RX0"),"^",4) | 
|---|
| 10 | S PSORX("PROVIDER NAME")=$P($G(^VA(200,PSORENW("PROVIDER"),0)),"^") | 
|---|
| 11 | S PSORENW("CLINIC")=$P(PSORENW("RX0"),"^",5),PSORENW("COPIES")=$P(PSORENW("RX0"),"^",18) | 
|---|
| 12 | I $G(PSOFDR),$P($G(OR0),"^",13) S PSORENW("CLINIC")=$P($G(OR0),"^",13) | 
|---|
| 13 | S PSORENW("REMARKS")="RENEWED FROM RX # "_$P(PSORENW("RX0"),"^") | 
|---|
| 14 | S PSORENW("SIG")=$P($G(^PSRX(PSORENW("OIRXN"),"SIG")),"^") | 
|---|
| 15 | S:$P(PSORENW("RX3"),"^",3) PSORENW("COSIGNING PROVIDER")=$P(PSORENW("RX3"),"^",3) | 
|---|
| 16 | S (PSODFN,PSORENW("PSODFN"))=$P(PSORENW("RX0"),"^",2) | 
|---|
| 17 | S PSORENW("ORX #")=$P(PSORENW("RX0"),"^") | 
|---|
| 18 | S PSORENW("DRUG IEN")=$P(PSORENW("RX0"),"^",6) | 
|---|
| 19 | S PSORENW("INS")=$S($G(PSORENW("INS"))]"":PSORENW("INS"),1:$G(^PSRX(PSORENW("OIRXN"),"INS"))) | 
|---|
| 20 | S D=0 F  S D=$O(^PSRX(PSORENW("OIRXN"),"INS1",D)) Q:'D  S PSORENW("SIG",D)=^PSRX(PSORENW("OIRXN"),"INS1",D,0) | 
|---|
| 21 | I '$O(PSORENW("SIG",0)),$G(PSORENW("INS"))]"" S PSORENW("SIG",1)=PSORENW("INS") | 
|---|
| 22 | G:$G(PSORENW("ENT")) FDR | 
|---|
| 23 | I $G(PSORENW("ENT"))'>0,'$O(^PSRX(PSORENW("OIRXN"),6,0)) S PSORENW("ENT")=0 G FDR | 
|---|
| 24 | F I=0:0 S I=$O(^PSRX(PSORENW("OIRXN"),6,I)) Q:'I  S DOSE=^PSRX(PSORENW("OIRXN"),6,I,0) D | 
|---|
| 25 | .S PSORENW("ENT")=$G(PSORENW("ENT"))+1,PSORENW("DOSE",PSORENW("ENT"))=$P(DOSE,"^") | 
|---|
| 26 | .S PSORENW("UNITS",PSORENW("ENT"))=$P(DOSE,"^",3),PSORENW("DOSE ORDERED",PSORENW("ENT"))=$P(DOSE,"^",2),PSORENW("ROUTE",PSORENW("ENT"))=$P(DOSE,"^",7) | 
|---|
| 27 | .S PSORENW("SCHEDULE",PSORENW("ENT"))=$P(DOSE,"^",8),PSORENW("DURATION",PSORENW("ENT"))=$P(DOSE,"^",5),PSORENW("CONJUNCTION",PSORENW("ENT"))=$P(DOSE,"^",6) | 
|---|
| 28 | .S PSORENW("NOUN",PSORENW("ENT"))=$P(DOSE,"^",4),PSORENW("VERB",PSORENW("ENT"))=$P(DOSE,"^",9) | 
|---|
| 29 | .I $G(^PSRX(PSORENW("OIRXN"),6,I,1))]"" S PSORENW("ODOSE",PSORENW("ENT"))=^PSRX(PSORENW("OIRXN"),6,I,1) | 
|---|
| 30 | .K DOSE | 
|---|
| 31 | FDR I $G(PSOFDR) D | 
|---|
| 32 | .F I=0:0 S I=$O(^PSRX(PSORENW("OIRXN"),6,I)) Q:'I  I $G(^PSRX(PSORENW("OIRXN"),6,I,1))]"" S PSORENW("ODOSE",I)=^PSRX(PSORENW("OIRXN"),6,I,1) | 
|---|
| 33 | .S $P(PSORENW("RX0"),"^",7)=$P(OR0,"^",10),$P(PSORENW("RX0"),"^",11)=$P(OR0,"^",17) | 
|---|
| 34 | .S (PSORX("PROVIDER NAME"),PSORENW("PROVIDER NAME"))=$P(^VA(200,$P(OR0,"^",5),0),"^"),PSORENW("PROVIDER")=$P(OR0,"^",5) | 
|---|
| 35 | .K PSORENW("COSIGNING PROVIDER") | 
|---|
| 36 | .I $G(PSORENW("PROVIDER")),$P($G(^VA(200,PSORENW("PROVIDER"),"PS")),"^",7),$P($G(^("PS")),"^",8) S PSORENW("COSIGNING PROVIDER")=$P($G(^("PS")),"^",8) | 
|---|
| 37 | .S (PSDY,PSORENW("DAYS SUPPLY"))=$P(PSORENW("RX0"),"^",8) | 
|---|
| 38 | .S POERR=1,DREN=$P(PSORENW("RX0"),"^",6) D DRG^PSOORDRG K POERR S PSODIR("CS")=0 | 
|---|
| 39 | .F DEA=1:1 Q:$E(PSODRUG("DEA"),DEA)=""  I $E(+PSODRUG("DEA"),DEA)>1,$E(+PSODRUG("DEA"),DEA)<6 S PSODIR("CS")=1 | 
|---|
| 40 | .I PSODIR("CS") S RFMX=$S(PSDY<60:5,PSDY'<60&(PSDY'>89):2,PSDY=90:1,1:0) | 
|---|
| 41 | .E  S RFMX=$S(PSDY<60:11,PSDY'<60&(PSDY'>89):5,PSDY=90:3,1:0) | 
|---|
| 42 | .S $P(PSORENW("RX0"),"^",9)=$S($P(OR0,"^",11)'>RFMX:$P(OR0,"^",11),1:RFMX),$P(OR0,"^",11)=$P(PSORENW("RX0"),"^",9) | 
|---|
| 43 | .K RFMX,PSODIR("CS"),PSDY | 
|---|
| 44 | END Q | 
|---|
| 45 | STOP K PSEXDT,X,%DT S PSON52("QFLG")=0,DAYS=$S($G(PSORENW("DAYS SUPPLY")):PSORENW("DAYS SUPPLY"),1:$P(PSORENW("RX0"),"^",8)) | 
|---|
| 46 | S DEA("CS")=0 K DIR,DIC | 
|---|
| 47 | F DEA=1:1 Q:$E(PSODRUG("DEA"),DEA)=""  I $E(+PSODRUG("DEA"),DEA)>1,$E(+PSODRUG("DEA"),DEA)<6 S DEA("CS")=1 | 
|---|
| 48 | S X1=$S($G(PSORENW("ISSUE DATE")):$G(PSORENW("ISSUE DATE")),1:DT),X2=DAYS*($P(PSORENW("RX0"),"^",9)+1)\1 | 
|---|
| 49 | S X2=$S(DAYS=X2&('DEA("CS")):X2,DEA("CS"):184,1:366) D C^%DTC | 
|---|
| 50 | I PSORENW("FILL DATE")>$P(X,".") S PSEXDT=1_"^"_$P(X,".") | 
|---|
| 51 | K X1,X2,X,%DT | 
|---|
| 52 | Q | 
|---|
| 53 | OERR ;renewal finish from oe/rr | 
|---|
| 54 | S PSORENW("RX0")=^PSRX(PSORENW("OIRXN"),0),PSORENW("RX2")=^(2),PSORENW("RX3")=^(3),PSORENW("STA")=^("STA"),PSORENW("TN")=$G(^("TN")) | 
|---|
| 55 | S $P(PSORENW("RX0"),"^",4)=$P(OR0,"^",5) | 
|---|
| 56 | S PSORENW("PROVIDER")=$P(OR0,"^",5) | 
|---|
| 57 | S PSORX("PROVIDER NAME")=$P($G(^VA(200,PSORENW("PROVIDER"),0)),"^") | 
|---|
| 58 | S $P(PSORENW("RX0"),"^",5)=$P(OR0,"^",13) | 
|---|
| 59 | S PSORENW("CLINIC")=$P(OR0,"^",13) | 
|---|
| 60 | S PSORENW("REMARKS")="RENEWED FROM RX # "_$P(PSORENW("RX0"),"^")_"."_$S($P(OR0,"^",17)="C":" Administered in Clinic.",1:"") | 
|---|
| 61 | S PSORENW("SIG")=$P($G(^PSRX(PSORENW("OIRXN"),"SIG")),"^"),SIGOK=$P(^("SIG"),"^",2) I SIGOK D | 
|---|
| 62 | .F I=0:0 S I=$O(^PSRX(PSORENW("OIRXN"),"SIG1",I)) Q:'I  S SIG(I)=^PSRX(PSORENW("OIRXN"),"SIG1",I,0) | 
|---|
| 63 | S:$P(PSORENW("RX3"),"^",3) PSORENW("COSIGNING PROVIDER")=$P(PSORENW("RX3"),"^",3) | 
|---|
| 64 | S PSORENW("PSODFN")=$P(PSORENW("RX0"),"^",2) | 
|---|
| 65 | S PSORENW("ORX #")=$P(PSORENW("RX0"),"^") | 
|---|
| 66 | S PSORENW("DRUG IEN")=$P(PSORENW("RX0"),"^",6),$P(PSORENW("RX0"),"^",11)=$P(OR0,"^",17) | 
|---|
| 67 | S PSORENW("INS")=$S($G(PSORENW("INS"))]"":PSORENW("INS"),1:$G(^PSRX(PSORENW("OIRXN"),"INS"))) | 
|---|
| 68 | Q:$G(PSORENW("ENT"))>0 | 
|---|
| 69 | F I=0:0 S I=$O(^PSRX(PSORENW("OIRXN"),6,I)) Q:'I  S DOSE=^PSRX(PSORENW("OIRXN"),6,I,0) D | 
|---|
| 70 | .S PSORENW("ENT")=PSORENW("ENT")+1,PSORENW("DOSE",PSORENW("ENT"))=$P(DOSE,"^") | 
|---|
| 71 | .S PSORENW("UNITS",PSORENW("ENT"))=$P(DOSE,"^",3),PSORENW("DOSE ORDERED",PSORENW("ENT"))=$P(DOSE,"^",2),PSORENW("ROUTE",PSORENW("ENT"))=$P(DOSE,"^",7) | 
|---|
| 72 | .S PSORENW("SCHEDULE",PSORENW("ENT"))=$P(DOSE,"^",8),PSORENW("DURATION",PSORENW("ENT"))=$P(DOSE,"^",5),PSORENW("CONJUNCTION",PSORENW("ENT"))=$P(DOSE,"^",6) | 
|---|
| 73 | .S PSORENW("NOUN",PSORENW("ENT"))=$P(DOSE,"^",4),PSORENW("VERB",PSORENW("ENT"))=$P(DOSE,"^",9) | 
|---|
| 74 | .I $G(^PSRX(PSORENW("OIRXN"),6,I,1))]"" S PSORENW("ODOSE",PSORENW("ENT"))=^PSRX(PSORENW("OIRXN"),6,I,1) | 
|---|
| 75 | .K DOSE | 
|---|
| 76 | Q | 
|---|
| 77 | SETIB ;Set defaults on Renewals with Copay information | 
|---|
| 78 | ;If answer is in Pending File, use that, else look in Prescription file | 
|---|
| 79 | N PSOOICD,JJJ | 
|---|
| 80 | K PSOSCP,PSOANSQ("SC>50") D SCP^PSORN52D S PSOANSQ("SC>50")="" K PSOSCA | 
|---|
| 81 | I '$G(PSOIBOLD) Q | 
|---|
| 82 | I $G(PSOFDR),$G(ORD) D SETIBP Q | 
|---|
| 83 | ;I '$$DT^PSOMLLDT Q | 
|---|
| 84 | I $G(PSORX(PSOIBOLD,"SC"))'=0,$G(PSORX(PSOIBOLD,"SC"))'=1 S PSORX(PSOIBOLD,"SC")=$S($P($G(^PSRX(PSOIBOLD,"IBQ")),"^")'="":$P($G(^("IBQ")),"^"),$P($G(^PSRX(PSOIBOLD,"IB")),"^"):0,1:"") | 
|---|
| 85 | I $G(PSORX(PSOIBOLD,"SC"))="" K PSORX(PSOIBOLD,"SC") | 
|---|
| 86 | I '$$DT^PSOMLLDT Q | 
|---|
| 87 | I $G(PSORX(PSOIBOLD,"MST"))'=0,$G(PSORX(PSOIBOLD,"MST"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",2)'="" S PSORX(PSOIBOLD,"MST")=$P($G(^("IBQ")),"^",2) | 
|---|
| 88 | I $G(PSORX(PSOIBOLD,"VEH"))'=0,$G(PSORX(PSOIBOLD,"VEH"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",3)'="" S PSORX(PSOIBOLD,"VEH")=$P($G(^("IBQ")),"^",3) | 
|---|
| 89 | I $G(PSORX(PSOIBOLD,"RAD"))'=0,$G(PSORX(PSOIBOLD,"RAD"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",4)'="" S PSORX(PSOIBOLD,"RAD")=$P($G(^("IBQ")),"^",4) | 
|---|
| 90 | I $G(PSORX(PSOIBOLD,"PGW"))'=0,$G(PSORX(PSOIBOLD,"PGW"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",5)'="" S PSORX(PSOIBOLD,"PGW")=$P($G(^("IBQ")),"^",5) | 
|---|
| 91 | I $G(PSORX(PSOIBOLD,"HNC"))'=0,$G(PSORX(PSOIBOLD,"HNC"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",6)'="" S PSORX(PSOIBOLD,"HNC")=$P($G(^("IBQ")),"^",6) | 
|---|
| 92 | I $G(PSORX(PSOIBOLD,"CV"))'=0,$G(PSORX(PSOIBOLD,"CV"))'=1,$P($G(^PSRX(PSOIBOLD,"IBQ")),"^",7)'="" S PSORX(PSOIBOLD,"CV")=$P($G(^("IBQ")),"^",7) | 
|---|
| 93 | ; | 
|---|
| 94 | SET2 ;for when patient status is exempt or SC>50 | 
|---|
| 95 | I $TR($G(^PSRX(PSOIBOLD,"IBQ")),"^")="" S PSOOICD=$G(^PSRX(PSOIBOLD,"ICD",1,0)) D SET3:PSOOICD'="" | 
|---|
| 96 | ; | 
|---|
| 97 | ICD I $D(^PSRX(PSORENW("OIRXN"),"ICD",0)) D | 
|---|
| 98 | . N JJ,ICD,II,FLD,RXN S RXN=PSOIBOLD | 
|---|
| 99 | . S II=0 F  S II=$O(^PSRX(PSORENW("OIRXN"),"ICD",II)) Q:II=""!(II'?1N.N)  D | 
|---|
| 100 | .. S ICD=^PSRX(PSORENW("OIRXN"),"ICD",II,0),FLD=$P(ICD,U) D ICD^PSONEWF | 
|---|
| 101 | Q | 
|---|
| 102 | SET3 ;for when patient status is exempt or SC>50 | 
|---|
| 103 | N PSOPATST S PSOPATST=PSORX("PATIENT STATUS") | 
|---|
| 104 | I PSORX("PATIENT STATUS")'?1N.N S PSOPATST="",PSOPATST=$O(^PS(53,"B",PSORX("PATIENT STATUS"),PSOPATST)) | 
|---|
| 105 | F JJJ=2:1:8 I $P(PSOOICD,"^",JJJ)=0!($P(PSOOICD,"^",JJJ)=1) D | 
|---|
| 106 | . I JJJ=2 S PSORX(PSOIBOLD,"VEH")=$P(PSOOICD,"^",JJJ) | 
|---|
| 107 | . I JJJ=3 S PSORX(PSOIBOLD,"RAD")=$P(PSOOICD,"^",JJJ) | 
|---|
| 108 | . I JJJ=4 D | 
|---|
| 109 | .. S:PSOSCP<50 PSORX(PSOIBOLD,"SC")=$P(PSOOICD,"^",JJJ) | 
|---|
| 110 | .. S:PSOSCP>49!($P($G(^PS(53,+$G(PSOPATST),0)),"^",7)=1) PSORX(PSOIBOLD,"SC>50")=$P(PSOOICD,"^",JJJ) | 
|---|
| 111 | . I JJJ=5 S PSORX(PSOIBOLD,"PGW")=$P(PSOOICD,"^",JJJ) | 
|---|
| 112 | . I JJJ=6 S PSORX(PSOIBOLD,"MST")=$P(PSOOICD,"^",JJJ) | 
|---|
| 113 | . I JJJ=7 S PSORX(PSOIBOLD,"HNC")=$P(PSOOICD,"^",JJJ) | 
|---|
| 114 | . I JJJ=8 S PSORX(PSOIBOLD,"CV")=$P(PSOOICD,"^",JJJ) | 
|---|
| 115 | K JJJ,PSOOICD | 
|---|
| 116 | Q | 
|---|
| 117 | SETIBP ; | 
|---|
| 118 | I $P($G(^PS(52.41,ORD,0)),"^",16)="SC"!($P($G(^(0)),"^",16)="NSC") S PSORX(PSOIBOLD,"SC")=$S($P($G(^(0)),"^",16)="SC":1,1:0) | 
|---|
| 119 | I $G(PSORX(PSOIBOLD,"SC"))="" K PSORX(PSOIBOLD,"SC") | 
|---|
| 120 | I '$$DT^PSOMLLDT Q | 
|---|
| 121 | N PSOIBQFN S PSOIBQFN=$G(^PS(52.41,ORD,"IBQ")) | 
|---|
| 122 | I $P(PSOIBQFN,"^",1)=0!($P(PSOIBQFN,"^",1)=1) S PSORX(PSOIBOLD,"MST")=$P(PSOIBQFN,"^") | 
|---|
| 123 | I $P(PSOIBQFN,"^",2)=0!($P(PSOIBQFN,"^",2)=1) S PSORX(PSOIBOLD,"VEH")=$P(PSOIBQFN,"^",2) | 
|---|
| 124 | I $P(PSOIBQFN,"^",3)=0!($P(PSOIBQFN,"^",3)=1) S PSORX(PSOIBOLD,"RAD")=$P(PSOIBQFN,"^",3) | 
|---|
| 125 | I $P(PSOIBQFN,"^",4)=0!($P(PSOIBQFN,"^",4)=1) S PSORX(PSOIBOLD,"PGW")=$P(PSOIBQFN,"^",4) | 
|---|
| 126 | I $P(PSOIBQFN,"^",5)=0!($P(PSOIBQFN,"^",5)=1) S PSORX(PSOIBOLD,"HNC")=$P(PSOIBQFN,"^",5) | 
|---|
| 127 | I $P(PSOIBQFN,"^",6)=0!($P(PSOIBQFN,"^",6)=1) S PSORX(PSOIBOLD,"CV")=$P(PSOIBQFN,"^",6) | 
|---|
| 128 | ;for when patient status is exempt, null IBQ node was set for exempts or SC>50 - data is in ICD node | 
|---|
| 129 | I $TR($G(^PS(52.41,ORD,"IBQ")),"^")="" S PSOOICD=$G(^PS(52.41,ORD,"ICD",1,0)) D SET3:PSOOICD'="" | 
|---|
| 130 | ; | 
|---|
| 131 | ICD2 ; | 
|---|
| 132 | I $D(^PS(52.41,ORD,"ICD",0)) D | 
|---|
| 133 | . N JJ,ICD,II,FLD,RXN S RXN=ORD | 
|---|
| 134 | . S II=0 F  S II=$O(^PS(52.41,ORD,"ICD",II)) Q:II=""!(II'?1N.N)  D | 
|---|
| 135 | .. S ICD="",ICD=^PS(52.41,ORD,"ICD",II,0) | 
|---|
| 136 | .. I $G(PSOSCP)>49&(II=1) S PSORX(PSOIBOLD,"SC>50")=$P(ICD,"^",4) | 
|---|
| 137 | .. S JJ="" F JJ=1:1:8 S FLD=$P(ICD,U,JJ) D ICD^PSONEWF | 
|---|
| 138 | ; | 
|---|
| 139 | K PSOIBQFN | 
|---|
| 140 | Q | 
|---|
| 141 | KLIB ;Kill renewal IB array | 
|---|
| 142 | I '$G(PSOIBOLD) Q | 
|---|
| 143 | K PSORX(PSOIBOLD,"SC"),PSORX(PSOIBOLD,"MST"),PSORX(PSOIBOLD,"VEH"),PSORX(PSOIBOLD,"RAD"),PSORX(PSOIBOLD,"PGW"),PSORX(PSOIBOLD,"HNC"),PSORX(PSOIBOLD,"CV") | 
|---|
| 144 | K PSOIBOLD | 
|---|
| 145 | Q | 
|---|