1 | VAFCMSG2 ;ALB/JRP - ADT/R MESSAGE BUILDING;12-SEP-1996
|
---|
2 | ;;5.3;Registration;**91**;Jun 06, 1996
|
---|
3 | ;
|
---|
4 | SNDMSG(EVNTHL7,XMITARRY) ;Entry point to send ADT HL7 messages
|
---|
5 | ;
|
---|
6 | ;Input : EVNTHL7 - HL7 ADT event to build message for (Defaults to A08)
|
---|
7 | ; Currently support event types:
|
---|
8 | ; A04, A08, A28
|
---|
9 | ; XMITARRY - Array containing HL7 message to transmit
|
---|
10 | ; (full global reference)
|
---|
11 | ; - Defaults to ^TMP("HLS",$J)
|
---|
12 | ; - Must be in format required for interaction
|
---|
13 | ; with the HL7 package
|
---|
14 | ;Output : Message ID = Success
|
---|
15 | ; ErrorCode^ErrorText = Error
|
---|
16 | ;Notes : The global array ^TMP("HLS",$J) will be KILLed if XMITARRY
|
---|
17 | ; does not use this global location
|
---|
18 | ;
|
---|
19 | ;Check input
|
---|
20 | S EVNTHL7=$G(EVNTHL7)
|
---|
21 | S:(EVNTHL7="") EVNTHL7="A08"
|
---|
22 | S XMITARRY=$G(XMITARRY)
|
---|
23 | S:(XMITARRY="") XMITARRY="^TMP(""HLS"","_$J_")"
|
---|
24 | Q:($O(@XMITARRY@(""))="") "-1^Can not send empty message"
|
---|
25 | ;Declare variables
|
---|
26 | N HLEID,HL,HLFS,HLECH,HLQ,HLMTIEN,HLRESLT,HLP,ARRY4HL7,KILLARRY,OK,TMP
|
---|
27 | S ARRY4HL7="^TMP(""HLS"","_$J_")"
|
---|
28 | ;Check for supported event
|
---|
29 | S OK=0
|
---|
30 | F TMP="A04","A08","A28" I TMP=EVNTHL7 S OK=1 Q
|
---|
31 | Q:('OK) "-1^Event type not supported"
|
---|
32 | ;Get pointer to HL7 Server Protocol
|
---|
33 | ;S HLEID=$$GETSRVR^VAFCMSG5(EVNTHL7)
|
---|
34 | ;Q:('HLEID) "-1^Server protocol not found"
|
---|
35 | ;Initialize HL7 variables
|
---|
36 | ;D INIT^HLFNC2(HLEID,.HL)
|
---|
37 | ;Q:($O(HL(""))="") "-1^Unable to initialize HL7 variables"
|
---|
38 | K HL
|
---|
39 | I $G(@EVNTINFO@("SERVER PROTOCOL"))]"" DO
|
---|
40 | . D INIT^HLFNC2(@EVNTINFO@("SERVER PROTOCOL"),.HL)
|
---|
41 | ;or Get pointer to HL7 Server Protocol
|
---|
42 | E DO Q:'HLEID "-1^Server Protocol not found"
|
---|
43 | .S HLEID=$$GETSRVR^VAFCMSG5(EVNTHL7)
|
---|
44 | .Q:('HLEID)
|
---|
45 | .;Initialize HL7 variables
|
---|
46 | .D INIT^HLFNC2(HLEID,.HL)
|
---|
47 | Q:($O(HL(""))="") "-1^Unable to initialize HL7 variables"
|
---|
48 | ;
|
---|
49 | ;See if XMITARRY is ^TMP("HLS",$J)
|
---|
50 | S KILLARRY=0
|
---|
51 | I (XMITARRY'=ARRY4HL7) D
|
---|
52 | .;Make sure '$J' wasn't used
|
---|
53 | .Q:(XMITARRY="^TMP(""HLS"",$J)")
|
---|
54 | .;Initialize ^TMP("HLS",$J) and merge XMITARRY into it
|
---|
55 | .K @ARRY4HL7
|
---|
56 | .M @ARRY4HL7=@XMITARRY
|
---|
57 | .S KILLARRY=1
|
---|
58 | ;Broadcast message
|
---|
59 | ;D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT,"",.HLP)
|
---|
60 | ;S:('HLRESLT) HLRESLT=$P(HLRESLT,"^",2,3)
|
---|
61 | ;
|
---|
62 | I $G(@EVNTINFO@("SERVER PROTOCOL"))]"" DO
|
---|
63 | . D GENERATE^HLMA(@EVNTINFO@("SERVER PROTOCOL"),"GM",1,.HLRESLT,"",.HLP)
|
---|
64 | E DO
|
---|
65 | . D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT,"",.HLP)
|
---|
66 | ;
|
---|
67 | S:('HLRESLT) HLRESLT=$P(HLRESLT,"^",2,3)
|
---|
68 | ;
|
---|
69 | ;Delete ^TMP("HLS",$J) if XMITARRY was different
|
---|
70 | K:(KILLARRY) @ARRY4HL7
|
---|
71 | ;Done
|
---|
72 | Q HLRESLT
|
---|