| 1 | IBAUTL5 ;ALB/CPM - MEANS TEST BILLING UTILITIES (CON'T.) ; 02-JAN-92 | 
|---|
| 2 | ;;Version 2.0 ; INTEGRATED BILLING ;**15**; 21-MAR-94 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | PASS ; Find unbilled charges for an event and pass to Accounts Receivable. | 
|---|
| 6 | ;  Input:  IBEVDA, IBY    Output:  IBCHCDA, IBCHPDA are reset to 0. | 
|---|
| 7 | N IBNOS,IBACTN | 
|---|
| 8 | S IBACTN=0 F  S IBACTN=$O(^IB("AF",IBEVDA,IBACTN)) Q:'IBACTN!(IBY<1)  I IBACTN'=IBEVDA,$P($G(^IB(IBACTN,0)),"^",5)=1 S IBNOS=IBACTN D FILER | 
|---|
| 9 | S (IBCHCDA,IBCHPDA)=0 Q | 
|---|
| 10 | ; | 
|---|
| 11 | FILER ; Pass charge to Accounts Receivable.   Input:  IBNOS | 
|---|
| 12 | ; - first, get a bill number and build a complete charge.. | 
|---|
| 13 | N IBATYP,IBNOW D NOW^%DTC S IBNOW=% | 
|---|
| 14 | ;S IBTOTL=0,IBATYP=$P($G(^IB(IBNOS,0)),"^",3) | 
|---|
| 15 | ;D BILLNO^IBAUTL K IBARTYP I Y<1 S IBY=Y G FILERQ | 
|---|
| 16 | ;S DIE="^IB(",DA=IBNOS,DR=".05////2;.11////"_IBIL_";.12////"_IBTRAN | 
|---|
| 17 | ;D ^DIE K DIE,DR,DA I $D(Y) S IBY="-1^IB020" G FILERQ | 
|---|
| 18 | ; | 
|---|
| 19 | ; - doing IVM-related back-billing? | 
|---|
| 20 | I $G(IBJOB)=9 S DIE="^IB(",DA=IBNOS,DR=".05////21" D ^DIE K DIE,DA,DR G FILERQ | 
|---|
| 21 | ; | 
|---|
| 22 | ; - and then pass the charge to A/R. | 
|---|
| 23 | S IBSEQNO=1,IBDUZ=DUZ D ^IBR K IBSEQNO,IBDUZ,IBARTYP,IBN | 
|---|
| 24 | I Y<1 S IBY=Y,IBWHER=IBWHER+25 G FILERQ | 
|---|
| 25 | ;I $G(IBJOB)=1,IBNOS S ^TMP($J,"IBAMTC","I",+$G(DFN),IBNOS)="" | 
|---|
| 26 | FILERQ Q | 
|---|
| 27 | ; | 
|---|
| 28 | LAST ; Find Last Billed date, if one exists, for pts. w/o billable events | 
|---|
| 29 | ;  Input:  DFN, IBADMDT    Output:  IBBDT (if past event exists) | 
|---|
| 30 | N IBD,IBDATE,IBTEMP,J,DA S IBD=IBADMDT\1,J=-9999999,(IBDATE,DA)=0 | 
|---|
| 31 | F  S J=$O(^IB("AFDT",DFN,J)) Q:'J!(-J<IBD)  D | 
|---|
| 32 | . F  S DA=$O(^IB("AFDT",DFN,J,DA)) Q:'DA  D | 
|---|
| 33 | ..  I $P($G(^IB(DA,0)),"^",8)["ADMISSION" S IBTEMP=$P(^(0),"^",18) D | 
|---|
| 34 | ...   I 'IBDATE S IBDATE=IBTEMP Q | 
|---|
| 35 | ...   I IBTEMP>IBDATE S IBDATE=IBTEMP | 
|---|
| 36 | I IBDATE S X=IBDATE D H^%DTC S IBBDT=%H+1 | 
|---|
| 37 | Q | 
|---|
| 38 | ; | 
|---|
| 39 | DIEM() ; Find the earliest date for which the per diem charge may be billed. | 
|---|
| 40 | Q $S($P($G(^IBE(350.9,1,0)),"^",12):$P(^(0),"^",12),1:9999999) | 
|---|
| 41 | ; | 
|---|
| 42 | SECT(FTS) ; Find the billable bedsection. | 
|---|
| 43 | ;  Input:     Facility Treating Specialty (IEN from file #45.7) | 
|---|
| 44 | ;  Returned:  Billable bedsection from file 399.1 (MCCR UTILITY), or | 
|---|
| 45 | ;             0 if the specialty does not have a corresp. bedsection | 
|---|
| 46 | S FTS=$P($G(^DIC(42.4,+$P($G(^DIC(45.7,+FTS,0)),"^",2),0)),"^",5) | 
|---|
| 47 | Q $S(FTS]"":+$O(^DGCR(399.1,"B",FTS,0)),1:0) | 
|---|
| 48 | ; | 
|---|
| 49 | CONT(DFN) ; Find continuous patient discharge date. | 
|---|
| 50 | ;  Input:  DFN  Returned:        0 - not continuous | 
|---|
| 51 | ;                          9999999 - still continuous, or | 
|---|
| 52 | ;                          actual discharge date from continuous stay | 
|---|
| 53 | N X S X=0 | 
|---|
| 54 | I $O(^IBE(351.1,"B",DFN,0)) S X=$P($G(^IBE(351.1,+$O(^(0)),0)),"^",2) S:'X X=9999999 | 
|---|
| 55 | Q X | 
|---|
| 56 | ; | 
|---|
| 57 | STD(DFN) ; Is the patient's A/R Statement date 4 days from now? | 
|---|
| 58 | ;  Input:  DFN    Returned:  Statement date in 4 days? (1 - yes, 0 - no) | 
|---|
| 59 | S X1=DT,X2=4 D C^%DTC | 
|---|
| 60 | Q $$PST^PRCAFN(DFN_";DPT(")=+$E(X,6,7) | 
|---|
| 61 | ; | 
|---|
| 62 | OE(DGPMDA) ; Was the patient admitted for Observation & Examination? | 
|---|
| 63 | ;  Input:     DGPMDA - pointer to 0th node of pt mvt (adm) in file #405 | 
|---|
| 64 | ;  Returned:  O&E Admission? (1 - yes, 0 - no) | 
|---|
| 65 | N AR,SOA,DGPM0 | 
|---|
| 66 | S DGPM0=$G(^DGPM(+DGPMDA,0)) | 
|---|
| 67 | S AR=+$P(DGPM0,"^",12),SOA=+$G(^DGPT(+$P(DGPM0,"^",16),101)) | 
|---|
| 68 | Q $D(^DIC(43.4,"D",17.45,AR))!($D(^DIC(45.1,"B","1T",SOA))) | 
|---|
| 69 | ; | 
|---|
| 70 | ASIH(PM) ; Is patient movement an ASIH movement? | 
|---|
| 71 | ;  Input:     PM - 0th node of patient movement in file #405 | 
|---|
| 72 | ;  Returned:  ASIH Movement? (1 - yes, 0 - no) | 
|---|
| 73 | Q "^13^14^40^41^42^43^44^45^46^47^"[("^"_$P($G(PM),"^",18)_"^") | 
|---|
| 74 | ; | 
|---|
| 75 | CVA(DFN) ; Is CHAMPVA the patient's Primary Eligibility? | 
|---|
| 76 | ;  Input:  DFN    Returned:  Prim Elig = CHAMPVA? (1 - yes, 0 - no) | 
|---|
| 77 | Q $P($G(^DIC(8,+$G(^DPT(+$G(DFN),.36)),0)),"^",9)=12 | 
|---|