Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

Location:
FOIAVistA/tag/r
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • FOIAVistA/tag/r/HEALTH_LEVEL_SEVEN-HL/HLTF2.m

    r628 r636  
    1 HLTF2 ;AISC/SAW/MTC-Process Message Text File Entries (Cont'd) ;10/17/2007  09:44
    2  ;;1.6;HEALTH LEVEL SEVEN;**25,122**;Oct 13, 1995;Build 14
    3  ;Per VHA Directive 2004-038, this routine should not be modified.
    4  ;
     1HLTF2 ;AISC/SAW/MTC-Process Message Text File Entries (Cont'd) ;02/24/97  13:56
     2 ;;1.6;HEALTH LEVEL SEVEN;**25**;Oct 13, 1995
    53MERGEIN(LLD0,LLD1,MTIEN,HDR,MSA) ;Merge Data From Communication Server
    64 ;Module Logical Link File into Message Text File
     
    2725 N FLG,HLCHAR,HLEVN,HLFS,I,X,X1,HLDONE
    2826 S (FLG,HLCHAR,HLEVN,X)=0
    29  ;
    30  ; patch HL*1.6*122: MPI-client/server
    31  F  L +^HL(772,+$G(MTIEN)):10 Q:$T  H 1
    3227 ;
    3328 ;Move data from Logical Link file to Message Text file
     
    5651 S ^HL(772,MTIEN,"IN",0)="^^"_I_"^"_I_"^"_$$DT^XLFDT_"^"
    5752 ;Update statistics in Message Text file for this entry
    58  ;
    59  ; patch HL*1.6*122: MPI-client/server
    60  L -^HL(772,+$G(MTIEN))
    61  ;
    6253 D STATS^HLTF0(MTIEN,HLCHAR,HLEVN)
    6354 Q
     
    8980 S I=0
    9081 ;
    91  ; patch HL*1.6*122: MPI-client/server
    92  F  L +^HLCS(870,+$G(LLD0),2,+$G(LLD1)):10 Q:$T  H 1
    93  ;
    9482 ;-- move header into 870 from HDR array
    9583 S X="" F  S X=$O(@HDR@(X)) Q:'X  D
     
    10492 S ^HLCS(870,LLD0,2,LLD1,1,0)="^^"_I_"^"_I_"^"_$$DT^XLFDT_"^"
    10593 ;
    106  ; patch HL*1.6*122: MPI-client/server
    107  L -^HLCS(870,+$G(LLD0),2,+$G(LLD1))
    108  ;
    10994 Q
    110 OUT(HLDA,HLMID,HLMTN) ;File Data in Message Text File for Outgoing Message
    111  ;Version 1.5 Interface Only
    112  ;
    113  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    114  ; OUT, IN, and ACK to HLTF2 routine.
    115  ;
    116  Q:'$D(HLFS)
    117  ;
    118  I HLMTN="ACK"!(HLMTN="MCF")!(HLMTN="ORR") Q:'$D(HLMSA)  D ACK(HLMSA,"I") Q
    119  ;
    120  ;-- if message contained MSA find inbound message
    121  I $D(HLMSA),$D(HLNDAP),$P(HLMSA,HLFS,3)]"" D
    122  . N HLDAI
    123  . S HLDAI=0
    124  . F  S HLDAI=$O(^HL(772,"AH",+$P($G(HLNDAP0),U,12),$P(HLMSA,HLFS,3),HLDAI)) Q:'HLDAI!($P($G(^HL(772,+HLDAI,0)),U,4)="I")
    125  . I 'HLDAI K HLDAI
    126  ;
    127  D STUFF^HLTF0("O")
    128  ;
    129  N HLAC S HLAC=$S($D(HLERR):4,'$P(HLNDAP0,"^",10):1,1:2) D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
    130  D:$D(HLCHAR) STATS^HLTF0(HLDA,HLCHAR,$G(HLEVN))
    131  ;
    132  ;-- update status if MSA and found inbound message
    133  I $D(HLMSA),$D(HLDAI) D
    134  .N HLERR,HLMSG I $P(HLMSA,HLFS,4)]"" S HLERR=$P(HLMSA,HLFS,4)
    135  .S HLAC=$P(HLMSA,HLFS,2)
    136  .I HLAC'="AA" S HLMSG=$S(HLAC="AR":"Application Reject",HLAC="AE":"Application Error",1:"")_" - "_HLERR
    137  .S HLAC=$S(HLAC'="AA":4,1:3) D STATUS^HLTF0(HLDAI,HLAC,$G(HLMSG))
    138  Q
    139  ;
    140 IN(HLMTN,HLMID,HLTIME) ;File Data in Message Text File for Incoming Message
    141  ;Version 1.5 Interface Only
    142  ;
    143  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    144  ; OUT, IN, and ACK to HLTF2 routine.
    145  ;
    146  Q:'$D(HLFS)
    147  I HLMTN="ACK"!(HLMTN="MCF")!(HLMTN="ORR") Q:'$D(HLMSA)  D ACK(HLMSA,"O",$G(HLDA)) Q
    148  ;
    149  N HLDAI S HLDA=0
    150  I $D(HLNDAP),HLMID]"" D
    151  .F  S HLDA=+$O(^HL(772,"AH",+$P($G(HLNDAP0),U,12),HLMID,HLDA)) Q:'HLDA!($P($G(^HL(772,+HLDA,0)),U,4)="I")
    152  .I HLDA D
    153  ..S HLDT=+$P($G(^HL(772,HLDA,0)),"^"),HLDT1=$$HLDATE^HLFNC(HLDT)
    154  ..K ^HL(772,HLDA,"IN")
    155  .I $D(HLMSA),$P(HLMSA,HLFS,3)]"" D
    156  ..S HLDAI=0
    157  ..F  S HLDAI=$O(^HL(772,"AH",+$P($G(HLNDAP0),U,12),$P(HLMSA,HLFS,3),HLDAI)) Q:'HLDAI!($P($G(^HL(772,+HLDAI,0)),U,4)="O")
    158  ..I 'HLDAI K HLDAI
    159  ;
    160  ; patch HL*1.6*122: MPI-client/server
    161  ; I 'HLDA D CREATE(.HLMID,.HLDA,.HLDT,.HLDT1) K HLZ
    162  I 'HLDA D CREATE^HLTF(.HLMID,.HLDA,.HLDT,.HLDT1) K HLZ
    163  ;
    164  D STUFF^HLTF0("I")
    165  N HLAC S HLAC=$S($D(HLERR):4,1:1) D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
    166  ;
    167  D MERGE15^HLTF1("G",HLDA,"HLR",HLTIME)
    168  ;
    169  I '$D(HLERR),$D(HLMSA),$D(HLDAI) D
    170  .N HLAC,HLERR,HLMSG I $P(HLMSA,HLFS,4)]"" S HLERR=$P(HLMSA,HLFS,4)
    171  .S HLAC=$P(HLMSA,HLFS,2) I HLAC'="AA" S HLMSG=$S(HLAC="AR":"Application Reject",1:"Application Error")_" - "_HLERR
    172  .S HLAC=$S(HLAC'="AA":4,1:3) D STATUS^HLTF0(HLDAI,HLAC,$G(HLMSG))
    173  Q
    174  ;
    175 ACK(HLMSA,HLIO,HLDA) ;Process 'ACK' Message Type - Version 1.5 Interface Only
    176  ;
    177  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    178  ; OUT, IN, and ACK to HLTF2 routine.
    179  ;
    180  ; To determine the correct message to link the ACK, HLIO is used.
    181  ; For an ack from DHCP (original message from remote system) then
    182  ; HLIO should be "I" so that the correct inbound message is ack-ed. For
    183  ; an inbound ack (original message outbound from DHCP) HLIO should be
    184  ; "O". This distinction must be made due to the possible duplicate
    185  ; message ids from a bi-direction interface.
    186  ;
    187  ; Input : MSA - MSA from ACK message.
    188  ;         HLIO - Either "I" or "O" : See note above.
    189  ;Output : None
    190  ;
    191  N HLAC,HLMIDI
    192  ;-- set up required vars
    193  S HLAC=$P(HLMSA,HLFS,2),HLMIDI=$P(HLMSA,HLFS,3)
    194  ;-- quit
    195  Q:HLMIDI']""!(HLAC']"")!('$D(HLNDAP))
    196  ;-- find message to ack
    197  I '$G(HLDA) S HLDA=0 D
    198  . F  S HLDA=+$O(^HL(772,"AH",+$P($G(HLNDAP0),U,12),HLMIDI,HLDA)) Q:'HLDA!($P($G(^HL(772,+HLDA,0)),U,4)=HLIO)
    199  ;-- quit if no message
    200  Q:'$D(^HL(772,+HLDA,0))
    201  ;-- check for error
    202  I $P(HLMSA,HLFS,4)]"" N HLERR S HLERR=$P(HLMSA,HLFS,4)
    203  I $D(HLERR),'$D(HLMSG) N HLMSG S HLMSG="Error During Receipt of Acknowledgement Message"_$S(HLAC="AR":" - Application Reject",HLAC="AE":" - Application Error",1:"")_" - "_HLERR
    204  ;-- update status
    205  S HLAC=$S(HLMTN="MCF":2,HLAC'="AA":4,1:3)
    206  D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
    207  Q
    208  ;
Note: See TracChangeset for help on using the changeset viewer.