| 1 | PSOCPE ;BIR/BAB - PHARMACY COPAY APPLICATION UTILITIES FOR IB ;10/26/92
 | 
|---|
| 2 |  ;;7.0;OUTPATPSOCT PHARMACY;**26,71,85,114,157,219,268**;DEC 1997;Build 9
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;REF/IA
 | 
|---|
| 5 |  ;^XUSEC/10076
 | 
|---|
| 6 |  ;^PSDRUG(/221
 | 
|---|
| 7 |  ;Routine initially released as part of the copayment enhancement.
 | 
|---|
| 8 |  ;called from PSOLBL
 | 
|---|
| 9 | INV ;         Entry point from PSOCP - Prints one copay invoice
 | 
|---|
| 10 |  I '$D(PSOCPN)!($G(RXP)) Q
 | 
|---|
| 11 |  S PSOCPBAR=0
 | 
|---|
| 12 |  I $D(PSOBARS),PSOBARS S PSOCPBAR=1
 | 
|---|
| 13 |  D DEM^VADPT S Y=DT X ^DD("DD") S EDT=Y
 | 
|---|
| 14 |  W ?54,"PRESCRIPTION COPAYMENT INFORMATION"
 | 
|---|
| 15 |  W !!,?54,VADM(1)," ",VA("PID")," ",EDT
 | 
|---|
| 16 |  S PSZ1=0,PSZ2="",PSOCPBN=$P(VADM(2),"^"),PSOCPBN=$S(PSOCPBN]"":PSOCPBN,1:"Unavailable")
 | 
|---|
| 17 |  ;I '$G(PSOCPN) S PSOCPN=$P(^PSRX(RX,0),U,2)
 | 
|---|
| 18 |  I PSOCPBAR,(PSOCPBN]"") S X="S",X2=PSOCPBN W !,?54,@PSOBAR1,PSOCPBN,@PSOBAR0
 | 
|---|
| 19 |  E  W !
 | 
|---|
| 20 |  W !,?54,"The following prescriptions are"
 | 
|---|
| 21 |  W !,?54,"eligible for prescription copayment.",!!
 | 
|---|
| 22 | DRUG S PSZ2="" F  S PSZ2=$O(^TMP($J,"PSOCP",PSOCPN,PSZ2)) Q:PSZ2']""  S PSZ=^(PSZ2) D PRT
 | 
|---|
| 23 | NAR ; Print narrative from site parameter file
 | 
|---|
| 24 |  K ^UTILITY($J,"W") S DIWL=55,DIWR=99,DIWF="" W !
 | 
|---|
| 25 |  G:'$D(^PS(59,PSOSITE,4,0)) END
 | 
|---|
| 26 |  G:$P(^PS(59,PSOSITE,4,0),"^",3)'>0 END
 | 
|---|
| 27 |  F PSO9=0:0 S PSO9=$O(^PS(59,PSOSITE,4,PSO9)) G:'PSO9 P1 I $D(^PS(59,PSOSITE,4,PSO9,0)) S X=^(0) D ^DIWP
 | 
|---|
| 28 | P1 D ^DIWW
 | 
|---|
| 29 |  K DIWF,DIWL,DIWR,PSO9
 | 
|---|
| 30 | END ;
 | 
|---|
| 31 |  W @IOF
 | 
|---|
| 32 |  K ^TMP($J,"PSOCP",PSOCPN),PSOCPBAR,PSOCPBN,PSZ1,PSZ2,PSOCPN,DIWF,DIWL,DIWR,PSO9
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 | PRT ;
 | 
|---|
| 35 |  W ?54,PSZ2
 | 
|---|
| 36 |  W ?72," ",$P(^TMP($J,"PSOCP",PSOCPN,PSZ2),"^",3)," ","Days Supply",!
 | 
|---|
| 37 |  W ?56,$E($P(^TMP($J,"PSOCP",PSOCPN,PSZ2),U,2),1,45),!
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 | XMPT ;   Entry point for menu option to select copay exemption
 | 
|---|
| 40 |  N PSORXPNM,PSORXPRE,PSOCPEDA
 | 
|---|
| 41 |  I '$D(PSOPAR) D ^PSOLSET G XMPT
 | 
|---|
| 42 |  W ! S (DIC,DIE)="^PS(53,",DIC(0)="AEQMZ" D ^DIC K DIC G:Y<0 QUIT
 | 
|---|
| 43 |  G:$D(DTOUT) QUIT
 | 
|---|
| 44 |  S PSORXPRE=$P($G(^PS(53,+$G(Y),0)),"^",7)
 | 
|---|
| 45 |  S PSORXPNM=$P($G(^PS(53,+$G(Y),0)),"^")
 | 
|---|
| 46 |  S DA=+Y,DR="15" L +^PS(53,DA):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) I '$T W !!,PSORXPNM_" is locked by another user. Try Later!" W ! D PAGE G QUIT
 | 
|---|
| 47 |  W ! D ^DIE
 | 
|---|
| 48 |  I PSORXPRE,$P($G(^PS(53,DA,0)),"^",7) W !!,"All Rx's entered with this Rx Patient Status will be EXEMPT from Copayment.",! D PAGE L -^PS(53,DA) G QUIT
 | 
|---|
| 49 |  I 'PSORXPRE,'$P($G(^PS(53,DA,0)),"^",7) W !!,"All Rx's entered with this Rx Patient Status will NOT be exempt from Copayment.",! D PAGE L -^PS(53,DA) G QUIT
 | 
|---|
| 50 |  D WARN L -^PS(53,DA)
 | 
|---|
| 51 | QUIT K PSORXPRE,DIE,DIC,DA,DR,X,C,Y
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | PAGE ;
 | 
|---|
| 54 |  I '$G(DUZ("AUTO")) K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | WARN ;
 | 
|---|
| 57 |  S PSOCPEDA=$G(DA)
 | 
|---|
| 58 |  W !!?28,"**** WARNING ****",!
 | 
|---|
| 59 |  I 'PSORXPRE W !,"By setting the Exempt from Copayment for the Rx Patient Status of",!,PSORXPNM," to 'YES', every prescription entered",!,"with this Rx Patient Status will NOT be charged a Copayment.",!
 | 
|---|
| 60 |  I PSORXPRE W !,"By setting the EXEMPT FROM COPAYMENT for the Rx Patient Status of ",!,PSORXPNM," to 'NO', prescriptions entered with this Rx",!,"Patient Status from this point on will NOT be exempt from Copayment.",!
 | 
|---|
| 61 |  W !,"A mail message will be sent to PSORPH and PSO COPAY Key holders informing",!,"them of your change."
 | 
|---|
| 62 |  W ! K DIR S DIR(0)="Y",DIR("A")="Are you sure you want to do this",DIR("B")="Y" D ^DIR K DIR
 | 
|---|
| 63 |  I $G(Y) D  D MAIL G WARNX
 | 
|---|
| 64 |  .I 'PSORXPRE W !!,"Setting ",PSORXPNM," Rx Patient Status to Exempt from Copayment." Q
 | 
|---|
| 65 |  .W !!,"Setting Exempt from Copayment to 'NO' for the ",PSORXPNM,!,"Rx Patient Status."
 | 
|---|
| 66 |  I 'PSORXPRE W !!,"No action taken." S $P(^PS(53,PSOCPEDA,0),"^",7)=0 H 1
 | 
|---|
| 67 |  I PSORXPRE W !!,"No action taken." S $P(^PS(53,PSOCPEDA,0),"^",7)=1 H 1
 | 
|---|
| 68 | WARNX W ! D PAGE
 | 
|---|
| 69 |  S DA=$G(PSOCPEDA) K PSOCPEDA
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | MAIL ;
 | 
|---|
| 72 |  K PSOTXT,PSOCFN,PSODCPA
 | 
|---|
| 73 |  I $G(DUZ) S DIC=200,DR=".01",DA=DUZ,DIQ(0)="E",DIQ="PSODCPA(" D EN^DIQ1 S PSOCFN=$G(PSODCPA(200,DA,.01,"E")) K PSODCPA,DIC,DIQ,DR
 | 
|---|
| 74 |  I 'PSORXPRE S PSOTXT(1,0)="The "_PSORXPNM_" Rx Patient Status has been marked as",PSOTXT(2,0)="Exempt from Copayment by "_$G(PSOCFN)_".",PSOTXT(3,0)="Every prescription with this Rx Patient Status will not be charged a Copayment."
 | 
|---|
| 75 |  I PSORXPRE S PSOTXT(1,0)="The Exempt from Copayment status has been removed from the",PSOTXT(2,0)=PSORXPNM_" Rx Patient Status by "_$G(PSOCFN)_".",PSOTXT(3,0)="Prescriptions entered with this Rx Patient Status will not be exempt from"
 | 
|---|
| 76 |  I PSORXPRE S PSOTXT(4,0)="Copayment."
 | 
|---|
| 77 |  F PSOCXPDA=0:0 S PSOCXPDA=$O(^XUSEC("PSORPH",PSOCXPDA)) Q:'PSOCXPDA  S XMY(PSOCXPDA)=""
 | 
|---|
| 78 |  F PSOCXPDA=0:0 S PSOCXPDA=$O(^XUSEC("PSO COPAY",PSOCXPDA)) Q:'PSOCXPDA  S XMY(PSOCXPDA)=""
 | 
|---|
| 79 |  I $G(DUZ) S XMY(DUZ)=""
 | 
|---|
| 80 |  S XMSUB="Exempt from Copayment",XMTEXT="PSOTXT(",XMDUZ="Outpatient Pharmacy" D ^XMD
 | 
|---|
| 81 |  K PSOTXT,PSOCXPDA,XMDUZ,PSOCFN,XMTEXT,XMSUB,XMY
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 | MAIL2 ; SEND MAIL TO PHARMACIST, PROVIDER, AND HOLDERS OF PSO COPAY KEY
 | 
|---|
| 85 |  N PSOC,PSOTXT,X
 | 
|---|
| 86 |  K XMY
 | 
|---|
| 87 |  S XMSUB="PRESCRIPTION QUESTIONS REVIEW NEEDED"
 | 
|---|
| 88 |  S XMDUZ="Outpatient Pharmacy Package"
 | 
|---|
| 89 |  S PSOTXT(1)=" "
 | 
|---|
| 90 |  S DFN=+$P($G(^PSRX(RXP,0)),"^",2) D PID^VADPT
 | 
|---|
| 91 |  S PSODIV=$P($G(^PSRX(RXP,2)),"^",9) S:PSODIV'="" XMSUB=XMSUB_" ("_$P($G(^PS(59,PSODIV,0)),"^",6)_")",PSODIV=$P($G(^PS(59,PSODIV,0)),"^",1) ; ADDED DIVISION NUMBER TO SUBJECT LINE - PATCH 85
 | 
|---|
| 92 |  S PSOTXT(2)=$P($G(^DPT($P(^PSRX(RXP,0),"^",2),0)),"^",1)_"  ("_$G(VA("BID"))_")"_"    "_PSODIV
 | 
|---|
| 93 |  D ELIG
 | 
|---|
| 94 |  S PSOTXT(PSOC)="Rx# "_$P(^PSRX(RXP,0),"^",1)_" ("_PSOREF_")    "_$S('$G(^PSRX(RXP,"IB")):"NO COPAY",1:"COPAY")
 | 
|---|
| 95 |  S PSOC=PSOC+1
 | 
|---|
| 96 |  S DRG=+$P(^PSRX(RXP,0),"^",6)
 | 
|---|
| 97 |  S PSOC=PSOC+1
 | 
|---|
| 98 |  S PSOTXT(PSOC)=$P($G(^PSDRUG(DRG,0)),"^",1)
 | 
|---|
| 99 |  S PSOC=PSOC+1
 | 
|---|
| 100 |  S PSOTXT(PSOC)=" "
 | 
|---|
| 101 |  S PSOC=PSOC+1
 | 
|---|
| 102 |  S PSOTXT(PSOC)="Due to a change in criteria, additional information listed below is needed"
 | 
|---|
| 103 |  S PSOC=PSOC+1
 | 
|---|
| 104 |  S PSOTXT(PSOC)="to determine the final VA copay and/or insurance billable status for this Rx"
 | 
|---|
| 105 |  S PSOC=PSOC+1
 | 
|---|
| 106 |  S PSOTXT(PSOC)="so that appropriate action can be taken by pharmacy personnel."
 | 
|---|
| 107 |  S PSOC=PSOC+1
 | 
|---|
| 108 |  S PSOTXT(PSOC)=" "
 | 
|---|
| 109 |  S PSOC=PSOC+1
 | 
|---|
| 110 |  F EXMT="SC","CV","AO","IR","EC","MST","HNC" I $D(PSOTG(EXMT)) D
 | 
|---|
| 111 |  . I PSOTG(EXMT)'="" Q
 | 
|---|
| 112 |  . S PSOLTAG="REL"_EXMT
 | 
|---|
| 113 |  . S PSOQUES=$P($T(@PSOLTAG),";",2) I PSOQUES="" Q
 | 
|---|
| 114 |  . S PSOC=PSOC+1,PSOTXT(PSOC)=PSOQUES
 | 
|---|
| 115 |  . S PSOQUES=$P($T(@PSOLTAG),";",2) I PSOQUES="" Q
 | 
|---|
| 116 |  S PSOC=PSOC+1,PSOTXT(PSOC)=" "
 | 
|---|
| 117 |  S PSOC=PSOC+1,PSOTXT(PSOC)="This message has been sent to the provider of record, the pharmacist who"
 | 
|---|
| 118 |  S PSOC=PSOC+1,PSOTXT(PSOC)="finished the prescription order, and all holders of the PSO COPAY key."
 | 
|---|
| 119 |  S PSOC=PSOC+1,PSOTXT(PSOC)=" "
 | 
|---|
| 120 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Providers:"
 | 
|---|
| 121 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Please respond with your answer to the question(s) as a reply to this"
 | 
|---|
| 122 |  S PSOC=PSOC+1,PSOTXT(PSOC)="message. The prescription will be updated by the appropriate staff."
 | 
|---|
| 123 |  S PSOC=PSOC+1,PSOTXT(PSOC)=" "
 | 
|---|
| 124 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Staff assigned to update the Prescription responses:"
 | 
|---|
| 125 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Please use the RESET COPAY STATUS/CANCEL CHARGES option to enter the responses"
 | 
|---|
| 126 |  S PSOC=PSOC+1,PSOTXT(PSOC)="to the questions above, which may result in a Rx copay status change and/or"
 | 
|---|
| 127 |  S PSOC=PSOC+1,PSOTXT(PSOC)="the need to remove VA copay charges or may result in a charge to the patient's"
 | 
|---|
| 128 |  S PSOC=PSOC+1,PSOTXT(PSOC)="insurance carrier."
 | 
|---|
| 129 |  S PSOC=PSOC+1,PSOTXT(PSOC)=" "
 | 
|---|
| 130 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Note: The SC question is now asked for Veterans who are SC>49% in order to"
 | 
|---|
| 131 |  S PSOC=PSOC+1,PSOTXT(PSOC)="determine if the Rx can be billed to a third party insurance. These Veterans"
 | 
|---|
| 132 |  S PSOC=PSOC+1,PSOTXT(PSOC)="will NOT be charged a VA copay."
 | 
|---|
| 133 |  S PSOC=PSOC+1,PSOTXT(PSOC)=" "
 | 
|---|
| 134 |  S PSOC=PSOC+1,PSOTXT(PSOC)="Supply and investigational drugs are not charged a VA copay but could be"
 | 
|---|
| 135 |  S PSOC=PSOC+1,PSOTXT(PSOC)="reimbursable by third party insurance."
 | 
|---|
| 136 |  ; S XMY() TO ALL THE RECIPIENTS
 | 
|---|
| 137 |  I '$G(PSOREF) S XMY(+$P(^PSRX(RXP,0),"^",4))="" ; ORIGINAL
 | 
|---|
| 138 |  I $G(PSOREF) S XMY(+$P(^PSRX(RXP,1,PSOREF,0),"^",17))="" ; REFILL
 | 
|---|
| 139 |  I $G(^PSRX(RXP,"OR1")) I $P(^PSRX(RXP,"OR1"),"^",5)'="" S XMY($P(^PSRX(RXP,"OR1"),"^",5))=""
 | 
|---|
| 140 |  F PSOCXPDA=0:0 S PSOCXPDA=$O(^XUSEC("PSO COPAY",PSOCXPDA)) Q:'PSOCXPDA  S XMY(PSOCXPDA)=""
 | 
|---|
| 141 |  S XMTEXT="PSOTXT("
 | 
|---|
| 142 |  D ^XMD K XMSUB,XMY,XMDUZ,XMTEXT,PSODIV,PSOCXPDA,PSOLTAG,PSOC,PSOQUES,PSOTG
 | 
|---|
| 143 |  Q
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 | ELIG D ELIG^VADPT S PSOC=3,PSOTXT(PSOC)="Eligibility: "_$P(VAEL(1),"^",2)_$S(+VAEL(3):"     SC%: "_$P(VAEL(3),"^",2),1:""),PSOC=PSOC+1
 | 
|---|
| 146 |  N N,I,I1,PSDIS,PSCNT
 | 
|---|
| 147 |  S N=0 F  S N=$O(VAEL(1,N)) Q:'N  S $P(PSOTXT(PSOC)," ",14)=$P(VAEL(1,N),"^",2),PSOC=PSOC+1
 | 
|---|
| 148 |  S PSOTXT(PSOC)=" ",PSOC=PSOC+1,PSOTXT(PSOC)="Disabilities: "
 | 
|---|
| 149 |  F I=0:0 S I=$O(^DPT(DFN,.372,I)) Q:'I  S I1=$S($D(^DPT(DFN,.372,I,0)):^(0),1:"") D:+I1
 | 
|---|
| 150 |  .S PSDIS=$S($P($G(^DIC(31,+I1,0)),"^")]""&($P($G(^(0)),"^",4)']""):$P(^(0),"^"),$P($G(^DIC(31,+I1,0)),"^",4)]"":$P(^(0),"^",4),1:""),PSCNT=$P(I1,"^",2)
 | 
|---|
| 151 |  .S:$L(PSOTXT(PSOC)_PSDIS_"-"_PSCNT_"% ("_$S($P(I1,"^",3):"SC",1:"NSC")_"), ")>80 PSOC=PSOC+1,$P(PSOTXT(PSOC)," ",14)=" "
 | 
|---|
| 152 |  .S PSOTXT(PSOC)=$G(PSOTXT(PSOC))_PSDIS_"-"_PSCNT_"%("_$S($P(I1,"^",3):"SC",1:"NSC")_"), "
 | 
|---|
| 153 |  S PSOC=PSOC+1 S PSOTXT(PSOC)=" ",PSOC=PSOC+1
 | 
|---|
| 154 |  Q
 | 
|---|
| 155 |  ;
 | 
|---|
| 156 |  ;EXEMPTION QUESTIONS - MAIL MESSAGE POSITION;SUBSCRIPT IN "IBQ" NODE
 | 
|---|
| 157 | RELSC ;Is this Rx for a Service Connected Condition?;1
 | 
|---|
| 158 | RELMST ;Is this Rx related to the treatment of Military Sexual Trauma?;2
 | 
|---|
| 159 | RELAO ;Is this Rx for treatment of Vietnam-Era Herbicide (Agent Orange) exposure?;3
 | 
|---|
| 160 | RELIR ;Is this Rx for treatment of Ionizing Radiation exposure?;4
 | 
|---|
| 161 | RELEC ;Is this Rx for treatment of Environmental Contaminants exposure?;5
 | 
|---|
| 162 | RELHNC ;Is this Rx related to treatment of Head and/or Neck Cancer?;6
 | 
|---|
| 163 | RELCV ;Is this Rx potentially for treatment related to Combat?;7
 | 
|---|
| 164 |  ;
 | 
|---|