| [623] | 1 | IBCEF21 ;ALB/TMP - FORMATTER SPECIFIC BILL FUNCTIONS CONTINUED ;06-FEB-96 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**51,296**;21-MAR-94 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | COID(IBIFN) ; Claim office ID | 
|---|
|  | 5 | N IBCOID,IBCOID1,IBIN | 
|---|
|  | 6 | S IBIN=$$CURR^IBCEF2(IBIFN),IBCOID1="",IBCOID=$P($$ADDRESS^IBCNSC0(IBIN,.11,5),U,11) | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | I IBIN D | 
|---|
|  | 9 | . I $D(^IBA(364.2,"C",IBIFN)) S IBCOID1=$P($$ADDRESS^IBCNSC0(IBIN,.18,5),U,11) Q  ;Rx | 
|---|
|  | 10 | . I $P($G(^DGCR(399,IBIFN,0)),U,5)<3 S IBCOID1=$P($$ADDRESS^IBCNSC0(IBIN,.12,5),U,11) Q  ;Inpt | 
|---|
|  | 11 | . I $P($G(^DGCR(399,IBIFN,0)),U,5)'<3 S IBCOID1=$P($$ADDRESS^IBCNSC0(IBIN,.16,5),U,11) Q  ;Outpt | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | Q $S(IBCOID1'="":IBCOID1,1:IBCOID) | 
|---|
|  | 14 | ; | 
|---|
|  | 15 | ESGHPST(IBIFN,COB) ; return insureds employment status if the bill policy defined by COB is an Employer Sponsored Group Health Plan | 
|---|
|  | 16 | ; ESGHP FLAG (2.312,2.1) ^ the employment status (2.312,2.11) | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | N PPOL,DFN,X,Y S Y="" | 
|---|
|  | 19 | S PPOL=$$PPOL^IBCEF2($G(IBIFN),$G(COB)),DFN=$P($G(^DGCR(399,+$G(IBIFN),0)),U,2) | 
|---|
|  | 20 | I +PPOL,+DFN S X=$G(^DPT(DFN,.312,+PPOL,2)) S Y=+$P(X,U,10)_U_$P(X,U,11) | 
|---|
|  | 21 | Q Y | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | ESGHPNL(IBIFN,COB) ; return employer name and location if the bill policy defined by COB is an Employer Sponsored Group Health Plan | 
|---|
|  | 24 | ; ESGHP FLAG (2.312,2.1) ^ employer name (2.312,2.015) ^ employer city (2.312,2.05) | 
|---|
|  | 25 | ;                        ^ employer state abbr (2.312,2.06) ^ employer state ifn  (2.312,2.06) | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | N PPOL,DFN,X,Y S Y="" | 
|---|
|  | 28 | S PPOL=$$PPOL^IBCEF2($G(IBIFN),$G(COB)),DFN=$P($G(^DGCR(399,+$G(IBIFN),0)),U,2) | 
|---|
|  | 29 | I +PPOL,+DFN S X=$G(^DPT(DFN,.312,+PPOL,2)) S Y=+$P(X,U,10)_U_$P(X,U,9)_U_$P(X,U,5)_U_$P($G(^DIC(5,+$P(X,U,6),0)),U,2)_U_$P(X,U,6) | 
|---|
|  | 30 | Q Y | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | REMARKS(IBIFN) ; Compile array of bill remarks | 
|---|
|  | 33 | ;IBIFN = bill ien | 
|---|
|  | 34 | N Z,Z0,Z1,IBARRAY,IBSM | 
|---|
|  | 35 | S Z=0 | 
|---|
|  | 36 | ;S:$P($G(^DGCR(399,IBIFN,"U1")),U,2) Z=Z+1,Z0=$P(^("U1"),U,2),IBXDATA(Z)="OFFSET AMOUNT: "_"$"_+$P(Z0,".")_"."_$E($P(Z0,".",2)_"00",1,2) | 
|---|
|  | 37 | S:$P($G(^DGCR(399,IBIFN,"U1")),U,8)'="" Z=Z+1,IBXDATA(Z)=$P(^("U1"),U,8) ;Bill comment on bill | 
|---|
|  | 38 | S Z0=$G(^DGCR(399,IBIFN,0)),Z1=$G(^DGCR(399.3,+$P(Z0,U,7),0)) | 
|---|
|  | 39 | D SET^IBCSC5B(IBIFN,.IBARRAY) | 
|---|
|  | 40 | I $P($G(IBARRAY),U,2) D  ;Prosthetics | 
|---|
|  | 41 | . S Z0=0 F  S Z0=$O(IBARRAY(Z0)) Q:Z0=""  S Z1=0 F  S Z1=$O(IBARRAY(Z0,Z1)) Q:'Z1  S Z=Z+1,IBXDATA(Z)="Prosthetic: "_$E($P($$PIN^IBCSC5B(Z1),U,2),1,39)_" "_$E(Z0,4,5)_"/"_$E(Z0,6,7)_"/"_$E(Z0,1,2) | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | CREM(IBIFN) ; Compile array of bill remarks common to every bill | 
|---|
|  | 45 | ;IBIFN = bill ien | 
|---|
|  | 46 | N Z | 
|---|
|  | 47 | S Z=0 | 
|---|
|  | 48 | S:$P($G(^IBE(350.9,1,1)),U,4)'="" Z=Z+1,IBXDATA(Z)=$P(^(1),U,4) ;Site specific 'every bill' comment | 
|---|
|  | 49 | Q | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | ADMDT(IBIFN,NOOUTCK) ; Calculate admission/start of care date/time | 
|---|
|  | 52 | ; IBIFN = bill ien | 
|---|
|  | 53 | ; NOOUTCK = flag that will: | 
|---|
|  | 54 | ;          (1) no check for inpt episode overlap for outpt | 
|---|
|  | 55 | ;          (0 or null) performs check for inpt episode overlap for outpt | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | ; Returns IBXDATA = fileman date format | 
|---|
|  | 58 | N Z,Z0,Z1 | 
|---|
|  | 59 | S Z=$G(^DGCR(399,IBIFN,0)),Z1=$P($G(^("U")),U,20),Z0=$$INPAT^IBCEF(IBIFN,1) | 
|---|
|  | 60 | S IBXDATA=$S(Z0&$P(Z,U,8):$P($G(^DGPT(+$P(Z,U,8),0)),U,2),1:"") | 
|---|
|  | 61 | S:'IBXDATA IBXDATA=$P(Z,U,3)_$S(Z0&(Z1<25):"."_$E("0",$L(Z1))_Z1,1:"") | 
|---|
|  | 62 | ; Check to see if outpt episode (date in event date) overlaps inpt | 
|---|
|  | 63 | ;  episode - use admit date if it does | 
|---|
|  | 64 | I 'Z0,IBXDATA,'$G(NOOUTCK) D | 
|---|
|  | 65 | . N VAINDT,VAIN,DFN | 
|---|
|  | 66 | . S VAINDT=IBXDATA,DFN=$P($G(^DGCR(399,IBIFN,0)),U) | 
|---|
|  | 67 | . D INP^VADPT S IBXDATA=+VAIN(7) S:'IBXDATA IBXDATA="" | 
|---|
|  | 68 | I 'IBXDATA,'Z0 S IBXDATA=$$SERVDT^IBCEF(IBIFN,,2) | 
|---|
|  | 69 | Q | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | DISDT(IBIFN) ; Calculate discharge date | 
|---|
|  | 72 | ; IBIFN = bill ien | 
|---|
|  | 73 | N Z,Z0 | 
|---|
|  | 74 | S Z=$$INPAT^IBCEF(IBIFN,1),Z0=$G(^DGCR(399,IBIFN,0)) | 
|---|
|  | 75 | I Z S IBXDATA=+$G(^DGPT(+$P(Z0,U,8),70)) S:'IBXDATA IBXDATA=$P(Z0,U,16) | 
|---|
|  | 76 | I 'Z N VAINDT,VAIN,DFN S DFN=$P($G(^DGCR(399,IBIFN,0)),U,2) D INP^VADPT I VAIN(1) S IBXDATA=+$G(^DGPM(+$P($G(^DGPM(+VAIN(1),0)),U,17),0)) | 
|---|
|  | 77 | Q | 
|---|
|  | 78 | ; | 
|---|