| 1 | IBAECO ;ALB/BGA - LONG TERM CARE OUTPATIENT TRACKER ;16-OCT-01 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**164,171,176,188,312**;21-MAR-94 | 
|---|
| 3 | ;;Per VHA DIRECTIVE 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | ; Comment- This routine is invoked via the appointment driver ^IBAMTS | 
|---|
| 6 | ;          This program checks for check outs and determines if | 
|---|
| 7 | ;          the person checking out is ELIGIBLE for Long Term Care | 
|---|
| 8 | ;          and determines if the encounter was related to LTC. | 
|---|
| 9 | ;          If the episode of care is related to LTC and the patient | 
|---|
| 10 | ;          is eligible to receive care and is compliant with all | 
|---|
| 11 | ;          the LTC business rules than the entry is added to | 
|---|
| 12 | ;          the LTC transaction file #351.8. | 
|---|
| 13 | ; | 
|---|
| 14 | ; Determine if this encounter has a status of checked out | 
|---|
| 15 | EN N IBEVT,IBEV0,DFN,IBSDHDL,IBORG,IBOE,IBLTCST,IBCL,IBDT,IBST,IBM | 
|---|
| 16 | N IBSWINFO S IBSWINFO=$$SWSTAT^IBBAPI()                   ;IB*2.0*312 | 
|---|
| 17 | S IBSDHDL=0 | 
|---|
| 18 | ; | 
|---|
| 19 | ; === ON/OFF Switch by date if before 11/15/06 software will not run | 
|---|
| 20 | ; === IBALTC=0 the Encounter is not LTC Billable pass to MT Module | 
|---|
| 21 | ; === IBALTC=1 Encounter is LTC Billable do NOT Pass to MTC | 
|---|
| 22 | ; | 
|---|
| 23 | S IBALTC=0 | 
|---|
| 24 | ;I DT<$$STDATE^IBAECU1() Q  ;quit if today<effective date | 
|---|
| 25 | F  S IBSDHDL=$O(^TMP("SDEVT",$J,IBSDHDL)) Q:'IBSDHDL  D | 
|---|
| 26 | . S IBORG=0 F  S IBORG=$O(^TMP("SDEVT",$J,IBSDHDL,IBORG)) Q:'IBORG  D | 
|---|
| 27 | . . S IBOE=0 F  S IBOE=$O(^TMP("SDEVT",$J,IBSDHDL,IBORG,"SDOE",IBOE)) Q:'IBOE  S IBEVT=$G(^(IBOE,0,"AFTER")),IBEV0=$G(^("BEFORE")) D | 
|---|
| 28 | . . . ; | 
|---|
| 29 | . . . Q:$P(IBEVT,U,6)  ; do not evaluate sibling encounters | 
|---|
| 30 | . . . Q:$P(IBEVT,U,12)=8  ; do not evaluate inpatient encounters | 
|---|
| 31 | . . . ; | 
|---|
| 32 | . . . ; set variables | 
|---|
| 33 | . . . S DFN=$P(IBEVT,U,2),IBDT=$S(+IBEVT:+IBEVT,1:+IBEV0),IBST=$P(IBEVT,U,3) | 
|---|
| 34 | . . . Q:IBDT<$$STDATE^IBAECU1 | 
|---|
| 35 | . . . Q:'DFN!('IBDT) | 
|---|
| 36 | . . . ; | 
|---|
| 37 | . . . ; Do NOT PROCESS on VistA if IBDT>=Switch Eff Date  ;CCR-930 | 
|---|
| 38 | . . . I +IBSWINFO,(IBDT+1)>$P(IBSWINFO,"^",2) Q           ;IB*2.0*312 | 
|---|
| 39 | . . . ; | 
|---|
| 40 | . . . ; stop code preset and LTC event? | 
|---|
| 41 | . . . I 'IBST Q | 
|---|
| 42 | . . . I '$$LTCSTOP^IBAECU(IBST) Q | 
|---|
| 43 | . . . ; | 
|---|
| 44 | . . . ; set flag to stop MT billing | 
|---|
| 45 | . . . S IBALTC=1 | 
|---|
| 46 | . . . ; | 
|---|
| 47 | . . . ; LTC patient check | 
|---|
| 48 | . . . S IBLTCST=+$$LTCST^IBAECU(DFN,IBDT\1,1) | 
|---|
| 49 | . . . ; | 
|---|
| 50 | . . . ; no 1010EC on file | 
|---|
| 51 | . . . I IBLTCST=0 D  D XMNOEC^IBAECU(DFN,.IBDT,.IBM) Q | 
|---|
| 52 | . . . . S IBM(1)="",IBM(2)="  Event Type:  Outpatient Encounter" | 
|---|
| 53 | . . . . S IBM(3)="",IBM(4)="Event Action:  "_$S($P(IBEV0,"^",12)'=2&($P(IBEVT,"^",12)=2):"Checked Out",IBEVT&(IBEV0):"Edited",IBEV0:"Deleted",1:"Added") | 
|---|
| 54 | . . . . S IBM(5)="",IBM(6)="    Location:  "_$S($P(IBEVT,"^",4):$P($G(^SC(+$P(IBEVT,"^",4),0)),"^"),$P(IBEVO,"^",4):$P($G(^SC(+$P(IBEVO,"^",4),0)),"^"),1:"") | 
|---|
| 55 | . . . ; | 
|---|
| 56 | . . . ; is this a back billing issue, if so, send message and quit | 
|---|
| 57 | . . . I $$LASTMJ^IBAECU()>0,$$LASTMJ^IBAECU()>IBDT D  D XMBACK^IBAECU(DFN,.IBM) Q | 
|---|
| 58 | . . . . S IBM(1)="An Outpatient Encounter was "_$S(IBEVT&(IBEV0):"Edited",IBEV0:"Deleted",1:"Added")_"." | 
|---|
| 59 | . . . . S IBM(2)="This may result in a Back Billing issue for LTC.  You should review the" | 
|---|
| 60 | . . . . S IBM(3)="patient's records for "_$$FMTE^XLFDT(IBDT)_" to ensure correct billing." | 
|---|
| 61 | . . . . S IBM(4)="LTC Billing Clock and LTC charges may have to be manually adjusted." | 
|---|
| 62 | . . . ; | 
|---|
| 63 | . . . ; add LTC clock/update last event date (if not LTC exempt) | 
|---|
| 64 | . . . I IBLTCST=2 S IBCL=$$CLOCK^IBAECU(DFN,IBDT\1) | 
|---|
| 65 | . . . ; | 
|---|
| 66 | ; | 
|---|
| 67 | Q | 
|---|
| 68 | ; | 
|---|
| 69 | CALC ; used to calculate the outpatient charge | 
|---|
| 70 | ; variables needed DFN, IBLTCST, IBCHG, IBFR | 
|---|
| 71 | ; this will adjust IBCHG so the patient is not above their calculated | 
|---|
| 72 | ; copay cap for the month. | 
|---|
| 73 | N IBTYP,IBT | 
|---|
| 74 | ; | 
|---|
| 75 | ; find all LTC charges and set flag to determine inpt or opt | 
|---|
| 76 | ; cap to be used. | 
|---|
| 77 | D TOT^IBAECU | 
|---|
| 78 | ; | 
|---|
| 79 | W !!,"  Calculated Monthly Copay Cap Type to be used: ",$S(IBTYP="I":"IN",1:"OUT"),"PATIENT" | 
|---|
| 80 | W !,"               Calculated Monthly Copay Cap is: $ ",$FN($P(IBLTCST,"^",$S(IBTYP="I":3,1:5)),",",2) | 
|---|
| 81 | W !,"                       Total previously billed: $ ",$FN(IBT,",",2) | 
|---|
| 82 | ; | 
|---|
| 83 | I IBCHG+IBT>$P(IBLTCST,"^",$S(IBTYP="I":3,1:5)) S IBCHG=$P(IBLTCST,"^",$S(IBTYP="I":3,1:5))-IBT | 
|---|
| 84 | ; | 
|---|
| 85 | ; check for negative $ amount cap | 
|---|
| 86 | I $P(IBLTCST,"^",$S(IBTYP="I":3,1:5))<0 S IBCHG=0 | 
|---|
| 87 | ; | 
|---|
| 88 | Q | 
|---|