[613] | 1 | FBAAFSF ;WCIOFO/dmk,SAB-OUTPATIENT 75TH PERCENTILE FEE SCHEDULE ;5/18/1999
|
---|
| 2 | ;;3.5;FEE BASIS;**4**;JAN 30, 1995
|
---|
| 3 | ;
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | PRCTL(CPT,MODL,DOS) ; Calculate 75th Percentile Fee Schedule Amount
|
---|
| 7 | ; input
|
---|
| 8 | ; CPT - CPT/HCPCS code, external, required
|
---|
| 9 | ; MODL - list of optional CPT/HCPCS modifiers (external values)
|
---|
| 10 | ; delimited by commas
|
---|
| 11 | ; DOS - date of service, fileman format, required
|
---|
| 12 | ; returns $ amount or null if not on schedule
|
---|
| 13 | N FBAMT,FBERR
|
---|
| 14 | ;
|
---|
| 15 | ; initialize
|
---|
| 16 | S FBAMT=""
|
---|
| 17 | K FBERR
|
---|
| 18 | ;
|
---|
| 19 | ;validate parameters
|
---|
| 20 | S CPT=$G(CPT)
|
---|
| 21 | S DOS=$G(DOS)
|
---|
| 22 | I CPT="" D ERR^FBAAFS("Missing CPT")
|
---|
| 23 | I DOS'?7N D ERR^FBAAFS("Invalid Date of Service")
|
---|
| 24 | ;
|
---|
| 25 | I '$D(FBERR) D
|
---|
| 26 | . ; get data from 163.99 (stored in previous fiscal year)
|
---|
| 27 | . N FBDA,FBFY,FBI,FBMOD,FBMODA,FBMODLE,FBX
|
---|
| 28 | . S FBFY=$E(DOS,1,3)+1700+$E(DOS,4) ; fiscal year of service
|
---|
| 29 | . ;
|
---|
| 30 | . ; build a sorted list of the CPT modifiers
|
---|
| 31 | . F FBI=1:1 S FBMOD=$P(MODL,",",FBI) Q:FBMOD="" S FBMODA(FBMOD)=""
|
---|
| 32 | . S (FBMOD,FBMODLE)=""
|
---|
| 33 | . F S FBMOD=$O(FBMODA(FBMOD)) Q:FBMOD="" S FBMODLE=FBMODLE_","_FBMOD
|
---|
| 34 | . S:$E(FBMODLE)="," FBMODLE=$E(FBMODLE,2,999)
|
---|
| 35 | . ;
|
---|
| 36 | . ; build lookup value from CPT and sorted list of modifiers
|
---|
| 37 | . S FBX=CPT_$S(FBMODLE]"":"-"_FBMODLE,1:"")
|
---|
| 38 | . ; look in file
|
---|
| 39 | . S FBDA=$O(^FBAA(163.99,"B",FBX,0))
|
---|
| 40 | . I FBDA S FBAMT=$P($G(^FBAA(163.99,FBDA,"FY",FBFY-1,0)),U,5)
|
---|
| 41 | ;
|
---|
| 42 | ; return result
|
---|
| 43 | Q FBAMT
|
---|
| 44 | ;
|
---|
| 45 | ;FBAAFSF
|
---|