Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VAFCMSG2

VAFCMSG2.m

Go to the documentation of this file.
  1. VAFCMSG2 ;ALB/JRP - ADT/R MESSAGE BUILDING;12-SEP-1996
  1. ;;5.3;Registration;**91**;Jun 06, 1996
  1. ;
  1. SNDMSG(EVNTHL7,XMITARRY) ;Entry point to send ADT HL7 messages
  1. ;
  1. ;Input : EVNTHL7 - HL7 ADT event to build message for (Defaults to A08)
  1. ; Currently support event types:
  1. ; A04, A08, A28
  1. ; XMITARRY - Array containing HL7 message to transmit
  1. ; (full global reference)
  1. ; - Defaults to ^TMP("HLS",$J)
  1. ; - Must be in format required for interaction
  1. ; with the HL7 package
  1. ;Output : Message ID = Success
  1. ; ErrorCode^ErrorText = Error
  1. ;Notes : The global array ^TMP("HLS",$J) will be KILLed if XMITARRY
  1. ; does not use this global location
  1. ;
  1. ;Check input
  1. S EVNTHL7=$G(EVNTHL7)
  1. S:(EVNTHL7="") EVNTHL7="A08"
  1. S XMITARRY=$G(XMITARRY)
  1. S:(XMITARRY="") XMITARRY="^TMP(""HLS"","_$J_")"
  1. Q:($O(@XMITARRY@(""))="") "-1^Can not send empty message"
  1. ;Declare variables
  1. N HLEID,HL,HLFS,HLECH,HLQ,HLMTIEN,HLRESLT,HLP,ARRY4HL7,KILLARRY,OK,TMP
  1. S ARRY4HL7="^TMP(""HLS"","_$J_")"
  1. ;Check for supported event
  1. S OK=0
  1. F TMP="A04","A08","A28" I TMP=EVNTHL7 S OK=1 Q
  1. Q:('OK) "-1^Event type not supported"
  1. ;Get pointer to HL7 Server Protocol
  1. ;S HLEID=$$GETSRVR^VAFCMSG5(EVNTHL7)
  1. ;Q:('HLEID) "-1^Server protocol not found"
  1. ;Initialize HL7 variables
  1. ;D INIT^HLFNC2(HLEID,.HL)
  1. ;Q:($O(HL(""))="") "-1^Unable to initialize HL7 variables"
  1. K HL
  1. I $G(@EVNTINFO@("SERVER PROTOCOL"))]"" DO
  1. . D INIT^HLFNC2(@EVNTINFO@("SERVER PROTOCOL"),.HL)
  1. ;or Get pointer to HL7 Server Protocol
  1. E DO Q:'HLEID "-1^Server Protocol not found"
  1. .S HLEID=$$GETSRVR^VAFCMSG5(EVNTHL7)
  1. .Q:('HLEID)
  1. .;Initialize HL7 variables
  1. .D INIT^HLFNC2(HLEID,.HL)
  1. Q:($O(HL(""))="") "-1^Unable to initialize HL7 variables"
  1. ;
  1. ;See if XMITARRY is ^TMP("HLS",$J)
  1. S KILLARRY=0
  1. I (XMITARRY'=ARRY4HL7) D
  1. .;Make sure '$J' wasn't used
  1. .Q:(XMITARRY="^TMP(""HLS"",$J)")
  1. .;Initialize ^TMP("HLS",$J) and merge XMITARRY into it
  1. .K @ARRY4HL7
  1. .M @ARRY4HL7=@XMITARRY
  1. .S KILLARRY=1
  1. ;Broadcast message
  1. ;D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT,"",.HLP)
  1. ;S:('HLRESLT) HLRESLT=$P(HLRESLT,"^",2,3)
  1. ;
  1. I $G(@EVNTINFO@("SERVER PROTOCOL"))]"" DO
  1. . D GENERATE^HLMA(@EVNTINFO@("SERVER PROTOCOL"),"GM",1,.HLRESLT,"",.HLP)
  1. E DO
  1. . D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT,"",.HLP)
  1. ;
  1. S:('HLRESLT) HLRESLT=$P(HLRESLT,"^",2,3)
  1. ;
  1. ;Delete ^TMP("HLS",$J) if XMITARRY was different
  1. K:(KILLARRY) @ARRY4HL7
  1. ;Done
  1. Q HLRESLT