[623] | 1 | IBCRHBS8 ;ALB/ARH - RATES: UPLOAD (RC 2+) CALCULATIONS CHARGE ; 10-OCT-03
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**245**;21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ;
|
---|
| 6 | ISA(SITE,ITLINE) ; Return Inpatient DRG Standard Ancillary Charge
|
---|
| 7 | N IBCHG,IBZIP,IBAA,IBCTI,IBCTIAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 8 | I $P(ITLINE,U,2)'="DRG" G ISAQ
|
---|
| 9 | ;
|
---|
| 10 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G ISAQ
|
---|
| 11 | S IBCTI=$P($G(ITLINE),U,4),IBCTIAAP=$S(IBCTI="S":3,IBCTI="N":5,1:0) I 'IBCTIAAP G ISAQ
|
---|
| 12 | ;
|
---|
| 13 | S IBCHG=$P(ITLINE,U,6)*$P(IBAA,U,IBCTIAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 14 | ;
|
---|
| 15 | ISAQ Q IBCHG
|
---|
| 16 | ;
|
---|
| 17 | ISR(SITE,ITLINE) ; Return Inpatient DRG Standard Room & Board Charge
|
---|
| 18 | N IBCHG,IBZIP,IBAA,IBCTI,IBCTIAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 19 | I $P(ITLINE,U,2)'="DRG" G ISRQ
|
---|
| 20 | ;
|
---|
| 21 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G ISRQ
|
---|
| 22 | S IBCTI=$P($G(ITLINE),U,4),IBCTIAAP=$S(IBCTI="S":2,IBCTI="N":4,1:0) I 'IBCTIAAP G ISRQ
|
---|
| 23 | ;
|
---|
| 24 | S IBCHG=$P(ITLINE,U,5)*$P(IBAA,U,IBCTIAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 25 | ;
|
---|
| 26 | ISRQ Q IBCHG
|
---|
| 27 | ;
|
---|
| 28 | IIA(SITE,ITLINE) ; Return Inpatient DRG ICU Ancillary Charge
|
---|
| 29 | N IBCHG,IBZIP,IBAA,IBCTI,IBCTIAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 30 | I $P(ITLINE,U,2)'="DRG" G IIAQ
|
---|
| 31 | ;
|
---|
| 32 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G IIAQ
|
---|
| 33 | S IBCTI=$P($G(ITLINE),U,4),IBCTIAAP=$S(IBCTI="S":3,IBCTI="N":5,1:0) I 'IBCTIAAP G IIAQ
|
---|
| 34 | ;
|
---|
| 35 | S IBCHG=$P(ITLINE,U,8)*$P(IBAA,U,IBCTIAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 36 | ;
|
---|
| 37 | IIAQ Q IBCHG
|
---|
| 38 | ;
|
---|
| 39 | IIR(SITE,ITLINE) ; Return Inpatient DRG ICU Room & Board Charge
|
---|
| 40 | N IBCHG,IBZIP,IBAA,IBCTI,IBCTIAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 41 | I $P(ITLINE,U,2)'="DRG" G IIRQ
|
---|
| 42 | ;
|
---|
| 43 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G IIRQ
|
---|
| 44 | S IBCTI=$P($G(ITLINE),U,4),IBCTIAAP=$S(IBCTI="S":2,IBCTI="N":4,1:0) I 'IBCTIAAP G IIRQ
|
---|
| 45 | ;
|
---|
| 46 | S IBCHG=$P(ITLINE,U,7)*$P(IBAA,U,IBCTIAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 47 | ;
|
---|
| 48 | IIRQ Q IBCHG
|
---|
| 49 | ;
|
---|
| 50 | ISNF(SITE,ITLINE) ; Return Inpatient Skilled Nursing Facility Per Diem
|
---|
| 51 | N IBCHG,IBZIP,IBAA S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) I $P(ITLINE,U,2)'="SNF" G ISNFQ
|
---|
| 52 | I $P(ITLINE,U,1)'="999" G ISNFQ
|
---|
| 53 | ;
|
---|
| 54 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G ISNFQ
|
---|
| 55 | ;
|
---|
| 56 | S IBCHG=$P(ITLINE,U,5)*$P(IBAA,U,6) S IBCHG=$J(IBCHG,0,2)
|
---|
| 57 | ;
|
---|
| 58 | ISNFQ Q IBCHG
|
---|
| 59 | ;
|
---|
| 60 | ;
|
---|
| 61 | FAC(SITE,ITLINE) ; Return Facility Charge (Table B) for All Charge and Unit Types
|
---|
| 62 | ; each line record contains 1 charge that may be calculated in multiple ways
|
---|
| 63 | N IBCHG,IBUT S IBCHG=0,SITE=$G(SITE),ITLINE=$G(ITLINE)
|
---|
| 64 | ;
|
---|
| 65 | S IBUT=$P(ITLINE,U,10)
|
---|
| 66 | ;
|
---|
| 67 | I IBUT=1 S IBCHG=$$FSTD(SITE,ITLINE) G FACQ
|
---|
| 68 | I IBUT=4 S IBCHG=$$FSTD(SITE,ITLINE) G FACQ
|
---|
| 69 | I IBUT=2 S IBCHG=$$FHRS(SITE,ITLINE) G FACQ
|
---|
| 70 | ;
|
---|
| 71 | FACQ Q IBCHG
|
---|
| 72 | ;
|
---|
| 73 | FSTD(SITE,ITLINE) ; Return Facility Charge of Unit Type = 1 or 4 (Standard and Miles)
|
---|
| 74 | N IBCHG,IBZIP,IBUT,IBAA,IBSCC,IBSCCAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 75 | S IBUT=$P(ITLINE,U,10) I IBUT'=1,IBUT'=4 G FSTDQ
|
---|
| 76 | ;
|
---|
| 77 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G FSTDQ
|
---|
| 78 | S IBSCC=$$GETSCC($P(ITLINE,U,5)),IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G FSTDQ
|
---|
| 79 | ;
|
---|
| 80 | S IBCHG=$P(ITLINE,U,8)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 81 | ;
|
---|
| 82 | FSTDQ Q IBCHG
|
---|
| 83 | ;
|
---|
| 84 | FHRS(SITE,ITLINE) ; Return Facility Charge of Unit Type = 2 (Hours)
|
---|
| 85 | N IBCHG,IBCHGB,IBZIP,IBUT,IBAA,IBSCC,IBSCCAAP S (IBCHG,IBCHGB)=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 86 | S IBUT=$P(ITLINE,U,10) I IBUT'=2 G FHRSQ
|
---|
| 87 | ;
|
---|
| 88 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G FHRSQ
|
---|
| 89 | S IBSCC=$$GETSCC($P(ITLINE,U,5)),IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G FHRSQ
|
---|
| 90 | ;
|
---|
| 91 | S IBCHG=$P(ITLINE,U,8)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 92 | S IBCHGB=$P(ITLINE,U,9)*$P(IBAA,U,IBSCCAAP) S IBCHGB=$J(IBCHGB,0,2)
|
---|
| 93 | ;
|
---|
| 94 | FHRSQ Q IBCHG_U_IBCHGB
|
---|
| 95 | ;
|
---|
| 96 | ;
|
---|
| 97 | PROF(SITE,ITLINE) ; Return Professional Charge (Table C) for All Charge and Unit Types
|
---|
| 98 | ; each line record contains 1 charge that may be calculated in multiple ways
|
---|
| 99 | N IBCHG,IBCT,IBUT S IBCHG=0,SITE=$G(SITE),ITLINE=$G(ITLINE)
|
---|
| 100 | ;
|
---|
| 101 | S IBCT=$P(ITLINE,U,8)
|
---|
| 102 | S IBUT=$P(ITLINE,U,16)
|
---|
| 103 | ;
|
---|
| 104 | I IBUT=1,IBCT="RBRVS" S IBCHG=$$PRBRVS(SITE,ITLINE) G PROFQ
|
---|
| 105 | I IBUT=1,IBCT="TotalUnits" S IBCHG=$$PTRVU(SITE,ITLINE) G PROFQ
|
---|
| 106 | I IBUT=1,IBCT="NW" S IBCHG=$$PNW(SITE,ITLINE) G PROFQ
|
---|
| 107 | I IBUT=3,IBCT="Anesth" S IBCHG=$$PANES(SITE,ITLINE) G PROFQ
|
---|
| 108 | ;
|
---|
| 109 | PROFQ Q IBCHG
|
---|
| 110 | ;
|
---|
| 111 | PRBRVS(SITE,ITLINE) ; Return Professional RBRVS Based Charge
|
---|
| 112 | N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBPEP,IBWE,IBPE,IBCF S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 113 | S IBCTI=$P(ITLINE,U,8) I IBCTI'="RBRVS" G PRBRVSQ
|
---|
| 114 | S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PRBRVSQ
|
---|
| 115 | ;
|
---|
| 116 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PRBRVSQ
|
---|
| 117 | S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PRBRVSQ
|
---|
| 118 | ;
|
---|
| 119 | S IBPEP=$S($P(SITE,U,5)=3:11,1:10) ; provider/non-provider site
|
---|
| 120 | ;
|
---|
| 121 | S IBWE=$P(ITLINE,U,9)*$P(IBAA,U,7)
|
---|
| 122 | S IBPE=$P(ITLINE,U,IBPEP)*$P(IBAA,U,8)
|
---|
| 123 | S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP)
|
---|
| 124 | ;
|
---|
| 125 | S IBCHG=(IBWE+IBPE)*IBCF S IBCHG=$J(IBCHG,0,2)
|
---|
| 126 | ;
|
---|
| 127 | PRBRVSQ Q IBCHG
|
---|
| 128 | ;
|
---|
| 129 | ;
|
---|
| 130 | PTRVU(SITE,ITLINE) ; Return Professional Total RVU Charge
|
---|
| 131 | N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBUN,IBCF S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 132 | S IBCTI=$P(ITLINE,U,8) I IBCTI'="TotalUnits" G PTRVUQ
|
---|
| 133 | S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PTRVUQ
|
---|
| 134 | ;
|
---|
| 135 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PTRVUQ
|
---|
| 136 | S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PTRVUQ
|
---|
| 137 | ;
|
---|
| 138 | S IBUN=$P(ITLINE,U,12)*$P(IBAA,U,9)
|
---|
| 139 | S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP)
|
---|
| 140 | ;
|
---|
| 141 | S IBCHG=IBUN*IBCF S IBCHG=$J(IBCHG,0,2)
|
---|
| 142 | ;
|
---|
| 143 | PTRVUQ Q IBCHG
|
---|
| 144 | ;
|
---|
| 145 | PNW(SITE,ITLINE) ; Return Professional Nationwide Charge
|
---|
| 146 | N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 147 | S IBCTI=$P(ITLINE,U,8) I IBCTI'="NW" G PNWQ
|
---|
| 148 | S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PNWQ
|
---|
| 149 | ;
|
---|
| 150 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PNWQ
|
---|
| 151 | S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PNWQ
|
---|
| 152 | ;
|
---|
| 153 | S IBCHG=$P(ITLINE,U,14)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2)
|
---|
| 154 | ;
|
---|
| 155 | PNWQ Q IBCHG
|
---|
| 156 | ;
|
---|
| 157 | PANES(SITE,ITLINE) ; Return Professional Anesthesia Charge
|
---|
| 158 | N IBCHG,IBCHGB,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBCF S (IBCHG,IBCHGB)=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4)
|
---|
| 159 | S IBCTI=$P(ITLINE,U,8) I IBCTI'="Anesth" G PANESQ
|
---|
| 160 | S IBUT=$P(ITLINE,U,16) I IBUT'=3 G PANESQ
|
---|
| 161 | ;
|
---|
| 162 | S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PANESQ
|
---|
| 163 | S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PANESQ
|
---|
| 164 | ;
|
---|
| 165 | S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP)
|
---|
| 166 | ;
|
---|
| 167 | S IBCHG=$P(ITLINE,U,14)*IBCF S IBCHG=$J(IBCHG,0,2)
|
---|
| 168 | S IBCHGB=$P(ITLINE,U,13)*IBCF S IBCHGB=$J(IBCHGB,0,2)
|
---|
| 169 | ;
|
---|
| 170 | PANESQ Q IBCHG_U_IBCHGB
|
---|
| 171 | ;
|
---|
| 172 | ;
|
---|
| 173 | ;
|
---|
| 174 | ;
|
---|
| 175 | GETAA(ZIP) ; return Area Factor entry for Zip from Table E
|
---|
| 176 | N IBTMPAA,IBAALN,IBDIV,IBDIVLN S IBAALN="",IBTMPAA="IBCR RC E",IBDIV=""
|
---|
| 177 | ;
|
---|
| 178 | I $G(ZIP)?3N S IBDIV=$O(^XTMP(IBTMPAA,"A",ZIP,0))
|
---|
| 179 | I +IBDIV S IBDIVLN=$G(^XTMP(IBTMPAA,IBDIV)) I $P(IBDIVLN,U,1)=ZIP S IBAALN=IBDIVLN
|
---|
| 180 | ;
|
---|
| 181 | Q IBAALN
|
---|
| 182 | ;
|
---|
| 183 | GETSCC(SCC) ; return Service Category Code entry from Table D
|
---|
| 184 | N IBTMPSCC,IBSCC,IBSCCLN,IBLN S IBSCCLN="",IBTMPSCC="IBCR RC D",IBSCC=""
|
---|
| 185 | ;
|
---|
| 186 | I +$G(SCC) S IBSCC=$O(^XTMP(IBTMPSCC,"A",SCC,0))
|
---|
| 187 | I +IBSCC S IBLN=$G(^XTMP(IBTMPSCC,IBSCC)) I $P(IBLN,U,1)=SCC S IBSCCLN=IBLN
|
---|
| 188 | ;
|
---|
| 189 | Q IBSCCLN
|
---|