- BPSRPT8 ;BHAM ISC/BEE - ECME REPORTS ;14-FEB-05
- ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5,7,8,10,11,19,20,23,24,28**;JUN 2004;Build 22
- ;;Per VA Directive 6402, this routine should not be modified.
- ;
- ;Reference to IB NCPCP NON-BILLABLE STATUS REASONS (#366.17) supported by ICR 6136
- ;
- Q
- ;
- ;Routine to Display the Reports in Excel
- ;
- ;Print Report Line 1
- ;
- ; Input Variable -> BPRTYPE,BPDIV,BPGRPLAN,BPDFN,BPRX,BPREF,BPX,BPSRTDT
- ; BPBIL,BPINS,BPCOLL
- ;
- WRLINE1(BPRTYPE,BPREC,BPDIV,BPGRPLAN,BPDFN,BPRX,BPREF,BPX,BPSRTDT,BPBIL,BPINS,BPCOLL,BPPSEQ) ;
- ;
- N BP59,BP02,BP03,BPREC2
- S BP59=$P(BPX,U,3)
- S BP02=+$P($G(^BPST(BP59,0)),U,4)
- S BP03=+$P($G(^BPST(BP59,0)),U,5)
- ;Division
- I (",5,6,8,")[BPRTYPE S BPREC=$S(BPDIV=0:"BLANK",$$DIVNAME^BPSSCRDS(BPDIV)]"":$$DIVNAME^BPSSCRDS(BPDIV),1:BPDIV)_U
- I (",1,2,3,4,7,9,10,")[(","_BPRTYPE_",") S BPREC=$S(BPDIV=0:"BLANK",$$DIVNAME^BPSSCRDS(BPDIV)]"":$E($$DIVNAME^BPSSCRDS(BPDIV),1,12),1:$E(BPDIV,1,12))_U
- ;
- ;Insurance
- I BPRTYPE=8 S BPREC=BPREC_$E(BPGRPLAN,1,90)_U
- ;
- I (",1,2,3,4,7,9,")[BPRTYPE D
- . S BPREC=BPREC_$E(BPGRPLAN,1,21)_U ;Insurance
- . I BPRTYPE=2 S BPREC=BPREC_$$INSBIN^BPSRPT6(BP59)_U ;BIN
- . S BPREC=BPREC_$E($$PATNAME^BPSRPT6(BPDFN),1,13)_U ;Patient Name
- . S BPREC=BPREC_$$SSN4^BPSRPT6(BPDFN)_U ;L4SSN
- ;
- I (",5,6,8,")[BPRTYPE D
- . S BPREC=BPREC_$$PATNAME^BPSRPT6(BPDFN)_U ;Patient Name
- . S BPREC=BPREC_"("_$$SSN4^BPSRPT6(BPDFN)_")"_U ;L4SSN
- ;
- I (BPRTYPE=1)!(BPRTYPE=4) D Q
- . N PTRESP
- . S BPREC=BPREC_$$ELIGCODE^BPSSCR05($P(BPX,U,3))_U ;Eligibility
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U ;Ingredient Cost
- . S BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U ;Dispensing Fee
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U ;Ingredient Cost Paid
- . S BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U ;Dispensing Fee Paid
- . S PTRESP=$$PTRESP^BPSSCRLG(BP03) S BPREC=BPREC_$S('PTRESP:PTRESP,1:"-"_PTRESP)_U ;Patient Pay Amount
- . S BPREC=BPREC_$TR($J(BPINS,10,2)," ")_U ;$Ins. Paid
- . S BPREC=BPREC_$S(BPCOLL]"":$TR($J(BPCOLL,10,2)," "),1:"")_U ;$Collected
- ;
- I BPRTYPE=2 D Q
- . S BPREC=BPREC_$$ELIGCODE^BPSSCR05($P(BPX,U,3))_U ;Eligibility
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U ;Released On
- . ;RX INFO
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_U ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$$RXCOB($G(BPPSEQ))_U
- . S BPREC=BPREC_$S($$CLOSED02^BPSSCR03($P(^BPST($P(BPX,U,3),0),U,4))=1:"C",1:"O")_U ;Open/Closed
- ;
- I BPRTYPE=3 D Q
- . N PTRESP
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U ;Ingredient Cost
- . S BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U ;Dispensing Fee
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U ;Ingredient Cost Paid
- . S BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U ;Dispensing Fee Paid
- . S PTRESP=$$PTRESP^BPSSCRLG(BP03) S BPREC=BPREC_$S('PTRESP:PTRESP,1:"-"_PTRESP)_U ;Patient Pay Amount
- . S BPREC=BPREC_$TR($J(BPINS,10,2)," ")_U ;Insurance Response
- ;
- I BPRTYPE=5 D Q
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1($$TRANDT^BPSRPT2($P(BPX,U,3),1))_U ;Completed
- . S BPREC=BPREC_$$TTYPE^BPSRPT7($P(BPX,U,4),$P(BPX,U,5),BPPSEQ)_U ;Trans Type
- . S BPREC=BPREC_$$RESPONSE^BPSRPT7($P(BPX,U,4),$P(BPX,U,5),BPPSEQ)_U ;Payer Response
- . S BPREC=BPREC_$$RXCOB($G(BPPSEQ))_U ;RX COB
- ;
- I BPRTYPE=7 D Q
- . ;RX INFO
- . S BPREC=BPREC_$$ELIGCODE^BPSSCR05($P(BPX,U,3))_U ;Eligibility
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_U ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$S($P(BPX,U,13):"REJ",1:"")_U
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),15)_U ;Drug
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- ;
- I (BPRTYPE=8) D Q
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$TR($J(BPINS,10,2)," ")_U ;$Ins. Paid
- . S BPREC=BPREC_$S(BPCOLL]"":$TR($J(BPCOLL,10,2)," "),1:"")_U ;$Collected
- ;
- I BPRTYPE=9 D Q
- . N ELGCD S ELGCD=$P(BPX,U,1)
- . S BPREC=BPREC_$S(ELGCD="V":"VET",ELGCD="T":"TRI",ELGCD="C":"CVA",1:"UNK")_U
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_U ;Refill
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$S($P(BPX,U,2)]"":$TR($J($P(BPX,U,2),10,2)," "),1:"")_U ;$Drug Cost
- ;
- I BPRTYPE=10 D Q
- . N BPDPAY
- . S BPDPAY=$P(BPX,U,17)
- . S BPREC=BPREC_$E(BPGRPLAN,1,21)_U ;Insurance
- . S BPREC=BPREC_$E($$PATNAME^BPSRPT6(BPDFN),1,13)_U ;Patient Name
- . S BPREC=BPREC_$$SSN4^BPSRPT6(BPDFN)_U ;L4SSN
- . S BPREC=BPREC_$$ELIGCODE^BPSSCR05($P(BPX,U,3))_U ;Eligibility
- . S BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U ;RX Number
- . S BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($P(BPX,U,3))_U ;Refill/ECME Number
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U ;Date
- . S BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U ;Ingredient Cost
- . S BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U ;Dispensing Fee
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U ;Ingredient Cost Paid
- . S BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U ;Dispensing Fee Paid
- . S BPREC=BPREC_$TR($J(BPDPAY,10,2)," ")_U ;Pt. Resp (Ins)
- . S BPREC=BPREC_$TR($J(BPINS,10,2)," ")_U ;$Ins. Paid
- . S BPREC=BPREC_$S(BPCOLL]"":$TR($J(BPCOLL,10,2)," "),1:"")_U ;$Collected
- Q
- ;
- ;Print Report Line 2
- ;
- ; Input Variable -> BPRTYPE,BPX,BPRX,BPREF,BPBIL,BPGRPLAN
- ;
- WRLINE2(BPRTYPE,BPREC,BPX,BPRX,BPREF,BPBIL,BPGRPLAN,BPPSEQ) ;
- N BP59,BP02
- S BP59=$P(BPX,U,3)
- S BP02=+$P($G(^BPST(BP59,0)),U,4)
- ;
- I (BPRTYPE=1)!(BPRTYPE=4) D Q
- . ;Drug
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),15)_U
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U ;Released On
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U
- . ;RX INFO
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_U ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . I BPRTYPE=4 S BPREC=BPREC_$$RXCOB($G(BPPSEQ))_U
- . S BPREC=BPREC_$S($P(BPX,U,13):"REJ",1:"")
- . I BPRTYPE=1 S BPREC=BPREC_U_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U_$$RXCOB($G(BPPSEQ)) ;Bill # and RX COB
- ;
- I BPRTYPE=2 D Q
- . S BPREC=BPREC_$E($$GRPID^BPSRPT2(+$P(BPX,U,3)),3,10)_U ;Group ID
- . S BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U ;Ingredient Cost
- . S BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U ;Dispensing Fee
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$$QTY^BPSRPT6($P(BPX,U,3))_U ;Qty
- . S BPREC=BPREC_$$GETNDC^BPSRPT6(BPRX,BPREF)_U ;NDC#
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),15)_U ;Drug
- ;
- I BPRTYPE=3 D Q
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),15)_U ;Drug
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- . ;RX INFO
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_U ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$$RXCOB($G(BPPSEQ))_U
- . S BPREC=BPREC_$$ELIGCODE^BPSSCR05($P(BPX,U,3))_U ;Eligibility
- . S BPREC=BPREC_$S($P(BPX,U,13):"REJ",1:"")
- ;
- I BPRTYPE=5 D Q
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),32)_U ;Drug
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- . ;RX INFO
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_U ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$S($P(BPX,U,13):"REJ",1:"")_U
- . I $P(BPGRPLAN,U,2)]"" S BPREC=BPREC_$E($P(BPGRPLAN,U,2),1,30) ;Insurance
- . S BPREC=BPREC_U_$$ELAPSE^BPSRPT6($P(BPX,U,3)) ;Elapsed Time
- ;
- I BPRTYPE=7 D Q
- . S BPREC=BPREC_$E($$GRPID^BPSRPT2(+$P(BPX,U,3)),3,10)_U ;Group ID
- . S BPREC=BPREC_$TR($J(BPBIL,10,2)," ")_U ;$Billed
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(+$$CLOSEDT^BPSRPT2(+$P(BPX,U,3)))_U ;Close Dt/Time
- . S BPREC=BPREC_$E($$CLSBY^BPSRPT6(+$P(BPX,U,3)),1,25)_U ;Close By
- . S BPREC=BPREC_$E($P($$CLRSN^BPSRPT7(+$P(BPX,U,3)),U,2),1,30)_U ;Close Reason
- ;
- I BPRTYPE=8 D Q
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),27)_U ;Drug
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_" " ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_" " ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$TR($E($$GRPID^BPSRPT2(+$P(BPX,U,3)),3,10)," ","")_U ;Group ID
- . S BPREC=BPREC_$E(BPGRPLAN,1,30)_U ;Insurance
- . S BPREC=BPREC_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U ;Bill#
- ;
- I BPRTYPE=9 D Q
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,4),15)_U ;Drug
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U ;NDC
- . S BPREC=BPREC_$$DATTIM^BPSRPT1($P(BPX,U,5))_U ;Release Date
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U ;Fill Location
- . S BPREC=BPREC_$$RXSTANAM^BPSSCRU2($P(BPX,U,6)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U,5):"/R",1:"/N")_U ;RL/NR
- . S BPREC=BPREC_$$GET1^DIQ(366.17,$P(BPX,U,7),.01,"E") ;Non-Billable Status Reason - ICR 6136
- ;
- I BPRTYPE=10 D Q
- . N BPRXINFO,BPDUPST
- . S BPDUPST=$P(BPX,U,16),BPRXINFO=""
- . S BPREC=BPREC_$$DRGNAM^BPSRPT6($P(BPX,U,14),15)_U ;Drug
- . S BPREC=BPREC_$TR($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U ;NDC
- . S BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U ;Release Date
- . ;RX INFO
- . S BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_" " ;Fill Location
- . S BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($P(BPX,U,3)))_" " ;Fill Type
- . S BPREC=BPREC_$$RXSTATUS^BPSRPT6($P(BPX,U,3)) ;Status
- . S BPREC=BPREC_$S($P(BPX,U):"/R",1:"/N")_U ;RL/NR
- . ;
- . S BPREC=BPREC_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U ;Bill#
- . S BPREC=BPREC_$$RXCOB($G(BPPSEQ))_U ;RX COB
- . S BPREC=BPREC_BPDUPST ;Status (duplicate)
- Q
- ;
- ;Print Report Line 3
- ;
- ; Input Variable -> BPRTYPE,BPX
- ;
- WRLINE3(BPRTYPE,BPREC,BPX) ;
- N BP59,BPSARR,BPRJCNT,BPRJEXP,BPZZ,BPRICE
- S BP59=+$P(BPX,U,3)
- ;
- I (",7,")[BPRTYPE D Q
- . S BPREC=BPREC_$$CLAIMID^BPSRPT2(BP59)_U ;Claim ID
- . S BPRJCNT=$$REJTEXT^BPSRPT2(BP59,.BPSARR)
- . S BPREC=BPREC_$S(BPRJCNT>1:"Y",1:"N") ;Mult Rej
- . ;Write one record per reject/close code
- . S:+BPRJCNT=0 BPRJCNT=1
- . F BPZZ=1:1:BPRJCNT D
- . . S BPREC2=$G(BPREC)_U_$P($G(BPSARR(BPZZ)),":")_U_$P($G(BPSARR(BPZZ)),":",2) W !,$E(BPREC2,1,255)
- ;
- I (",2,")[BPRTYPE D Q
- . S BPREC=BPREC_$P($$PRESCIN^BPSRPT6($P(BPX,U,3)),U)_U ;Prescriber ID
- . S BPREC=BPREC_$E($P($$PRESCIN^BPSRPT6($P(BPX,U,3)),U,2),1,13)_U ;Prescriber Name (truncated to 13)
- . S BPRJCNT=$$REJTEXT^BPSRPT2(BP59,.BPSARR)
- . S BPREC=BPREC_$S(BPRJCNT>1:"Y",1:"N") ;Mult Rej
- . ;Write one record per reject/close code
- . S:+BPRJCNT=0 BPRJCNT=1
- . F BPZZ=1:1:BPRJCNT S BPREC2="" D
- . . S BPREC2=$G(BPREC)_U_$P($G(BPSARR(BPZZ)),":")_U_$P($G(BPSARR(BPZZ)),":",2) W !,$E(BPREC2,1,255)
- ;
- I BPRTYPE=4 D
- . ;Method
- . I $$AUTOREV^BPSRPT1(BP59) S BPREC=BPREC_U_"AUTO"_U
- . E S BPREC=BPREC_U_"REGULAR"_U
- . ;Return Status
- . I $P(BPX,U,15)["ACCEPTED" S BPREC=BPREC_"ACCEPTED"_U
- . E S BPREC=BPREC_"REJECTED"_U
- . ;Reason
- . S BPREC=BPREC_$$RVSRSN^BPSRPT7(+$P(BPX,U,3))
- ;
- I BPRTYPE=8 D
- . S BPRICE=$$PRICEVAL^BPSRPT5(BP59)
- . S BPREC=BPREC_$P($G(BPRICE),U,3)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,4)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,5)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,6)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,7)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,2)_U
- . S BPREC=BPREC_$P($G(BPRICE),U,1)_U
- ;
- ;Write the record
- I (",1,3,4,9,10,")[(","_BPRTYPE_",") W !,$E(BPREC,1,255) Q
- W !,$G(BPREC)
- Q
- ;
- ;Print Excel Header - was moved to BPSRPT8A
- ;
- ;return RX COB as the 1st letter of the RX COB indicator
- RXCOB(BPPSEQ) ;
- Q $S(BPPSEQ=1:"p",BPPSEQ=2:"s",1:"")
- ;BPSRPT8
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HBPSRPT8 13676 printed Apr 23, 2025@18:07:18 Page 2
- BPSRPT8 ;BHAM ISC/BEE - ECME REPORTS ;14-FEB-05
- +1 ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5,7,8,10,11,19,20,23,24,28**;JUN 2004;Build 22
- +2 ;;Per VA Directive 6402, this routine should not be modified.
- +3 ;
- +4 ;Reference to IB NCPCP NON-BILLABLE STATUS REASONS (#366.17) supported by ICR 6136
- +5 ;
- +6 QUIT
- +7 ;
- +8 ;Routine to Display the Reports in Excel
- +9 ;
- +10 ;Print Report Line 1
- +11 ;
- +12 ; Input Variable -> BPRTYPE,BPDIV,BPGRPLAN,BPDFN,BPRX,BPREF,BPX,BPSRTDT
- +13 ; BPBIL,BPINS,BPCOLL
- +14 ;
- WRLINE1(BPRTYPE,BPREC,BPDIV,BPGRPLAN,BPDFN,BPRX,BPREF,BPX,BPSRTDT,BPBIL,BPINS,BPCOLL,BPPSEQ) ;
- +1 ;
- +2 NEW BP59,BP02,BP03,BPREC2
- +3 SET BP59=$PIECE(BPX,U,3)
- +4 SET BP02=+$PIECE($GET(^BPST(BP59,0)),U,4)
- +5 SET BP03=+$PIECE($GET(^BPST(BP59,0)),U,5)
- +6 ;Division
- +7 IF (",5,6,8,")[BPRTYPE
- SET BPREC=$SELECT(BPDIV=0:"BLANK",$$DIVNAME^BPSSCRDS(BPDIV)]"":$$DIVNAME^BPSSCRDS(BPDIV),1:BPDIV)_U
- +8 IF (",1,2,3,4,7,9,10,")[(","_BPRTYPE_",")
- SET BPREC=$SELECT(BPDIV=0:"BLANK",$$DIVNAME^BPSSCRDS(BPDIV)]"":$EXTRACT($$DIVNAME^BPSSCRDS(BPDIV),1,12),1:$EXTRACT(BPDIV,1,12))_U
- +9 ;
- +10 ;Insurance
- +11 IF BPRTYPE=8
- SET BPREC=BPREC_$EXTRACT(BPGRPLAN,1,90)_U
- +12 ;
- +13 IF (",1,2,3,4,7,9,")[BPRTYPE
- Begin DoDot:1
- +14 ;Insurance
- SET BPREC=BPREC_$EXTRACT(BPGRPLAN,1,21)_U
- +15 ;BIN
- IF BPRTYPE=2
- SET BPREC=BPREC_$$INSBIN^BPSRPT6(BP59)_U
- +16 ;Patient Name
- SET BPREC=BPREC_$EXTRACT($$PATNAME^BPSRPT6(BPDFN),1,13)_U
- +17 ;L4SSN
- SET BPREC=BPREC_$$SSN4^BPSRPT6(BPDFN)_U
- End DoDot:1
- +18 ;
- +19 IF (",5,6,8,")[BPRTYPE
- Begin DoDot:1
- +20 ;Patient Name
- SET BPREC=BPREC_$$PATNAME^BPSRPT6(BPDFN)_U
- +21 ;L4SSN
- SET BPREC=BPREC_"("_$$SSN4^BPSRPT6(BPDFN)_")"_U
- End DoDot:1
- +22 ;
- +23 IF (BPRTYPE=1)!(BPRTYPE=4)
- Begin DoDot:1
- +24 NEW PTRESP
- +25 ;Eligibility
- SET BPREC=BPREC_$$ELIGCODE^BPSSCR05($PIECE(BPX,U,3))_U
- +26 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +27 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +28 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +29 ;Ingredient Cost
- SET BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U
- +30 ;Dispensing Fee
- SET BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U
- +31 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +32 ;Ingredient Cost Paid
- SET BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U
- +33 ;Dispensing Fee Paid
- SET BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U
- +34 ;Patient Pay Amount
- SET PTRESP=$$PTRESP^BPSSCRLG(BP03)
- SET BPREC=BPREC_$SELECT('PTRESP:PTRESP,1:"-"_PTRESP)_U
- +35 ;$Ins. Paid
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPINS,10,2)," ")_U
- +36 ;$Collected
- SET BPREC=BPREC_$SELECT(BPCOLL]"":$TRANSLATE($JUSTIFY(BPCOLL,10,2)," "),1:"")_U
- End DoDot:1
- QUIT
- +37 ;
- +38 IF BPRTYPE=2
- Begin DoDot:1
- +39 ;Eligibility
- SET BPREC=BPREC_$$ELIGCODE^BPSSCR05($PIECE(BPX,U,3))_U
- +40 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +41 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +42 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +43 ;Released On
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U
- +44 ;RX INFO
- +45 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +46 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_U
- +47 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +48 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +49 SET BPREC=BPREC_$$RXCOB($GET(BPPSEQ))_U
- +50 ;Open/Closed
- SET BPREC=BPREC_$SELECT($$CLOSED02^BPSSCR03($PIECE(^BPST($PIECE(BPX,U,3),0),U,4))=1:"C",1:"O")_U
- End DoDot:1
- QUIT
- +51 ;
- +52 IF BPRTYPE=3
- Begin DoDot:1
- +53 NEW PTRESP
- +54 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +55 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +56 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +57 ;Ingredient Cost
- SET BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U
- +58 ;Dispensing Fee
- SET BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U
- +59 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +60 ;Ingredient Cost Paid
- SET BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U
- +61 ;Dispensing Fee Paid
- SET BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U
- +62 ;Patient Pay Amount
- SET PTRESP=$$PTRESP^BPSSCRLG(BP03)
- SET BPREC=BPREC_$SELECT('PTRESP:PTRESP,1:"-"_PTRESP)_U
- +63 ;Insurance Response
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPINS,10,2)," ")_U
- End DoDot:1
- QUIT
- +64 ;
- +65 IF BPRTYPE=5
- Begin DoDot:1
- +66 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +67 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +68 ;Completed
- SET BPREC=BPREC_$$DATTIM^BPSRPT1($$TRANDT^BPSRPT2($PIECE(BPX,U,3),1))_U
- +69 ;Trans Type
- SET BPREC=BPREC_$$TTYPE^BPSRPT7($PIECE(BPX,U,4),$PIECE(BPX,U,5),BPPSEQ)_U
- +70 ;Payer Response
- SET BPREC=BPREC_$$RESPONSE^BPSRPT7($PIECE(BPX,U,4),$PIECE(BPX,U,5),BPPSEQ)_U
- +71 ;RX COB
- SET BPREC=BPREC_$$RXCOB($GET(BPPSEQ))_U
- End DoDot:1
- QUIT
- +72 ;
- +73 IF BPRTYPE=7
- Begin DoDot:1
- +74 ;RX INFO
- +75 ;Eligibility
- SET BPREC=BPREC_$$ELIGCODE^BPSSCR05($PIECE(BPX,U,3))_U
- +76 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +77 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +78 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +79 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_U
- +80 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +81 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +82 SET BPREC=BPREC_$SELECT($PIECE(BPX,U,13):"REJ",1:"")_U
- +83 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),15)_U
- +84 SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- End DoDot:1
- QUIT
- +85 ;
- +86 IF (BPRTYPE=8)
- Begin DoDot:1
- +87 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +88 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +89 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +90 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +91 ;$Ins. Paid
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPINS,10,2)," ")_U
- +92 ;$Collected
- SET BPREC=BPREC_$SELECT(BPCOLL]"":$TRANSLATE($JUSTIFY(BPCOLL,10,2)," "),1:"")_U
- End DoDot:1
- QUIT
- +93 ;
- +94 IF BPRTYPE=9
- Begin DoDot:1
- +95 NEW ELGCD
- SET ELGCD=$PIECE(BPX,U,1)
- +96 SET BPREC=BPREC_$SELECT(ELGCD="V":"VET",ELGCD="T":"TRI",ELGCD="C":"CVA",1:"UNK")_U
- +97 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +98 ;Refill
- SET BPREC=BPREC_BPREF_U
- +99 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +100 ;$Drug Cost
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U,2)]"":$TRANSLATE($JUSTIFY($PIECE(BPX,U,2),10,2)," "),1:"")_U
- End DoDot:1
- QUIT
- +101 ;
- +102 IF BPRTYPE=10
- Begin DoDot:1
- +103 NEW BPDPAY
- +104 SET BPDPAY=$PIECE(BPX,U,17)
- +105 ;Insurance
- SET BPREC=BPREC_$EXTRACT(BPGRPLAN,1,21)_U
- +106 ;Patient Name
- SET BPREC=BPREC_$EXTRACT($$PATNAME^BPSRPT6(BPDFN),1,13)_U
- +107 ;L4SSN
- SET BPREC=BPREC_$$SSN4^BPSRPT6(BPDFN)_U
- +108 ;Eligibility
- SET BPREC=BPREC_$$ELIGCODE^BPSSCR05($PIECE(BPX,U,3))_U
- +109 ;RX Number
- SET BPREC=BPREC_$$RXNUM^BPSRPT6(BPRX)_$$COPAY^BPSRPT6(BPRX)_U
- +110 ;Refill/ECME Number
- SET BPREC=BPREC_BPREF_"/"_$$ECMENUM^BPSRPT1($PIECE(BPX,U,3))_U
- +111 ;Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(BPSRTDT)_U
- +112 ;Ingredient Cost
- SET BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U
- +113 ;Dispensing Fee
- SET BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U
- +114 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +115 ;Ingredient Cost Paid
- SET BPREC=BPREC_$$ICPAID^BPSSCRLG(BP03)_U
- +116 ;Dispensing Fee Paid
- SET BPREC=BPREC_$$DFPAID^BPSSCRLG(BP03)_U
- +117 ;Pt. Resp (Ins)
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPDPAY,10,2)," ")_U
- +118 ;$Ins. Paid
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPINS,10,2)," ")_U
- +119 ;$Collected
- SET BPREC=BPREC_$SELECT(BPCOLL]"":$TRANSLATE($JUSTIFY(BPCOLL,10,2)," "),1:"")_U
- End DoDot:1
- QUIT
- +120 QUIT
- +121 ;
- +122 ;Print Report Line 2
- +123 ;
- +124 ; Input Variable -> BPRTYPE,BPX,BPRX,BPREF,BPBIL,BPGRPLAN
- +125 ;
- WRLINE2(BPRTYPE,BPREC,BPX,BPRX,BPREF,BPBIL,BPGRPLAN,BPPSEQ) ;
- +1 NEW BP59,BP02
- +2 SET BP59=$PIECE(BPX,U,3)
- +3 SET BP02=+$PIECE($GET(^BPST(BP59,0)),U,4)
- +4 ;
- +5 IF (BPRTYPE=1)!(BPRTYPE=4)
- Begin DoDot:1
- +6 ;Drug
- +7 SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),15)_U
- +8 ;Released On
- SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- +9 SET BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U
- +10 ;RX INFO
- +11 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +12 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_U
- +13 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +14 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +15 IF BPRTYPE=4
- SET BPREC=BPREC_$$RXCOB($GET(BPPSEQ))_U
- +16 SET BPREC=BPREC_$SELECT($PIECE(BPX,U,13):"REJ",1:"")
- +17 ;Bill # and RX COB
- IF BPRTYPE=1
- SET BPREC=BPREC_U_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U_$$RXCOB($GET(BPPSEQ))
- End DoDot:1
- QUIT
- +18 ;
- +19 IF BPRTYPE=2
- Begin DoDot:1
- +20 ;Group ID
- SET BPREC=BPREC_$EXTRACT($$GRPID^BPSRPT2(+$PIECE(BPX,U,3)),3,10)_U
- +21 ;Ingredient Cost
- SET BPREC=BPREC_$$INGRCST^BPSSCRLG(BP02)_U
- +22 ;Dispensing Fee
- SET BPREC=BPREC_$$DISPFEE^BPSSCRLG(BP02)_U
- +23 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +24 ;Qty
- SET BPREC=BPREC_$$QTY^BPSRPT6($PIECE(BPX,U,3))_U
- +25 ;NDC#
- SET BPREC=BPREC_$$GETNDC^BPSRPT6(BPRX,BPREF)_U
- +26 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),15)_U
- End DoDot:1
- QUIT
- +27 ;
- +28 IF BPRTYPE=3
- Begin DoDot:1
- +29 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),15)_U
- +30 SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- +31 ;RX INFO
- +32 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +33 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_U
- +34 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +35 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +36 SET BPREC=BPREC_$$RXCOB($GET(BPPSEQ))_U
- +37 ;Eligibility
- SET BPREC=BPREC_$$ELIGCODE^BPSSCR05($PIECE(BPX,U,3))_U
- +38 SET BPREC=BPREC_$SELECT($PIECE(BPX,U,13):"REJ",1:"")
- End DoDot:1
- QUIT
- +39 ;
- +40 IF BPRTYPE=5
- Begin DoDot:1
- +41 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),32)_U
- +42 SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- +43 ;RX INFO
- +44 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +45 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_U
- +46 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +47 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +48 SET BPREC=BPREC_$SELECT($PIECE(BPX,U,13):"REJ",1:"")_U
- +49 ;Insurance
- IF $PIECE(BPGRPLAN,U,2)]""
- SET BPREC=BPREC_$EXTRACT($PIECE(BPGRPLAN,U,2),1,30)
- +50 ;Elapsed Time
- SET BPREC=BPREC_U_$$ELAPSE^BPSRPT6($PIECE(BPX,U,3))
- End DoDot:1
- QUIT
- +51 ;
- +52 IF BPRTYPE=7
- Begin DoDot:1
- +53 ;Group ID
- SET BPREC=BPREC_$EXTRACT($$GRPID^BPSRPT2(+$PIECE(BPX,U,3)),3,10)_U
- +54 ;$Billed
- SET BPREC=BPREC_$TRANSLATE($JUSTIFY(BPBIL,10,2)," ")_U
- +55 ;Close Dt/Time
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(+$$CLOSEDT^BPSRPT2(+$PIECE(BPX,U,3)))_U
- +56 ;Close By
- SET BPREC=BPREC_$EXTRACT($$CLSBY^BPSRPT6(+$PIECE(BPX,U,3)),1,25)_U
- +57 ;Close Reason
- SET BPREC=BPREC_$EXTRACT($PIECE($$CLRSN^BPSRPT7(+$PIECE(BPX,U,3)),U,2),1,30)_U
- End DoDot:1
- QUIT
- +58 ;
- +59 IF BPRTYPE=8
- Begin DoDot:1
- +60 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),27)_U
- +61 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_" "
- +62 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_" "
- +63 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +64 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +65 ;Group ID
- SET BPREC=BPREC_$TRANSLATE($EXTRACT($$GRPID^BPSRPT2(+$PIECE(BPX,U,3)),3,10)," ","")_U
- +66 ;Insurance
- SET BPREC=BPREC_$EXTRACT(BPGRPLAN,1,30)_U
- +67 ;Bill#
- SET BPREC=BPREC_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U
- End DoDot:1
- QUIT
- +68 ;
- +69 IF BPRTYPE=9
- Begin DoDot:1
- +70 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,4),15)_U
- +71 ;NDC
- SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- +72 ;Release Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1($PIECE(BPX,U,5))_U
- +73 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_U
- +74 ;Status
- SET BPREC=BPREC_$$RXSTANAM^BPSSCRU2($PIECE(BPX,U,6))
- +75 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U,5):"/R",1:"/N")_U
- +76 ;Non-Billable Status Reason - ICR 6136
- SET BPREC=BPREC_$$GET1^DIQ(366.17,$PIECE(BPX,U,7),.01,"E")
- End DoDot:1
- QUIT
- +77 ;
- +78 IF BPRTYPE=10
- Begin DoDot:1
- +79 NEW BPRXINFO,BPDUPST
- +80 SET BPDUPST=$PIECE(BPX,U,16)
- SET BPRXINFO=""
- +81 ;Drug
- SET BPREC=BPREC_$$DRGNAM^BPSRPT6($PIECE(BPX,U,14),15)_U
- +82 ;NDC
- SET BPREC=BPREC_$TRANSLATE($$GETNDC^BPSRPT6(BPRX,BPREF),"-")_U
- +83 ;Release Date
- SET BPREC=BPREC_$$DATTIM^BPSRPT1(+BPX)_U
- +84 ;RX INFO
- +85 ;Fill Location
- SET BPREC=BPREC_$$MWC^BPSRPT6(BPRX,BPREF)_" "
- +86 ;Fill Type
- SET BPREC=BPREC_$$RTBCKNAM^BPSRPT1($$RTBCK^BPSRPT1($PIECE(BPX,U,3)))_" "
- +87 ;Status
- SET BPREC=BPREC_$$RXSTATUS^BPSRPT6($PIECE(BPX,U,3))
- +88 ;RL/NR
- SET BPREC=BPREC_$SELECT($PIECE(BPX,U):"/R",1:"/N")_U
- +89 ;
- +90 ;Bill#
- SET BPREC=BPREC_$$BILL^BPSRPT6(BPRX,BPREF,BPPSEQ)_U
- +91 ;RX COB
- SET BPREC=BPREC_$$RXCOB($GET(BPPSEQ))_U
- +92 ;Status (duplicate)
- SET BPREC=BPREC_BPDUPST
- End DoDot:1
- QUIT
- +93 QUIT
- +94 ;
- +95 ;Print Report Line 3
- +96 ;
- +97 ; Input Variable -> BPRTYPE,BPX
- +98 ;
- WRLINE3(BPRTYPE,BPREC,BPX) ;
- +1 NEW BP59,BPSARR,BPRJCNT,BPRJEXP,BPZZ,BPRICE
- +2 SET BP59=+$PIECE(BPX,U,3)
- +3 ;
- +4 IF (",7,")[BPRTYPE
- Begin DoDot:1
- +5 ;Claim ID
- SET BPREC=BPREC_$$CLAIMID^BPSRPT2(BP59)_U
- +6 SET BPRJCNT=$$REJTEXT^BPSRPT2(BP59,.BPSARR)
- +7 ;Mult Rej
- SET BPREC=BPREC_$SELECT(BPRJCNT>1:"Y",1:"N")
- +8 ;Write one record per reject/close code
- +9 if +BPRJCNT=0
- SET BPRJCNT=1
- +10 FOR BPZZ=1:1:BPRJCNT
- Begin DoDot:2
- +11 SET BPREC2=$GET(BPREC)_U_$PIECE($GET(BPSARR(BPZZ)),":")_U_$PIECE($GET(BPSARR(BPZZ)),":",2)
- WRITE !,$EXTRACT(BPREC2,1,255)
- End DoDot:2
- End DoDot:1
- QUIT
- +12 ;
- +13 IF (",2,")[BPRTYPE
- Begin DoDot:1
- +14 ;Prescriber ID
- SET BPREC=BPREC_$PIECE($$PRESCIN^BPSRPT6($PIECE(BPX,U,3)),U)_U
- +15 ;Prescriber Name (truncated to 13)
- SET BPREC=BPREC_$EXTRACT($PIECE($$PRESCIN^BPSRPT6($PIECE(BPX,U,3)),U,2),1,13)_U
- +16 SET BPRJCNT=$$REJTEXT^BPSRPT2(BP59,.BPSARR)
- +17 ;Mult Rej
- SET BPREC=BPREC_$SELECT(BPRJCNT>1:"Y",1:"N")
- +18 ;Write one record per reject/close code
- +19 if +BPRJCNT=0
- SET BPRJCNT=1
- +20 FOR BPZZ=1:1:BPRJCNT
- SET BPREC2=""
- Begin DoDot:2
- +21 SET BPREC2=$GET(BPREC)_U_$PIECE($GET(BPSARR(BPZZ)),":")_U_$PIECE($GET(BPSARR(BPZZ)),":",2)
- WRITE !,$EXTRACT(BPREC2,1,255)
- End DoDot:2
- End DoDot:1
- QUIT
- +22 ;
- +23 IF BPRTYPE=4
- Begin DoDot:1
- +24 ;Method
- +25 IF $$AUTOREV^BPSRPT1(BP59)
- SET BPREC=BPREC_U_"AUTO"_U
- +26 IF '$TEST
- SET BPREC=BPREC_U_"REGULAR"_U
- +27 ;Return Status
- +28 IF $PIECE(BPX,U,15)["ACCEPTED"
- SET BPREC=BPREC_"ACCEPTED"_U
- +29 IF '$TEST
- SET BPREC=BPREC_"REJECTED"_U
- +30 ;Reason
- +31 SET BPREC=BPREC_$$RVSRSN^BPSRPT7(+$PIECE(BPX,U,3))
- End DoDot:1
- +32 ;
- +33 IF BPRTYPE=8
- Begin DoDot:1
- +34 SET BPRICE=$$PRICEVAL^BPSRPT5(BP59)
- +35 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,3)_U
- +36 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,4)_U
- +37 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,5)_U
- +38 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,6)_U
- +39 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,7)_U
- +40 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,2)_U
- +41 SET BPREC=BPREC_$PIECE($GET(BPRICE),U,1)_U
- End DoDot:1
- +42 ;
- +43 ;Write the record
- +44 IF (",1,3,4,9,10,")[(","_BPRTYPE_",")
- WRITE !,$EXTRACT(BPREC,1,255)
- QUIT
- +45 WRITE !,$GET(BPREC)
- +46 QUIT
- +47 ;
- +48 ;Print Excel Header - was moved to BPSRPT8A
- +49 ;
- +50 ;return RX COB as the 1st letter of the RX COB indicator
- RXCOB(BPPSEQ) ;
- +1 QUIT $SELECT(BPPSEQ=1:"p",BPPSEQ=2:"s",1:"")
- +2 ;BPSRPT8