- PSOCPIB5 ;BIR/EJW-Report of back-billed fills with insurance information ;06/24/03
- ;;7.0;OUTPATIENT PHARMACY;**142**;DEC 1997
- ;External reference to $$STATUS^IBARX supported by DBIA 125
- ;External reference to $$PTCOV^IBCNSU3 supported by DBIA 4115
- RPT ;
- W !!,"This report shows the patient name, prescription fill, and insurance"
- W !,"information for fills that were billed as part of patch PSO*7*123 clean-up."
- 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^PSOCPIB5",ZTDESC="Billed copay insurance report" D ^%ZTLOAD K %ZSI W !,"Report queued to print.",! G DONE
- START ;
- N PSOFIRST
- U IO
- S PSOOUT=0,PSODV=$S($E(IOST)="C":"C",1:"P")
- S PSOPGCT=0,PSOPGLN=IOSL-7,PSOPGCT=1
- D TITLE
- S PSOJ=0
- S BILLDT=$P($G(^XTMP("PSOCPIB3",0)),"^",2)
- F S PSOJ=$O(^XTMP("PSOCPIB3",PSOJ)) Q:PSOJ="" S PSONAM="" F S PSONAM=$O(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM)) Q:PSONAM="" S PSODFN="" F S PSODFN=$O(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN)) Q:PSODFN="" D
- .S PSOFIRST=1
- .W !
- .S RXP="" F S RXP=$O(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP)) Q:RXP="" S PSOFILL="" F S PSOFILL=$O(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP,PSOFILL)) Q:PSOFILL="" D
- ..N XX
- ..S XX=$G(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP,PSOFILL)) D
- ...I PSOFIRST D FULL Q:$G(PSOOUT) W !,PSONAM D PRTSSN S PSOFIRST=0
- ...D FULL Q:$G(PSOOUT) W !,?4,RXP," (",PSOFILL,")" D
- ....S Y=XX I Y>0 X ^DD("DD")
- ....W ?25," ",Y
- ....S PSORXP=$O(^PSRX("B",RXP,"")) I PSORXP="" Q
- ....S PSOBILL=$S('PSOFILL:$P($G(^PSRX(PSORXP,"IB")),"^",2),1:$P($G(^PSRX(PSORXP,1,PSOFILL,"IB")),"^"))
- ....I 'PSOBILL W ?43,"** NO BILL NUMBER FOR THIS FILL **" Q
- ....S PSOIBST=$$STATUS^IBARX(PSOBILL) I PSOIBST=2 W "** COPAY CHARGE CANCELLED **" Q
- ....W ?46,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO"),?68,$S($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
- 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*142 -COPAYS BILLED BY PSO*7*123 WITH RX INSURANCE INFORMATION"
- S Y=DT X ^DD("DD") W !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
- F MJT=1:1:79 W "="
- W !,"PATIENT NAME (SSN) DIV",?44,"RX INSURANCE",?66,"RX INSURANCE"
- W !,?4,"RX# (FILL)",?25,"RELEASE DATE",?43,"ON RELEASE DATE",?65,"ON BILLED DATE"
- W !,"------------------------",?25,"------------",?43,"---------------",?65,"--------------"
- 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,PSORXP,PSOIBST,PSOFILL,PSOOUT,PSOBILL,PSODIV,PSODFN,BILLDT,PSOJ,PSONAM,RXP,PSODV,VA
- D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
- Q
- ;
- PRTSSN ;
- N DFN
- S DFN=PSODFN D PID^VADPT
- S PSORXP=$O(^PSRX("B",RXP,"")) I PSORXP="" Q
- S PSODIV=$P($G(^PSRX(PSORXP,2)),"^",9) S:PSODIV'="" PSODIV=$P($G(^PS(59,PSODIV,0)),"^",1)
- W " ("_$G(VA("BID"))_")"_" "_PSODIV
- Q
- ;
- PSOCPIB5 ;BIR/EJW-Report of back-billed fills with insurance information ;06/24/03
- +1 ;;7.0;OUTPATIENT PHARMACY;**142**;DEC 1997
- +2 ;External reference to $$STATUS^IBARX supported by DBIA 125
- +3 ;External reference to $$PTCOV^IBCNSU3 supported by DBIA 4115
- RPT ;
- +1 WRITE !!,"This report shows the patient name, prescription fill, and insurance"
- +2 WRITE !,"information for fills that were billed as part of patch PSO*7*123 clean-up."
- +3 WRITE !!,"You may queue the report to print, if you wish.",!
- +4 ;
- DVC KILL %ZIS,POP,IOP
- SET %ZIS="QM"
- DO ^%ZIS
- IF $GET(POP)
- WRITE !!,"Nothing queued to print.",!
- GOTO DONE
- QUEUE IF $DATA(IO("Q"))
- SET ZTRTN="START^PSOCPIB5"
- SET ZTDESC="Billed copay insurance report"
- DO ^%ZTLOAD
- KILL %ZSI
- WRITE !,"Report queued to print.",!
- GOTO DONE
- START ;
- +1 NEW PSOFIRST
- +2 USE IO
- +3 SET PSOOUT=0
- SET PSODV=$SELECT($EXTRACT(IOST)="C":"C",1:"P")
- +4 SET PSOPGCT=0
- SET PSOPGLN=IOSL-7
- SET PSOPGCT=1
- +5 DO TITLE
- +6 SET PSOJ=0
- +7 SET BILLDT=$PIECE($GET(^XTMP("PSOCPIB3",0)),"^",2)
- +8 FOR
- SET PSOJ=$ORDER(^XTMP("PSOCPIB3",PSOJ))
- IF PSOJ=""
- QUIT
- SET PSONAM=""
- FOR
- SET PSONAM=$ORDER(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM))
- IF PSONAM=""
- QUIT
- SET PSODFN=""
- FOR
- SET PSODFN=$ORDER(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN))
- IF PSODFN=""
- QUIT
- Begin DoDot:1
- +9 SET PSOFIRST=1
- +10 WRITE !
- +11 SET RXP=""
- FOR
- SET RXP=$ORDER(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP))
- IF RXP=""
- QUIT
- SET PSOFILL=""
- FOR
- SET PSOFILL=$ORDER(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP,PSOFILL))
- IF PSOFILL=""
- QUIT
- Begin DoDot:2
- +12 NEW XX
- +13 SET XX=$GET(^XTMP("PSOCPIB3",PSOJ,"BILLED",PSONAM,PSODFN,RXP,PSOFILL))
- Begin DoDot:3
- +14 IF PSOFIRST
- DO FULL
- IF $GET(PSOOUT)
- QUIT
- WRITE !,PSONAM
- DO PRTSSN
- SET PSOFIRST=0
- +15 DO FULL
- IF $GET(PSOOUT)
- QUIT
- WRITE !,?4,RXP," (",PSOFILL,")"
- Begin DoDot:4
- +16 SET Y=XX
- IF Y>0
- XECUTE ^DD("DD")
- +17 WRITE ?25," ",Y
- +18 SET PSORXP=$ORDER(^PSRX("B",RXP,""))
- IF PSORXP=""
- QUIT
- +19 SET PSOBILL=$SELECT('PSOFILL:$PIECE($GET(^PSRX(PSORXP,"IB")),"^",2),1:$PIECE($GET(^PSRX(PSORXP,1,PSOFILL,"IB")),"^"))
- +20 IF 'PSOBILL
- WRITE ?43,"** NO BILL NUMBER FOR THIS FILL **"
- QUIT
- +21 SET PSOIBST=$$STATUS^IBARX(PSOBILL)
- IF PSOIBST=2
- WRITE "** COPAY CHARGE CANCELLED **"
- QUIT
- +22 WRITE ?46,$SELECT($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO"),?68,$SELECT($$PTCOV^IBCNSU3(PSODFN,XX,"PHARMACY"):"YES",1:" NO")
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +23 GOTO END
- +24 ;
- FULL ;
- +1 IF ($Y+7)>IOSL&('$GET(PSOOUT))
- DO TITLE
- +2 QUIT
- +3 ;
- TITLE ;
- +1 IF $GET(PSODV)="C"
- IF $GET(PSOPGCT)'=1
- WRITE !
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF 'Y
- SET PSOOUT=1
- QUIT
- +2 ;
- +3 WRITE @IOF
- Begin DoDot:1
- +4 WRITE !,"Patch PSO*7*142 -COPAYS BILLED BY PSO*7*123 WITH RX INSURANCE INFORMATION"
- End DoDot:1
- +5 SET Y=DT
- XECUTE ^DD("DD")
- WRITE !,"Date printed: ",Y,?70,"Page: ",PSOPGCT,!
- +6 FOR MJT=1:1:79
- WRITE "="
- +7 WRITE !,"PATIENT NAME (SSN) DIV",?44,"RX INSURANCE",?66,"RX INSURANCE"
- +8 WRITE !,?4,"RX# (FILL)",?25,"RELEASE DATE",?43,"ON RELEASE DATE",?65,"ON BILLED DATE"
- +9 WRITE !,"------------------------",?25,"------------",?43,"---------------",?65,"--------------"
- +10 SET PSOPGCT=PSOPGCT+1
- +11 QUIT
- END ;
- +1 IF '$GET(PSOOUT)
- IF $GET(PSODV)="C"
- WRITE !!,"** End of Report **"
- KILL DIR
- SET DIR(0)="E"
- SET DIR("A")="Press Return to continue"
- DO ^DIR
- KILL DIR
- +2 IF $GET(PSODV)="C"
- WRITE !
- +3 IF '$TEST
- WRITE @IOF
- DONE ;
- +1 KILL MJT,PSOPGCT,PSOPGLN,Y,DIR,X,IOP,POP,IO("Q"),DIRUT,DUOUT,DTOUT,PSORXP,PSOIBST,PSOFILL,PSOOUT,PSOBILL,PSODIV,PSODFN,BILLDT,PSOJ,PSONAM,RXP,PSODV,VA
- +2 DO ^%ZISC
- IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +3 QUIT
- +4 ;
- PRTSSN ;
- +1 NEW DFN
- +2 SET DFN=PSODFN
- DO PID^VADPT
- +3 SET PSORXP=$ORDER(^PSRX("B",RXP,""))
- IF PSORXP=""
- QUIT
- +4 SET PSODIV=$PIECE($GET(^PSRX(PSORXP,2)),"^",9)
- IF PSODIV'=""
- SET PSODIV=$PIECE($GET(^PS(59,PSODIV,0)),"^",1)
- +5 WRITE " ("_$GET(VA("BID"))_")"_" "_PSODIV
- +6 QUIT
- +7 ;