| 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
 | 
|---|