RAMAGRP1 ;HCIOFO/SG - ORDERS/EXAMS API (REMOTE PROCEDURES) ; 6/6/08 2:40pm
 ;;5.0;Radiology/Nuclear Medicine;**90**;Mar 16, 1998;Build 20
 ;
 Q
 ;
 ;+++++ COMPLETES THE EXAM
 ; RPC: [RAMAG EXAM COMPLETE]
 ;
 ; .RARESULT     Reference to a local variable where the results
 ;               are returned to.
 ;
 ; See the comments preceding the $$COMPLETE^RAMAG06 function for
 ; description of other parameters.
 ;
 ; NOTE: Date/time values are passed into this RPC it in HL7
 ;       format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 ;
 ; Return Values:
 ;
 ; A negative value of the first "^"-piece of the RARESULT(0)
 ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 ; details).
 ;
 ; Otherwise, 0 is returned in the RARESULT(0).
 ;
COMPLETE(RARESULT,RACASE,RAMSC) ;
 N RAERROR,RAMISC,RC
 N:'$G(RAPARAMS("DEBUG")) RAPARAMS
 K RARESULT  S (RARESULT(0),RC)=0
 ;---
 D CLEAR^RAERR(1)
 D:$G(RAPARAMS("DEBUG"))>1
 . D W^RAMAGU11("RAMAG EXAM COMPLETE","!!")
 . D VARS^RAMAGU11("RACASE")
 . D ZW^RAUTL22("RAMSC")
 D
 . ;--- Parse miscellaneous parameters
 . S RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)  Q:RC<0
 . K RAMSC
 . ;--- Complete the exam
 . S RC=$$COMPLETE^RAMAG06(.RAPARAMS,.RACASE,.RAMISC)
 ;---
 D:RC<0 RPCSTK^RAERR01(.RARESULT,RC)
 Q
 ;
 ;+++++ CANCELS THE EXAM
 ; RPC: [RAMAG EXAM CANCEL]
 ;
 ; .RARESULT     Reference to a local variable where the results
 ;               are returned to.
 ;
 ; See the comments preceding the $$EXAMCANC^RAMAG05 function for
 ; description of other parameters.
 ;
 ; Return Values:
 ;
 ; A negative value of the first "^"-piece of the RARESULT(0)
 ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 ; details).
 ;
 ; Otherwise, 0 is returned in the RARESULT(0).
 ;
EXAMCANC(RARESULT,RACASE,RAREASON,RAFLAGS,RAMSC) ;
 N RAERROR,RAMISC,RC
 N:'$G(RAPARAMS("DEBUG")) RAPARAMS
 K RARESULT  S (RARESULT(0),RC)=0
 ;---
 D CLEAR^RAERR(1)
 D:$G(RAPARAMS("DEBUG"))>1
 . D W^RAMAGU11("RAMAG EXAM CANCEL","!!")
 . D VARS^RAMAGU11("RACASE,RAREASON,RAFLAGS")
 . D ZW^RAUTL22("RAMSC")
 D
 . ;--- Parse miscellaneous parameters
 . S RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)  Q:RC<0
 . K RAMSC
 . ;--- Cancel the exam
 . S RC=$$EXAMCANC^RAMAG05(.RAPARAMS,.RACASE,.RAREASON,.RAFLAGS,.RAMISC)
 ;---
 D:RC<0 RPCSTK^RAERR01(.RARESULT,RC)
 Q
 ;
 ;+++++ CANCELS THE ORDER
 ; RPC: [RAMAG ORDER CANCEL]
 ;
 ; .RARESULT     Reference to a local variable where the results
 ;               are returned to.
 ;
 ; See the comments preceding the $$ORDCANC^RAMAG04 function for
 ; description of other parameters.
 ;
 ; Return Values:
 ;
 ; A negative value of the first "^"-piece of the RARESULT(0)
 ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 ; details).
 ;
 ; Otherwise, 0 is returned in the RARESULT(0).
 ;
ORDCANC(RARESULT,RAOIFN,RAREASON,RAMSC) ;
 N RAERROR,RAMISC,RC
 N:'$G(RAPARAMS("DEBUG")) RAPARAMS
 K RARESULT  S (RARESULT(0),RC)=0
 ;---
 D CLEAR^RAERR(1)
 D:$G(RAPARAMS("DEBUG"))>1
 . D W^RAMAGU11("RAMAG ORDER CANCEL","!!")
 . D VARS^RAMAGU11("RAOIFN,RAREASON")
 . D ZW^RAUTL22("RAMSC")
 D
 . ;--- Parse miscellaneous parameters
 . S RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)  Q:RC<0
 . K RAMSC
 . ;--- Cancel the order
 . S RC=$$ORDCANC^RAMAG04(.RAPARAMS,.RAOIFN,.RAREASON,.RAMISC)
 ;---
 D:RC<0 RPCSTK^RAERR01(.RARESULT,RC)
 Q
 ;
 ;+++++ ORDERS/REQUESTS AN EXAM
 ; RPC: [RAMAG EXAM ORDER]
 ;
 ; .RARESULT     Reference to a local variable where the results
 ;               are returned to.
 ;
 ; See the comments preceding the $$ORDER^RAMAG02 function for
 ; description of other parameters.
 ;
 ; NOTE: Date/time values are passed into this RPC it in HL7
 ;       format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 ;
 ; Return Values:
 ;
 ; A negative value of the first "^"-piece of the RARESULT(0)
 ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 ; details).
 ;
 ; Otherwise, IEN of the new order in the RAD/NUC MED ORDERS file
 ; (#75.1) is returned in the RARESULT(0).
 ;
ORDER(RARESULT,RADFN,RAMLC,RAPROC,REQDTE,RACAT,REQLOC,REQPHYS,REASON,RAMSC) ;
 N REQDTE1,RAERROR,RAMISC,RC
 N:'$G(RAPARAMS("DEBUG")) RAPARAMS
 K RARESULT  S (RARESULT(0),RC)=0
 ;---
 D CLEAR^RAERR(1)
 D:$G(RAPARAMS("DEBUG"))>1
 . D W^RAMAGU11("RAMAG EXAM ORDER","!!")
 . D VARS^RAMAGU11("RADFN,RAMLC,RAPROC")
 . D VARS^RAMAGU11("REQDTE,RACAT,REQLOC,REQPHYS")
 . D VARS^RAMAGU11("REASON")
 . D ZW^RAUTL22("RAMSC")
 D
 . ;--- Parse miscellaneous parameters
 . S RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)  Q:RC<0
 . K RAMSC
 . ;--- Convert the request date
 . S REQDTE1=$$HL7TFM^XLFDT($G(REQDTE))
 . I REQDTE1'>0  D  Q
 . . S RC=$$IPVE^RAERR("REQDTE")
 . ;--- Request an exam
 . S RC=$$ORDER^RAMAG02(.RAPARAMS,.RADFN,.RAMLC,.RAPROC,REQDTE1,.RACAT,.REQLOC,.REQPHYS,.REASON,.RAMISC)
 . S:RC>0 RARESULT(0)=+RC
 ;---
 D:RC<0 RPCSTK^RAERR01(.RARESULT,RC)
 Q
 ;
 ;+++++ REGISTERS THE EXAM
 ; RPC: [RAMAG EXAM REGISTER]
 ;
 ; .RARESULT     Reference to a local variable where the results
 ;               are returned to.
 ;
 ; See the comments preceding the $$REGISTER^RAMAG03 function for
 ; description of other parameters.
 ;
 ; NOTE: Date/time values are passed into this RPC and returned from
 ;       it in HL7 format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 ;
 ; Return Values:
 ;
 ; A negative value of the first "^"-piece of the RARESULT(0)
 ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 ; details).
 ;
 ; Otherwise, number of registered examinations is returned in the
 ; RARESULT(0) and identifiers of the examinations are returned
 ; in the subsequent elements of the array.
 ;
 ; RARESULT(
 ;   0)                  Number of registered examinations
 ;
 ;   i)                  Examination identifiers
 ;                         ^01: IEN of the patient in the file #70
 ;                         ^02: IEN in the REGISTERED EXAMS multiple
 ;                         ^03: IEN in the EXAMINATIONS multiple
 ;                         ^04: Case number
 ;                         ^05: Accession number
 ;                         ^06: Actual date/time of the case (value
 ;                              of the EXAM DATE field) in HL7 format 
 ;                              (TS): YYYYMMDD[HHMM[+/-ZZZZ]]
 ;
REGISTER(RARESULT,RAOIFN,EXMDTE,RAMSC) ;
 N I,EXMDTE1,RAERROR,RAMISC,RC
 N:'$G(RAPARAMS("DEBUG")) RAPARAMS
 K RARESULT  S (RARESULT(0),RC)=0
 ;---
 D CLEAR^RAERR(1)
 D:$G(RAPARAMS("DEBUG"))>1
 . D W^RAMAGU11("RAMAG EXAM REGISTER","!!")
 . D VARS^RAMAGU11("RAOIFN,EXMDTE")
 . D ZW^RAUTL22("RAMSC")
 D
 . ;--- Parse miscellaneous parameters
 . S RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)  Q:RC<0
 . K RAMSC
 . ;--- Convert the exam date/time
 . S EXMDTE1=$$HL7TFM^XLFDT($G(EXMDTE))
 . I EXMDTE1'>0  D  Q
 . . S RC=$$IPVE^RAERR("EXMDTE")
 . ;--- Register the exam
 . S RC=$$REGISTER^RAMAG03(.RAPARAMS,.RARESULT,.RAOIFN,EXMDTE1,.RAMISC)
 . Q:RC'>0
 . S RARESULT(0)=+RC
 . ;--- Convert the result date/time values to HL7 (TS) format
 . F I=1:1:RARESULT(0)  D
 . . S $P(RARESULT(I),U,6)=$$FMTHL7^XLFDT($P(RARESULT(I),U,6))
 ;---
 D:RC<0 RPCSTK^RAERR01(.RARESULT,RC)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRAMAGRP1   7239     printed  Sep 23, 2025@20:13:02                                                                                                                                                                                                    Page 2
RAMAGRP1  ;HCIOFO/SG - ORDERS/EXAMS API (REMOTE PROCEDURES) ; 6/6/08 2:40pm
 +1       ;;5.0;Radiology/Nuclear Medicine;**90**;Mar 16, 1998;Build 20
 +2       ;
 +3        QUIT 
 +4       ;
 +5       ;+++++ COMPLETES THE EXAM
 +6       ; RPC: [RAMAG EXAM COMPLETE]
 +7       ;
 +8       ; .RARESULT     Reference to a local variable where the results
 +9       ;               are returned to.
 +10      ;
 +11      ; See the comments preceding the $$COMPLETE^RAMAG06 function for
 +12      ; description of other parameters.
 +13      ;
 +14      ; NOTE: Date/time values are passed into this RPC it in HL7
 +15      ;       format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 +16      ;
 +17      ; Return Values:
 +18      ;
 +19      ; A negative value of the first "^"-piece of the RARESULT(0)
 +20      ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 +21      ; details).
 +22      ;
 +23      ; Otherwise, 0 is returned in the RARESULT(0).
 +24      ;
COMPLETE(RARESULT,RACASE,RAMSC) ;
 +1        NEW RAERROR,RAMISC,RC
 +2        if '$GET(RAPARAMS("DEBUG"))
               NEW RAPARAMS
 +3        KILL RARESULT
           SET (RARESULT(0),RC)=0
 +4       ;---
 +5        DO CLEAR^RAERR(1)
 +6        if $GET(RAPARAMS("DEBUG"))>1
               Begin DoDot:1
 +7                DO W^RAMAGU11("RAMAG EXAM COMPLETE","!!")
 +8                DO VARS^RAMAGU11("RACASE")
 +9                DO ZW^RAUTL22("RAMSC")
               End DoDot:1
 +10       Begin DoDot:1
 +11      ;--- Parse miscellaneous parameters
 +12           SET RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)
               if RC<0
                   QUIT 
 +13           KILL RAMSC
 +14      ;--- Complete the exam
 +15           SET RC=$$COMPLETE^RAMAG06(.RAPARAMS,.RACASE,.RAMISC)
           End DoDot:1
 +16      ;---
 +17       if RC<0
               DO RPCSTK^RAERR01(.RARESULT,RC)
 +18       QUIT 
 +19      ;
 +20      ;+++++ CANCELS THE EXAM
 +21      ; RPC: [RAMAG EXAM CANCEL]
 +22      ;
 +23      ; .RARESULT     Reference to a local variable where the results
 +24      ;               are returned to.
 +25      ;
 +26      ; See the comments preceding the $$EXAMCANC^RAMAG05 function for
 +27      ; description of other parameters.
 +28      ;
 +29      ; Return Values:
 +30      ;
 +31      ; A negative value of the first "^"-piece of the RARESULT(0)
 +32      ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 +33      ; details).
 +34      ;
 +35      ; Otherwise, 0 is returned in the RARESULT(0).
 +36      ;
EXAMCANC(RARESULT,RACASE,RAREASON,RAFLAGS,RAMSC) ;
 +1        NEW RAERROR,RAMISC,RC
 +2        if '$GET(RAPARAMS("DEBUG"))
               NEW RAPARAMS
 +3        KILL RARESULT
           SET (RARESULT(0),RC)=0
 +4       ;---
 +5        DO CLEAR^RAERR(1)
 +6        if $GET(RAPARAMS("DEBUG"))>1
               Begin DoDot:1
 +7                DO W^RAMAGU11("RAMAG EXAM CANCEL","!!")
 +8                DO VARS^RAMAGU11("RACASE,RAREASON,RAFLAGS")
 +9                DO ZW^RAUTL22("RAMSC")
               End DoDot:1
 +10       Begin DoDot:1
 +11      ;--- Parse miscellaneous parameters
 +12           SET RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)
               if RC<0
                   QUIT 
 +13           KILL RAMSC
 +14      ;--- Cancel the exam
 +15           SET RC=$$EXAMCANC^RAMAG05(.RAPARAMS,.RACASE,.RAREASON,.RAFLAGS,.RAMISC)
           End DoDot:1
 +16      ;---
 +17       if RC<0
               DO RPCSTK^RAERR01(.RARESULT,RC)
 +18       QUIT 
 +19      ;
 +20      ;+++++ CANCELS THE ORDER
 +21      ; RPC: [RAMAG ORDER CANCEL]
 +22      ;
 +23      ; .RARESULT     Reference to a local variable where the results
 +24      ;               are returned to.
 +25      ;
 +26      ; See the comments preceding the $$ORDCANC^RAMAG04 function for
 +27      ; description of other parameters.
 +28      ;
 +29      ; Return Values:
 +30      ;
 +31      ; A negative value of the first "^"-piece of the RARESULT(0)
 +32      ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 +33      ; details).
 +34      ;
 +35      ; Otherwise, 0 is returned in the RARESULT(0).
 +36      ;
ORDCANC(RARESULT,RAOIFN,RAREASON,RAMSC) ;
 +1        NEW RAERROR,RAMISC,RC
 +2        if '$GET(RAPARAMS("DEBUG"))
               NEW RAPARAMS
 +3        KILL RARESULT
           SET (RARESULT(0),RC)=0
 +4       ;---
 +5        DO CLEAR^RAERR(1)
 +6        if $GET(RAPARAMS("DEBUG"))>1
               Begin DoDot:1
 +7                DO W^RAMAGU11("RAMAG ORDER CANCEL","!!")
 +8                DO VARS^RAMAGU11("RAOIFN,RAREASON")
 +9                DO ZW^RAUTL22("RAMSC")
               End DoDot:1
 +10       Begin DoDot:1
 +11      ;--- Parse miscellaneous parameters
 +12           SET RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)
               if RC<0
                   QUIT 
 +13           KILL RAMSC
 +14      ;--- Cancel the order
 +15           SET RC=$$ORDCANC^RAMAG04(.RAPARAMS,.RAOIFN,.RAREASON,.RAMISC)
           End DoDot:1
 +16      ;---
 +17       if RC<0
               DO RPCSTK^RAERR01(.RARESULT,RC)
 +18       QUIT 
 +19      ;
 +20      ;+++++ ORDERS/REQUESTS AN EXAM
 +21      ; RPC: [RAMAG EXAM ORDER]
 +22      ;
 +23      ; .RARESULT     Reference to a local variable where the results
 +24      ;               are returned to.
 +25      ;
 +26      ; See the comments preceding the $$ORDER^RAMAG02 function for
 +27      ; description of other parameters.
 +28      ;
 +29      ; NOTE: Date/time values are passed into this RPC it in HL7
 +30      ;       format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 +31      ;
 +32      ; Return Values:
 +33      ;
 +34      ; A negative value of the first "^"-piece of the RARESULT(0)
 +35      ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 +36      ; details).
 +37      ;
 +38      ; Otherwise, IEN of the new order in the RAD/NUC MED ORDERS file
 +39      ; (#75.1) is returned in the RARESULT(0).
 +40      ;
ORDER(RARESULT,RADFN,RAMLC,RAPROC,REQDTE,RACAT,REQLOC,REQPHYS,REASON,RAMSC) ;
 +1        NEW REQDTE1,RAERROR,RAMISC,RC
 +2        if '$GET(RAPARAMS("DEBUG"))
               NEW RAPARAMS
 +3        KILL RARESULT
           SET (RARESULT(0),RC)=0
 +4       ;---
 +5        DO CLEAR^RAERR(1)
 +6        if $GET(RAPARAMS("DEBUG"))>1
               Begin DoDot:1
 +7                DO W^RAMAGU11("RAMAG EXAM ORDER","!!")
 +8                DO VARS^RAMAGU11("RADFN,RAMLC,RAPROC")
 +9                DO VARS^RAMAGU11("REQDTE,RACAT,REQLOC,REQPHYS")
 +10               DO VARS^RAMAGU11("REASON")
 +11               DO ZW^RAUTL22("RAMSC")
               End DoDot:1
 +12       Begin DoDot:1
 +13      ;--- Parse miscellaneous parameters
 +14           SET RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)
               if RC<0
                   QUIT 
 +15           KILL RAMSC
 +16      ;--- Convert the request date
 +17           SET REQDTE1=$$HL7TFM^XLFDT($GET(REQDTE))
 +18           IF REQDTE1'>0
                   Begin DoDot:2
 +19                   SET RC=$$IPVE^RAERR("REQDTE")
                   End DoDot:2
                   QUIT 
 +20      ;--- Request an exam
 +21           SET RC=$$ORDER^RAMAG02(.RAPARAMS,.RADFN,.RAMLC,.RAPROC,REQDTE1,.RACAT,.REQLOC,.REQPHYS,.REASON,.RAMISC)
 +22           if RC>0
                   SET RARESULT(0)=+RC
           End DoDot:1
 +23      ;---
 +24       if RC<0
               DO RPCSTK^RAERR01(.RARESULT,RC)
 +25       QUIT 
 +26      ;
 +27      ;+++++ REGISTERS THE EXAM
 +28      ; RPC: [RAMAG EXAM REGISTER]
 +29      ;
 +30      ; .RARESULT     Reference to a local variable where the results
 +31      ;               are returned to.
 +32      ;
 +33      ; See the comments preceding the $$REGISTER^RAMAG03 function for
 +34      ; description of other parameters.
 +35      ;
 +36      ; NOTE: Date/time values are passed into this RPC and returned from
 +37      ;       it in HL7 format (TS): YYYYMMDD[HHMM[+/-ZZZZ]].
 +38      ;
 +39      ; Return Values:
 +40      ;
 +41      ; A negative value of the first "^"-piece of the RARESULT(0)
 +42      ; indicates an error (see the RPCSTK^RAERR01 procedure for more
 +43      ; details).
 +44      ;
 +45      ; Otherwise, number of registered examinations is returned in the
 +46      ; RARESULT(0) and identifiers of the examinations are returned
 +47      ; in the subsequent elements of the array.
 +48      ;
 +49      ; RARESULT(
 +50      ;   0)                  Number of registered examinations
 +51      ;
 +52      ;   i)                  Examination identifiers
 +53      ;                         ^01: IEN of the patient in the file #70
 +54      ;                         ^02: IEN in the REGISTERED EXAMS multiple
 +55      ;                         ^03: IEN in the EXAMINATIONS multiple
 +56      ;                         ^04: Case number
 +57      ;                         ^05: Accession number
 +58      ;                         ^06: Actual date/time of the case (value
 +59      ;                              of the EXAM DATE field) in HL7 format 
 +60      ;                              (TS): YYYYMMDD[HHMM[+/-ZZZZ]]
 +61      ;
REGISTER(RARESULT,RAOIFN,EXMDTE,RAMSC) ;
 +1        NEW I,EXMDTE1,RAERROR,RAMISC,RC
 +2        if '$GET(RAPARAMS("DEBUG"))
               NEW RAPARAMS
 +3        KILL RARESULT
           SET (RARESULT(0),RC)=0
 +4       ;---
 +5        DO CLEAR^RAERR(1)
 +6        if $GET(RAPARAMS("DEBUG"))>1
               Begin DoDot:1
 +7                DO W^RAMAGU11("RAMAG EXAM REGISTER","!!")
 +8                DO VARS^RAMAGU11("RAOIFN,EXMDTE")
 +9                DO ZW^RAUTL22("RAMSC")
               End DoDot:1
 +10       Begin DoDot:1
 +11      ;--- Parse miscellaneous parameters
 +12           SET RC=$$RPCMISC^RAMAGU01(.RAMSC,.RAMISC)
               if RC<0
                   QUIT 
 +13           KILL RAMSC
 +14      ;--- Convert the exam date/time
 +15           SET EXMDTE1=$$HL7TFM^XLFDT($GET(EXMDTE))
 +16           IF EXMDTE1'>0
                   Begin DoDot:2
 +17                   SET RC=$$IPVE^RAERR("EXMDTE")
                   End DoDot:2
                   QUIT 
 +18      ;--- Register the exam
 +19           SET RC=$$REGISTER^RAMAG03(.RAPARAMS,.RARESULT,.RAOIFN,EXMDTE1,.RAMISC)
 +20           if RC'>0
                   QUIT 
 +21           SET RARESULT(0)=+RC
 +22      ;--- Convert the result date/time values to HL7 (TS) format
 +23           FOR I=1:1:RARESULT(0)
                   Begin DoDot:2
 +24                   SET $PIECE(RARESULT(I),U,6)=$$FMTHL7^XLFDT($PIECE(RARESULT(I),U,6))
                   End DoDot:2
           End DoDot:1
 +25      ;---
 +26       if RC<0
               DO RPCSTK^RAERR01(.RARESULT,RC)
 +27       QUIT