| [613] | 1 | IBAUTL1 ;ALB/AAS - IB UTILITY ROUTINE FOR MEDICARE RATES ; 30-AUG-91 | 
|---|
|  | 2 | ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | RATE ;  - Calculates the Medicare rate for a CPT code. | 
|---|
|  | 6 | ;  - Input  X = visit date ^ division ^ ifn of cpt code | 
|---|
|  | 7 | ;  - Output Y = charge | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | S IBX=X N X S X=IBX | 
|---|
|  | 10 | S IBRG=$O(^IBE(350.4,"AIVDT",+$P(X,"^",3),-($P(X,"^")+1))) I IBRG S IBRG=$O(^(+IBRG,0)) ;determine current ib action type for code | 
|---|
|  | 11 | I $S('IBRG:1,'$D(^IBE(350.4,+IBRG,0)):1,'$P(^(0),"^",3):1,1:0) S Y=-1 G RATEQ | 
|---|
|  | 12 | S IBRG=+$P(^IBE(350.4,IBRG,0),"^",3) | 
|---|
|  | 13 | S DA=$O(^IBE(350.2,"AIVDT",IBRG,-($P(X,"^")+1))) I DA S DA=$O(^(+DA,0)) ; determine current ib action charge for rate group | 
|---|
|  | 14 | I $S('DA:1,'$D(^IBE(350.2,DA,10)):1,1:0) S Y=-1 G RATEQ | 
|---|
|  | 15 | X ^IBE(350.2,DA,10) | 
|---|
|  | 16 | RATEQ K IBRG,IBX | 
|---|
|  | 17 | Q | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | VAR ;  -Called by entries in 350.2 to get variables | 
|---|
|  | 20 | ;  -input x=visit date^division ifn | 
|---|
|  | 21 | ;        da=internal number from 350.2 | 
|---|
|  | 22 | ;  -output y=wage%^non-wage%^locality multiplier | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | S IBLOC=$O(^IBE(350.5,"AIVDT",+$P(X,"^",2),-($P(X,"^")+1))) I IBLOC S IBLOC=$O(^(+IBLOC,0)) | 
|---|
|  | 25 | I $S('IBLOC:1,'$D(^IBE(350.5,+IBLOC,0)):1,'$P(^(0),"^",7):1,1:0) S Y=-1 G VARQ | 
|---|
|  | 26 | S Y=$P(^IBE(350.5,IBLOC,0),"^",5,7) | 
|---|
|  | 27 | VARQ K IBLOC,IBWAG Q | 
|---|
|  | 28 | ; | 
|---|
|  | 29 | TEST S DA=14,X=DT_"^1^10141" D RATE ;X ^IBE(350.2,DA,10) W X," ",Y | 
|---|