| [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 | 
|---|