| 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 | ; | 
|---|