| 1 | PSOCIDC3 ;BIR/LE - continuation of Copay Correction of erroneous billed copays ;11/08/05 1:56pm
 | 
|---|
| 2 |  ;;7.0;OUTPATIENT PHARMACY;**226**;DEC 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | RPT ;
 | 
|---|
| 5 |  N JOBN,NAMSP,ZTDESC,ZTRTN
 | 
|---|
| 6 |  S NAMSP=$$NAMSP^PSOCIDC1
 | 
|---|
| 7 |  S JOBN="Copay Corrections"
 | 
|---|
| 8 |  L +^XTMP(NAMSP):0 I '$T D  Q
 | 
|---|
| 9 |  .W !,JOBN_" job for PSO*7*226 is still running.  Halting..."
 | 
|---|
| 10 |  L -^XTMP(NAMSP)
 | 
|---|
| 11 |  W !!,"This report shows the patient name and prescription information for"
 | 
|---|
| 12 |  W !,"copay field corrections and copays billed erroneously that were cancelled"
 | 
|---|
| 13 |  W !,"by the patch PSO*7*226."
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  W !!,"You may queue the report to print, if you wish.",!
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | DVC K %ZIS,POP,IOP S %ZIS="QM" D ^%ZIS I $G(POP) W !!,"Nothing queued to print.",! G DONE
 | 
|---|
| 18 | QUEUE I $D(IO("Q")) S ZTRTN="START^PSOCIDC3",ZTDESC=JOBN_" copay cancellation report" D ^%ZTLOAD K %ZSI W !,"Report queued to print.",! G DONE
 | 
|---|
| 19 | START ;
 | 
|---|
| 20 |  U IO
 | 
|---|
| 21 |  N BLDT,RXO,NAMSP,PSOFILL,PSODFN,PSONAM,PSOOUT,PSODV,RXP,SSN,PSODIV,PSODV
 | 
|---|
| 22 |  N CANCEL,JOBN,PSOPATID,PSOTOT,PSOTOTC
 | 
|---|
| 23 |  S NAMSP=$$NAMSP^PSOCIDC1
 | 
|---|
| 24 |  S JOBN="Copay Corrections"
 | 
|---|
| 25 |  S PSOOUT=0,PSODV=$S($E(IOST)="C":"C",1:"P")
 | 
|---|
| 26 |  S PSOPGCT=0,PSOPGLN=IOSL-7,PSOPGCT=1
 | 
|---|
| 27 |  S BLDT=$P($G(^XTMP(NAMSP,0,"LAST")),"^",2)
 | 
|---|
| 28 |  I '$D(DT) S DT=$$NOW^XLFDT
 | 
|---|
| 29 |  D TITLE
 | 
|---|
| 30 |  S (PSOTOT,PSOTOTC,PSONAM)=""
 | 
|---|
| 31 |  F  S PSONAM=$O(^XTMP(NAMSP,"REL",PSONAM)) Q:PSONAM=""  D
 | 
|---|
| 32 |  .S PSODFN=""
 | 
|---|
| 33 |  .F  S PSODFN=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN)) Q:PSODFN=""  D
 | 
|---|
| 34 |  ..S RXP=""
 | 
|---|
| 35 |  ..F  S RXP=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP)) Q:RXP=""  D
 | 
|---|
| 36 |  ...S PSOFILL=""
 | 
|---|
| 37 |  ...F  S PSOFILL=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP,PSOFILL)) Q:PSOFILL=""  D
 | 
|---|
| 38 |  ....N XX,RXO,Y,PSONAME
 | 
|---|
| 39 |  ....S XX=$G(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP,PSOFILL)) D   ;NOTE THIS IS THE RELEASE DATE
 | 
|---|
| 40 |  .....D FULL Q:$G(PSOOUT)  S PSONAME=$P($G(^DPT(PSODFN,0)),"^")
 | 
|---|
| 41 |  .....S CANCEL="" I $D(^XTMP(NAMSP,"CANCEL",PSODFN,RXP,PSOFILL)) D CHK S:CANCEL PSOTOTC=PSOTOTC+1
 | 
|---|
| 42 |  .....W !,$S(CANCEL:"*",1:"") W:CANCEL $E(PSONAME,1,14) W:'CANCEL ?1,$E(PSONAME,1,14)
 | 
|---|
| 43 |  .....D PRTSSN
 | 
|---|
| 44 |  .....S RXO=$P($G(^PSRX(RXP,0)),"^")
 | 
|---|
| 45 |  .....W ?41," ",RXO," (",PSOFILL,")"
 | 
|---|
| 46 |  .....S Y=XX I Y>0 X ^DD("DD")
 | 
|---|
| 47 |  .....W ?55," ",Y
 | 
|---|
| 48 |  .....W ?69,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
 | 
|---|
| 49 |  .....W ?75,$S($$PTCOV^IBCNSU3(PSODFN,BLDT,"PHARMACY"):"YES",1:" NO")
 | 
|---|
| 50 |  .....S PSOTOT=PSOTOT+1
 | 
|---|
| 51 |  W !!,"Total number of released prescriptions modified: ",PSOTOT
 | 
|---|
| 52 |  W !,"Total number of Cancelled Copay prescriptions: ",PSOTOTC
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  ;UNRELEASED CORRECTED RX'S
 | 
|---|
| 55 |  D TITLE2
 | 
|---|
| 56 |  S (PSOTOT,PSONAM)=""
 | 
|---|
| 57 |  F  S PSONAM=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM)) Q:PSONAM=""  D
 | 
|---|
| 58 |  .S PSODFN=""
 | 
|---|
| 59 |  .F  S PSODFN=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN)) Q:PSODFN=""  D
 | 
|---|
| 60 |  ..S RXP=""
 | 
|---|
| 61 |  ..F  S RXP=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP)) Q:RXP=""  D
 | 
|---|
| 62 |  ...S PSOFILL=""
 | 
|---|
| 63 |  ...F  S PSOFILL=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP,PSOFILL)) Q:PSOFILL=""  D
 | 
|---|
| 64 |  ....N XX,RXO,Y,PSONAME
 | 
|---|
| 65 |  ....S XX=$G(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP,PSOFILL)) D  ;NOTE THIS IS THE FILL DATE
 | 
|---|
| 66 |  .....D FULL Q:$G(PSOOUT)  S PSONAME=$P($G(^DPT(PSODFN,0)),"^")
 | 
|---|
| 67 |  .....W !,$E(PSONAME,1,14)
 | 
|---|
| 68 |  .....D PRTSSN
 | 
|---|
| 69 |  .....S RXO=$P($G(^PSRX(RXP,0)),"^")
 | 
|---|
| 70 |  .....W ?41," ",RXO," (",PSOFILL,")"
 | 
|---|
| 71 |  .....S Y=XX I Y>0 X ^DD("DD")
 | 
|---|
| 72 |  .....W ?55," ",Y
 | 
|---|
| 73 |  .....W ?69,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
 | 
|---|
| 74 |  .....W ?75,$S($$PTCOV^IBCNSU3(PSODFN,BLDT,"PHARMACY"):"YES",1:" NO")
 | 
|---|
| 75 |  .....S PSOTOT=PSOTOT+1
 | 
|---|
| 76 |  W !!,"Total number of un-released prescriptions modified: ",PSOTOT
 | 
|---|
| 77 |  G END
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | FULL ;
 | 
|---|
| 80 |  I ($Y+7)>IOSL&('$G(PSOOUT)) D TITLE
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | CHK ;VERIFY COPAY WAS CANCELLED
 | 
|---|
| 84 |  N IBN,PSOREF,PSOIB,XX S PSOREF=PSOFILL
 | 
|---|
| 85 |  I PSOREF=0 S XX=$G(^PSRX(RXP,"IB")),IBN=$P(XX,"^",2)
 | 
|---|
| 86 |  I PSOREF>0 S XX=$G(^PSRX(RXP,1,PSOREF,"IB")),IBN=$P(XX,"^",1)
 | 
|---|
| 87 |  S XX=$$STATUS^IBARX(IBN)
 | 
|---|
| 88 |  S:$G(XX)=2 CANCEL=1
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | TITLE ;
 | 
|---|
| 92 |  I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  W @IOF D
 | 
|---|
| 95 |  . W !,"Patch PSO*7*226 -Corrected Released Prescriptions "
 | 
|---|
| 96 |  . W !!,"Note that prescriptions where copay was cancelled are denoted with"
 | 
|---|
| 97 |  . W !,"an asterisk (*) in front of the patient name.  Otherwise, only  the"
 | 
|---|
| 98 |  . W !,"the IBQ node was updated.",!
 | 
|---|
| 99 |  S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
 | 
|---|
| 100 |  F MJT=1:1:79 W "="
 | 
|---|
| 101 |  W !,?69,"INS ON DTE"
 | 
|---|
| 102 |  W !,"PATIENT NAME     (SSN)       DIV",?42,"RX# (FILL)",?55,"RELEASE DATE",?69,"REL   BILL"
 | 
|---|
| 103 |  W !,"---------------  -------  --------------",?42,"------------"
 | 
|---|
| 104 |  W ?55,"------------",?69,"---- -----"
 | 
|---|
| 105 |  S PSOPGCT=PSOPGCT+1
 | 
|---|
| 106 |  Q
 | 
|---|
| 107 | TITLE2 ;
 | 
|---|
| 108 |  I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 |  W @IOF D
 | 
|---|
| 111 |  . W !,"Patch PSO*7*226 -Corrected Unreleased Prescriptions "
 | 
|---|
| 112 |  S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
 | 
|---|
| 113 |  F MJT=1:1:79 W "="
 | 
|---|
| 114 |  W !,?69,"INS ON DTE"
 | 
|---|
| 115 |  W !,"PATIENT NAME     (SSN)       DIV",?43,"RX# (FILL)",?55,"FILL DATE",?69,"REL   BILL"
 | 
|---|
| 116 |  W !,"--------------  -------  ----------------",?42,"------------"
 | 
|---|
| 117 |  W ?55,"------------",?69,"---- -----"
 | 
|---|
| 118 |  S PSOPGCT=PSOPGCT+1
 | 
|---|
| 119 |  Q
 | 
|---|
| 120 | END ;
 | 
|---|
| 121 |  I '$G(PSOOUT),$G(PSODV)="C" W !!,"** End of Report **" K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
 | 
|---|
| 122 |  I $G(PSODV)="C" W !
 | 
|---|
| 123 |  E  W @IOF
 | 
|---|
| 124 | DONE ;
 | 
|---|
| 125 |  K MJT,PSOPGCT,PSOPGLN,Y,DIR,X,IOP,POP,IO("Q"),DIRUT,DUOUT,DTOUT
 | 
|---|
| 126 |  D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | PRTSSN ;
 | 
|---|
| 130 |  S SSN=$P(^DPT(PSODFN,0),"^",9),SSN=$E(SSN,$L(SSN)-3,$L(SSN))
 | 
|---|
| 131 |  S PSOPATID=$E(PSONAM,1)_SSN
 | 
|---|
| 132 |  S PSODIV=$P($G(^PSRX(RXP,2)),"^",9)
 | 
|---|
| 133 |  S:PSODIV'="" PSODIV=$P($G(^PS(59,PSODIV,0)),"^",1)
 | 
|---|
| 134 |  W ?17,"("_PSOPATID_")"_"  "_$E(PSODIV,1,15)
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 | ETIME(SECTIME) ;convert seconds to day:hr:min:sec
 | 
|---|
| 138 |  N DAY,HR,MIN,SEC,ETIM
 | 
|---|
| 139 |  S (DAY,HR,MIN,SEC)=""
 | 
|---|
| 140 |  I SECTIME>86400 S DAY=SECTIME\86400,SECTIME=SECTIME#86400
 | 
|---|
| 141 |  I SECTIME>3600 S HR=SECTIME\3600,SECTIME=SECTIME#3600
 | 
|---|
| 142 |  I SECTIME>60 S MIN=SECTIME\60,SECTIME=SECTIME#60
 | 
|---|
| 143 |  S SEC=SECTIME
 | 
|---|
| 144 |  S ETIM=""
 | 
|---|
| 145 |  S:$L(HR)=1 HR=0_HR S:$L(MIN)=1 MIN=0_MIN S:$L(SEC)=1 SEC=0_SEC
 | 
|---|
| 146 |  S:DAY ETIM=DAY_" Day " S:HR ETIM=ETIM_HR_":" S:MIN ETIM=ETIM_MIN
 | 
|---|
| 147 |  S ETIM=ETIM_":"_SEC
 | 
|---|
| 148 |  Q ETIM
 | 
|---|
| 149 |  ;
 | 
|---|
| 150 | MAIL3(MSG) ;management mail message
 | 
|---|
| 151 |  S PSOINST=$P($G(^DIC(4,+$P($G(^XMB(1,1,"XUS")),"^",17),99)),"^")
 | 
|---|
| 152 |  D NOW^%DTC S Y=% D DD^%DT S PSOEND=Y
 | 
|---|
| 153 |  K PSOTEXT
 | 
|---|
| 154 |  S XMY(DUZ)=""
 | 
|---|
| 155 |  S XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
 | 
|---|
| 156 |  S:$$PROD^XUPROD(1) XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
 | 
|---|
| 157 |  S XMDUZ="PSO*7*226 "_JOBN
 | 
|---|
| 158 |  S XMSUB="STATION "_$G(PSOINST)
 | 
|---|
| 159 |  S XMSUB=XMSUB_$S($$PROD^XUPROD(1):" (Prod)",1:" (Test)")
 | 
|---|
| 160 |  S XMSUB=XMSUB_" CANCELLED COPAYS FOR ERRONEOUSLY BILLED PRESCRIPTION FILLS"
 | 
|---|
| 161 |  S PSOTEXT(1)=""
 | 
|---|
| 162 |  S PSOTEXT(2)="Started "_PSOSTART
 | 
|---|
| 163 |  S PSOTEXT(3)=""
 | 
|---|
| 164 |  S PSOTEXT(4)="   "_MSG
 | 
|---|
| 165 |  S PSOTEXT(5)=""
 | 
|---|
| 166 |  S PSOTEXT(6)="NO FURTHER ACTION REQUIRED."
 | 
|---|
| 167 |  S XMTEXT="PSOTEXT(" N DIFROM D ^XMD K XMDUZ,XMTEXT,XMSUB
 | 
|---|
| 168 |  Q
 | 
|---|
| 169 |  ;
 | 
|---|