| 1 | IBAMTV ;ALB/CPM - BACK-BILLING SUPPORT FOR IVM ; 31-MAY-94
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**15,153**;21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; Input:     DFN  --  Pointer to the patient in file #2
 | 
|---|
| 6 |  ;          DGMTP  --  Zeroth node of previous MT in file #408.31
 | 
|---|
| 7 |  ;          DGMTA  --  Zeroth node of verified MT in file #408.31
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ; - begin back-billing from the original completed date.
 | 
|---|
| 10 |  S IBSTART=$P(DGMTA,"^",7) G:'IBSTART!(IBSTART'<DT) END
 | 
|---|
| 11 |  S IBEND=$$FMADD^XLFDT(IBSTART\1,364)
 | 
|---|
| 12 |  S:IBEND'<DT IBEND=$$FMADD^XLFDT(DT,-1)
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; - build array of episodes of care to be billed
 | 
|---|
| 15 |  D CARE^IBAMTV1
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ; - analyze the array and build charges
 | 
|---|
| 18 |  I $D(^TMP("IBAMTV",$J)) D BLD^IBAMTV2
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  ; - send a message if any charges need to be reviewed
 | 
|---|
| 21 |  I '$D(^IB("AJ",DFN)) G END
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  K IBT S IBPT=$$PT^IBEFUNC(DFN)
 | 
|---|
| 24 |  S XMSUB="BACK-BILLING OF MEANS TEST CHARGES"
 | 
|---|
| 25 |  S IBT(1)="A verified Means Test has just been received from the IVM Center."
 | 
|---|
| 26 |  S IBT(2)="Means Test charges have been back-billed for the following patient:"
 | 
|---|
| 27 |  S IBT(3)=" " S IBC=3
 | 
|---|
| 28 |  S IBDUZ=DUZ D PAT^IBAERR1
 | 
|---|
| 29 |  S IBC=IBC+1,IBT(IBC)=" "
 | 
|---|
| 30 |  S IBC=IBC+1,IBT(IBC)="Please note that these charges are on hold, pending a manual review before"
 | 
|---|
| 31 |  S IBC=IBC+1,IBT(IBC)="being passed to Accounts Receivable.  Please use the option 'Release Charges"
 | 
|---|
| 32 |  S IBC=IBC+1,IBT(IBC)="Pending Review' to review the charges and pass them to Accounts Receivable."
 | 
|---|
| 33 |  D SEND^IBACVA2
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | END K IBDUZ,IBEND,IBSTART,^TMP("IBAMTV",$J)
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | CANC ; Cancel Means Test charges if an IVM-verified Means Test is deleted.
 | 
|---|
| 40 |  ;  Input:    DFN  --  Pointer to the patient in file #2
 | 
|---|
| 41 |  ;          DGMTP  --  Zeroth node of previous MT in file #408.31
 | 
|---|
| 42 |  ;          DGMTA  --  Zeroth node of verified MT in file #408.31
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  Q:'$$CHECK^IBECEAU
 | 
|---|
| 45 |  S IBCRES=+$O(^IBE(350.3,"B","MT STATUS CHANGED FROM YES",0))
 | 
|---|
| 46 |  S:'IBCRES IBCRES=22 S IBJOB=9,IBWHER=30,IBDUZ=DUZ,IBFOUND=0
 | 
|---|
| 47 |  S IBST=+DGMTA,IBEND=$$FMADD^XLFDT(IBST,364) S:IBEND>DT IBEND=DT
 | 
|---|
| 48 |  S IBZ="" F  S IBZ=$O(^IB("AFDT",DFN,IBZ)) Q:'IBZ  I -IBZ'>IBEND S IBZ1=0 F  S IBZ1=$O(^IB("AFDT",DFN,IBZ,IBZ1)) Q:'IBZ1  D
 | 
|---|
| 49 |  .S IBDA=0 F  S IBDA=$O(^IB("AF",IBZ1,IBDA)) Q:'IBDA  D
 | 
|---|
| 50 |  ..Q:'$D(^IB(IBDA,0))  S IBX=^(0)
 | 
|---|
| 51 |  ..Q:$P(IBX,"^",8)["ADMISSION"  ; skip event records
 | 
|---|
| 52 |  ..Q:$P(IBX,"^",9)'=IBDA  ; look only at original actions
 | 
|---|
| 53 |  ..S (IBN,IBORIG)=$$LAST^IBECEAU(IBDA),IBND=$G(^IB(IBN,0)),IBND1=$G(^(1))
 | 
|---|
| 54 |  ..I IBN=IBDA&($P(IBX,"^",5)=10)!($P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",5)=2) Q  ; already cancelled
 | 
|---|
| 55 |  ..I $P(IBND,"^",15)<IBST!($P(IBND,"^",14)>IBEND) Q  ; out of range
 | 
|---|
| 56 |  ..Q:$$BIL^DGMTUB(DFN,$P(IBND,"^",14))  ; still Means Test billable
 | 
|---|
| 57 |  ..D CANCH^IBECEAU4(IBN,IBCRES)
 | 
|---|
| 58 |  ..S IBN=$$LAST^IBECEAU(IBDA),IBND=$G(^IB(IBN,0)),IBX=$G(^IB(IBORIG,0))
 | 
|---|
| 59 |  ..I IBN=IBDA&($P(IBX,"^",5)=10)!($P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",5)=2) S IBFOUND=1 D ADJCL
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I IBFOUND D CANBULL
 | 
|---|
| 62 |  K IBCRES,IBST,IBEND,IBZ,IBZ1,IBDA,IBX,IBN,IBND,IBND1,IBJOB,IBWHER,IBDUZ,IBFOUND,IBORIG
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | CANBULL ; Generate the cancellation bulletin.
 | 
|---|
| 66 |  K IBT S IBPT=$$PT^IBEFUNC(DFN)
 | 
|---|
| 67 |  S XMSUB="CANCELLATION OF BACK-BILLED MEANS TEST CHARGES"
 | 
|---|
| 68 |  S IBT(1)="An IVM-verified Means Test was just deleted for the following patient:"
 | 
|---|
| 69 |  S IBT(2)=" " S IBC=2
 | 
|---|
| 70 |  S IBDUZ=DUZ D PAT^IBAERR1
 | 
|---|
| 71 |  S IBC=IBC+1,IBT(IBC)=" "
 | 
|---|
| 72 |  S IBC=IBC+1,IBT(IBC)="All back-billed Means Test charges for this patient were cancelled."
 | 
|---|
| 73 |  S IBC=IBC+1,IBT(IBC)="You should review this patient's Means Test billing history and billing"
 | 
|---|
| 74 |  S IBC=IBC+1,IBT(IBC)="clock for accuracy, starting on "_$$DAT1^IBOUTL(+DGMTA)_"."
 | 
|---|
| 75 |  D SEND^IBACVA2
 | 
|---|
| 76 |  K IBDUZ
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | ADJCL ; Roll back the billing clock for cancelled charges.
 | 
|---|
| 80 |  ;  Input:   IBX  --  Zeroth node of charge which has been cancelled.
 | 
|---|
| 81 |  ;           DFN  --  Pointer to the patient in file #2
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  N IBCL,IBCLD,IBUN,IBCLDAY,IBCHG,IBCLP,IBAP
 | 
|---|
| 84 |  Q:$P(IBX,"^",8)["OPT COPAY"  ; no adjustments needed for opt copays
 | 
|---|
| 85 |  S IBCL=$$OLDCL^IBAMTV2(DFN,$P(IBX,"^",14)) Q:'IBCL  ; no clock
 | 
|---|
| 86 |  S IBCLD=$G(^IBE(351,IBCL,0)) Q:'IBCLD
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  ; - handle per diem charges
 | 
|---|
| 89 |  I $P($G(^IBE(350.1,+$P(IBX,"^",3),0)),"^",11)=3 D
 | 
|---|
| 90 |  .S IBUN=$P(IBX,"^",6),IBCLDAY=$P(IBCLD,"^",9)
 | 
|---|
| 91 |  .S $P(^IBE(351,IBCL,0),"^",9)=$S(IBCLDAY>IBUN:IBCLDAY-IBUN,1:0) D UPD
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ; - handle inpt copay charges
 | 
|---|
| 94 |  I $P($G(^IBE(350.1,+$P(IBX,"^",3),0)),"^",11)=2 D
 | 
|---|
| 95 |  .S IBCHG=$P(IBX,"^",7) Q:'IBCHG
 | 
|---|
| 96 |  .F IBCLP=8:-1:5 S IBAP=$P(IBCLD,"^",IBCLP) D  Q:'IBCHG
 | 
|---|
| 97 |  ..I IBCHG>IBAP S IBCHG=IBCHG-IBAP,$P(^IBE(351,IBCL,0),"^",IBCLP)=0 D UPD Q
 | 
|---|
| 98 |  ..S $P(^IBE(351,IBCL,0),"^",IBCLP)=IBAP-IBCHG,IBCHG=0 D UPD
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | UPD ; Update user and edit date on the Billing Clock.
 | 
|---|
| 103 |  D NOW^%DTC S $P(^IBE(351,IBCL,1),"^",3,4)=DUZ_"^"_%
 | 
|---|
| 104 |  Q
 | 
|---|