| [613] | 1 | IBJTU3 ;ALB/ARH - TPI UTILITIES - INS ADDRESS ; 2/14/95
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**39,80**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | BADD(IBIFN) ; returns mailing address for bill
 | 
|---|
 | 6 |  ; returns: COMPANY NAME ^ PHONE NUMBER ^ STR 1 ^ STR 2 ^ STR 3 ^ CITY ^ STATE ^ ZIP ^ ^ FAX #
 | 
|---|
 | 7 |  N DFN,IBX,IBCNS,IBCDFN,IBTYP
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  S IBX="",DFN=$G(^DGCR(399,+$G(IBIFN),0))
 | 
|---|
 | 10 |  S IBTYP=$P(DFN,U,5),DFN=+$P(DFN,U,2) I 'DFN G BADDQ
 | 
|---|
 | 11 |  S IBCNS=$G(^DGCR(399,+IBIFN,"MP")) I 'IBCNS G BADDQ
 | 
|---|
 | 12 |  S IBCDFN=$P(IBCNS,U,2) I +IBCDFN S IBCNS=+$G(^DPT(DFN,.312,+IBCDFN,0))
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  ; -- if send to employer and state defined, return employer address
 | 
|---|
 | 15 |  I +IBCDFN S IBCDFN=$G(^DPT(DFN,.312,+IBCDFN,2)) I +IBCDFN,+$P(IBCDFN,U,6) D  G BADDQ
 | 
|---|
 | 16 |  . S IBX=$P(IBCDFN,U,9)_U_$P(IBCDFN,U,8)_U_$P(IBCDFN,U,2,7)
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 |  S IBTYP=$S(IBTYP<3:"INP",1:"OPT")
 | 
|---|
 | 19 |  S IBX=$$INSADD(+IBCNS,IBTYP)
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | BADDQ Q IBX
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 | INSADD(IBCNS,IBATYP) ; returns specific type of address/phone # for an insurance company, follows ptrs to company responsible
 | 
|---|
 | 25 |  ; returns: COMPANY NAME ^ PHONE NUMBER ^ STR 1 ^ STR 2 ^ STR 3 ^ CITY ^ STATE ^ ZIP ^ ^ FAX #
 | 
|---|
 | 26 |  ; if type does not have an address or phone number then main mailing addr/ph # is returned
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 |  N IBD0,IBD13,IBADD,IBNM,IBPH,IBDN,IBCNT,IBAGAIN
 | 
|---|
 | 29 |  S (IBADD,IBNM,IBPH)=""
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 | MAIN ; -- determine address for company for type bill
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 |  S IBD0=$G(^DIC(36,+$G(IBCNS),0)) I IBD0="" G MAINQ
 | 
|---|
 | 34 |  S IBD13=$G(^DIC(36,IBCNS,.13))
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 |  ; -- get name, main address, phone number
 | 
|---|
 | 37 |  S IBNM=$P(IBD0,U,1),IBPH=$P(IBD13,U,1),IBADD=$G(^DIC(36,+IBCNS,.11))
 | 
|---|
 | 38 |  ;
 | 
|---|
 | 39 |  ; -- if process the same co. more than once you are in an infinate loop
 | 
|---|
 | 40 |  I $D(IBCNT(IBCNS)) G MAINQ ;already processed this company  use main add
 | 
|---|
 | 41 |  S IBCNT(IBCNS)=""
 | 
|---|
 | 42 |  ;
 | 
|---|
 | 43 |  ; -- type of bill
 | 
|---|
 | 44 |  I $G(IBATYP)'="",$T(@IBATYP)'="" D @IBATYP I $D(IBAGAIN) K IBAGAIN G MAIN
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  ; -- return address
 | 
|---|
 | 47 | MAINQ S IBNM=IBNM_U_IBPH_U_IBADD
 | 
|---|
 | 48 |  Q IBNM
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | VER ; -- verification phone number
 | 
|---|
 | 51 |  I $P(IBD13,U,4)'="" S IBPH=$P(IBD13,U,4)
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 | BILL ; -- billing phone number
 | 
|---|
 | 55 |  I $P(IBD13,U,2)'="" S IBPH=$P(IBD13,U,2)
 | 
|---|
 | 56 |  Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 | PCERT ; -- precertification phone number
 | 
|---|
 | 59 |  I $P(IBD13,U,3)'="" S IBPH=$P(IBD13,U,3)
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 |  ; -- if other company processes precerts start again
 | 
|---|
 | 62 |  I $P(IBD13,"^",9) S IBCNS=$P(IBD13,"^",9) S IBAGAIN=1
 | 
|---|
 | 63 |  Q
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 | INP ; -- inpatient phone number
 | 
|---|
 | 66 |  I $P(IBD13,U,5)'="" S IBPH=$P(IBD13,U,5)
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 |  ; -- see if there is an inpatient address, use if state is there
 | 
|---|
 | 69 |  S IBDN=$G(^DIC(36,+IBCNS,.12)) I $P(IBDN,"^",5) S IBADD=IBDN
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 |  ; -- if other company processes claims start again
 | 
|---|
 | 72 |  I $P(IBDN,"^",7) S IBCNS=$P(IBDN,"^",7) S IBAGAIN=1
 | 
|---|
 | 73 |  Q
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 | OPT ; -- outpatient phone number
 | 
|---|
 | 76 |  I $P(IBD13,U,6)'="" S IBPH=$P(IBD13,U,6)
 | 
|---|
 | 77 |  ;
 | 
|---|
 | 78 |  ; -- see if there is an outpatient address, use if state is there
 | 
|---|
 | 79 |  S IBDN=$G(^DIC(36,+IBCNS,.16)) I $P(IBDN,"^",5) S IBADD=IBDN
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 |  ; -- if other company processes claims start again
 | 
|---|
 | 82 |  I $P(IBDN,"^",7) S IBCNS=$P(IBDN,"^",7) S IBAGAIN=1
 | 
|---|
 | 83 |  Q
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | RX ; -- prescription phone number
 | 
|---|
 | 86 |  I $P(IBD13,U,11)'="" S IBPH=$P(IBD13,U,11)
 | 
|---|
 | 87 |  ;
 | 
|---|
 | 88 |  ; -- see if there is an prescription address, use if state is there
 | 
|---|
 | 89 |  S IBDN=$G(^DIC(36,+IBCNS,.18)) I $P(IBDN,"^",5) S IBADD=IBDN
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 |  ; -- if other company processes claims start again
 | 
|---|
 | 92 |  I $P(IBDN,"^",7) S IBCNS=$P(IBDN,"^",7) S IBAGAIN=1
 | 
|---|
 | 93 |  Q
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 | APL ; -- appeals phone number
 | 
|---|
 | 96 |  I $P(IBD13,U,7)'="" S IBPH=$P(IBD13,U,7)
 | 
|---|
 | 97 |  ;
 | 
|---|
 | 98 |  ; -- see if there is an appeals address, use if state is there
 | 
|---|
 | 99 |  S IBDN=$G(^DIC(36,+IBCNS,.14)) I $P(IBDN,"^",5) S IBADD=IBDN
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  ; -- if other company processes claims start again
 | 
|---|
 | 102 |  I $P(IBDN,"^",7) S IBCNS=$P(IBDN,"^",7) S IBAGAIN=1
 | 
|---|
 | 103 |  Q
 | 
|---|
 | 104 |  ;
 | 
|---|
 | 105 | INQ ; -- inquiry phone number
 | 
|---|
 | 106 |  I $P(IBD13,U,8)'="" S IBPH=$P(IBD13,U,8)
 | 
|---|
 | 107 |  ;
 | 
|---|
 | 108 |  ; -- see if there is an outpatient address, use if state is there
 | 
|---|
 | 109 |  S IBDN=$G(^DIC(36,+IBCNS,.15)) I $P(IBDN,"^",5) S IBADD=IBDN
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 |  ; -- if other company processes claims start again
 | 
|---|
 | 112 |  I $P(IBDN,"^",7) S IBCNS=$P(IBDN,"^",7) S IBAGAIN=1
 | 
|---|
 | 113 |  Q
 | 
|---|