[613] | 1 | PSOCIDC8 ;BIR/LE - continuation of activity log corrections ;2/28/05 12:50pm
|
---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**239,250**;DEC 1997
|
---|
| 3 | ;External reference to ^XUSEC supported by DBIA 10076
|
---|
| 4 | ;External reference to $$PROD^XUPROD(1) supported by DBIA 4440
|
---|
| 5 | ;External references L and UL^PSSLOCK supported by DBIA 2789
|
---|
| 6 | ;
|
---|
| 7 | CHECK ;
|
---|
| 8 | Q:'$D(^PSRX(RXP,"A",0))&('$D(^PSRX(RXP,"COPAY",0)))
|
---|
| 9 | N PSOMSG,PSONTIM,PSOCHECK,SEQ,CSEQ,CSEQ2
|
---|
| 10 | S (PSOCHECK,SEQ,CSEQ)=0
|
---|
| 11 | 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
|
---|
| 12 | 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
|
---|
| 13 | Q:'PSOCHECK
|
---|
| 14 | CHECK1 ;
|
---|
| 15 | D PSOL^PSSLOCK(RXP) S PSONTIM=$G(PSONTIM)+1 G CHECK1:'$G(PSOMSG)&($G(PSONTIM)<10)
|
---|
| 16 | I '+$G(PSOMSG) S:'$G(FIXONE) ^XTMP(NAMSP,0,"LOCKED RX",RXP)="" S:('+$G(PSOMSG)&($G(FIXONE))) PSOFONE=1 W:$G(FIXONE) !,"Cannot lock Rx for correction.",!! Q
|
---|
| 17 | ;
|
---|
| 18 | I $D(^XTMP(NAMSP,0,"STOP")) S $P(^XTMP(NAMSP,0,"LAST"),"^",3)=$O(^PSRX("AD",PSODT),-1),$P(^XTMP(NAMSP,0,"LAST"),"^",4)=$O(^PSRX(RXP),-1) Q
|
---|
| 19 | N AFLG,CFLG,CDAT,CHSEQ,ADATA,CDATA,DATA,ENTRY,EDAT,EFILL,ESEQ,MDATA,NEXT
|
---|
| 20 | ;
|
---|
| 21 | I $D(^PSRX(RXP,"A",0)) D
|
---|
| 22 | . S SEQ=0 F S SEQ=$O(^PSRX(RXP,"A",SEQ)) Q:SEQ="" I $G(^PSRX(RXP,"A",SEQ,0))["BKGD CIDC" D Q:AFLG
|
---|
| 23 | .. M ^XTMP(NAMSP,"A",PSODFN,RXP,"A")=^PSRX(RXP,"A") S AFLG=1
|
---|
| 24 | .. I $D(^PSRX(RXP,"COPAY")) M ^XTMP(NAMSP,"C",PSODFN,RXP,"COPAY")=^PSRX(RXP,"COPAY")
|
---|
| 25 | .. E S ^XTMP(NAMSP,"C",PSODFN,RXP)="No previous copay activity log in file 52"
|
---|
| 26 | D:$G(AFLG) ACTLOG
|
---|
| 27 | ;
|
---|
| 28 | K CDATA S CFLG=0
|
---|
| 29 | I $D(^PSRX(RXP,"COPAY",0)) D
|
---|
| 30 | . S CSEQ=0 F S CSEQ=$O(^PSRX(RXP,"COPAY",CSEQ)) Q:CSEQ="" I $G(^PSRX(RXP,"COPAY",CSEQ,0))["BKGD CIDC" D Q:CFLG
|
---|
| 31 | .. I '$D(^XTMP(NAMSP,"C",PSODFN,RXP))&(^PSRX(RXP,"COPAY",CSEQ,0)'["CIDC CLEANUP") M ^XTMP(NAMSP,"C",PSODFN,RXP,"COPAY")=^PSRX(RXP,"COPAY")
|
---|
| 32 | .. S CFLG=1
|
---|
| 33 | D:$G(CFLG)!$G(AFLG) CPLOG
|
---|
| 34 | D PSOUL^PSSLOCK(RXP)
|
---|
| 35 | Q
|
---|
| 36 | ;
|
---|
| 37 | ACTLOG ;ACTIVITY LOG
|
---|
| 38 | S (CHSEQ,SEQ)=0
|
---|
| 39 | F S SEQ=$O(^PSRX(RXP,"A",SEQ)) Q:SEQ="" S ENTRY=$G(^PSRX(RXP,"A",SEQ,0)) I ENTRY'="" D
|
---|
| 40 | . I ENTRY'["BKGD CIDC" S CHSEQ=CHSEQ+1,CDATA(CHSEQ)=ENTRY Q
|
---|
| 41 | . S MDATA($P(ENTRY,"^"),$P(ENTRY,"^",4),SEQ)=""
|
---|
| 42 | ;
|
---|
| 43 | ;Q:'$D(CDATA)&('$D(MDATA))
|
---|
| 44 | ;
|
---|
| 45 | ;***************************** FOR LIVE RUN
|
---|
| 46 | I $D(CDATA)!($D(MDATA)) D
|
---|
| 47 | .I $D(^PSRX(RXP,"A")) K ^PSRX(RXP,"A")
|
---|
| 48 | .Q:'$D(CDATA)
|
---|
| 49 | .S (CHSEQ,SEQ)=0 F S SEQ=$O(CDATA(SEQ)) Q:SEQ="" S ^PSRX(RXP,"A",SEQ,0)=CDATA(SEQ),CHSEQ=SEQ
|
---|
| 50 | .S ^PSRX(RXP,"A",0)="^52.3DA^"_CHSEQ_"^"_CHSEQ
|
---|
| 51 | .S ^XTMP(NAMSP,"LOG",PSONAM,PSODFN,RXP)=""
|
---|
| 52 | ;*****************************
|
---|
| 53 | ;***---------------------------------------->>>>>>>>>> UN-COMMENT NEXT 3 LINES FOR TESTING ONLY AND COMMENT LIVE RUN
|
---|
| 54 | ;S (CHSEQ,SEQ)=0 F S SEQ=$O(CDATA(SEQ)) Q:SEQ="" S ^XTMP("TST "_NAMSP,RXP,"A",SEQ,0)=CDATA(SEQ),CHSEQ=SEQ
|
---|
| 55 | ;S ^XTMP("TST "_NAMSP,RXP,"A",0)="^52.3DA^"_CHSEQ_"^"_CHSEQ
|
---|
| 56 | ;S ^XTMP("TST "_NAMSP,"LOG",PSONAM,PSODFN,RXP)=""
|
---|
| 57 | ;
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | CPLOG ;COPAY ACTIVITY LOG
|
---|
| 61 | S (EDAT,EFILL,ESEQ)="",(CHSEQ,CSEQ2)=0
|
---|
| 62 | I '$D(^PSRX(RXP,"COPAY"))&($D(MDATA)) D G SKP2
|
---|
| 63 | . F S EDAT=$O(MDATA(EDAT)) Q:EDAT="" F S EFILL=$O(MDATA(EDAT,EFILL)) Q:EFILL="" F S ESEQ=$O(MDATA(EDAT,EFILL,ESEQ)) Q:ESEQ="" D
|
---|
| 64 | .. S CHSEQ=CHSEQ+1,CDATA(CHSEQ)=EDAT_"^R^.5^"_EFILL_"^CIDC CLEANUP"
|
---|
| 65 | ;
|
---|
| 66 | F S CSEQ2=$O(^PSRX(RXP,"COPAY",CSEQ2)) Q:CSEQ2="" D
|
---|
| 67 | . S DATA=^PSRX(RXP,"COPAY",CSEQ2,0),CDAT=$P(DATA,"^")
|
---|
| 68 | . I DATA["-BKGD CIDC" S $P(DATA,"^",5)="CIDC CLEANUP"
|
---|
| 69 | SKP .;
|
---|
| 70 | . I '$G(EDAT)&($D(MDATA)) S (EDAT,EFILL,ESEQ)="",EDAT=$O(MDATA(EDAT)),EFILL=$O(MDATA(EDAT,EFILL)),ESEQ=$O(MDATA(EDAT,EFILL,ESEQ))
|
---|
| 71 | . I EDAT<CDAT&(EDAT'="") S CHSEQ=CHSEQ+1,CDATA(CHSEQ)=EDAT_"^R^.5^"_EFILL_"^CIDC CLEANUP" K MDATA(EDAT,EFILL,ESEQ) S EDAT="" G SKP
|
---|
| 72 | . S CHSEQ=CHSEQ+1,CDATA(CHSEQ)=^PSRX(RXP,"COPAY",CSEQ2,0)
|
---|
| 73 | . I CDATA(CHSEQ)["BKGD CIDC" S $P(CDATA(CHSEQ),"^",5)="CIDC CLEANUP"
|
---|
| 74 | ;
|
---|
| 75 | I $D(MDATA) S (EDAT,EFILL,ESEQ)="" F S EDAT=$O(MDATA(EDAT)) Q:EDAT="" F S EFILL=$O(MDATA(EDAT,EFILL)) Q:EFILL="" F S ESEQ=$O(MDATA(EDAT,EFILL,ESEQ)) Q:ESEQ="" D
|
---|
| 76 | . S CHSEQ=CHSEQ+1,CDATA(CHSEQ)=EDAT_"^R^.5^"_EFILL_"^CIDC CLEANUP"
|
---|
| 77 | SKP2 ;
|
---|
| 78 | Q:'$D(CDATA)
|
---|
| 79 | ;
|
---|
| 80 | ;***************************** FOR LIVE RUN
|
---|
| 81 | I $D(^PSRX(RXP,"COPAY")) K ^PSRX(RXP,"COPAY")
|
---|
| 82 | S (CSEQ2,CHSEQ)=0 F S CSEQ2=$O(CDATA(CSEQ2)) Q:CSEQ2="" S ^PSRX(RXP,"COPAY",CSEQ2,0)=CDATA(CSEQ2),CHSEQ=CSEQ2
|
---|
| 83 | S ^PSRX(RXP,"COPAY",0)="^52.0107DA^"_CHSEQ_"^"_CHSEQ
|
---|
| 84 | S ^XTMP(NAMSP,"LOG",PSONAM,PSODFN,RXP)=""
|
---|
| 85 | ;*****************************
|
---|
| 86 | ;***---------------------------------------->>>>>>>>>>> UN-COMMENT NEXT 3 LINES FOR TESTING ONLY AND COMMENT LIVE RUN
|
---|
| 87 | ;S (CSEQ2,CHSEQ)=0 F S CSEQ2=$O(CDATA(CSEQ2)) Q:CSEQ2="" S ^XTMP("TST "_NAMSP,RXP,"COPAY",CSEQ2,0)=CDATA(CSEQ2),CHSEQ=CSEQ2
|
---|
| 88 | ;S ^XTMP("TST "_NAMSP,RXP,"COPAY",0)="^52.0107DA^"_CHSEQ_"^"_CHSEQ
|
---|
| 89 | ;S ^XTMP("TST "_NAMSP,"LOG",PSONAM,PSODFN,RXP)=""
|
---|
| 90 | Q
|
---|
| 91 | ;
|
---|
| 92 | SITE ; SET UP VARIABLES NEEDED BY BILLING
|
---|
| 93 | S PSOSITE=$S(YY=0:$P(^PSRX(RXP,2),"^",9),1:$P($G(^PSRX(RXP,1,YY,0)),"^",9))
|
---|
| 94 | Q:PSOSITE=""
|
---|
| 95 | S PSOPAR=$G(^PS(59,PSOSITE,1))
|
---|
| 96 | S PSOPAR7=$G(^PS(59,PSOSITE,"IB"))
|
---|
| 97 | S PSOSITE7=$P($G(^PS(59,PSOSITE,"IB")),"^")
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | MAIL3(MSG) ;management mail message
|
---|
| 101 | S PSOINST=$P($G(^DIC(4,+$P($G(^XMB(1,1,"XUS")),"^",17),99)),"^")
|
---|
| 102 | D NOW^%DTC S Y=% D DD^%DT S PSOEND=Y
|
---|
| 103 | K PSOTEXT
|
---|
| 104 | S:$G(DUZ) XMY(DUZ)=""
|
---|
| 105 | ;S XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
|
---|
| 106 | S:$$PROD^XUPROD(1) XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
|
---|
| 107 | S XMDUZ="PSO*7*239 "_JOBN
|
---|
| 108 | S XMSUB="STATION "_$G(PSOINST)
|
---|
| 109 | S XMSUB=XMSUB_$S($$PROD^XUPROD(1):" (Prod)",1:" (Test)")
|
---|
| 110 | S XMSUB=XMSUB_" Activity log and Copay Activity log correction "
|
---|
| 111 | S PSOTEXT(1)=""
|
---|
| 112 | S PSOTEXT(2)="Started "_PSOSTART
|
---|
| 113 | S PSOTEXT(3)=""
|
---|
| 114 | S PSOTEXT(4)=" "_MSG
|
---|
| 115 | S PSOTEXT(5)=""
|
---|
| 116 | S PSOTEXT(6)="NO FURTHER ACTION REQUIRED."
|
---|
| 117 | S XMTEXT="PSOTEXT(" N DIFROM D ^XMD K XMDUZ,XMTEXT,XMSUB,PSOEND
|
---|
| 118 | Q
|
---|
| 119 | ;
|
---|
| 120 | MAIL ;
|
---|
| 121 | D NOW^%DTC S Y=% D DD^%DT N PSOCXPDA,PSOTEXT,XMY,XMTEXT,PSORXP,PSONCNT,PSOEND2,PSOEND
|
---|
| 122 | S PSOEND=Y,PSOEND2=$$FMTE^XLFDT(%,"1PS")
|
---|
| 123 | I $G(DUZ) S XMY(DUZ)=""
|
---|
| 124 | S XMDUZ="PSO*7*239 "_JOBN
|
---|
| 125 | S XMSUB="Outpatient Pharmacy PSO*7*239 "_JOBN
|
---|
| 126 | ;S XMY("ELLZEY.LINDA@FORUM.VA.GOV")=""
|
---|
| 127 | F PSOCXPDA=0:0 S PSOCXPDA=$O(^XUSEC("PSO COPAY",PSOCXPDA)) Q:'PSOCXPDA S XMY(PSOCXPDA)=""
|
---|
| 128 | I $O(XMY(""))="" Q ; no recipients for mail message
|
---|
| 129 | S PSOTEXT(1)="The "_JOBN_" job for the Outpatient Pharmacy"
|
---|
| 130 | S PSOTEXT(2)="patch (PSO*7*239) started "_PSOSTART
|
---|
| 131 | S PSOTEXT(3)="and completed "_PSOEND_"."
|
---|
| 132 | S PSOTEXT(4)=" ",(PSORXP,PSONCNT)=""
|
---|
| 133 | S PSOTEXT(5)=" "
|
---|
| 134 | S PSOTEXT(6)=" "
|
---|
| 135 | I $D(^XTMP("PSOCIDC7",0,"LOCKED RX")) D
|
---|
| 136 | . F S PSORXP=$O(^XTMP("PSOCIDC7",0,"LOCKED RX",PSORXP)) Q:PSORXP="" S PSONCNT=PSONCNT+1
|
---|
| 137 | . Q:'$G(PSONCNT)>0
|
---|
| 138 | . S PSOTEXT(5)="There were "_PSONCNT_" locked Rx(s) that could not be processed."
|
---|
| 139 | . S PSOTEXT(6)="From programmer's mode, type D LOCKED^PSOCIDC9 for a report."
|
---|
| 140 | S PSOTEXT(7)=" "
|
---|
| 141 | ;
|
---|
| 142 | S XMTEXT="PSOTEXT(" N DIFROM D ^XMD K XMDUZ,XMTEXT,XMSUB
|
---|
| 143 | Q
|
---|
| 144 | ;
|
---|