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

PSOCIDC9.m

Go to the documentation of this file.
PSOCIDC9 ;BIR/LE - continuation of activity log corrections ;2/28/05 12:50pm
 ;;7.0;OUTPATIENT PHARMACY;**239,250**;DEC 1997
 ;
RPT ;
 N JOBN,NAMSP,ZTDESC,ZTRTN,ZTQUEUED,ZTREQ
 S NAMSP=$$NAMSP^PSOCIDC7
 S JOBN="CIDC ACTIVITY LOG CORRECTION"
 L +^XTMP(NAMSP):0 I '$T D  Q
 .W !,JOBN_" job for PSO*7*239 is still running.  Halting..."
 L -^XTMP(NAMSP)
 W !!,"This report reflects all prescriptions where the activity and"
 W !,"copay activity logs were corrected.  For detailed information,"
 W !,"please view the activity and copay logs on the prescriptions."
 ;
 W !!,"You may queue the report to print, if you wish.",!
 ;
DVC ;
 K %ZIS,POP,IOP S %ZIS="QM" D ^%ZIS I $G(POP) W !!,"Nothing queued to print.",! G DONE
QUEUE ;
 I $D(IO("Q")) S ZTRTN="START^PSOCIDC9",ZTDESC=JOBN_" CIDC Activity Logs Corrections" D ^%ZTLOAD K %ZSI W !,"Report queued to print.",! G DONE
START ;
 U IO
 N BLDT,RXO,NAMSP,PSOFILL,PSODFN,PSONAM,PSOOUT,PSODV,RXP,SSN,PSODIV,PSODV
 N CANCEL,JOBN,PSOPATID,PSOTOT
 S NAMSP=$$NAMSP^PSOCIDC7
 ;****************************************************** for testing only - next line
 S JOBN="CIDC ACTIVITY LOGS CORRECTION"
 S PSOOUT=0,PSODV=$S($E(IOST)="C":"C",1:"P")
 S PSOPGCT=0,PSOPGLN=IOSL-7,PSOPGCT=1
 S BLDT=$P($G(^XTMP(NAMSP,0,"LAST")),"^",2)
 I '$D(DT) S DT=$$NOW^XLFDT
 D TITLE
 S (PSOTOT,PSONAM)=""
 F  S PSONAM=$O(^XTMP(NAMSP,"LOG",PSONAM)) Q:PSONAM=""  D
 .S PSODFN=""
 .F  S PSODFN=$O(^XTMP(NAMSP,"LOG",PSONAM,PSODFN)) Q:PSODFN=""  D
 ..S RXP=""
 ..F  S RXP=$O(^XTMP(NAMSP,"LOG",PSONAM,PSODFN,RXP)) Q:RXP=""  D
 ...D FULL Q:$G(PSOOUT)  S PSONAME=$P($G(^DPT(PSODFN,0)),"^"),PSOTOT=PSOTOT+1
 ...W !,$E(PSONAME,1,14)
 ...D PRTSSN
 ...S RXO=$P($G(^PSRX(RXP,0)),"^")
 ...W ?41," ",RXO  ;," (",PSOFILL,")"
 W:PSOTOT'="" !,"Total number of prescriptions modified: ",PSOTOT
 G END
 ;
FULL ;
 I ($Y+7)>IOSL&('$G(PSOOUT)) D TITLE
 Q
 ;
TITLE ;
 I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
 ;
 W @IOF D
 . W !,"Patch PSO*7*239 - Corrected Activity and Copay Activity logs",!!
 . W "Note that this report reflects all prescriptions where the activity and/or",!
 . W "copay activity logs were corrected. For detailed information, please view",!
 . W "the activity and copay activity log on the prescription.",!
 ;
 S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
 F MJT=1:1:79 W "="
 ;W !?55,"Updated",?67,"Updated"
 ;W !,?55,"Activity",?67,"COPAY"
 W !,"PATIENT NAME     (SSN)       DIV",?42,"RX# " ;,?55,"Log",?67,"Activity Log"   ;,?55,"RELEASE DATE",?69,"REL   BILL"
 W !,"---------------  -------  --------------",?42,"------------"
 ;W ?55,"------------",?67,"-----------"
 S PSOPGCT=PSOPGCT+1
 Q
 ;
END ;
 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
 I $G(PSODV)="C" W !
 E  W @IOF
DONE ;
 K MJT,PSOPGCT,PSOPGLN,Y,DIR,X,IOP,POP,IO("Q"),DIRUT,DUOUT,DTOUT
 D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 Q
 ;
PRTSSN ;
 S SSN=$P(^DPT(PSODFN,0),"^",9),SSN=$E(SSN,$L(SSN)-3,$L(SSN))
 S PSOPATID=$E(PSONAM,1)_SSN
 S PSODIV=$P($G(^PSRX(RXP,2)),"^",9)
 S:PSODIV'="" PSODIV=$P($G(^PS(59,PSODIV,0)),"^",1)
 W ?17,"("_PSOPATID_")"_"  "_$E(PSODIV,1,15)
 Q
 ;------
LOCKED ;LIST OF LOCKED RX'S
 N JOBN,NAMSP,ZTDESC,ZTRTN,ZTQUEUED,ZTREQ,PSODV
 S NAMSP=$$NAMSP^PSOCIDC7
 S JOBN="CIDC ACTIVITY LOG CORRECTION - LOCKED PRESCRIPTIONS"
 L +^XTMP(NAMSP):0 I '$T D  Q
 .W !,JOBN_" job for PSO*7*239 is still running.  Halting..."
 L -^XTMP(NAMSP)
 W !!,"This report reflects all prescriptions where the activity and",!
 W "copay activity logs could not be corrected due to the Rx being locked."
 ;
 W !!,"You may queue the report to print, if you wish.",!
 ;
DVC2 ;
 K %ZIS,POP,IOP S %ZIS="QM" D ^%ZIS I $G(POP) W !!,"Nothing queued to print.",! G DONE
QUEUE2 ;
 I $D(IO("Q")) S ZTRTN="START2^PSOCIDC9",ZTDESC=JOBN_" CIDC Activity Logs Corrections - Locked Rx's" D ^%ZTLOAD K %ZSI W !,"Report queued to print.",! G DONE
START2 ;
 U IO
 N BLDT,NAMSP,PSODFN,PSONAM,PSONAME,PSOOUT,PSODV,RXP,SSN,PSODIV,PSOPGCT,PSOOUT
 N CANCEL,JOBN,PSOPATID,PSOTOT,PSONCNT,PSORXN
 S NAMSP=$$NAMSP^PSOCIDC7
 S JOBN="CIDC ACTIVITY LOGS CORRECTION - Locked Rx report"
 S (PSOPGCT,PSONCNT,PSOOUT)=0,PSODV=$S($E(IOST)="C":"C",1:"P")
 S PSOPGLN=IOSL-7,PSOPGCT=1,RXP=""
 S BLDT=$P($G(^XTMP(NAMSP,0,"LAST")),"^",2)
 I '$D(DT) S DT=$$NOW^XLFDT
 D TITLE2
 F  S RXP=$O(^XTMP(NAMSP,0,"LOCKED RX",RXP)) Q:RXP=""  D
 . D FULL2 Q:$G(PSOOUT)
 . S PSONCNT=PSONCNT+1
 . S (DFN,PSODFN)=$P($G(^PSRX(RXP,0)),"^",2),PSORXN=$P($G(^PSRX(RXP,0)),"^")
 . S (PSONAME,PSONAM)=$P($G(^DPT(PSODFN,0)),"^") W !,$E(PSONAME,1,14)
 . D PRTSSN
 . W ?41," ",PSORXN
 . W:^XTMP(NAMSP,0,"LOCKED RX",RXP)'="" ?60,"CORRECTED"
 W !!,"Total number of prescriptions locked: ",PSONCNT,!
 G END
 Q
 ;
FULL2 ;
 I ($Y+7)>IOSL&('$G(PSOOUT)) D TITLE2
 Q
 ;
TITLE2 ;
 I $G(PSODV)="C",$G(PSOPGCT)'=1 W ! K DIR S DIR(0)="E" D ^DIR K DIR I 'Y S PSOOUT=1 Q
 ;
 W @IOF D
 . W !,"Patch PSO*7*239 - Locked Prescription Number Report",!!
 . W "Note that this report reflects all prescriptions where the activity and/or",!
 . W "copay activity logs could not be corrected. For detailed information,",!
 . W "please view the activity and copay activity log on the prescription.",!
 . W !!,"Note that FIXONE^PSOCIDC9 can be run from programmer's mode"
 . W !,"to correct individual prescriptions.",!!
 ;
 S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
 F MJT=1:1:79 W "="
 ;
 W !,"PATIENT NAME     (SSN)       DIV",?42,"RX# "
 W !,"---------------  -------  --------------",?42,"------------"
 S PSOPGCT=PSOPGCT+1
 Q
 ;
FIXONE ;FIX LOCKED RX'S
 N RXP,SEQ,CSEQ,PSOMSG,PSONTIM,PSOCHECK,FIXONE,PSOFONE,NAMSP
 W @IOF D
 . W !,"This function is used to correct individual prescriptions that were locked"
 . W !,"during the CIDC Activity Log clean-up process.  It verifies whether the"
 . W !,"prescription needs to be corrected, and if so corrects it.  If the Rx still"
 . W !,"cannot be locked for correction, a message stating such will be displayed."
 . W !,"Otherwise, a message stating that no correction is needed will be displayed.",!
 . W !,"For detailed information please view the activity and copay activity log on"
 . W !,"the prescription.  For a listing of locked Rx's, type D LOCKED^PSOCIDC9 at"
 . W !,"the programmer's prompt.",!
 ;
FIX2 ;
 S (PSOMSG,PSONTIM,FIXONE,PSOFONE)=""
 K DIC
 W ! S DIC="^PSRX(",DIC(0)="QEA" D ^DIC Q:Y<0
 S RXP=+Y,(DFN,PSODFN)=$P($G(^PSRX(RXP,0)),"^",2),PSONAM=$P($G(^DPT(PSODFN,0)),"^")
 W !,"For Patient: ",PSONAM
 S (PSOCHECK,SEQ,CSEQ)=0,NAMSP=$$NAMSP^PSOCIDC7
 I $D(^PSRX(RXP,"A",0)) F  S SEQ=$O(^PSRX(RXP,"A",SEQ)) Q:SEQ=""  I $G(^PSRX(RXP,"A",SEQ,0))["BKGD CIDC" S PSOCHECK=1
 I $D(^PSRX(RXP,"COPAY",0)) F  S CSEQ=$O(^PSRX(RXP,"COPAY",CSEQ)) Q:CSEQ=""  I $G(^PSRX(RXP,"COPAY",CSEQ,0))["BKGD CIDC" S PSOCHECK=1
 I 'PSOCHECK W !!,"No changes are needed for this prescription.",! G FIX2
 S FIXONE=1 D CHECK^PSOCIDC8
 I '$G(PSOFONE) W !,"Activity logs corrected.",!! S ^XTMP("PSOCIDC7",0,"LOCKED RX",RXP)=DUZ_"^"_$H
 G FIX2
 Q