RAMAG06A ;HCIOFO/SG - ORDERS/EXAMS API (EXAM EDIT TOOLS) ; 2/6/09 11:14am
;;5.0;Radiology/Nuclear Medicine;**90**;Mar 16, 1998;Build 20
;
Q
;
;+++++ EXAM EDIT PRE-PROCESSING
;
; RACTION Actions (can be combined):
; E Examined (procedure has been performed)
; C Complete
;
; .RATRKCMB Reference to a local variable where current values
; of the CONTRAST MEDIA multiple will be saved.
;
; .RAPRIEN Reference to a local array where some of current
; case properties will be saved.
;
; Input variables:
; RACNI, RADFN, RADTI
;
; Return values:
; <0 Error descriptor (see $$ERROR^RAERR)
; 0 Ok
;
; NOTE: This is an internal entry point. Do not call it from outside
; of exam editing routines.
;
EDTPRE(RACTION,RATRKCMB,RAPRIEN) ;
N RARC
S RARC=0
;--- Save 'before' CONTRAST MEDIA data values to compare
;--- against the possible 'after' values
D TRK70CMB^RAMAINU(RADFN,RADTI,RACNI,.RATRKCMB)
;--- Save 'before' values (in RAPRIEN) to compare later in RAUTL1
D SVBEFOR^RAO7XX(RADFN,RADTI,RACNI)
;---
Q $S(RARC<0:RARC,1:0)
;
;+++++ EXAM EDIT POST-PROCESSING
;
; RACTION Actions (can be combined):
; E Examined (procedure has been performed)
; C Complete
;
; RATRKCMB Old values from the CONTRAST MEDIA multiple
;
; .RAPRIEN Reference to a local array with saved case
; properties.
;
; Input variables:
; RACASE, RACNI, RADFN, RADTI, RAMISC
;
; Return values:
; <0 Error descriptor (see $$ERROR^RAERR)
; 0 Ok
;
; NOTE: This is an internal entry point. Do not call it from outside
; of exam editing routines.
;
EDTPST(RACTION,RATRKCMB,RAPRIEN) ;
N FLAGS,N,RABLNK,RACAT,RAD3,RADELFLG,RAEXM0,RAEXOR,RAIENS,RAILP,RAMIFN,RAMOD,RAMODA,RAMODD,RAOIFN,RAOPT,RAORD0,RAORDB4,RAOREA,RAOSTS,RAPRC,RARC,RARSH,RASFM,RASHA,RATRKCMA,TMP,X,ZTQUEUED
;--- Compare new values with those saved by the SVBEFOR^RAO7XX and
;--- send changed order control "XX" to CPRS but do not send alert.
S TMP=$$CMPAFTR^RAO7XX(0)
;--- Send HL7 messages
S FLAGS=$$TRFLAGS^RAUTL22($G(RAMISC("FLAGS")),"S","S")
I RACTION["E" D Q:RARC<0 RARC
. S RARC=$$EXAMINED^RAMAGHL(RACASE,FLAGS)
I RACTION["C" D Q:RARC<0 RARC
. S RARC=$$REPORT^RAMAGHL(RACASE,FLAGS)
;--- Update the request/order status
D
. N IORI,IOSTBM ; Otherwise, the code breaks the BROWSER device
. N ZTQUEUED
. S ZTQUEUED=1 ; Suppress the output
. D ^RAORDC
;--- Compare 'before' and 'after' CONTRAST MEDIA data
;--- and update the audit log if necessary.
D TRK70CMA^RAMAINU(RADFN,RADTI,RACNI,RATRKCMB)
;---
Q $S(RARC<0:RARC,1:0)
;
;+++++ NUCLEAR MEDICINE CODE
;
; RACASE Examination identifiers
; ^01: IEN of the patient in the file #70 (RADFN)
; ^02: IEN in the REGISTERED EXAMS multiple (RADTI)
; ^03: IEN in the EXAMINATIONS multiple (RACNI)
;
; RACTION Actions (can be combined):
; E Examined (procedure has been performed)
; C Complete
;
; .RAMISC Reference to a local array containing miscellaneous
; request parameters.
;
; .RAFDA Reference to a local array where field values will
; be prepared for storage (FileMan FDA array).
;
; Input variables:
; RACN, RADTE, RAMISC, RAMSPSDEFS, RAPROCIEN
;
; Output variables:
; RALOCK, RAMISC
;
; Return Values:
; <0 Error descriptor (see $$ERROR^RAERR)
; 0 Nuclear medicine data is not needed
; >0 IEN of the record of the NUC MED EXAM DATA file (#70.2)
;
NUCMED(RACASE,RACTION,RAMISC,RAFDA) ;
N RANMDIEN,RARC,TMP
;--- Create the nuclear medicine stub if necessary
S RANMDIEN=$$NMEDSTUB^RAMAGU13(RACASE,RAPROCIEN,RADTE,RACN)
Q:RANMDIEN<0 RANMDIEN
;--- Nuclear medicine related
I RANMDIEN>0 D Q:RARC<0 RARC
. ;--- Lock the nuclear medicine data
. K TMP S TMP(70.2,RANMDIEN_",")=""
. S RARC=$$LOCKFM^RALOCK(.TMP)
. I RARC S RARC=$$LOCKERR^RAERR(RARC,"nuc. med. data") Q
. M RALOCK=TMP
. ;--- Validate parameters
. S RARC=$$VAL702^RAMAGU14(RANMDIEN_",",RACTION,.RAMISC,.RAFDA)
. I RARC<0 S RARC=$$ERROR^RAERR(-11) Q
;--- Success
Q RANMDIEN
RAMAG06A ;HCIOFO/SG - ORDERS/EXAMS API (EXAM EDIT TOOLS) ; 2/6/09 11:14am
+1 ;;5.0;Radiology/Nuclear Medicine;**90**;Mar 16, 1998;Build 20
+2 ;
+3 QUIT
+4 ;
+5 ;+++++ EXAM EDIT PRE-PROCESSING
+6 ;
+7 ; RACTION Actions (can be combined):
+8 ; E Examined (procedure has been performed)
+9 ; C Complete
+10 ;
+11 ; .RATRKCMB Reference to a local variable where current values
+12 ; of the CONTRAST MEDIA multiple will be saved.
+13 ;
+14 ; .RAPRIEN Reference to a local array where some of current
+15 ; case properties will be saved.
+16 ;
+17 ; Input variables:
+18 ; RACNI, RADFN, RADTI
+19 ;
+20 ; Return values:
+21 ; <0 Error descriptor (see $$ERROR^RAERR)
+22 ; 0 Ok
+23 ;
+24 ; NOTE: This is an internal entry point. Do not call it from outside
+25 ; of exam editing routines.
+26 ;
EDTPRE(RACTION,RATRKCMB,RAPRIEN) ;
+1 NEW RARC
+2 SET RARC=0
+3 ;--- Save 'before' CONTRAST MEDIA data values to compare
+4 ;--- against the possible 'after' values
+5 DO TRK70CMB^RAMAINU(RADFN,RADTI,RACNI,.RATRKCMB)
+6 ;--- Save 'before' values (in RAPRIEN) to compare later in RAUTL1
+7 DO SVBEFOR^RAO7XX(RADFN,RADTI,RACNI)
+8 ;---
+9 QUIT $SELECT(RARC<0:RARC,1:0)
+10 ;
+11 ;+++++ EXAM EDIT POST-PROCESSING
+12 ;
+13 ; RACTION Actions (can be combined):
+14 ; E Examined (procedure has been performed)
+15 ; C Complete
+16 ;
+17 ; RATRKCMB Old values from the CONTRAST MEDIA multiple
+18 ;
+19 ; .RAPRIEN Reference to a local array with saved case
+20 ; properties.
+21 ;
+22 ; Input variables:
+23 ; RACASE, RACNI, RADFN, RADTI, RAMISC
+24 ;
+25 ; Return values:
+26 ; <0 Error descriptor (see $$ERROR^RAERR)
+27 ; 0 Ok
+28 ;
+29 ; NOTE: This is an internal entry point. Do not call it from outside
+30 ; of exam editing routines.
+31 ;
EDTPST(RACTION,RATRKCMB,RAPRIEN) ;
+1 NEW FLAGS,N,RABLNK,RACAT,RAD3,RADELFLG,RAEXM0,RAEXOR,RAIENS,RAILP,RAMIFN,RAMOD,RAMODA,RAMODD,RAOIFN,RAOPT,RAORD0,RAORDB4,RAOREA,RAOSTS,RAPRC,RARC,RARSH,RASFM,RASHA,RATRKCMA,TMP,X,ZTQUEUED
+2 ;--- Compare new values with those saved by the SVBEFOR^RAO7XX and
+3 ;--- send changed order control "XX" to CPRS but do not send alert.
+4 SET TMP=$$CMPAFTR^RAO7XX(0)
+5 ;--- Send HL7 messages
+6 SET FLAGS=$$TRFLAGS^RAUTL22($GET(RAMISC("FLAGS")),"S","S")
+7 IF RACTION["E"
Begin DoDot:1
+8 SET RARC=$$EXAMINED^RAMAGHL(RACASE,FLAGS)
End DoDot:1
IF RARC<0
QUIT RARC
+9 IF RACTION["C"
Begin DoDot:1
+10 SET RARC=$$REPORT^RAMAGHL(RACASE,FLAGS)
End DoDot:1
IF RARC<0
QUIT RARC
+11 ;--- Update the request/order status
+12 Begin DoDot:1
+13 ; Otherwise, the code breaks the BROWSER device
NEW IORI,IOSTBM
+14 NEW ZTQUEUED
+15 ; Suppress the output
SET ZTQUEUED=1
+16 DO ^RAORDC
End DoDot:1
+17 ;--- Compare 'before' and 'after' CONTRAST MEDIA data
+18 ;--- and update the audit log if necessary.
+19 DO TRK70CMA^RAMAINU(RADFN,RADTI,RACNI,RATRKCMB)
+20 ;---
+21 QUIT $SELECT(RARC<0:RARC,1:0)
+22 ;
+23 ;+++++ NUCLEAR MEDICINE CODE
+24 ;
+25 ; RACASE Examination identifiers
+26 ; ^01: IEN of the patient in the file #70 (RADFN)
+27 ; ^02: IEN in the REGISTERED EXAMS multiple (RADTI)
+28 ; ^03: IEN in the EXAMINATIONS multiple (RACNI)
+29 ;
+30 ; RACTION Actions (can be combined):
+31 ; E Examined (procedure has been performed)
+32 ; C Complete
+33 ;
+34 ; .RAMISC Reference to a local array containing miscellaneous
+35 ; request parameters.
+36 ;
+37 ; .RAFDA Reference to a local array where field values will
+38 ; be prepared for storage (FileMan FDA array).
+39 ;
+40 ; Input variables:
+41 ; RACN, RADTE, RAMISC, RAMSPSDEFS, RAPROCIEN
+42 ;
+43 ; Output variables:
+44 ; RALOCK, RAMISC
+45 ;
+46 ; Return Values:
+47 ; <0 Error descriptor (see $$ERROR^RAERR)
+48 ; 0 Nuclear medicine data is not needed
+49 ; >0 IEN of the record of the NUC MED EXAM DATA file (#70.2)
+50 ;
NUCMED(RACASE,RACTION,RAMISC,RAFDA) ;
+1 NEW RANMDIEN,RARC,TMP
+2 ;--- Create the nuclear medicine stub if necessary
+3 SET RANMDIEN=$$NMEDSTUB^RAMAGU13(RACASE,RAPROCIEN,RADTE,RACN)
+4 IF RANMDIEN<0
QUIT RANMDIEN
+5 ;--- Nuclear medicine related
+6 IF RANMDIEN>0
Begin DoDot:1
+7 ;--- Lock the nuclear medicine data
+8 KILL TMP
SET TMP(70.2,RANMDIEN_",")=""
+9 SET RARC=$$LOCKFM^RALOCK(.TMP)
+10 IF RARC
SET RARC=$$LOCKERR^RAERR(RARC,"nuc. med. data")
QUIT
+11 MERGE RALOCK=TMP
+12 ;--- Validate parameters
+13 SET RARC=$$VAL702^RAMAGU14(RANMDIEN_",",RACTION,.RAMISC,.RAFDA)
+14 IF RARC<0
SET RARC=$$ERROR^RAERR(-11)
QUIT
End DoDot:1
IF RARC<0
QUIT RARC
+15 ;--- Success
+16 QUIT RANMDIEN