| [613] | 1 | IBCF22 ;ALB/ARH - HCFA 1500 19-90 DATA (gather other data) ;12-JUN-93 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**52,80,122,51,210**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; requires DFN, IBIFN, IB(0) | 
|---|
|  | 6 | F IBI="C","U","U1","U2","UF2" S IB(IBI)=$G(^DGCR(399,IBIFN,IBI)) | 
|---|
|  | 7 | S IBFLD(12)="PUBLIC LAW 99-272/SECTION 1729 TITLE 38" | 
|---|
|  | 8 | S IBFLD(13)="PUBLIC LAW 99-272" | 
|---|
|  | 9 | DATES S IBFLD(14)=$$DATE($$EVENT(IBIFN)) | 
|---|
|  | 10 | I $G(IBFLD(15))="",IBIFN'=$P(IB(0),U,17) S IBFLD(15)=$$DATE($P($G(^DGCR(399,+$P(IB(0),U,17),0)),U,3)) | 
|---|
|  | 11 | S IBFLD("16A")=$$DATE($P(IB("U"),U,16)),IBFLD("16B")=$$DATE($P(IB("U"),U,17)) | 
|---|
|  | 12 | S:$$NEEDMRA^IBEFUNC(IBIFN) IBFLD(17)="Dept. Of Veterans Affairs" | 
|---|
|  | 13 | I $P(IB(0),U,5)<3 S IBFLD("18A")=$$DATE($P(IB("U"),U,1)),IBFLD("18B")=$$DATE($P(IB("U"),U,2)) | 
|---|
|  | 14 | I $P(IB(0),U,5)>2 S VAINDT=$P(IB(0),U,3) D INP^VADPT I +VAIN(1) D | 
|---|
|  | 15 | . S IBFLD("18A")=$$DATE(VAIN(7)),IBFLD("18B")=$$DATE(+$G(^DGPM(+$P($G(^DGPM(+VAIN(1),0)),U,17),0))) | 
|---|
|  | 16 | K VAINDT,VAIN | 
|---|
|  | 17 | S IBFLD(19)="THE UNDERSIGNED CERTIFIES TREATMENT IS NOT FOR A SERVICE-CONNECTED CONDITION" | 
|---|
|  | 18 | S IBFLD(20)=0 | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | DX ;S X=14 F IBI="21A","21B","21C","21D" S IBFLD(IBI)=$P($G(^ICD9(+$P(IB("C"),U,X),0)),U,1),X=X+1 | 
|---|
|  | 21 | ;F IBI="21A","21B","21C","21D" S IBFLD(IBI)="" | 
|---|
|  | 22 | ;N IBINDXX D SET^IBCSC4D(IBIFN,"",.IBINDXX) S X=0,Y="21@" D | 
|---|
|  | 23 | ;. F  S X=$O(IBINDXX(X)) Q:'X  S Y=$O(IBFLD(Y)) Q:+Y'=21  S IBFLD(Y)=$P($G(^ICD9(+IBINDXX(X),0)),U,1) | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | N IBDXX,IBPOX | 
|---|
|  | 26 | D SET^IBCSC4D(IBIFN,.IBDXX,.IBPOX) | 
|---|
|  | 27 | S X=0 F IBI=1:1:4 S IBFLD(21,IBI)="" I IBI'>$P(IBPOX,U,2) D | 
|---|
|  | 28 | . S X=$O(IBPOX(X)) Q:X="" | 
|---|
|  | 29 | . S IBFLD(21,IBI)=$P($$ICD9^IBACSV(+IBPOX(X)),U) | 
|---|
|  | 30 | . S IBDXI(+$G(IBDXX(+IBPOX(X))))=IBI | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | S IBFLD(23)=$P(IB("U"),U,13) | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | D ^IBCF23 ; block 24 | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | S IBFLD(25)=$P($G(^IBE(350.9,1,1)),U,5) | 
|---|
|  | 37 | S IBFLD(26)=$$BN1^PRCAFN(IBIFN) | 
|---|
|  | 38 | S IBFLD(28)=+IB("U1") | 
|---|
|  | 39 | S IBFLD(29)=+$P(IB("U1"),U,2) | 
|---|
|  | 40 | S IBFLD(30)=IBFLD(28)-IBFLD(29) | 
|---|
|  | 41 | LAST3 S IBFLD(31)=$G(^DGCR(399,IBIFN,"UF2")) ;assuming there are 3 available lines | 
|---|
|  | 42 | S X=+$P($G(^IBE(350.9,1,0)),U,2),Y=$G(^DIC(4,X,0)),IBI=1 I Y'="" D | 
|---|
|  | 43 | . S IBFLD(32,1)=$P(Y,U,1),IBX=+$P(Y,U,2),Y=$G(^DIC(4,X,1)) | 
|---|
|  | 44 | . S IBFLD(32,2)=$P(Y,U,1) I $P(Y,U,2)'="" S IBFLD(32,2)=IBFLD(32,2)_", "_$P(Y,U,2) | 
|---|
|  | 45 | . S IBFLD(32,3)=$P(Y,U,3),IBFLD(32,"X")=$$STATE^IBCF2(IBX)_" "_$P(Y,U,4) | 
|---|
|  | 46 | S X=$G(^IBE(350.9,1,2)) | 
|---|
|  | 47 | S IBFLD(33,1)=$P(X,U,1),IBFLD(33,2)=$P(X,U,2) | 
|---|
|  | 48 | S IBFLD(33,3)=$P(X,U,3),IBFLD(33,"X")=$$STATE^IBCF2($P(X,U,4))_" "_$P(X,U,5) | 
|---|
|  | 49 | S IBFLD(33,4)=$P(X,U,6) | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | END Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | EVENT(IBIFN,IBXSAVE,IBERR,IBD) ; The event date for box 14 on the | 
|---|
|  | 54 | ;   HCFA 1500 | 
|---|
|  | 55 | ; IBIFN = bill ien | 
|---|
|  | 56 | ; IBXSAVE = the array returned by the output formatter for data element | 
|---|
|  | 57 | ;          N-OCCURRENCE CODES | 
|---|
|  | 58 | ; Returns IBERR=1 if passed by reference meaning more than one condition | 
|---|
|  | 59 | ;         has been found | 
|---|
|  | 60 | ; IBD("LMP"), IBD("ACC"), IBD("ONS"), IBD("EVT") returned with | 
|---|
|  | 61 | ;           Last menstrual period date, accident date, date of onset, | 
|---|
|  | 62 | ;           event date if IBD passed by reference | 
|---|
|  | 63 | ; Function returns the appropriate date | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | N Z,Z0,IBX,IBF,A | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | ; Default if no applicable occurrence codes found is event date on bill | 
|---|
|  | 68 | S IBX=$P($G(^DGCR(399,IBIFN,0)),U,3),IBF=0 S IBD("EVT")=IBX | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | I '$D(IBXSAVE("OCC")) D F^IBCEF("N-OCCURRENCE CODES",,,IBIFN) | 
|---|
|  | 71 | S Z=0 F  S Z=$O(IBXSAVE("OCC",Z)) Q:'Z  S Z0(+IBXSAVE("OCC",Z))=$P(IBXSAVE("OCC",Z),U,2) | 
|---|
|  | 72 | I $O(Z0(5.99),-1) D | 
|---|
|  | 73 | . S A=$O(Z0(5.99),-1),IBF=IBF+1 ;Accident codes 1-5 | 
|---|
|  | 74 | . S IBD("ACC")=Z0(A) S:IBF'>1 IBX=Z0(A) | 
|---|
|  | 75 | I $D(Z0(10)) S IBF=IBF+1,IBD("LMP")=IBX S:IBF'>1 IBX=Z0(10) ;Last Menstrual period | 
|---|
|  | 76 | I $D(Z0(11)) S (IBD("ONS"),IBX)=Z0(11),IBF=IBF+1 ;Onset of Illness | 
|---|
|  | 77 | ; | 
|---|
|  | 78 | S IBERR=(IBF>1) | 
|---|
|  | 79 | Q IBX | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | DATE(X) ; format date(X) as MM DD YYYY | 
|---|
|  | 82 | Q $$DATE^IBCF2(X,1) | 
|---|
|  | 83 | ; | 
|---|