MAGGTERR ;WOIFO/GEK - IMAGING ERROR TRAP, AND ERROR LOG ; [ 06/20/2001 08:56 ]
 ;;3.0;IMAGING;**8,59**;Nov 27, 2007;Build 20
 ;;Per VHA Directive 2004-038, this routine should not be modified.
 ;; +---------------------------------------------------------------+
 ;; | Property of the US Government.                                |
 ;; | No permission to copy or redistribute this software is given. |
 ;; | Use of unreleased versions of this software requires the user |
 ;; | to execute a written test agreement with the VistA Imaging    |
 ;; | Development Office of the Department of Veterans Affairs,     |
 ;; | telephone (301) 734-0100.                                     |
 ;; |                                                               |
 ;; | The Food and Drug Administration classifies this software as  |
 ;; | a medical device.  As such, it may not be changed in any way. |
 ;; | Modifications to this software may result in an adulterated   |
 ;; | medical device under 21CFR820, the use of which is considered |
 ;; | to be a violation of US Federal Statutes.                     |
 ;; +---------------------------------------------------------------+
 ;;
 Q
 ;  Imaging routines should have this code for setting error trap
 ;  This will enable logging Imaging errors and Sending messages for
 ;  certain errors etc. later
 ;N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
 ;
 ; This assumes the Return variable or array is MAGRY or MAGRY()
 Q
ERRA ; ERROR TRAP FOR Array Return variables
 N ERR S ERR=$$EC^%ZOSV
 S MAGRY(0)="0^"_ERR
 D LOGERR(ERR)
 D @^%ZOSF("ERRTN")
 Q
 ;
AERRA ; ERROR TRAP FOR Global Return Variables
 N ERR S ERR=$$EC^%ZOSV
 S @MAGRY@(0)="0^ERROR "_ERR
 D LOGERR(ERR)
 D @^%ZOSF("ERRTN")
 Q
ERR ; ERROR TRAP FOR String Return variables
 N ERR S ERR=$$EC^%ZOSV
 S MAGRY="0^ERROR "_ERR
 D LOGERR(ERR)
 D @^%ZOSF("ERRTN")
 Q
LOGERR(ERROR) ;
 Q:'$G(MAGJOB("SESSION"))
 N SESS,WRKS,ERR
 S SESS=$G(MAGJOB("SESSION"))
 ; Quit if No entry in Session File.
 Q:'$D(^MAG(2006.82,SESS,0))
 I '$D(^MAG(2006.82,SESS,"ERR",0)) S ^MAG(2006.82,SESS,"ERR",0)="^2006.823A^0^0"
 S ERR=$O(^MAG(2006.82,SESS,"ERR"," "),-1)+1
 S ^MAG(2006.82,SESS,"ERR",ERR,0)=ERROR
 S $P(^MAG(2006.82,SESS,"ERR",0),"^",3,4)=ERR_"^"_ERR
 ;
 Q:'$G(MAGJOB("WRKSIEN"))
 S WRKS=$G(MAGJOB("WRKSIEN"))
 ; Quit if No entry in Workstation File.
 Q:'$D(^MAG(2006.81,WRKS,0))
 S $P(^MAG(2006.81,WRKS,0),"^",11)=ERR
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGGTERR   2470     printed  Sep 23, 2025@19:39:09                                                                                                                                                                                                    Page 2
MAGGTERR  ;WOIFO/GEK - IMAGING ERROR TRAP, AND ERROR LOG ; [ 06/20/2001 08:56 ]
 +1       ;;3.0;IMAGING;**8,59**;Nov 27, 2007;Build 20
 +2       ;;Per VHA Directive 2004-038, this routine should not be modified.
 +3       ;; +---------------------------------------------------------------+
 +4       ;; | Property of the US Government.                                |
 +5       ;; | No permission to copy or redistribute this software is given. |
 +6       ;; | Use of unreleased versions of this software requires the user |
 +7       ;; | to execute a written test agreement with the VistA Imaging    |
 +8       ;; | Development Office of the Department of Veterans Affairs,     |
 +9       ;; | telephone (301) 734-0100.                                     |
 +10      ;; |                                                               |
 +11      ;; | The Food and Drug Administration classifies this software as  |
 +12      ;; | a medical device.  As such, it may not be changed in any way. |
 +13      ;; | Modifications to this software may result in an adulterated   |
 +14      ;; | medical device under 21CFR820, the use of which is considered |
 +15      ;; | to be a violation of US Federal Statutes.                     |
 +16      ;; +---------------------------------------------------------------+
 +17      ;;
 +18       QUIT 
 +19      ;  Imaging routines should have this code for setting error trap
 +20      ;  This will enable logging Imaging errors and Sending messages for
 +21      ;  certain errors etc. later
 +22      ;N $ETRAP,$ESTACK S $ETRAP="D ERRA^MAGGTERR"
 +23      ;
 +24      ; This assumes the Return variable or array is MAGRY or MAGRY()
 +25       QUIT 
ERRA      ; ERROR TRAP FOR Array Return variables
 +1        NEW ERR
           SET ERR=$$EC^%ZOSV
 +2        SET MAGRY(0)="0^"_ERR
 +3        DO LOGERR(ERR)
 +4        DO @^%ZOSF("ERRTN")
 +5        QUIT 
 +6       ;
AERRA     ; ERROR TRAP FOR Global Return Variables
 +1        NEW ERR
           SET ERR=$$EC^%ZOSV
 +2        SET @MAGRY@(0)="0^ERROR "_ERR
 +3        DO LOGERR(ERR)
 +4        DO @^%ZOSF("ERRTN")
 +5        QUIT 
ERR       ; ERROR TRAP FOR String Return variables
 +1        NEW ERR
           SET ERR=$$EC^%ZOSV
 +2        SET MAGRY="0^ERROR "_ERR
 +3        DO LOGERR(ERR)
 +4        DO @^%ZOSF("ERRTN")
 +5        QUIT 
LOGERR(ERROR) ;
 +1        if '$GET(MAGJOB("SESSION"))
               QUIT 
 +2        NEW SESS,WRKS,ERR
 +3        SET SESS=$GET(MAGJOB("SESSION"))
 +4       ; Quit if No entry in Session File.
 +5        if '$DATA(^MAG(2006.82,SESS,0))
               QUIT 
 +6        IF '$DATA(^MAG(2006.82,SESS,"ERR",0))
               SET ^MAG(2006.82,SESS,"ERR",0)="^2006.823A^0^0"
 +7        SET ERR=$ORDER(^MAG(2006.82,SESS,"ERR"," "),-1)+1
 +8        SET ^MAG(2006.82,SESS,"ERR",ERR,0)=ERROR
 +9        SET $PIECE(^MAG(2006.82,SESS,"ERR",0),"^",3,4)=ERR_"^"_ERR
 +10      ;
 +11       if '$GET(MAGJOB("WRKSIEN"))
               QUIT 
 +12       SET WRKS=$GET(MAGJOB("WRKSIEN"))
 +13      ; Quit if No entry in Workstation File.
 +14       if '$DATA(^MAG(2006.81,WRKS,0))
               QUIT 
 +15       SET $PIECE(^MAG(2006.81,WRKS,0),"^",11)=ERR
 +16       QUIT