Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSOCIDC3

PSOCIDC3.m

Go to the documentation of this file.
  1. PSOCIDC3 ;BIR/LE - continuation of Copay Correction of erroneous billed copays ;29-May-2012 14:42;PLS
  1. ;;7.0;OUTPATIENT PHARMACY;**226,1015**;DEC 1997;Build 62
  1. ;
  1. ;Modified - IHS/MSC/PLS - 06/01/2010 - Lines CHK+1, START+29, START+55
  1. RPT ;
  1. N JOBN,NAMSP,ZTDESC,ZTRTN
  1. S NAMSP=$$NAMSP^PSOCIDC1
  1. S JOBN="Copay Corrections"
  1. L +^XTMP(NAMSP):0 I '$T D Q
  1. .W !,JOBN_" job for PSO*7*226 is still running. Halting..."
  1. L -^XTMP(NAMSP)
  1. W !!,"This report shows the patient name and prescription information for"
  1. W !,"copay field corrections and copays billed erroneously that were cancelled"
  1. W !,"by the patch PSO*7*226."
  1. ;
  1. W !!,"You may queue the report to print, if you wish.",!
  1. ;
  1. DVC K %ZIS,POP,IOP S %ZIS="QM" D ^%ZIS I $G(POP) W !!,"Nothing queued to print.",! G DONE
  1. 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
  1. START ;
  1. U IO
  1. N BLDT,RXO,NAMSP,PSOFILL,PSODFN,PSONAM,PSOOUT,PSODV,RXP,SSN,PSODIV,PSODV
  1. N CANCEL,JOBN,PSOPATID,PSOTOT,PSOTOTC
  1. S NAMSP=$$NAMSP^PSOCIDC1
  1. S JOBN="Copay Corrections"
  1. S PSOOUT=0,PSODV=$S($E(IOST)="C":"C",1:"P")
  1. S PSOPGCT=0,PSOPGLN=IOSL-7,PSOPGCT=1
  1. S BLDT=$P($G(^XTMP(NAMSP,0,"LAST")),"^",2)
  1. I '$D(DT) S DT=$$NOW^XLFDT
  1. D TITLE
  1. S (PSOTOT,PSOTOTC,PSONAM)=""
  1. F S PSONAM=$O(^XTMP(NAMSP,"REL",PSONAM)) Q:PSONAM="" D
  1. .S PSODFN=""
  1. .F S PSODFN=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN)) Q:PSODFN="" D
  1. ..S RXP=""
  1. ..F S RXP=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP)) Q:RXP="" D
  1. ...S PSOFILL=""
  1. ...F S PSOFILL=$O(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP,PSOFILL)) Q:PSOFILL="" D
  1. ....N XX,RXO,Y,PSONAME
  1. ....S XX=$G(^XTMP(NAMSP,"REL",PSONAM,PSODFN,RXP,PSOFILL)) D ;NOTE THIS IS THE RELEASE DATE
  1. .....D FULL Q:$G(PSOOUT) S PSONAME=$P($G(^DPT(PSODFN,0)),"^")
  1. .....S CANCEL="" I $D(^XTMP(NAMSP,"CANCEL",PSODFN,RXP,PSOFILL)) D CHK S:CANCEL PSOTOTC=PSOTOTC+1
  1. .....W !,$S(CANCEL:"*",1:"") W:CANCEL $E(PSONAME,1,14) W:'CANCEL ?1,$E(PSONAME,1,14)
  1. .....D PRTSSN
  1. .....S RXO=$P($G(^PSRX(RXP,0)),"^")
  1. .....W ?41," ",RXO," (",PSOFILL,")"
  1. .....S Y=XX I Y>0 X ^DD("DD")
  1. .....W ?55," ",Y
  1. .....;IHS/MSC/PLS - 06/01/2010 - Next two lines commented out
  1. .....;W ?69,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
  1. .....;W ?75,$S($$PTCOV^IBCNSU3(PSODFN,BLDT,"PHARMACY"):"YES",1:" NO")
  1. .....S PSOTOT=PSOTOT+1
  1. W !!,"Total number of released prescriptions modified: ",PSOTOT
  1. W !,"Total number of Cancelled Copay prescriptions: ",PSOTOTC
  1. ;
  1. ;UNRELEASED CORRECTED RX'S
  1. D TITLE2
  1. S (PSOTOT,PSONAM)=""
  1. F S PSONAM=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM)) Q:PSONAM="" D
  1. .S PSODFN=""
  1. .F S PSODFN=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN)) Q:PSODFN="" D
  1. ..S RXP=""
  1. ..F S RXP=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP)) Q:RXP="" D
  1. ...S PSOFILL=""
  1. ...F S PSOFILL=$O(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP,PSOFILL)) Q:PSOFILL="" D
  1. ....N XX,RXO,Y,PSONAME
  1. ....S XX=$G(^XTMP(NAMSP,"IBQ UPD",PSONAM,PSODFN,RXP,PSOFILL)) D ;NOTE THIS IS THE FILL DATE
  1. .....D FULL Q:$G(PSOOUT) S PSONAME=$P($G(^DPT(PSODFN,0)),"^")
  1. .....W !,$E(PSONAME,1,14)
  1. .....D PRTSSN
  1. .....S RXO=$P($G(^PSRX(RXP,0)),"^")
  1. .....W ?41," ",RXO," (",PSOFILL,")"
  1. .....S Y=XX I Y>0 X ^DD("DD")
  1. .....W ?55," ",Y
  1. .....;IHS/MSC/PLS - 06/01/2010 - Next two lines commented out
  1. .....;W ?69,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
  1. .....;W ?75,$S($$PTCOV^IBCNSU3(PSODFN,BLDT,"PHARMACY"):"YES",1:" NO")
  1. .....S PSOTOT=PSOTOT+1
  1. W !!,"Total number of un-released prescriptions modified: ",PSOTOT
  1. G END
  1. ;
  1. FULL ;
  1. I ($Y+7)>IOSL&('$G(PSOOUT)) D TITLE
  1. Q
  1. ;
  1. CHK ;VERIFY COPAY WAS CANCELLED
  1. Q ;IHS/MSC/PLS - 06/01/2010
  1. N IBN,PSOREF,PSOIB,XX S PSOREF=PSOFILL
  1. I PSOREF=0 S XX=$G(^PSRX(RXP,"IB")),IBN=$P(XX,"^",2)
  1. I PSOREF>0 S XX=$G(^PSRX(RXP,1,PSOREF,"IB")),IBN=$P(XX,"^",1)
  1. S XX=$$STATUS^IBARX(IBN)
  1. S:$G(XX)=2 CANCEL=1
  1. Q
  1. ;
  1. TITLE ;
  1. I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
  1. ;
  1. W @IOF D
  1. . W !,"Patch PSO*7*226 -Corrected Released Prescriptions "
  1. . W !!,"Note that prescriptions where copay was cancelled are denoted with"
  1. . W !,"an asterisk (*) in front of the patient name. Otherwise, only the"
  1. . W !,"the IBQ node was updated.",!
  1. S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
  1. F MJT=1:1:79 W "="
  1. W !,?69,"INS ON DTE"
  1. W !,"PATIENT NAME (SSN) DIV",?42,"RX# (FILL)",?55,"RELEASE DATE",?69,"REL BILL"
  1. W !,"--------------- ------- --------------",?42,"------------"
  1. W ?55,"------------",?69,"---- -----"
  1. S PSOPGCT=PSOPGCT+1
  1. Q
  1. TITLE2 ;
  1. I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
  1. ;
  1. W @IOF D
  1. . W !,"Patch PSO*7*226 -Corrected Unreleased Prescriptions "
  1. S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
  1. F MJT=1:1:79 W "="
  1. W !,?69,"INS ON DTE"
  1. W !,"PATIENT NAME (SSN) DIV",?43,"RX# (FILL)",?55,"FILL DATE",?69,"REL BILL"
  1. W !,"-------------- ------- ----------------",?42,"------------"
  1. W ?55,"------------",?69,"---- -----"
  1. S PSOPGCT=PSOPGCT+1
  1. Q
  1. END ;
  1. 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
  1. I $G(PSODV)="C" W !
  1. E W @IOF
  1. DONE ;
  1. K MJT,PSOPGCT,PSOPGLN,Y,DIR,X,IOP,POP,IO("Q"),DIRUT,DUOUT,DTOUT
  1. D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ;
  1. PRTSSN ;
  1. S SSN=$P(^DPT(PSODFN,0),"^",9),SSN=$E(SSN,$L(SSN)-3,$L(SSN))
  1. S PSOPATID=$E(PSONAM,1)_SSN
  1. S PSODIV=$P($G(^PSRX(RXP,2)),"^",9)
  1. S:PSODIV'="" PSODIV=$P($G(^PS(59,PSODIV,0)),"^",1)
  1. W ?17,"("_PSOPATID_")"_" "_$E(PSODIV,1,15)
  1. Q
  1. ;
  1. ETIME(SECTIME) ;convert seconds to day:hr:min:sec
  1. N DAY,HR,MIN,SEC,ETIM
  1. S (DAY,HR,MIN,SEC)=""
  1. I SECTIME>86400 S DAY=SECTIME\86400,SECTIME=SECTIME#86400
  1. I SECTIME>3600 S HR=SECTIME\3600,SECTIME=SECTIME#3600
  1. I SECTIME>60 S MIN=SECTIME\60,SECTIME=SECTIME#60
  1. S SEC=SECTIME
  1. S ETIM=""
  1. S:$L(HR)=1 HR=0_HR S:$L(MIN)=1 MIN=0_MIN S:$L(SEC)=1 SEC=0_SEC
  1. S:DAY ETIM=DAY_" Day " S:HR ETIM=ETIM_HR_":" S:MIN ETIM=ETIM_MIN
  1. S ETIM=ETIM_":"_SEC
  1. Q ETIM
  1. ;
  1. MAIL3(MSG) ;management mail message
  1. S PSOINST=$P($G(^DIC(4,+$P($G(^XMB(1,1,"XUS")),"^",17),99)),"^")
  1. D NOW^%DTC S Y=% D DD^%DT S PSOEND=Y
  1. K PSOTEXT
  1. S XMY(DUZ)=""
  1. S XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
  1. S:$$PROD^XUPROD(1) XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
  1. S XMDUZ="PSO*7*226 "_JOBN
  1. S XMSUB="STATION "_$G(PSOINST)
  1. S XMSUB=XMSUB_$S($$PROD^XUPROD(1):" (Prod)",1:" (Test)")
  1. S XMSUB=XMSUB_" CANCELLED COPAYS FOR ERRONEOUSLY BILLED PRESCRIPTION FILLS"
  1. S PSOTEXT(1)=""
  1. S PSOTEXT(2)="Started "_PSOSTART
  1. S PSOTEXT(3)=""
  1. S PSOTEXT(4)=" "_MSG
  1. S PSOTEXT(5)=""
  1. S PSOTEXT(6)="NO FURTHER ACTION REQUIRED."
  1. S XMTEXT="PSOTEXT(" N DIFROM D ^XMD K XMDUZ,XMTEXT,XMSUB
  1. Q
  1. ;