| 1 | FBRVU ;;WOIFO/SS-RVU UTILITIES ;09-OCT-05
 | 
|---|
| 2 |  ;;3.5;FEE BASIS;**93**;JAN 30, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;/*
 | 
|---|
| 6 |  ;Integration Agreement #4799
 | 
|---|
| 7 |  ;The API to retrieve Work Relative Value Units (RVU)
 | 
|---|
| 8 |  ;from FeeBasis file #162.97 by CPT code, CPT modifier and a date
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;Input:
 | 
|---|
| 11 |  ; FBCPT  (Required) CPT code, external value
 | 
|---|
| 12 |  ; FBMOD  (Optional) CPT modifier. Can be a string of CPT code specific
 | 
|---|
| 13 |  ;   modifiers delimited by commas.
 | 
|---|
| 14 |  ; FBDATE (Optional) Exam date/time in FileMan format. If null then today's date
 | 
|---|
| 15 |  ;   becomes the assumed date.
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ;Output:
 | 
|---|
| 18 |  ; returns a string RETSTATUS^VALUE^MESSAGE
 | 
|---|
| 19 |  ; where
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ; If the CPT/CPT+CPT modifier was found for the date or date/time specified then:
 | 
|---|
| 22 |  ; RETSTATUS = 1,
 | 
|---|
| 23 |  ; VALUE = (#.03) WORK RELATIVE VALUE UNIT of file #162.97,
 | 
|---|
| 24 |  ; MESSAGE = null.
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ; If the CPT/CPT+CPT modifier was NOT found for the date or date/time specified then:
 | 
|---|
| 27 |  ; RETSTATUS = 0,
 | 
|---|
| 28 |  ; VALUE = null,
 | 
|---|
| 29 |  ; MESSAGE = "CPT/MOD not found"
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ; If the date specified in FBDATE is invalid then:
 | 
|---|
| 32 |  ; RETSTATUS = 0,
 | 
|---|
| 33 |  ; VALUE = null,
 | 
|---|
| 34 |  ; MESSAGE = "Valid date not specified"
 | 
|---|
| 35 |  ; 
 | 
|---|
| 36 |  ; If the CPT modifiers listed in FBMOD cannot be used together
 | 
|---|
| 37 |  ; to determine correct RVU value then:
 | 
|---|
| 38 |  ; RETSTATUS = 0, 
 | 
|---|
| 39 |  ; VALUE = null,
 | 
|---|
| 40 |  ; MESSAGE = "Wrong CPT modifiers combination"
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ; If the database is not available at the time of the request then:
 | 
|---|
| 43 |  ; RETSTATUS = -1,
 | 
|---|
| 44 |  ; VALUE = null,
 | 
|---|
| 45 |  ; MESSAGE = "Database Unavailable"
 | 
|---|
| 46 |  ; 
 | 
|---|
| 47 | RVU(FBCPT,FBMOD,FBDATE) ;
 | 
|---|
| 48 |  N FBYEAR,FBCPT0,FBCPTY0
 | 
|---|
| 49 |  I '$D(^FB(162.97,0)) Q "-1^^Database Unavailable"
 | 
|---|
| 50 |  I $$CHKMOD($G(FBMOD)) Q "0^^Wrong CPT modifiers combination"
 | 
|---|
| 51 |  I $G(FBDATE)="" S FBDATE=DT
 | 
|---|
| 52 |  S FBDATE=$G(FBDATE)\1
 | 
|---|
| 53 |  I FBDATE'?7N Q "0^^Valid date not specified"
 | 
|---|
| 54 |  S FBYEAR=$E(FBDATE,1,3)+1700
 | 
|---|
| 55 |  D PROC^FBAAFSR(FBCPT,$G(FBMOD),FBYEAR,1)
 | 
|---|
| 56 |  I $G(FBCPT0)="" Q "0^^CPT/MOD not found"
 | 
|---|
| 57 |  Q "1^"_$P($G(FBCPTY0),U,3)_U
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  ;check if FBMOD contains any combination of "TC",26 and 53
 | 
|---|
| 60 | CHKMOD(FBMODLST) ;
 | 
|---|
| 61 |  N FBM,FBCNT
 | 
|---|
| 62 |  S FBCNT=0,FBMODLST=","_FBMODLST_","
 | 
|---|
| 63 |  F FBM=",TC,",",26,",",53," S:FBMODLST[FBM FBCNT=FBCNT+1
 | 
|---|
| 64 |  Q FBCNT>1
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;FBRVU
 | 
|---|