| [613] | 1 | IBCF32 ;ALB/BGA-UB92 HCFA-1450 (GATHER CODES) ;25-AUG-1993
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**210**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 |  ;This routine requires prior execution of ibcf3.
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 | DX ;set diagnosis codes fl 67-71
 | 
|---|
 | 8 |  ;S IBX=$G(^DGCR(399,+IBIFN,"C"))
 | 
|---|
 | 9 |  ;S IBI=0 F IBJ=14:1:18 S IBFL(67+IBI)=$P($G(^ICD9(+$P(IBX,U,IBJ),0)),U,1),IBI=IBI+1
 | 
|---|
 | 10 |  N IBINDXX
 | 
|---|
 | 11 |  D SET^IBCSC4D(IBIFN,"",.IBINDXX)
 | 
|---|
 | 12 |  S IBX=0 F IBI=1:1:9 S IBX=$O(IBINDXX(IBX)) Q:'IBX  D
 | 
|---|
 | 13 |  . S IBFL(66+IBI)=$P($$ICD9^IBACSV(+IBINDXX(IBX)),U)
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 | 76 ;fl 76 admitting diagnoses (if a ICD dx not entered get old position of dx)
 | 
|---|
 | 16 |  S IBCBCOMM=$G(^DGCR(399,+IBIFN,"U1"))
 | 
|---|
 | 17 |  S IBX=$P(IBCU2,U) ; Admitting Diagnosis (fld #215) IBCU2=$G(^DGCR(399,+IBIFN,"U2"))
 | 
|---|
 | 18 |  I 'IBX S IBFL(76)=$P(IBCBCOMM,U,5) ; Form Locator 9 (Field #205)
 | 
|---|
 | 19 |  E  S IBFL(76)=$P($$ICD9^IBACSV(+IBX),U)
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | 78 S IBX=$P(IBCUF31,U,2) D SPLIT^IBCF3(78,2,3,IBX) ; set IBFL(78)
 | 
|---|
 | 22 |  ;fl 79 procedure coding method used
 | 
|---|
 | 23 |  S IBFL(79)=$P(IBCBILL,U,9)
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 | 82 ;fl 82 attending physician id
 | 
|---|
 | 26 |  S IBFL(82)=$P(IBCBCOMM,U,13) I IBFL(82)="" S IBFL(82)="Dept. Veterans Affairs"
 | 
|---|
 | 27 |  ;fl 83 other physician id
 | 
|---|
 | 28 |  S IBFL(83)=$P(IBCBCOMM,U,14)
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | 84 ;fl 84 remarks
 | 
|---|
 | 31 |  S IBFL(84,1)="Patient ID: "_$P(VADM(2),U,2)
 | 
|---|
 | 32 |  S IBX=$P($G(^DGCR(399.3,+$P(IBCBILL,U,7),0)),U,2),IBFL(84,2)="Bill Type: "_$S(IBX'="":IBX,1:"UNSPECIFIED")
 | 
|---|
 | 33 |  S IBFL(84,3)=$P(IBSIGN,U,4)
 | 
|---|
 | 34 |  S IBFL(84,4)=$P(IBCBCOMM,U,8)
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 | 85 ;fl 85 provider representative signature
 | 
|---|
 | 37 |  S IBFL(85,1)=$P(IBSIGN,U,1)
 | 
|---|
 | 38 |  S IBFL(85,2)=$P(IBSIGN,U,2)
 | 
|---|
 | 39 | 86 ;date bill submitted
 | 
|---|
 | 40 |  S IBX=$P($G(^DGCR(399,+IBIFN,"S")),U,12),IBX=$S(+IBPNT:DT,+IBX:IBX,1:DT),IBFL(86)=$$DATE^IBCF3(IBX)
 | 
|---|
 | 41 |  Q
 | 
|---|
 | 42 |  ;
 | 
|---|
 | 43 |  ;ADD OCCURRENCE CODES AND SPANS TO PRINT ARRAY
 | 
|---|
 | 44 | 32 ;the following rules apply to printing occurrence codes and spans (see FL 32 in UB-92 manual)
 | 
|---|
 | 45 |  ; - fields 32a-36a are used before 32b-36b
 | 
|---|
 | 46 |  ; - if all occ code fields are used (32a&b -35a&b) then occ span fields (36a&b) may be used, w/ thru date blank
 | 
|---|
 | 47 |  ; - if all occ span fields are used (36a&b) the occ code fields 34&35 may be used, w/ code&from date in 34 and code&thru date in 35
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 |  K IB32,IB36 S IBPG=0 F IBI=32:1:36 K IBFL(IBI) S IBFL(IBI)="0^0"
 | 
|---|
 | 50 |  ;occurrence codes/span and dates 32-35 ,36
 | 
|---|
 | 51 |  ;load codes and spans into two flat arrays
 | 
|---|
 | 52 |  S (IBI,IBJ,IBX)=0
 | 
|---|
 | 53 |  F  S IBX=$O(^DGCR(399,+IBIFN,"OC",IBX)) Q:'IBX  S IBY=$G(^(IBX,0)),IBZ=$G(^DGCR(399.1,+IBY,0)) I +$P(IBZ,U,4) D
 | 
|---|
 | 54 |  . I +$P(IBZ,U,10) S IBJ=IBJ+1,IB36(IBJ)=$P(IBZ,U,2)_U_$$DATE^IBCF3($P(IBY,U,2))_U_$$DATE^IBCF3($P(IBY,U,4)) Q
 | 
|---|
 | 55 |  . S IBI=IBI+1,IB32(IBI)=$P(IBZ,U,2)_U_$$DATE^IBCF3($P(IBY,U,2))
 | 
|---|
 | 56 |  S IB32=IBI_U_0
 | 
|---|
 | 57 |  S IB36=IBJ_U_0
 | 
|---|
 | 58 |  ;
 | 
|---|
 | 59 | OCC ;
 | 
|---|
 | 60 |  S IBPG=IBPG+1
 | 
|---|
 | 61 |  S IBI=+$G(IBFL(32))+1
 | 
|---|
 | 62 |  I +IB32 F IBI=IBI,IBI+1 S IBX=+$P(IB32,U,2) F IBJ=32,33,34,35 S IBX=$O(IB32(IBX)) Q:'IBX  D
 | 
|---|
 | 63 |  . S IBFL(IBJ,IBI)=IB32(IBX)
 | 
|---|
 | 64 |  . S $P(IBFL(IBJ),U,1)=+IBFL(IBJ)+1
 | 
|---|
 | 65 |  . S $P(IB32,U,1)=+IB32-1
 | 
|---|
 | 66 |  . S $P(IB32,U,2)=IBX
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 |  S IBX=+$P(IB36,U,2),IBI=+$G(IBFL(36))+1
 | 
|---|
 | 69 |  I +IB36 F IBI=IBI,IBI+1 S IBX=$O(IB36(IBX)) Q:'IBX  D
 | 
|---|
 | 70 |  . S IBFL(36,IBI)=IB36(IBX)
 | 
|---|
 | 71 |  . S $P(IBFL(36),U,1)=+IBFL(36)+1
 | 
|---|
 | 72 |  . S $P(IB36,U,1)=+IB36-1
 | 
|---|
 | 73 |  . S $P(IB36,U,2)=IBX
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 |  I 'IB32,'IB36 G END
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 |  ; add occ codes from 32 to occ span in 36
 | 
|---|
 | 78 |  S IBI=+IBFL(36)+1 F IBI=IBI,IBI+1 I +IB32>0,'IB36,IBI'>(IBPG*2) D
 | 
|---|
 | 79 |  . S IBX=+$P(IB32,U,2),IBX=$O(IB32(IBX)) Q:'IBX
 | 
|---|
 | 80 |  . S IBY=IB32(IBX)
 | 
|---|
 | 81 |  . S $P(IB32,U,1)=+IB32-1
 | 
|---|
 | 82 |  . S $P(IB32,U,2)=IBX
 | 
|---|
 | 83 |  . S IBX=+IBFL(36)+1
 | 
|---|
 | 84 |  . S IBFL(36,IBX)=IBY
 | 
|---|
 | 85 |  . S $P(IBFL(36),U,1)=+IBFL(36)+1
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  ; add occ span from 36 to occ code in 32
 | 
|---|
 | 88 |  S IBI=+IBFL(34)+1 F IBI=IBI,IBI+1 I +IB36>0,'IB32,IBI'>(IBPG*2) D
 | 
|---|
 | 89 |  . S IBX=+$P(IB36,U,2),IBX=$O(IB36(IBX)) Q:'IBX
 | 
|---|
 | 90 |  . S IBY=IB36(IBX)
 | 
|---|
 | 91 |  . S $P(IB36,U,1)=+IB36-1
 | 
|---|
 | 92 |  . S $P(IB36,U,2)=IBX
 | 
|---|
 | 93 |  . S IBX=+IBFL(34)+1
 | 
|---|
 | 94 |  . S IBFL(34,IBX)=$P(IBY,U,1)_U_$P(IBY,U,2),$P(IBFL(34),U,1)=+IBFL(34)+1
 | 
|---|
 | 95 |  . S IBFL(35,IBX)=$P(IBY,U,1)_U_$P(IBY,U,3),$P(IBFL(35),U,1)=IBX
 | 
|---|
 | 96 |  G OCC
 | 
|---|
 | 97 | END ;
 | 
|---|
 | 98 |  K IB32,IB36
 | 
|---|
 | 99 |  Q
 | 
|---|