| [613] | 1 | IBAMTD1 ;ALB/CPM-MOVEMENT EVENT DRIVER INTERFACE (CON'T) ;21-OCT-91 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**45,153,179,183,202**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | EN ; Create charges for one-day admissions | 
|---|
|  | 6 | ;  Input:  DFN, DGPMA, IBDT, IBBS, IBCLDA | 
|---|
|  | 7 | ;          IBCLCT/IBCLDAY/IBCLDOL/IBCLDT (if IBCLDA'=0) | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | ; - quit if patient is not a Means Test patient at discharge | 
|---|
|  | 10 | G:'$$BIL^DGMTUB(DFN,+DGPMA) END | 
|---|
|  | 11 | N IBGMT,IBGMTR,IBGMTEFD | 
|---|
|  | 12 | S IBGMT=$$ISGMTPT^IBAGMT(DFN,+DGPMA),IBGMTR=0 | 
|---|
|  | 13 | S IBGMTEFD=$$GMTEFD^IBAGMT() | 
|---|
|  | 14 | ; - handle clock | 
|---|
|  | 15 | I $D(IBCLDT),IBCLDT>IBDT S IBY="-1^IB034" G END | 
|---|
|  | 16 | I IBCLDA D COUNT^IBAMTD S IBCLCT=IBCLCT+1 I IBCLCT>365 S IBWHER=2 D CLOCKCL^IBAUTL3 G:IBY<1 END S IBCLDA=0 | 
|---|
|  | 17 | I 'IBCLDA S IBCLDT=IBDT,IBWHER=7 D CLADD^IBAUTL3 G:IBY<1 END S IBCLCT=1,(IBCLDAY,IBCLDOL)=0 | 
|---|
|  | 18 | ; - build event | 
|---|
|  | 19 | S IBNH=$P($G(^DGCR(399.1,IBBS,0)),"^")["NURSING",IBSL="405:"_$P(DGPMA,"^",14),IBEVDT=IBDT,IBWHER=6 | 
|---|
|  | 20 | D EVADD^IBAUTL3 G:IBY<1 END | 
|---|
|  | 21 | S IBCLDAY=IBCLDAY+1 | 
|---|
|  | 22 | ; - cancel any OPT charges | 
|---|
|  | 23 | D OPT(DFN,IBDT) | 
|---|
|  | 24 | ; - process per diem | 
|---|
|  | 25 | G:IBDT<$$DIEM^IBAUTL5 COPAY | 
|---|
|  | 26 | S IBX="P",IBWHER=8 D TYPE^IBAUTL2 G:IBY<1 END | 
|---|
|  | 27 | ;If the patient has GMT Status, and the Action Type is MT Inpt (must be), then reduce the charge | 
|---|
|  | 28 | S IBGMTR=0 I IBGMT>0,DGPMA'<IBGMTEFD,$$ISGMTTYP^IBAGMT(IBATYP) S IBGMTR=1,IBCHG=$$REDUCE^IBAGMT(IBCHG) ;GMT Charge Adjustment | 
|---|
|  | 29 | S IBWHER=13 D CHADD^IBAUTL2 G:IBY<1 END | 
|---|
|  | 30 | S IBNOS=IBN,IBWHER=26 D FILER^IBAUTL5 G:IBY<1 END | 
|---|
|  | 31 | COPAY ; - process co-payment | 
|---|
|  | 32 | G:IBCLDAY>360 LAST | 
|---|
|  | 33 | I IBCLDAY>1,IBCLDAY#90=1 S IBCLDOL=0 | 
|---|
|  | 34 | S IBMAX=IBMED | 
|---|
|  | 35 | I IBGMT>0,DGPMA'<IBGMTEFD S IBMAX=$$REDUCE^IBAGMT(IBMAX) ;GMT Adjustment of Medicare Deductible | 
|---|
|  | 36 | I IBCLDAY>90,'IBNH S IBMAX=IBMAX/2 | 
|---|
|  | 37 | G:IBCLDOL'<IBMAX LAST | 
|---|
|  | 38 | S IBWHER=14 D COPAY^IBAUTL2 G:IBY<1 END | 
|---|
|  | 39 | ;If the patient has GMT Status, then reduce the charge | 
|---|
|  | 40 | S IBGMTR=0 I IBGMT>0,DGPMA'<IBGMTEFD S IBGMTR=1,IBCHG=$$REDUCE^IBAGMT(IBCHG) | 
|---|
|  | 41 | S IBCHARG=IBMAX-IBCLDOL I IBCHG<IBCHARG S IBCHARG=IBCHG | 
|---|
|  | 42 | S IBCHG=IBCHARG S:IBCHG<0 IBCHG=0 | 
|---|
|  | 43 | S IBCLDOL=IBCLDOL+IBCHG | 
|---|
|  | 44 | S IBWHER=18 D CHADD^IBAUTL2 G:IBY<1 END | 
|---|
|  | 45 | S IBNOS=IBN,IBWHER=27 D FILER^IBAUTL5 G:IBY<1 END | 
|---|
|  | 46 | LAST ; - close event, update billing clock | 
|---|
|  | 47 | S IBWHER=23,IBEVCLD=IBDT D EVCLOSE^IBAUTL3,CLUPD^IBAUTL3,CLOCKCL^IBAUTL3:IBCLCT>364 | 
|---|
|  | 48 | END Q | 
|---|
|  | 49 | ; | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | UNFLAG ; Unflag continuous patient, if not transferring from the facility. | 
|---|
|  | 52 | N TRAN S TRAN=$P(DGPMA,"^",18)=10 | 
|---|
|  | 53 | I 'TRAN!(IBASIH) W:'$G(DGQUIET) !,"Unflagging patient as continuous since 7/1/86..." D | 
|---|
|  | 54 | . D NOW^%DTC S DIE="^IBE(351.1,",DA=+$O(^IBE(351.1,"B",DFN,0)) | 
|---|
|  | 55 | . S DR=".02////"_$P(+DGPMA,".")_";.05////"_DUZ_";.06////"_% D ^DIE K DIE,DA,DR | 
|---|
|  | 56 | . W:'$G(DGQUIET) "completed." | 
|---|
|  | 57 | ; - send bulletin to Means Test Billing mailgroup, if patient did not die. | 
|---|
|  | 58 | I $P($G(^DG(405.1,+$P(DGPMA,"^",4),0)),"^")'["DEATH" D CTPT^IBAMTBU | 
|---|
|  | 59 | Q | 
|---|
|  | 60 | ; | 
|---|
|  | 61 | OPT(DFN,IBDATE) ; Cancel any OPT charges on days billed for inpatient care. | 
|---|
|  | 62 | ;  Input:    DFN  --  Pointer to patient in file #2 | 
|---|
|  | 63 | ;         IBDATE  --  Date to check for OPT charges | 
|---|
|  | 64 | N IBN,IBCRES,IBDUZ S IBDUZ=DUZ | 
|---|
|  | 65 | S IBN=$$BFO^IBECEAU(DFN,IBDATE) I 'IBN G OPTQ | 
|---|
|  | 66 | S IBCRES=$O(^IBE(350.3,"B","RECD INPATIENT CARE",0)) | 
|---|
|  | 67 | S:'IBCRES IBCRES=25 | 
|---|
|  | 68 | D CANCH^IBECEAU4(IBN,IBCRES) | 
|---|
|  | 69 | OPTQ Q | 
|---|