[613] | 1 | IBCNSBL2 ;ALB/CPM - 'BILL NEXT PAYOR' BULLETIN ; 08-AUG-96
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**52,80,153,240**;21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EOB(IBIFN,IBORIG,IBPYMT,IBTXT) ; determine if there may be another payer for this claim that should be billed
|
---|
| 6 | ; in general the EOB of the current bill is required to be sent with the next TP bill in the series
|
---|
| 7 | ; if there is another Third Party Payer then returns true, if any other payer (including patient) then set array
|
---|
| 8 | ;
|
---|
| 9 | ; Input: IBIFN -- Pointer to AR (file #430), or Claim (file #399)
|
---|
| 10 | ; IBORIG -- Original amount of the claim
|
---|
| 11 | ; IBPYMT -- Total Amount paid on the claim
|
---|
| 12 | ;
|
---|
| 13 | ; Output: IBTXT -- Array, pass by reference, if needed
|
---|
| 14 | ; If a another payer (third party or patient) for the claim can be found,
|
---|
| 15 | ; this array will contain the text that explains who the next payer is
|
---|
| 16 | ;
|
---|
| 17 | ; Returns: 0 -- no need to forward EOB (no next Third Party payer found or payment=>amount due)
|
---|
| 18 | ; 'true^Next payer' -- if the EOB of the bill needs to be forwarded for inclusion in the next bill,
|
---|
| 19 | ; generally there must be another payer for the bill that is
|
---|
| 20 | ; third party, non-patient, and payment was not the amount due
|
---|
| 21 | ;
|
---|
| 22 | N X,IB,IBPOL,IBCS,IBARCAT,IBSEC,IBRETURN,IBSEQ,IBINS S IBRETURN=0
|
---|
| 23 | I '$G(IBIFN) G EOBQ
|
---|
| 24 | I $G(^PRCA(430,IBIFN,0))="" G EOBQ
|
---|
| 25 | I '$G(IBORIG) G EOBQ
|
---|
| 26 | I $G(IBPYMT)="" G EOBQ
|
---|
| 27 | ;
|
---|
| 28 | S IB=$G(^DGCR(399,IBIFN,0)) I IB="" G EOBQ
|
---|
| 29 | ;
|
---|
| 30 | ; - quit if there is no remaining balance on the bill
|
---|
| 31 | I IBPYMT'<IBORIG G EOBQ
|
---|
| 32 | ;
|
---|
| 33 | S IBARCAT=$P($G(^DGCR(399.3,+$P(IB,"^",7),0)),"^",6) I 'IBARCAT G EOBQ
|
---|
| 34 | ;
|
---|
| 35 | ; - for Champva third party claims, bill the Champva Center next
|
---|
| 36 | I IBARCAT=28 D G EOBQ
|
---|
| 37 | . S IBTXT(14)="You should prepare a claim to be sent to the CHAMPVA Center.",IBRETURN="1^CHAMPVA Center"
|
---|
| 38 | ;
|
---|
| 39 | ; - for Tricare third party claims, next bill Tricare or the patient
|
---|
| 40 | I IBARCAT=32 D G EOBQ
|
---|
| 41 | . ;
|
---|
| 42 | . ; - third party bill went to Tricare Supplemental carrier, bill patient next
|
---|
| 43 | . S IBSEQ=$P($G(^DGCR(399,IBIFN,0)),U,21),IBSEQ=$S(IBSEQ="P":"I1",IBSEQ="S":"I2",IBSEQ="T":"I3",1:-1)
|
---|
| 44 | . S IBPOL=$G(^DGCR(399,IBIFN,IBSEQ))
|
---|
| 45 | . S IBCS=$D(^IBE(355.1,"D","CS",+$P($G(^IBA(355.3,+$P(IBPOL,"^",18),0)),"^",9)))>0
|
---|
| 46 | . I IBCS D Q
|
---|
| 47 | .. S IBTXT(14)="This claim was sent to the TRICARE Supplemental insurance carrier."
|
---|
| 48 | .. S IBTXT(15)="You should send a copayment charge to the patient."
|
---|
| 49 | . ;
|
---|
| 50 | . ; - otherwise third party bill went to patients Reimb. Ins carrier, bill the tricare FI next
|
---|
| 51 | . S IBRETURN="1^TRICARE Fiscal Intermediary"
|
---|
| 52 | . S IBTXT(14)="You should prepare a claim to send to the TRICARE Fiscal Intermediary."
|
---|
| 53 | ;
|
---|
| 54 | ; - for Tricare claims, bill the patient or Tricare supplemental policy
|
---|
| 55 | I IBARCAT=30 D G EOBQ
|
---|
| 56 | . ;
|
---|
| 57 | . ; - if the patient has a Tricare supplemental policy, bill it
|
---|
| 58 | . I $$CHPSUP(+$P(IB,"^",2)) D Q
|
---|
| 59 | .. S IBRETURN="1^TRICARE Supplemental policy"
|
---|
| 60 | .. S IBTXT(14)="The patient has a TRICARE Supplemental policy."
|
---|
| 61 | .. S IBTXT(15)="You should prepare a claim to be sent to that carrier."
|
---|
| 62 | . ;
|
---|
| 63 | . ; - otherwise, bill the patient
|
---|
| 64 | . S IBTXT(14)="You should send a copayment charge to the patient."
|
---|
| 65 | ;
|
---|
| 66 | ; - all other bills: if there is a next payer in the series then a bill needs to be created for that payer
|
---|
| 67 | S IBSEQ=$P($G(^DGCR(399,IBIFN,0)),U,21),IBSEQ=$S(IBSEQ="P":2,IBSEQ="S":3,1:"")
|
---|
| 68 | I +IBSEQ S IBINS=$P($G(^DGCR(399,IBIFN,"M")),U,IBSEQ) I +IBINS D
|
---|
| 69 | . S IBRETURN=+IBINS_U_$P($G(^DIC(36,+IBINS,0)),U,1)
|
---|
| 70 | . S IBTXT(14)="There is a "_$S(IBSEQ=2:"secondary",1:"tertiary")_" payor associated with this claim."
|
---|
| 71 | . S IBTXT(15)="You may need to prepare a claim to be sent to "_$P(IBRETURN,U,2)_"."
|
---|
| 72 | ;
|
---|
| 73 | EOBQ Q IBRETURN
|
---|
| 74 | ;
|
---|
| 75 | BULL(IBIFN,IBORIG,IBPYMT) ; Generate bulletin detailing next payer for a claim, if any
|
---|
| 76 | ;
|
---|
| 77 | ; Input: IBIFN -- Pointer to AR (file #430), or Claim (file #399)
|
---|
| 78 | ; IBORIG -- Original amount of the claim
|
---|
| 79 | ; IBPYMT -- Total Amount paid on the claim
|
---|
| 80 | ;
|
---|
| 81 | ; Output: Bulletin: Mail Group MEANS TEST BILLING MAIL GROUP: IB MEANS TEST (350.9,.11)
|
---|
| 82 | ; If a secondary payor for the claim can be found, a bulletin will be sent
|
---|
| 83 | ; to the billing unit to alert them to forward the claim to that payor.
|
---|
| 84 | ;
|
---|
| 85 | N X,IB,IBX,IBTXT,IBP,IBGRP
|
---|
| 86 | ;
|
---|
| 87 | S IBX=$$EOB($G(IBIFN),$G(IBORIG),$G(IBPYMT),.IBTXT) I '$D(IBTXT) G BULLQ
|
---|
| 88 | ;
|
---|
| 89 | S IB=$G(^DGCR(399,IBIFN,0)) I IB="" G BULLQ
|
---|
| 90 | S IBP=$$PT^IBEFUNC(+$P(IB,"^",2))
|
---|
| 91 | ;
|
---|
| 92 | ; - create remainder of bulletin
|
---|
| 93 | N XMDUZ,XMTEXT,XMY,XMSUB
|
---|
| 94 | S XMSUB="Notification of Subsequent Payor"
|
---|
| 95 | S XMDUZ="INTEGRATED BILLING PACKAGE",XMTEXT="IBTXT("
|
---|
| 96 | K XMY S XMY(DUZ)=""
|
---|
| 97 | ;
|
---|
| 98 | S IBTXT(1)="A payment has been made on the following claim, which has been identified"
|
---|
| 99 | S IBTXT(2)="as potentially having a subsequent payor:"
|
---|
| 100 | S IBTXT(3)=" "
|
---|
| 101 | S IBTXT(4)=" Bill Number: "_$P($G(^PRCA(430,IBIFN,0)),"^")
|
---|
| 102 | S IBTXT(5)=" Patient: "_$E($P(IBP,"^"),1,30)_" Pt. Id: "_$P(IBP,"^",2)
|
---|
| 103 | S IBTXT(6)=" Bill Type: "_$P($G(^DGCR(399.3,+$P(IB,"^",7),0)),"^")
|
---|
| 104 | S IBTXT(7)=" Orig Amount: $"_$J(IBORIG,0,2)
|
---|
| 105 | S IBTXT(8)=" Amount Paid: $"_$J(IBPYMT,0,2)
|
---|
| 106 | S IBTXT(9)=" "
|
---|
| 107 | ;
|
---|
| 108 | S IBX=$G(^DGCR(399,IBIFN,0))
|
---|
| 109 | S IBTXT(10)="Bill Sequence: "_$$EXSET^IBEFUNC($P(IBX,U,21),399,.21)
|
---|
| 110 | S IBTXT(11)=" Bill Payer: "_$E($P($G(^DIC(36,+$G(^DGCR(399,IBIFN,"MP")),0)),U,1),1,20)
|
---|
| 111 | ;
|
---|
| 112 | S IBX=$G(^DGCR(399,IBIFN,"M"))
|
---|
| 113 | I IBX S IBTXT(10)=IBTXT(10)_$J("",(40-$L(IBTXT(10))))_" Primary Carrier: "_$E($P($G(^DIC(36,+IBX,0)),U,1),1,20)
|
---|
| 114 | I +$P(IBX,U,2) S IBTXT(11)=IBTXT(11)_$J("",(40-$L(IBTXT(11))))_"Secondary Carrier: "_$E($P($G(^DIC(36,+$P(IBX,U,2),0)),U,1),1,20)
|
---|
| 115 | I +$P(IBX,U,3) S IBTXT(12)=$J("",40)_" Tertiary Carrier: "_$E($P($G(^DIC(36,+$P(IBX,U,3),0)),U,1),1,20)
|
---|
| 116 | S IBTXT(13)=" "
|
---|
| 117 | ;
|
---|
| 118 | ; - send to the Means Test billing mailgroup (for now)
|
---|
| 119 | S IBGRP=$P($G(^XMB(3.8,+$P($G(^IBE(350.9,1,0)),"^",11),0)),"^")
|
---|
| 120 | I IBGRP]"" S XMY("G."_IBGRP_"@"_^XMB("NETNAME"))=""
|
---|
| 121 | ;
|
---|
| 122 | D ^XMD
|
---|
| 123 | ;
|
---|
| 124 | BULLQ Q
|
---|
| 125 | ;
|
---|
| 126 | ;
|
---|
| 127 | CHPSUP(DFN) ; Does the patient have a TRICARE Supplemental policy?
|
---|
| 128 | ; Input: DFN -- Pointer to the patient in file #2
|
---|
| 129 | ; Output: 0 - Has no TRICARE Supplemental policy
|
---|
| 130 | ; 1 - Yes, patient has such a policy.
|
---|
| 131 | ;
|
---|
| 132 | N X,IBINS,IBCS
|
---|
| 133 | D ALL^IBCNS1(DFN,"IBINS",1,DT)
|
---|
| 134 | S (IBCS,X)=0 F S X=$O(IBINS(X)) Q:'X D Q:IBCS
|
---|
| 135 | .I $D(^IBE(355.1,"D","CS",+$P($G(IBINS(X,355.3)),"^",9))) S IBCS=1
|
---|
| 136 | Q IBCS
|
---|