| [613] | 1 | IBACVA1 ;ALB/CPM - BILL CHAMPVA SUBSISTENCE CHARGE ; 29-JUL-93
 | 
|---|
 | 2 |  ;;Version 2.0 ; INTEGRATED BILLING ;**27,45,52**; 21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | BILL ; Create the CHAMPVA inpatient subsistence charge.
 | 
|---|
 | 6 |  S IBY=1 I '$$CHECK^IBECEAU(0) D ERRMSG^IBACVA2(1,1) G BILLQ
 | 
|---|
 | 7 |  S IBCHGT=0
 | 
|---|
 | 8 |  D LIM($$HTFM^XLFDT(IBBDT,1))
 | 
|---|
 | 9 |  I IBY<0 W:$G(IBJOB)=4 !!,"Cannot determine the Subsistence limit!" D ERRMSG^IBACVA2(1,1) G BILLQ
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  ; - calculate the subsistence charge for the episode
 | 
|---|
 | 12 |  F IBD=IBBDT:1:IBEDT S IBDT=$$HTFM^XLFDT(IBD,1) D  Q:IBY<0
 | 
|---|
 | 13 |  .I IBBDT'=IBEDT S VAIP("D")=IBDT_.2359 D IN5^VADPT Q:'VAIP(10)  ; on leave
 | 
|---|
 | 14 |  .D PD(IBDT) Q:IBY<0  ; can't find daily per diem
 | 
|---|
 | 15 |  .S:'IBCHGT IBFR=IBDT ; set 'from date' on 1st pass
 | 
|---|
 | 16 |  .S IBCHGT=IBCHGT+IBCHG,IBTO=IBDT ; build cumulative charge/set 'to date'
 | 
|---|
 | 17 |  I IBY<0 W:$G(IBJOB)=4 !!,"Cannot determine Subsistence per diem rate!" D ERRMSG^IBACVA2(1,1) G BILLQ
 | 
|---|
 | 18 |  I IBCHGT<IBLIM S IBCHGT=IBLIM,IBTO=IBDT
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  ; - display message and get confirmation for Cancel/Edit/Add.
 | 
|---|
 | 21 |  I $G(IBJOB)=4 D  G:IBY<0 BILLQ
 | 
|---|
 | 22 |  .W !!,"The following billing parameters have been calculated:"
 | 
|---|
 | 23 |  .W !!,"    Bill From: ",$$DAT1^IBOUTL(IBFR)
 | 
|---|
 | 24 |  .W !,"      Bill To: ",$$DAT1^IBOUTL(IBTO)
 | 
|---|
 | 25 |  .W !,"       Charge: $",IBCHGT,!
 | 
|---|
 | 26 |  .D PROC^IBECEAU4("add")
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 |  ; - bill the charge
 | 
|---|
 | 29 |  W:'$G(DGQUIET) !,"Billing the CHAMPVA inpatient subsistence charge..."
 | 
|---|
 | 30 |  S IBUNIT=1,IBDESC="CHAMPVA SUBSISTENCE",IBCHG=IBCHGT,IBSL="405:"_IBSL
 | 
|---|
 | 31 |  D ADD^IBECEAU3 I IBY<0 D ERRMSG^IBACVA2(1,1) G BILLQ
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 |  ; - release the charge to AR
 | 
|---|
 | 34 |  D AR^IBR I IBY<0 D ERRMSG^IBACVA2(1,1) G BILLQ
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 |  S:$G(IBJOB)=4 IBCOMMIT=1 W:'$G(DGQUIET) "completed."
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 | BILLQ Q
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 | LIM(DATE) ; Find the CHAMPVA subsistence limit on DATE.
 | 
|---|
 | 41 |  ;  Input:    DATE  --  The date on which to determine the limit
 | 
|---|
 | 42 |  ;  Output:  IBLIM  --  The maximum subsistence charge for an episode
 | 
|---|
 | 43 |  N X S IBLIM=0
 | 
|---|
 | 44 |  S X=$O(^IBE(350.1,"E","CHAMPVA LIMIT",0)) I 'X S IBY="-1^IB083" G LIMQ
 | 
|---|
 | 45 |  S X=$O(^IBE(350.2,"AIVDT",+X,-(DATE+.1))),X=$O(^(+X,0))
 | 
|---|
 | 46 |  S IBLIM=$P($G(^IBE(350.2,+X,0)),"^",4) I 'IBLIM S IBY="-1^IB084"
 | 
|---|
 | 47 | LIMQ Q
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 | PD(IBDT) ; Find the CHAMPVA per diem charge on IBDT.
 | 
|---|
 | 50 |  ;  Input:    IBDT  --  The date on which to determine the per diem
 | 
|---|
 | 51 |  ;  Output:  IBCHG  --  The CHAMPVA per diem charge on IBDT
 | 
|---|
 | 52 |  ;          IBATYP  --  CHAMPVA Action Type
 | 
|---|
 | 53 |  S IBATYP=$O(^IBE(350.1,"E","CHAMPVA SUBSISTENCE",0)),IBCHG=0
 | 
|---|
 | 54 |  I 'IBATYP S IBY="-1^IB008" G PDQ
 | 
|---|
 | 55 |  D COST^IBAUTL2 I 'IBCHG S IBY="-1^IB029"
 | 
|---|
 | 56 | PDQ Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 | PREV(DFN,DATE,LINK) ; Billed an admission the CHAMPVA subsistence charge?
 | 
|---|
 | 59 |  ;  Input:     DFN  --  Pointer to patient in file #2
 | 
|---|
 | 60 |  ;            DATE  --  Event (admission) date
 | 
|---|
 | 61 |  ;            LINK  --  Pointer to mvmt in file #405
 | 
|---|
 | 62 |  ;  Output:      0  --  Admission has not been billed, or
 | 
|---|
 | 63 |  ;              >0  --  ien of billed charge in file #350
 | 
|---|
 | 64 |  I '$G(DFN)!'$G(DATE)!'$G(LINK) G PREVQ
 | 
|---|
 | 65 |  N IBN,IBND,IBP,Y
 | 
|---|
 | 66 |  S IBP=0 F  S IBP=$O(^IB("ACVA",DFN,DATE,IBP)) Q:'IBP  S IBN=$$LAST^IBECEAU(IBP),IBND=$G(^IB(IBN,0)) I $P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",5)'=2,$P(IBND,"^",4)=("405:"_LINK),"^3^4^"[("^"_+$P(IBND,"^",5)_"^") S Y=IBN Q
 | 
|---|
 | 67 | PREVQ Q +$G(Y)
 | 
|---|