HLTP2 ;AISC/SAW-Transaction Processor Module (Cont'd) ;2/22/95  11:35
 ;;1.6;HEALTH LEVEL SEVEN;**34,109**;Oct 13, 1995
PROCACK(HLMTIEN,HLEID,HLRESLT,HL) ;Process acknowledgement message
 ;
 ;This is a subroutine call with parameter passing.  It returns a value
 ;in the variable HLRESLT of null if no error occurs, or the following
 ;two piece value if an error occurs:  error code^error description
 ;
 ;Required Input Parameters
 ; HLMTIEN = The IEN from the Message Text file created when the
 ;             GENERATE^HLMA or SEND^HLMA2 entry points were invoked
 ;   HLEID = The IEN from the Protocol file of the driver event
 ;NOTE:  The variable HLRESLT must be passed by reference
 ; HLRESLT = The variable that will be returned to the calling
 ;             application as descibed above
 ;Optional Input Parameter
 ;      HL = An array of variables to be used in processing the message
 ;
 ;Check for required parameters
 S HLRESLT=""
 I '$G(HLMTIEN)!('$G(HLEID)) S HLRESLT="7^"_$G(^HL(771.7,7,0))_" at PROCACK^HLTP0 entry point" G EXIT
 ;Create HL array of variables if it does not exist
 I '$D(HL) N HL D INIT^HLFNC2(HLEID,.HL)
 ;Set special HL variables if data is in global array
 I '$D(HLA("HLA")) S HLQUIT=0,HLNODE="",HLNEXT="D HLNEXT^HLCSUTL"
 ;Get and execute processing routine
 D EVENT^HLUTIL1(HLEID,"15,20,772",.HLN) I $G(HLN(772))]"" D
 .X:$G(HLN(20))]"" $G(HLN(20))
 .N HLERR X HLN(772) I $D(HLERR) S HLRESLT="9^"_$G(^HL(771.7,9,0))
 .X:$G(HLN(15))]"" $G(HLN(15))
 ;Update status of message
 D STATUS^HLTF0(HLMTIEN,$S($D(HLERR):4,1:3),$S($D(HLERR):+HLRESLT,1:""),$S($D(HLERR):HLERR,1:""),,$S($G(HLERR("SKIP_EVENT"))=1:1,1:0))
EXIT K HLN,HLNEXT,HLNODE,HLQUIT
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHLTP2   1717     printed  Sep 23, 2025@19:36:06                                                                                                                                                                                                       Page 2
HLTP2     ;AISC/SAW-Transaction Processor Module (Cont'd) ;2/22/95  11:35
 +1       ;;1.6;HEALTH LEVEL SEVEN;**34,109**;Oct 13, 1995
PROCACK(HLMTIEN,HLEID,HLRESLT,HL) ;Process acknowledgement message
 +1       ;
 +2       ;This is a subroutine call with parameter passing.  It returns a value
 +3       ;in the variable HLRESLT of null if no error occurs, or the following
 +4       ;two piece value if an error occurs:  error code^error description
 +5       ;
 +6       ;Required Input Parameters
 +7       ; HLMTIEN = The IEN from the Message Text file created when the
 +8       ;             GENERATE^HLMA or SEND^HLMA2 entry points were invoked
 +9       ;   HLEID = The IEN from the Protocol file of the driver event
 +10      ;NOTE:  The variable HLRESLT must be passed by reference
 +11      ; HLRESLT = The variable that will be returned to the calling
 +12      ;             application as descibed above
 +13      ;Optional Input Parameter
 +14      ;      HL = An array of variables to be used in processing the message
 +15      ;
 +16      ;Check for required parameters
 +17       SET HLRESLT=""
 +18       IF '$GET(HLMTIEN)!('$GET(HLEID))
               SET HLRESLT="7^"_$GET(^HL(771.7,7,0))_" at PROCACK^HLTP0 entry point"
               GOTO EXIT
 +19      ;Create HL array of variables if it does not exist
 +20       IF '$DATA(HL)
               NEW HL
               DO INIT^HLFNC2(HLEID,.HL)
 +21      ;Set special HL variables if data is in global array
 +22       IF '$DATA(HLA("HLA"))
               SET HLQUIT=0
               SET HLNODE=""
               SET HLNEXT="D HLNEXT^HLCSUTL"
 +23      ;Get and execute processing routine
 +24       DO EVENT^HLUTIL1(HLEID,"15,20,772",.HLN)
           IF $GET(HLN(772))]""
               Begin DoDot:1
 +25               if $GET(HLN(20))]""
                       XECUTE $GET(HLN(20))
 +26               NEW HLERR
                   XECUTE HLN(772)
                   IF $DATA(HLERR)
                       SET HLRESLT="9^"_$GET(^HL(771.7,9,0))
 +27               if $GET(HLN(15))]""
                       XECUTE $GET(HLN(15))
               End DoDot:1
 +28      ;Update status of message
 +29       DO STATUS^HLTF0(HLMTIEN,$SELECT($DATA(HLERR):4,1:3),$SELECT($DATA(HLERR):+HLRESLT,1:""),$SELECT($DATA(HLERR):HLERR,1:""),,$SELECT($GET(HLERR("SKIP_EVENT"))=1:1,1:0))
EXIT       KILL HLN,HLNEXT,HLNODE,HLQUIT
 +1        QUIT