Index: WorldVistAEHR/trunk/r/MY_HEALTHEVET-MHV/MHV7T.m
===================================================================
--- WorldVistAEHR/trunk/r/MY_HEALTHEVET-MHV/MHV7T.m	(revision 613)
+++ WorldVistAEHR/trunk/r/MY_HEALTHEVET-MHV/MHV7T.m	(revision 623)
@@ -1,135 +1,127 @@
-MHV7T	;WAS/GPM - HL7 TRANSMITTER ; 10/25/05 4:10pm [12/24/07 9:45pm]
-	;;1.0;My HealtheVet;**2**;Aug 23, 2005;Build 22
-	;;Per VHA Directive 2004-038, this routine should not be modified.
-	;
-	Q
-	;
-XMIT(REQ,XMT,ERR,DATAROOT,HL)	;Build and Transmit HL7 message
-	;   Builds and sends the desired HL7 message based on the mode and
-	; builder passed in XMT.  If the builder requires other information
-	; to build the message, it can be passed as additional subscripts of
-	; XMT or REQ.  REQ is used for request or query related parameters,
-	; XMT for transmission and control related parameters.
-	;
-	;  The message builder sent in XMT("BUILDER") is called to build the
-	; desired message.
-	;
-	;  A synchronous response is indicated by XMT("MODE") of S, and sent
-	; on the current interface as an original mode acknowledgement.
-	;
-	;  An asynchronous response is indicated by XMT("MODE") of A, and
-	; sent on the interface associated with XMT("PROTOCOL") as an
-	; enhanced mode application acknowledgement.  Large messages can be
-	; sent as a bolus (series of messages without batch formatting) by
-	; specifying an XMT("MAX SIZE").
-	;
-	;  A message may be initiated by using the asynchronous mode settings
-	;  Synchronous messages cannot be initiated with this API.
-	;
-	;  Integration Agreements:
-	;         2161 : INIT^HLFNC2
-	;         2164 : GENERATE^HLMA
-	;         2165 : GENACK^HLMA1
-	;
-	;  Input:
-	;         REQ - Request parameters and Message ID of original message
-	;         XMT - Transmission parameters
-	;            XMT("MODE") - Mode of the transmission
-	;            XMT("PROTOCOL") - Protocol for deferred transmissions
-	;            XMT("BUILDER") - Name/tag of message builder routine
-	;            XMT("HLMTIENS") - Original message IEN - Immediate mode
-	;            XMT("MAX SIZE") - Maximum message size (asynch only)
-	;         ERR - Caret delimited error string
-	;               segment^sequence^field^code^ACK type^error text
-	;    DATAROOT - Global root of data array
-	;          HL - HL7 package array variable
-	;
-	;  Output: HL7 Message Transmitted
-	;
-	N MSGROOT,HLRSLT,HLP,MSGLEN
-	D LOG^MHVUL2("TRANSMIT","BEGIN","S","TRACE")
-	I XMT("MODE")="A" D           ;Asynchronous mode
-	. D LOG^MHVUL2("TRANSMIT","ASYNCHRONOUS","S","TRACE")
-	. K HL
-	. D INIT^HLFNC2(XMT("PROTOCOL"),.HL)
-	. I $G(HL) S ERR=HL D LOG^MHVUL2("PROTOCOL INIT FAILURE",ERR,"S","ERROR") Q
-	. D LOG^MHVUL2("PROTOCOL INIT","DONE "_XMT("MODE"),"S","DEBUG")
-	. S MSGROOT="^TMP(""HLS"",$J)"
-	. D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.MSGLEN,.HL)")
-	. D LOG^MHVUL2("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I","DEBUG")
-	. I MSGLEN<XMT("MAX SIZE")!'XMT("MAX SIZE") D  Q
-	. . D GENERATE^HLMA(XMT("PROTOCOL"),"GM",1,.HLRSLT,"",.HLP)
-	. . K @MSGROOT
-	. . D LOG^MHVUL2("TRANSMIT "_$P(XMT("BUILDER"),"^"),.HLRSLT,"M","DEBUG")
-	. . Q
-	. D BOLUS^MHV7TB(MSGROOT,.XMT,.HL)
-	. Q
-	;
-	I XMT("MODE")="S" D           ;Synchronous mode
-	. D LOG^MHVUL2("TRANSMIT","SYNCHRONOUS","S",0)
-	. S MSGROOT="^TMP(""HLA"",$J)"
-	. D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.MSGLEN,.HL)")
-	. D LOG^MHVUL2("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I","DEBUG")
-	. D GENACK^HLMA1(HL("EID"),XMT("HLMTIENS"),HL("EIDS"),"GM",1,.HLRSLT)
-	. K @MSGROOT
-	. D LOG^MHVUL2("TRANSMIT "_$P(XMT("BUILDER"),"^"),.HLRSLT,"M","DEBUG")
-	. Q
-	D LOG^MHVUL2("TRANSMIT","END","S","TRACE")
-	Q
-	;
-EMAIL(REQ,XMT,ERR,DATAROOT,HL)	;Build and Transmit HL7 message
-	;   Builds and sends the desired HL7 message via email.
-	; This will only be used until the MHV server can establish normal
-	; HL7 receivers.
-	;
-	;  If the builder requires other information to build the message, it
-	; can be passed as additional subscripts of XMT or REQ.  REQ is used
-	; for request or query related parameters, XMT for transmission and
-	; control related parameters.
-	;
-	;  The message builder sent in XMT("BUILDER") is called to build the
-	; desired message.
-	;
-	;  Integration Agreements:
-	;         2161 : INIT^HLFNC2
-	;                 MSH^HLFNC2
-	;        10070 : ^XMD
-	;
-	;  Input:
-	;         REQ - Request parameters and Message ID of original message
-	;         XMT - Transmission parameters
-	;            XMT("PROTOCOL") - Protocol for deferred transmissions
-	;            XMT("BUILDER") - Name/tag of message builder routine
-	;            XMT("SAF") - Sending Facility
-	;            XMT("EMAIL") - Email Address to use
-	;         ERR - Caret delimited error string
-	;               segment^sequence^field^code^ACK type^error text
-	;    DATAROOT - Global root of data array
-	;          HL - HL7 package array variable
-	;
-	;  Output: HL7 Message Transmitted
-	;
-	N MSGROOT,MID,MSH,CNT,MSGLEN
-	N TEXT,XMDUN,XMDUZ,XMTEXT,XMROU,XMSTRIP,XMSUB,XMY,XMZ,XMDF,XMMG
-	D LOG^MHVUL2("TRANSMIT","EMAIL","S","TRACE")
-	K HL
-	D INIT^HLFNC2(XMT("PROTOCOL"),.HL)
-	I $G(HL) S ERR=HL D LOG^MHVUL2("PROTOCOL INIT FAIL",ERR,"S","ERROR") Q
-	D LOG^MHVUL2("PROTOCOL INIT","DONE EMAIL","S","DEBUG")
-	S MSGROOT="^TMP(""MHV7TEM"",$J)"
-	D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.MSGLEN,.HL)")
-	D LOG^MHVUL2("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I","DEBUG")
-	S MID=+$H_"-"_$P($H,",",2)
-	S HL("SAF")=XMT("SAF")
-	D MSH^HLFNC2(.HL,MID,.MSH)
-	S XMDF="",(XMDUN,XMDUZ)="My HealtheVet Package"
-	S XMY(XMT("EMAIL"))=""
-	S XMSUB=XMT("SAF")_" MHV PACKAGE MESSAGE"
-	S XMTEXT="TEXT("
-	S TEXT(1)=MSH
-	F CNT=1:1 Q:'$D(@MSGROOT@(CNT))  S TEXT(CNT+1)=@MSGROOT@(CNT)
-	D ^XMD
-	K @MSGROOT
-	I $D(XMMG) D LOG^MHVUL2("EMAIL TRANSMIT","FAILURE: "_XMMG,"S","ERROR") Q
-	D LOG^MHVUL2("EMAIL TRANSMIT","SUCCESS: "_XMZ,"S","TRACE")
-	Q
+MHV7T ;WAS/GPM - HL7 TRANSMITTER ; [8/22/05 11:54pm]
+ ;;1.0;My HealtheVet;;Aug 23, 2005
+ ;;Per VHA Directive 2004-038, this routine should not be modified.
+ ;
+ Q
+ ;
+XMIT(REQ,XMT,ERR,DATAROOT,HL) ;Build and Transmit HL7 message
+ ;   Builds and sends the desired HL7 message based on the mode and
+ ; builder passed in XMT.  If the builder requires other information
+ ; to build the message, it can be passed as additional subscripts of
+ ; XMT or REQ.  REQ is used for request or query related parameters,
+ ; XMT for transmission and control related parameters.
+ ;
+ ;  The message builder sent in XMT("BUILDER") is called to build the
+ ; desired message.
+ ;
+ ;  An immediate mode response is indicated by XMT("MODE") of I, and
+ ; sent on the current interface as an original mode acknowledgement.
+ ;
+ ;  A deferred mode response is indicated by XMT("MODE") of D, and
+ ; sent on the interface associated with XMT("PROTOCOL") as an
+ ; enhanced mode application acknowledgement.
+ ;
+ ;  A message may be initiated by using the deferred mode settings.
+ ;  Synchronous messages cannot be initiate with this API.
+ ;
+ ;  Integration Agreements:
+ ;         2161 : INIT^HLFNC2
+ ;         2164 : GENERATE^HLMA
+ ;         2165 : GENACK^HLMA1
+ ;
+ ;  Input:
+ ;         REQ - Request parameters and Message ID of original message
+ ;         XMT - Transmission parameters
+ ;            XMT("MODE") - Priority or mode of the transmission
+ ;            XMT("PROTOCOL") - Protocol for deferred transmissions
+ ;            XMT("BUILDER") - Name/tag of message builder routine
+ ;            XMT("HLMTIENS") - Original message IEN - Immediate mode
+ ;         ERR - Caret delimited error string
+ ;               segment^sequence^field^code^ACK type^error text
+ ;    DATAROOT - Global root of data array
+ ;          HL - HL7 package array variable
+ ;
+ ;  Output: HL7 Message Transmitted
+ ;
+ N MSGROOT,HLRSLT,HLP
+ I XMT("MODE")="D" D           ;Deferred mode
+ . D LOG^MHV7U("TRANSMIT","DEFERRED MODE","S",0)
+ . K HL
+ . D INIT^HLFNC2(XMT("PROTOCOL"),.HL)
+ . I $G(HL) S ERR=HL D LOG^MHV7U("PROTOCOL INIT FAIL",ERR,"S",0) Q
+ . D LOG^MHV7U("PROTOCOL INIT","DONE "_XMT("MODE"),"S",0)
+ . S MSGROOT="^TMP(""HLS"",$J)"
+ . D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.HL)")
+ . D LOG^MHV7U("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I",0)
+ . D GENERATE^HLMA(XMT("PROTOCOL"),"GM",1,.HLRSLT,"",.HLP)
+ . K @MSGROOT
+ . D LOG^MHV7U("TRANSMIT "_$P(XMT("BUILDER"),"^"),.HLRSLT,"M",0)
+ . Q
+ ;
+ I XMT("MODE")="I" D           ;Immediate mode
+ . D LOG^MHV7U("TRANSMIT","IMMEDIATE MODE","S",0)
+ . S MSGROOT="^TMP(""HLA"",$J)"
+ . D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.HL)")
+ . D LOG^MHV7U("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I",0)
+ . D GENACK^HLMA1(HL("EID"),XMT("HLMTIENS"),HL("EIDS"),"GM",1,.HLRSLT)
+ . K @MSGROOT
+ . D LOG^MHV7U("TRANSMIT "_$P(XMT("BUILDER"),"^"),.HLRSLT,"M",0)
+ . Q
+ D LOG^MHV7U("TRANSMIT","COMPLETE","S",0)
+ Q
+ ;
+EMAIL(REQ,XMT,ERR,DATAROOT,HL) ;Build and Transmit HL7 message
+ ;   Builds and sends the desired HL7 message via email.
+ ; This will only be used until the MHV server can establish normal
+ ; HL7 receivers.
+ ;
+ ;  If the builder requires other information to build the message, it
+ ; can be passed as additional subscripts of XMT or REQ.  REQ is used
+ ; for request or query related parameters, XMT for transmission and
+ ; control related parameters.
+ ;
+ ;  The message builder sent in XMT("BUILDER") is called to build the
+ ; desired message.
+ ;
+ ;  Integration Agreements:
+ ;         2161 : INIT^HLFNC2, MSH^HLFNC2
+ ;        10070 : ^XMD
+ ;
+ ;  Input:
+ ;         REQ - Request parameters and Message ID of original message
+ ;         XMT - Transmission parameters
+ ;            XMT("PROTOCOL") - Protocol for deferred transmissions
+ ;            XMT("BUILDER") - Name/tag of message builder routine
+ ;            XMT("SAF") - Sending Facility
+ ;            XMT("EMAIL") - Email Address to use
+ ;         ERR - Caret delimited error string
+ ;               segment^sequence^field^code^ACK type^error text
+ ;    DATAROOT - Global root of data array
+ ;          HL - HL7 package array variable
+ ;
+ ;  Output: HL7 Message Transmitted
+ ;
+ N MSGROOT,MID,MSH,CNT
+ N TEXT,XMDUN,XMDUZ,XMTEXT,XMROU,XMSTRIP,XMSUB,XMY,XMZ,XMDF,XMMG
+ D LOG^MHV7U("TRANSMIT","EMAIL","S",0)
+ K HL
+ D INIT^HLFNC2(XMT("PROTOCOL"),.HL)
+ I $G(HL) S ERR=HL D LOG^MHV7U("PROTOCOL INIT FAIL",ERR,"S",0) Q
+ D LOG^MHV7U("PROTOCOL INIT","DONE EMAIL","S",0)
+ S MSGROOT="^TMP(""MHV7TEM"",$J)"
+ D @(XMT("BUILDER")_"(MSGROOT,.REQ,ERR,DATAROOT,.HL)")
+ D LOG^MHV7U("BUILD "_$P(XMT("BUILDER"),"^"),MSGROOT,"I",0)
+ S MID=+$H_"-"_$P($H,",",2)
+ S HL("SAF")=XMT("SAF")
+ D MSH^HLFNC2(.HL,MID,.MSH)
+ S XMDF="",(XMDUN,XMDUZ)="My HealtheVet Package"
+ S XMY(XMT("EMAIL"))=""
+ S XMSUB=XMT("SAF")_" MHV PACKAGE MESSAGE"
+ S XMTEXT="TEXT("
+ S TEXT(1)=MSH
+ F CNT=1:1 Q:'$D(@MSGROOT@(CNT))  S TEXT(CNT+1)=@MSGROOT@(CNT)
+ D ^XMD
+ K @MSGROOT
+ I $D(XMMG) D LOG^MHV7U("EMAIL TRANSMIT","FAILURE: "_XMMG,"S",0) Q
+ D LOG^MHV7U("EMAIL TRANSMIT","SUCCESS: "_XMZ,"S",0)
+ Q
