| [613] | 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 | 
|---|