[613] | 1 | TIUPXAPM ;SLC/RMO - CPT Modifier API(s) ;03/06/03@1500
|
---|
| 2 | ;;1.0;TEXT INTEGRATION UTILITIES;**82,161**;Jun 20, 1997
|
---|
| 3 | ;
|
---|
| 4 | ;Pass in encounter date for CSV **161**
|
---|
| 5 | MOD(CPT,TIUI,TIUVDT) ;Select CPT Modifiers for CPT Code
|
---|
| 6 | ; Input -- CPT CPT Selection Array
|
---|
| 7 | ; TIUI Item Number in CPT Selection Array
|
---|
| 8 | ; TIUVDT Encounter Date
|
---|
| 9 | ; Output -- CPT CPT Selection Array
|
---|
| 10 | N CPTIEN,I,MOD,MODATA,MODCNT
|
---|
| 11 | S CPTIEN=+CPT(TIUI)
|
---|
| 12 | ;
|
---|
| 13 | ;Check if there are any selectable CPT Modifiers for the CPT Code
|
---|
| 14 | ;Current date passed to ICPTCOD, changed to encounter date for CSV **161**
|
---|
| 15 | I +$$CODM^ICPTCOD(CPTIEN,,"",TIUVDT)'>0 G MODQ
|
---|
| 16 | ;
|
---|
| 17 | ;Set CPT Modifier Selection Array for pre-selected CPT Modifiers
|
---|
| 18 | S (I,MODCNT)=0
|
---|
| 19 | F S I=$O(CPT(TIUI,"MOD",I)) Q:'I D
|
---|
| 20 | . S MODCNT=MODCNT+1
|
---|
| 21 | . S MOD(+$G(CPT(TIUI,"MOD",MODCNT)))=""
|
---|
| 22 | ;
|
---|
| 23 | ;Display pre-selected CPT Modifiers
|
---|
| 24 | D DISMOD(.CPT,TIUI,1)
|
---|
| 25 | ;
|
---|
| 26 | ;Ask CPT Modifiers
|
---|
| 27 | S MODCNT=$S($G(MODCNT):MODCNT,1:0)
|
---|
| 28 | ;Pass encounter date to ASKMOD for CSV **161**
|
---|
| 29 | F Q:'$$ASKMOD(CPTIEN,.MOD,MODCNT,.MODATA,TIUVDT) D
|
---|
| 30 | . S MOD(+MODATA)=""
|
---|
| 31 | . S MODCNT=MODCNT+1
|
---|
| 32 | . S CPT(TIUI,"MOD",MODCNT)=MODATA
|
---|
| 33 | . S MODATA=""
|
---|
| 34 | MODQ Q
|
---|
| 35 | ;
|
---|
| 36 | ;Pass in encounter date for CSV **161**
|
---|
| 37 | ASKMOD(CPTIEN,MOD,MODCNT,MODATA,TIUVDT) ;Ask CPT Modifier
|
---|
| 38 | ; Input -- CPTIEN CPT file (#81) IEN
|
---|
| 39 | ; MOD CPT Modifier Selection Array
|
---|
| 40 | ; MODCNT Number of Modifiers Selected
|
---|
| 41 | ; TIUVDT Encounter Date
|
---|
| 42 | ; Output -- 1=Successful and 0=Failure
|
---|
| 43 | ; MODATA Modifier Data from Modifier file (#81.3)
|
---|
| 44 | ; 1st Piece=IEN
|
---|
| 45 | ; 2nd Piece=Modifier field (#.01)
|
---|
| 46 | ; 3rd Piece=Name field (#.02)
|
---|
| 47 | N DIR,DTOUT,DUOUT,Y
|
---|
| 48 | S DIR(0)="PAO^81.3:AEMQZ^K:'$$CHKMOD^TIUPXAPM(.MOD,+Y) X"
|
---|
| 49 | S DIR("A")="Select "_$S($G(MODCNT):"another ",1:"")_"CPT MODIFIER: "
|
---|
| 50 | ;Pass encounter date to ICPTMOD for CSV **161**
|
---|
| 51 | S DIR("S")="I +$$MODP^ICPTMOD(CPTIEN,+Y,""I"",TIUVDT)>0"
|
---|
| 52 | D ^DIR
|
---|
| 53 | I Y>0 S MODATA=+Y_U_$P(Y(0),U,1,2)
|
---|
| 54 | Q $S($G(MODATA)="":0,1:1)
|
---|
| 55 | ;
|
---|
| 56 | CHKMOD(MOD,MODIEN) ;Check Selected CPT Modifier
|
---|
| 57 | ; Input -- MOD CPT Modifier Selection Array
|
---|
| 58 | ; MODIEN Modifier file (#81.3) IEN
|
---|
| 59 | ; Output -- 1=Successful and 0=Failure
|
---|
| 60 | N Y
|
---|
| 61 | S Y=1
|
---|
| 62 | ;Check if CPT Modifier has already been selected
|
---|
| 63 | I $D(MOD(MODIEN)) D EN^DDIOL("This CPT Modifier has already been selected.","","!?5") S Y=0
|
---|
| 64 | Q +$G(Y)
|
---|
| 65 | ;
|
---|
| 66 | DISMOD(CPT,TIUI,TIUSELF) ;Display Selected CPT Modifiers
|
---|
| 67 | ; Input -- CPT CPT Selection Array
|
---|
| 68 | ; TIUI Item Number in CPT Selection Array
|
---|
| 69 | ; TIUSELF Selection Process Flag (Optional)
|
---|
| 70 | ; 1=Selection Process
|
---|
| 71 | ; Output -- None
|
---|
| 72 | N CAP,MODATA,MODCNT,TC
|
---|
| 73 | ;
|
---|
| 74 | ;Set caption and format parameter
|
---|
| 75 | I $G(TIUSELF) D
|
---|
| 76 | . S CAP="Current CPT Modifiers:",TC=0
|
---|
| 77 | ELSE D
|
---|
| 78 | . S CAP="CPT Modifier(s):",TC=8
|
---|
| 79 | S MODCNT=0
|
---|
| 80 | F S MODCNT=$O(CPT(TIUI,"MOD",MODCNT)) Q:'MODCNT D
|
---|
| 81 | . S MODATA=$G(CPT(TIUI,"MOD",MODCNT))
|
---|
| 82 | . W:MODCNT=1 !,?TC,CAP
|
---|
| 83 | . W !?12,"-",$P(MODATA,U,2),?19,$P(MODATA,U,3)
|
---|
| 84 | Q
|
---|