MAGDHLTC ;WOIFO/MLH/PMK - IHE-based ADT interface for PACS - trigger events - A11, A12, A13 ;20 Mar 2017 12:15 PM
;;3.0;IMAGING;**49,183**;Mar 19, 2002;Build 11;Apr 07, 2011
;; 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
;
A11 ; GOTO entry point from MAGDHLT - patient admission cancel
; INPUT: XDFN IEN of pt whose admission is being cancelled
; XDT date/time of cancellation
; function return: result of message generation from call to GENERATE^HLMA
;
N HL ; -------- HL7 initialization function status return
N HLA ; ------- array of HL7 message segments
N MSGA11A ; --- A11 message array
N MSG ; ------- message status
;
D INIT^HLFNC2("MAG CPACS A11",.HL)
I $G(HL) Q -1_U_$P(HL,"^",2) ; error
;
; build a dummy MSH segment for the $$MAKE^MAG7UM function
S MSGA11A(1,0)="MSH"
S MSGA11A(1,1,1,1,1)=HLFS
S MSGA11A(1,2,1,1,1)=HLECH
S MSGA11A(1,9,1,1,1)="ADT"
S MSGA11A(1,9,1,2,1)="A11"
;
; gather patient information and populate segment array elements
S MSG=$$EVN^MAGDHLS("A11",XDT,XDT,"MSGA11A")
S MSG=$$PID^MAGDHLS(XDFN,"MSGA11A")
S MSG=$$PV1^MAGDHLS(XDFN,"A11",XDT,"MSGA11A")
;
; assemble message into segments
S MSG=$$MAKE^MAG7UM("MSGA11A",$NA(HLA("HLS")))
K HLA("HLS",1) ; remove dummy MSH segment
;
; send message to receiver and gateway
D GENERATE^HLMA("MAG CPACS A11","LM",1,.RESULT) ; generate & send message
D LOGGW^MAGDHLL("ADT") ; log message to gateway
Q $S($P($G(RESULT),U,2,$L(RESULT,U))="":0,1:-1_U_RESULT)
;
A12 ; GOTO entry point from MAGDHLT - cancel patient transfer
; INPUT: XDFN IEN of pt whose admission is being cancelled
; XDT date/time of cancellation
; function return: result of message generation from call to GENERATE^HLMA
;
N HL ; -------- HL7 initialization function status return
N HLA ; ------- array of HL7 message segments
N MSGA12A ; --- A02 message array
N MSG ; ------- message status
;
D INIT^HLFNC2("MAG CPACS A12",.HL)
I $G(HL) Q -1_U_$P(HL,"^",2) ; error
;
; build a dummy MSH segment for the $$MAKE^MAG7UM function
S MSGA12A(1,0)="MSH"
S MSGA12A(1,1,1,1,1)=HLFS
S MSGA12A(1,2,1,1,1)=HLECH
S MSGA12A(1,9,1,1,1)="ADT"
S MSGA12A(1,9,1,2,1)="A12"
;
; gather patient information and populate segment array elements
S MSG=$$EVN^MAGDHLS("A12",XDT,XDT,"MSGA12A")
S MSG=$$PID^MAGDHLS(XDFN,"MSGA12A")
S MSG=$$PV1^MAGDHLS(XDFN,"A12",XDT,"MSGA12A")
S MSG=$$ROL^MAGDHLS(XDFN,"MSGA12A")
S MSG=$$OBXADT^MAGDHLS(XDFN,"MSGA12A")
;
; assemble message into segments
S MSG=$$MAKE^MAG7UM("MSGA12A",$NA(HLA("HLS")))
K HLA("HLS",1) ; remove dummy MSH segment
;
; send message to receiver and gateway
D GENERATE^HLMA("MAG CPACS A12","LM",1,.RESULT) ; generate & send message
D LOGGW^MAGDHLL("ADT") ; log message to gateway
Q $S($P($G(RESULT),U,2,$L(RESULT,U))="":0,1:-1_U_RESULT)
;
A13 ; GOTO entry point from MAGDHLT - cancel patient discharge
; INPUT: XDFN IEN of pt whose admission is being cancelled
; XDT date/time of cancellation
; function return: result of message generation from call to GENERATE^HLMA
;
N HL ; -------- HL7 initialization function status return
N HLA ; ------- array of HL7 message segments
N MSGA13A ; --- A13 message array
N MSG ; ------- message status
;
D INIT^HLFNC2("MAG CPACS A13",.HL)
I $G(HL) Q -1_U_$P(HL,"^",2) ; error
;
; build a dummy MSH segment for the $$MAKE^MAG7UM function
S MSGA13A(1,0)="MSH"
S MSGA13A(1,1,1,1,1)=HLFS
S MSGA13A(1,2,1,1,1)=HLECH
S MSGA13A(1,9,1,1,1)="ADT"
S MSGA13A(1,9,1,2,1)="A13"
;
; gather patient information and populate segment array elements
S MSG=$$EVN^MAGDHLS("A13",XDT,XDT,"MSGA13A")
S MSG=$$PID^MAGDHLS(XDFN,"MSGA13A")
S MSG=$$PV1^MAGDHLS(XDFN,"A13",XDT,"MSGA13A")
S MSG=$$ROL^MAGDHLS(XDFN,"MSGA13A")
;
; assemble message into segments
S MSG=$$MAKE^MAG7UM("MSGA13A",$NA(HLA("HLS")))
K HLA("HLS",1) ; remove dummy MSH segment
;
; send message to receiver and gateway
D GENERATE^HLMA("MAG CPACS A13","LM",1,.RESULT) ; generate & send message
D LOGGW^MAGDHLL("ADT") ; log message to gateway
Q $S($P($G(RESULT),U,2,$L(RESULT,U))="":0,1:-1_U_RESULT)
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGDHLTC 5171 printed Dec 13, 2024@02:00:04 Page 2
MAGDHLTC ;WOIFO/MLH/PMK - IHE-based ADT interface for PACS - trigger events - A11, A12, A13 ;20 Mar 2017 12:15 PM
+1 ;;3.0;IMAGING;**49,183**;Mar 19, 2002;Build 11;Apr 07, 2011
+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 ;; | The Food and Drug Administration classifies this software as |
+11 ;; | a medical device. As such, it may not be changed in any way. |
+12 ;; | Modifications to this software may result in an adulterated |
+13 ;; | medical device under 21CFR820, the use of which is considered |
+14 ;; | to be a violation of US Federal Statutes. |
+15 ;; +---------------------------------------------------------------+
+16 ;;
+17 QUIT
+18 ;
A11 ; GOTO entry point from MAGDHLT - patient admission cancel
+1 ; INPUT: XDFN IEN of pt whose admission is being cancelled
+2 ; XDT date/time of cancellation
+3 ; function return: result of message generation from call to GENERATE^HLMA
+4 ;
+5 ; -------- HL7 initialization function status return
NEW HL
+6 ; ------- array of HL7 message segments
NEW HLA
+7 ; --- A11 message array
NEW MSGA11A
+8 ; ------- message status
NEW MSG
+9 ;
+10 DO INIT^HLFNC2("MAG CPACS A11",.HL)
+11 ; error
IF $GET(HL)
QUIT -1_U_$PIECE(HL,"^",2)
+12 ;
+13 ; build a dummy MSH segment for the $$MAKE^MAG7UM function
+14 SET MSGA11A(1,0)="MSH"
+15 SET MSGA11A(1,1,1,1,1)=HLFS
+16 SET MSGA11A(1,2,1,1,1)=HLECH
+17 SET MSGA11A(1,9,1,1,1)="ADT"
+18 SET MSGA11A(1,9,1,2,1)="A11"
+19 ;
+20 ; gather patient information and populate segment array elements
+21 SET MSG=$$EVN^MAGDHLS("A11",XDT,XDT,"MSGA11A")
+22 SET MSG=$$PID^MAGDHLS(XDFN,"MSGA11A")
+23 SET MSG=$$PV1^MAGDHLS(XDFN,"A11",XDT,"MSGA11A")
+24 ;
+25 ; assemble message into segments
+26 SET MSG=$$MAKE^MAG7UM("MSGA11A",$NAME(HLA("HLS")))
+27 ; remove dummy MSH segment
KILL HLA("HLS",1)
+28 ;
+29 ; send message to receiver and gateway
+30 ; generate & send message
DO GENERATE^HLMA("MAG CPACS A11","LM",1,.RESULT)
+31 ; log message to gateway
DO LOGGW^MAGDHLL("ADT")
+32 QUIT $SELECT($PIECE($GET(RESULT),U,2,$LENGTH(RESULT,U))="":0,1:-1_U_RESULT)
+33 ;
A12 ; GOTO entry point from MAGDHLT - cancel patient transfer
+1 ; INPUT: XDFN IEN of pt whose admission is being cancelled
+2 ; XDT date/time of cancellation
+3 ; function return: result of message generation from call to GENERATE^HLMA
+4 ;
+5 ; -------- HL7 initialization function status return
NEW HL
+6 ; ------- array of HL7 message segments
NEW HLA
+7 ; --- A02 message array
NEW MSGA12A
+8 ; ------- message status
NEW MSG
+9 ;
+10 DO INIT^HLFNC2("MAG CPACS A12",.HL)
+11 ; error
IF $GET(HL)
QUIT -1_U_$PIECE(HL,"^",2)
+12 ;
+13 ; build a dummy MSH segment for the $$MAKE^MAG7UM function
+14 SET MSGA12A(1,0)="MSH"
+15 SET MSGA12A(1,1,1,1,1)=HLFS
+16 SET MSGA12A(1,2,1,1,1)=HLECH
+17 SET MSGA12A(1,9,1,1,1)="ADT"
+18 SET MSGA12A(1,9,1,2,1)="A12"
+19 ;
+20 ; gather patient information and populate segment array elements
+21 SET MSG=$$EVN^MAGDHLS("A12",XDT,XDT,"MSGA12A")
+22 SET MSG=$$PID^MAGDHLS(XDFN,"MSGA12A")
+23 SET MSG=$$PV1^MAGDHLS(XDFN,"A12",XDT,"MSGA12A")
+24 SET MSG=$$ROL^MAGDHLS(XDFN,"MSGA12A")
+25 SET MSG=$$OBXADT^MAGDHLS(XDFN,"MSGA12A")
+26 ;
+27 ; assemble message into segments
+28 SET MSG=$$MAKE^MAG7UM("MSGA12A",$NAME(HLA("HLS")))
+29 ; remove dummy MSH segment
KILL HLA("HLS",1)
+30 ;
+31 ; send message to receiver and gateway
+32 ; generate & send message
DO GENERATE^HLMA("MAG CPACS A12","LM",1,.RESULT)
+33 ; log message to gateway
DO LOGGW^MAGDHLL("ADT")
+34 QUIT $SELECT($PIECE($GET(RESULT),U,2,$LENGTH(RESULT,U))="":0,1:-1_U_RESULT)
+35 ;
A13 ; GOTO entry point from MAGDHLT - cancel patient discharge
+1 ; INPUT: XDFN IEN of pt whose admission is being cancelled
+2 ; XDT date/time of cancellation
+3 ; function return: result of message generation from call to GENERATE^HLMA
+4 ;
+5 ; -------- HL7 initialization function status return
NEW HL
+6 ; ------- array of HL7 message segments
NEW HLA
+7 ; --- A13 message array
NEW MSGA13A
+8 ; ------- message status
NEW MSG
+9 ;
+10 DO INIT^HLFNC2("MAG CPACS A13",.HL)
+11 ; error
IF $GET(HL)
QUIT -1_U_$PIECE(HL,"^",2)
+12 ;
+13 ; build a dummy MSH segment for the $$MAKE^MAG7UM function
+14 SET MSGA13A(1,0)="MSH"
+15 SET MSGA13A(1,1,1,1,1)=HLFS
+16 SET MSGA13A(1,2,1,1,1)=HLECH
+17 SET MSGA13A(1,9,1,1,1)="ADT"
+18 SET MSGA13A(1,9,1,2,1)="A13"
+19 ;
+20 ; gather patient information and populate segment array elements
+21 SET MSG=$$EVN^MAGDHLS("A13",XDT,XDT,"MSGA13A")
+22 SET MSG=$$PID^MAGDHLS(XDFN,"MSGA13A")
+23 SET MSG=$$PV1^MAGDHLS(XDFN,"A13",XDT,"MSGA13A")
+24 SET MSG=$$ROL^MAGDHLS(XDFN,"MSGA13A")
+25 ;
+26 ; assemble message into segments
+27 SET MSG=$$MAKE^MAG7UM("MSGA13A",$NAME(HLA("HLS")))
+28 ; remove dummy MSH segment
KILL HLA("HLS",1)
+29 ;
+30 ; send message to receiver and gateway
+31 ; generate & send message
DO GENERATE^HLMA("MAG CPACS A13","LM",1,.RESULT)
+32 ; log message to gateway
DO LOGGW^MAGDHLL("ADT")
+33 QUIT $SELECT($PIECE($GET(RESULT),U,2,$LENGTH(RESULT,U))="":0,1:-1_U_RESULT)