- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCRHBS8.m
r613 r623 1 IBCRHBS8 ;ALB/ARH - RATES: UPLOAD (RC 2+) CALCULATIONS CHARGE ; 10-OCT-03 2 ;;2.0;INTEGRATED BILLING;**245,382**;21-MAR-94;Build 2 3 ;;Per VHA Directive 2004-038, 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) 52 I $P(ITLINE,U,2)'="SNF" G ISNFQ 53 I $P(ITLINE,U,1)'="999",$P(ITLINE,U,1)'="000" G ISNFQ 54 ; 55 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G ISNFQ 56 ; 57 S IBCHG=$P(ITLINE,U,5)*$P(IBAA,U,6) S IBCHG=$J(IBCHG,0,2) 58 ; 59 ISNFQ Q IBCHG 60 ; 61 ; 62 FAC(SITE,ITLINE) ; Return Facility Charge (Table B) for All Charge and Unit Types 63 ; each line record contains 1 charge that may be calculated in multiple ways 64 N IBCHG,IBUT S IBCHG=0,SITE=$G(SITE),ITLINE=$G(ITLINE) 65 ; 66 S IBUT=$P(ITLINE,U,10) 67 ; 68 I IBUT=1 S IBCHG=$$FSTD(SITE,ITLINE) G FACQ 69 I IBUT=4 S IBCHG=$$FSTD(SITE,ITLINE) G FACQ 70 I IBUT=2 S IBCHG=$$FHRS(SITE,ITLINE) G FACQ 71 ; 72 FACQ Q IBCHG 73 ; 74 FSTD(SITE,ITLINE) ; Return Facility Charge of Unit Type = 1 or 4 (Standard and Miles) 75 N IBCHG,IBZIP,IBUT,IBAA,IBSCC,IBSCCAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 76 S IBUT=$P(ITLINE,U,10) I IBUT'=1,IBUT'=4 G FSTDQ 77 ; 78 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G FSTDQ 79 S IBSCC=$$GETSCC($P(ITLINE,U,5)),IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G FSTDQ 80 ; 81 S IBCHG=$P(ITLINE,U,8)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2) 82 ; 83 FSTDQ Q IBCHG 84 ; 85 FHRS(SITE,ITLINE) ; Return Facility Charge of Unit Type = 2 (Hours) 86 N IBCHG,IBCHGB,IBZIP,IBUT,IBAA,IBSCC,IBSCCAAP S (IBCHG,IBCHGB)=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 87 S IBUT=$P(ITLINE,U,10) I IBUT'=2 G FHRSQ 88 ; 89 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G FHRSQ 90 S IBSCC=$$GETSCC($P(ITLINE,U,5)),IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G FHRSQ 91 ; 92 S IBCHG=$P(ITLINE,U,8)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2) 93 S IBCHGB=$P(ITLINE,U,9)*$P(IBAA,U,IBSCCAAP) S IBCHGB=$J(IBCHGB,0,2) 94 ; 95 FHRSQ Q IBCHG_U_IBCHGB 96 ; 97 ; 98 PROF(SITE,ITLINE) ; Return Professional Charge (Table C) for All Charge and Unit Types 99 ; each line record contains 1 charge that may be calculated in multiple ways 100 N IBCHG,IBCT,IBUT S IBCHG=0,SITE=$G(SITE),ITLINE=$G(ITLINE) 101 ; 102 S IBCT=$P(ITLINE,U,8) 103 S IBUT=$P(ITLINE,U,16) 104 ; 105 I IBUT=1,IBCT="RBRVS" S IBCHG=$$PRBRVS(SITE,ITLINE) G PROFQ 106 I IBUT=1,IBCT="TotalUnits" S IBCHG=$$PTRVU(SITE,ITLINE) G PROFQ 107 I IBUT=1,IBCT="NW" S IBCHG=$$PNW(SITE,ITLINE) G PROFQ 108 I IBUT=3,IBCT="Anesth" S IBCHG=$$PANES(SITE,ITLINE) G PROFQ 109 ; 110 PROFQ Q IBCHG 111 ; 112 PRBRVS(SITE,ITLINE) ; Return Professional RBRVS Based Charge 113 N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBPEP,IBWE,IBPE,IBCF S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 114 S IBCTI=$P(ITLINE,U,8) I IBCTI'="RBRVS" G PRBRVSQ 115 S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PRBRVSQ 116 ; 117 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PRBRVSQ 118 S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PRBRVSQ 119 ; 120 S IBPEP=$S($P(SITE,U,5)=3:11,1:10) ; provider/non-provider site 121 ; 122 S IBWE=$P(ITLINE,U,9)*$P(IBAA,U,7) 123 S IBPE=$P(ITLINE,U,IBPEP)*$P(IBAA,U,8) 124 S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP) 125 ; 126 S IBCHG=(IBWE+IBPE)*IBCF S IBCHG=$J(IBCHG,0,2) 127 ; 128 PRBRVSQ Q IBCHG 129 ; 130 ; 131 PTRVU(SITE,ITLINE) ; Return Professional Total RVU Charge 132 N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBUN,IBCF S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 133 S IBCTI=$P(ITLINE,U,8) I IBCTI'="TotalUnits" G PTRVUQ 134 S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PTRVUQ 135 ; 136 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PTRVUQ 137 S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PTRVUQ 138 ; 139 S IBUN=$P(ITLINE,U,12)*$P(IBAA,U,9) 140 S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP) 141 ; 142 S IBCHG=IBUN*IBCF S IBCHG=$J(IBCHG,0,2) 143 ; 144 PTRVUQ Q IBCHG 145 ; 146 PNW(SITE,ITLINE) ; Return Professional Nationwide Charge 147 N IBCHG,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP S IBCHG=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 148 S IBCTI=$P(ITLINE,U,8) I IBCTI'="NW" G PNWQ 149 S IBUT=$P(ITLINE,U,16) I IBUT'=1 G PNWQ 150 ; 151 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PNWQ 152 S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PNWQ 153 ; 154 S IBCHG=$P(ITLINE,U,14)*$P(IBAA,U,IBSCCAAP) S IBCHG=$J(IBCHG,0,2) 155 ; 156 PNWQ Q IBCHG 157 ; 158 PANES(SITE,ITLINE) ; Return Professional Anesthesia Charge 159 N IBCHG,IBCHGB,IBZIP,IBCTI,IBUT,IBAA,IBSCC,IBSCCAAP,IBCF S (IBCHG,IBCHGB)=0,ITLINE=$G(ITLINE),IBZIP=$P($G(SITE),U,4) 160 S IBCTI=$P(ITLINE,U,8) I IBCTI'="Anesth" G PANESQ 161 S IBUT=$P(ITLINE,U,16) I IBUT'=3 G PANESQ 162 ; 163 S IBAA=$$GETAA(IBZIP) I $P(IBAA,U,1)'=IBZIP G PANESQ 164 S IBSCC=$$GETSCC($P(ITLINE,U,6)) S IBSCCAAP=$P(IBSCC,U,4) I 'IBSCCAAP G PANESQ 165 ; 166 S IBCF=$P(IBSCC,U,3)*$P(IBAA,U,IBSCCAAP) 167 ; 168 S IBCHG=$P(ITLINE,U,14)*IBCF S IBCHG=$J(IBCHG,0,2) 169 S IBCHGB=$P(ITLINE,U,13)*IBCF S IBCHGB=$J(IBCHGB,0,2) 170 ; 171 PANESQ Q IBCHG_U_IBCHGB 172 ; 173 ; 174 ; 175 ; 176 GETAA(ZIP) ; return Area Factor entry for Zip from Table E 177 N IBTMPAA,IBAALN,IBDIV,IBDIVLN S IBAALN="",IBTMPAA="IBCR RC E",IBDIV="" 178 ; 179 I $G(ZIP)?3N S IBDIV=$O(^XTMP(IBTMPAA,"A",ZIP,0)) 180 I +IBDIV S IBDIVLN=$G(^XTMP(IBTMPAA,IBDIV)) I $P(IBDIVLN,U,1)=ZIP S IBAALN=IBDIVLN 181 ; 182 Q IBAALN 183 ; 184 GETSCC(SCC) ; return Service Category Code entry from Table D 185 N IBTMPSCC,IBSCC,IBSCCLN,IBLN S IBSCCLN="",IBTMPSCC="IBCR RC D",IBSCC="" 186 ; 187 I +$G(SCC) S IBSCC=$O(^XTMP(IBTMPSCC,"A",SCC,0)) 188 I +IBSCC S IBLN=$G(^XTMP(IBTMPSCC,IBSCC)) I $P(IBLN,U,1)=SCC S IBSCCLN=IBLN 189 ; 190 Q IBSCCLN 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
Note:
See TracChangeset
for help on using the changeset viewer.