85 lines
2.9 KiB
Mathematica
85 lines
2.9 KiB
Mathematica
|
TIUPXAPM ;SLC/RMO - CPT Modifier API(s) ;03/06/03@1500
|
||
|
;;1.0;TEXT INTEGRATION UTILITIES;**82,161**;Jun 20, 1997
|
||
|
;
|
||
|
;Pass in encounter date for CSV **161**
|
||
|
MOD(CPT,TIUI,TIUVDT) ;Select CPT Modifiers for CPT Code
|
||
|
; Input -- CPT CPT Selection Array
|
||
|
; TIUI Item Number in CPT Selection Array
|
||
|
; TIUVDT Encounter Date
|
||
|
; Output -- CPT CPT Selection Array
|
||
|
N CPTIEN,I,MOD,MODATA,MODCNT
|
||
|
S CPTIEN=+CPT(TIUI)
|
||
|
;
|
||
|
;Check if there are any selectable CPT Modifiers for the CPT Code
|
||
|
;Current date passed to ICPTCOD, changed to encounter date for CSV **161**
|
||
|
I +$$CODM^ICPTCOD(CPTIEN,,"",TIUVDT)'>0 G MODQ
|
||
|
;
|
||
|
;Set CPT Modifier Selection Array for pre-selected CPT Modifiers
|
||
|
S (I,MODCNT)=0
|
||
|
F S I=$O(CPT(TIUI,"MOD",I)) Q:'I D
|
||
|
. S MODCNT=MODCNT+1
|
||
|
. S MOD(+$G(CPT(TIUI,"MOD",MODCNT)))=""
|
||
|
;
|
||
|
;Display pre-selected CPT Modifiers
|
||
|
D DISMOD(.CPT,TIUI,1)
|
||
|
;
|
||
|
;Ask CPT Modifiers
|
||
|
S MODCNT=$S($G(MODCNT):MODCNT,1:0)
|
||
|
;Pass encounter date to ASKMOD for CSV **161**
|
||
|
F Q:'$$ASKMOD(CPTIEN,.MOD,MODCNT,.MODATA,TIUVDT) D
|
||
|
. S MOD(+MODATA)=""
|
||
|
. S MODCNT=MODCNT+1
|
||
|
. S CPT(TIUI,"MOD",MODCNT)=MODATA
|
||
|
. S MODATA=""
|
||
|
MODQ Q
|
||
|
;
|
||
|
;Pass in encounter date for CSV **161**
|
||
|
ASKMOD(CPTIEN,MOD,MODCNT,MODATA,TIUVDT) ;Ask CPT Modifier
|
||
|
; Input -- CPTIEN CPT file (#81) IEN
|
||
|
; MOD CPT Modifier Selection Array
|
||
|
; MODCNT Number of Modifiers Selected
|
||
|
; TIUVDT Encounter Date
|
||
|
; Output -- 1=Successful and 0=Failure
|
||
|
; MODATA Modifier Data from Modifier file (#81.3)
|
||
|
; 1st Piece=IEN
|
||
|
; 2nd Piece=Modifier field (#.01)
|
||
|
; 3rd Piece=Name field (#.02)
|
||
|
N DIR,DTOUT,DUOUT,Y
|
||
|
S DIR(0)="PAO^81.3:AEMQZ^K:'$$CHKMOD^TIUPXAPM(.MOD,+Y) X"
|
||
|
S DIR("A")="Select "_$S($G(MODCNT):"another ",1:"")_"CPT MODIFIER: "
|
||
|
;Pass encounter date to ICPTMOD for CSV **161**
|
||
|
S DIR("S")="I +$$MODP^ICPTMOD(CPTIEN,+Y,""I"",TIUVDT)>0"
|
||
|
D ^DIR
|
||
|
I Y>0 S MODATA=+Y_U_$P(Y(0),U,1,2)
|
||
|
Q $S($G(MODATA)="":0,1:1)
|
||
|
;
|
||
|
CHKMOD(MOD,MODIEN) ;Check Selected CPT Modifier
|
||
|
; Input -- MOD CPT Modifier Selection Array
|
||
|
; MODIEN Modifier file (#81.3) IEN
|
||
|
; Output -- 1=Successful and 0=Failure
|
||
|
N Y
|
||
|
S Y=1
|
||
|
;Check if CPT Modifier has already been selected
|
||
|
I $D(MOD(MODIEN)) D EN^DDIOL("This CPT Modifier has already been selected.","","!?5") S Y=0
|
||
|
Q +$G(Y)
|
||
|
;
|
||
|
DISMOD(CPT,TIUI,TIUSELF) ;Display Selected CPT Modifiers
|
||
|
; Input -- CPT CPT Selection Array
|
||
|
; TIUI Item Number in CPT Selection Array
|
||
|
; TIUSELF Selection Process Flag (Optional)
|
||
|
; 1=Selection Process
|
||
|
; Output -- None
|
||
|
N CAP,MODATA,MODCNT,TC
|
||
|
;
|
||
|
;Set caption and format parameter
|
||
|
I $G(TIUSELF) D
|
||
|
. S CAP="Current CPT Modifiers:",TC=0
|
||
|
ELSE D
|
||
|
. S CAP="CPT Modifier(s):",TC=8
|
||
|
S MODCNT=0
|
||
|
F S MODCNT=$O(CPT(TIUI,"MOD",MODCNT)) Q:'MODCNT D
|
||
|
. S MODATA=$G(CPT(TIUI,"MOD",MODCNT))
|
||
|
. W:MODCNT=1 !,?TC,CAP
|
||
|
. W !?12,"-",$P(MODATA,U,2),?19,$P(MODATA,U,3)
|
||
|
Q
|