[613] | 1 | IBDFDE23 ;ALB/DHH - Select CPT Modifiers during Manual Data Entry ; MAY-18-1999
|
---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**38,37**;APR 24, 1997
|
---|
| 3 | MOD ;Entry point for selecting or modifying modifiers
|
---|
| 4 | ;
|
---|
| 5 | ; -- called by IBDFDE21
|
---|
| 6 | ;
|
---|
| 7 | N CODE,I,X,SEL,MOD,Y,CNT,MODLST
|
---|
| 8 | ;
|
---|
| 9 | ;-- result is definition is noted in ^ibdfde2
|
---|
| 10 | ; result:= pckg interface^code to send^text to send...
|
---|
| 11 | ;
|
---|
| 12 | S CODE=$P(RESULT(IBDX),"^",2)
|
---|
| 13 | ;
|
---|
| 14 | ; --ans = list number, cpt, or cpt-mod,mod (raw data user enters)
|
---|
| 15 | ; if ans contains "-" then seperate and validate each cpt modifier pair
|
---|
| 16 | ; if ans contains "-" ans should = cpt-mod,mod,mod...
|
---|
| 17 | ; else ask for modifiers
|
---|
| 18 | ;
|
---|
| 19 | I ANS["-" D
|
---|
| 20 | .S MODLST=$P(ANS,"-",2)
|
---|
| 21 | .F I=1:1 S X=$P(MODLST,",",I) Q:X']"" D
|
---|
| 22 | ..; --check for appropriate modifiers/cpt matches
|
---|
| 23 | ..; cpts and modifiers can be input as
|
---|
| 24 | ..; -- cpt-mod,mod,mod
|
---|
| 25 | ..; if multiple modifiers were entered with cpt, each cpt-mod pair
|
---|
| 26 | ..; will be checked by modp^icptmod to see if valid. if not, an
|
---|
| 27 | ..; error message will be displayed for the invalid code pair
|
---|
| 28 | ..;
|
---|
| 29 | .. I $$MODP^ICPTMOD(CODE,X)'>0 D ERR Q
|
---|
| 30 | .. S SEL("MOD",X)=""
|
---|
| 31 | ;
|
---|
| 32 | ; --no matter what method user uses to input data modifiers should
|
---|
| 33 | ; should be asked for each cpt code
|
---|
| 34 | ;
|
---|
| 35 | D OTHER,ARRAY
|
---|
| 36 | Q
|
---|
| 37 | ;
|
---|
| 38 | OTHER ;--allow for additional modifiers to be selected
|
---|
| 39 | N DIC
|
---|
| 40 | F S DIC=81.3,DIC("S")="I ($$MODP^ICPTMOD(CODE,+Y,""I""))>0",DIC(0)="AEMQ" D ^DIC Q:+Y<1 D
|
---|
| 41 | . S MOD=$P($G(Y),"^",2)
|
---|
| 42 | . I $D(SEL("MOD",MOD)) D DELMOD Q:Y=1
|
---|
| 43 | . S:MOD'="" SEL("MOD",MOD)=""
|
---|
| 44 | Q
|
---|
| 45 | DELMOD ; Delete modifier from list if duplicate entry
|
---|
| 46 | N DIR,DA,DR,DIC
|
---|
| 47 | W !,"Do you want to remove this modifier as being Associated with this CPT Procedure?"
|
---|
| 48 | S DIR(0)="Y",DIR("B")="YES" D ^DIR Q:$D(DIRUT)
|
---|
| 49 | I Y=1 K SEL("MOD",MOD)
|
---|
| 50 | Q
|
---|
| 51 | ARRAY ; -- transfer modifier data to result array
|
---|
| 52 | Q:'$D(SEL)
|
---|
| 53 | S MOD="",CNT=0 F S MOD=$O(SEL("MOD",MOD)) Q:MOD']"" D
|
---|
| 54 | . S CNT=CNT+1
|
---|
| 55 | . S RESULT(IBDX,"MODIFIER",CNT)=MOD
|
---|
| 56 | S RESULT(IBDX,"MODIFIER",0)=CNT
|
---|
| 57 | Q
|
---|
| 58 | ;
|
---|
| 59 | ERR ;Error message
|
---|
| 60 | W !,X," is not a valid modifier for ",CODE,!
|
---|
| 61 | Q
|
---|
| 62 | GAFSCOR ;Enter GAF Score
|
---|
| 63 | ;GAFCNT is newed in % of IBDFDE,IBDFDE6,IBDFDE7
|
---|
| 64 | S GAFCNT=$G(GAFCNT)+1
|
---|
| 65 | I GAFCNT=2 Q
|
---|
| 66 | I GAFCNT>2 K GAFCNT Q
|
---|
| 67 | S DIR(0)="N^1:100"
|
---|
| 68 | S DIR("A")="Enter GAF Score "
|
---|
| 69 | S DIR("?")="GAF Score is numeric from 1-100."
|
---|
| 70 | D ^DIR
|
---|
| 71 | I Y<1 D G GAFSCOR
|
---|
| 72 | . W "You must enter a GAF Score (1-100)!"
|
---|
| 73 | . S GAFCNT=$G(GAFCNT)-1
|
---|
| 74 | S IBDSEL(0)=$G(IBDSEL(0))+1
|
---|
| 75 | S IBDSEL(IBDSEL(0))=IBDF("PI")_"^"_+Y_"^ ^^^^^GAF SCORE"
|
---|
| 76 | S $P(PXCA("IBD GAF SCORE",0),"^")=+Y
|
---|
| 77 | Q
|
---|
| 78 | ;
|
---|
| 79 | OKPROV(IEN) ; Screen for provider lookup using person class
|
---|
| 80 | Q ($D(^XUSEC("SD GAF SCORE",IEN)))
|
---|
| 81 | ;
|
---|