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/HLTF.m

    r628 r636  
    1 HLTF ;AISC/SAW,JRP-Create/Process Message Text File Entries ;10/17/2007  09:41
    2  ;;1.6;HEALTH LEVEL SEVEN;**1,19,43,55,109,120,122**;Oct 13, 1995;Build 14
    3  ;Per VHA Directive 2004-038, this routine should not be modified.
    4  ;
    5  Q
    6  ;
     1HLTF ;AISC/SAW,JRP-Create/Process Message Text File Entries ;01/23/06  12:56
     2 ;;1.6;HEALTH LEVEL SEVEN;**1,19,43,55,109,120**;Oct 13, 1995;Build 12
    73FILE ;Create Entries in files 772 and 773 for Version 1.5 Interface Only
    84 D CREATE(,.HLDA,.HLDT,.HLDT1)
     
    7571MA(X,HLMID) ;X=ien in file 772, HLMID=msg. id (passed by ref.)
    7672 ;return ien in file 773
    77  ;
    78  ; patch HL*1.6*122: MPI-client/server start
    79  F  L +^HL(772,+$G(X)):10 Q:$T  H 1
    8073 Q:'$G(^HL(772,X,0)) 0
    81  L -^HL(772,+$G(X))
    82  ; patch HL*1.6*122: MPI-client/server end
    83  ;
    8474 N DA,DD,DO,DIC,DIE,DR,HLDA,HLCNT,HLJ,Y
    8575 S DIC="^HLMA(",DIC(0)="L"
     
    118108OUT(HLDA,HLMID,HLMTN) ;File Data in Message Text File for Outgoing Message
    119109 ;Version 1.5 Interface Only
    120  ;
    121  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    122  ; OUT, IN, and ACK to HLTF2 routine.
    123  ;
    124  D OUT^HLTF2($G(HLDA),$G(HLMID),$G(HLMTN))
     110 Q:'$D(HLFS)
     111 ;
     112 I HLMTN="ACK"!(HLMTN="MCF")!(HLMTN="ORR") Q:'$D(HLMSA)  D ACK(HLMSA,"I") Q
     113 ;
     114 ;-- if message contained MSA find inbound message
     115 I $D(HLMSA),$D(HLNDAP),$P(HLMSA,HLFS,3)]"" D
     116 . N HLDAI
     117 . S HLDAI=0
     118 . 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")
     119 . I 'HLDAI K HLDAI
     120 ;
     121 D STUFF^HLTF0("O")
     122 ;
     123 N HLAC S HLAC=$S($D(HLERR):4,'$P(HLNDAP0,"^",10):1,1:2) D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
     124 D:$D(HLCHAR) STATS^HLTF0(HLDA,HLCHAR,$G(HLEVN))
     125 ;
     126 ;-- update status if MSA and found inbound message
     127 I $D(HLMSA),$D(HLDAI) D
     128 .N HLERR,HLMSG I $P(HLMSA,HLFS,4)]"" S HLERR=$P(HLMSA,HLFS,4)
     129 .S HLAC=$P(HLMSA,HLFS,2)
     130 .I HLAC'="AA" S HLMSG=$S(HLAC="AR":"Application Reject",HLAC="AE":"Application Error",1:"")_" - "_HLERR
     131 .S HLAC=$S(HLAC'="AA":4,1:3) D STATUS^HLTF0(HLDAI,HLAC,$G(HLMSG))
    125132 Q
    126133 ;
    127134IN(HLMTN,HLMID,HLTIME) ;File Data in Message Text File for Incoming Message
    128135 ;Version 1.5 Interface Only
    129  ;
    130  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    131  ; OUT, IN, and ACK to HLTF2 routine.
    132  ;
    133  D IN^HLTF2($G(HLMTN),$G(HLMID),$G(HLTIME))
     136 Q:'$D(HLFS)
     137 I HLMTN="ACK"!(HLMTN="MCF")!(HLMTN="ORR") Q:'$D(HLMSA)  D ACK(HLMSA,"O",$G(HLDA)) Q
     138 ;
     139 N HLDAI S HLDA=0
     140 I $D(HLNDAP),HLMID]"" D
     141 .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")
     142 .I HLDA D
     143 ..S HLDT=+$P($G(^HL(772,HLDA,0)),"^"),HLDT1=$$HLDATE^HLFNC(HLDT)
     144 ..K ^HL(772,HLDA,"IN")
     145 .I $D(HLMSA),$P(HLMSA,HLFS,3)]"" D
     146 ..S HLDAI=0
     147 ..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")
     148 ..I 'HLDAI K HLDAI
     149 ;
     150 I 'HLDA D CREATE(.HLMID,.HLDA,.HLDT,.HLDT1) K HLZ
     151 ;
     152 D STUFF^HLTF0("I")
     153 N HLAC S HLAC=$S($D(HLERR):4,1:1) D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
     154 ;
     155 D MERGE15^HLTF1("G",HLDA,"HLR",HLTIME)
     156 ;
     157 I '$D(HLERR),$D(HLMSA),$D(HLDAI) D
     158 .N HLAC,HLERR,HLMSG I $P(HLMSA,HLFS,4)]"" S HLERR=$P(HLMSA,HLFS,4)
     159 .S HLAC=$P(HLMSA,HLFS,2) I HLAC'="AA" S HLMSG=$S(HLAC="AR":"Application Reject",1:"Application Error")_" - "_HLERR
     160 .S HLAC=$S(HLAC'="AA":4,1:3) D STATUS^HLTF0(HLDAI,HLAC,$G(HLMSG))
    134161 Q
    135162 ;
    136163ACK(HLMSA,HLIO,HLDA) ;Process 'ACK' Message Type - Version 1.5 Interface Only
    137  ;
    138  ; patch HL*1.6*122: HLTF routine splitted, moves sub-routines,
    139  ; OUT, IN, and ACK to HLTF2 routine.
    140  ;
    141  D ACK^HLTF2($G(HLMSA),$G(HLIO),$G(HLDA))
     164 ; To determine the correct message to link the ACK, HLIO is used.
     165 ; For an ack from DHCP (original message from remote system) then
     166 ; HLIO should be "I" so that the correct inbound message is ack-ed. For
     167 ; an inbound ack (original message outbound from DHCP) HLIO should be
     168 ; "O". This distinction must be made due to the possible duplicate
     169 ; message ids from a bi-direction interface.
     170 ;
     171 ; Input : MSA - MSA from ACK message.
     172 ;         HLIO - Either "I" or "O" : See note above.
     173 ;Output : None
     174 ;
     175 N HLAC,HLMIDI
     176 ;-- set up required vars
     177 S HLAC=$P(HLMSA,HLFS,2),HLMIDI=$P(HLMSA,HLFS,3)
     178 ;-- quit
     179 Q:HLMIDI']""!(HLAC']"")!('$D(HLNDAP))
     180 ;-- find message to ack
     181 I '$G(HLDA) S HLDA=0 D
     182 . 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)
     183 ;-- quit if no message
     184 Q:'$D(^HL(772,+HLDA,0))
     185 ;-- check for error
     186 I $P(HLMSA,HLFS,4)]"" N HLERR S HLERR=$P(HLMSA,HLFS,4)
     187 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
     188 ;-- update status
     189 S HLAC=$S(HLMTN="MCF":2,HLAC'="AA":4,1:3)
     190 D STATUS^HLTF0(HLDA,HLAC,$G(HLMSG))
    142191 Q
    143192 ;
     
    152201 I '$L($G(OS)) N OS S OS=$G(^%ZOSF("OS"))
    153202 ;
    154  I OS'["DSM",OS'["OpenM" D
     203 ; patch HL*1.6*120, protect Else command
     204 ; I OS'["DSM",OS'["OpenM" D
     205 I OS'["DSM",OS'["OpenM" D  I 1
    155206 .F  L +^HLCS(869.3,1,772):10 S IEN=+$G(^HLCS(869.3,1,772))+1,^HLCS(869.3,1,772)=IEN S:$D(^HL(772,IEN)) IEN=0,^HLCS(869.3,1,772)=($O(^HL(772,":"),-1)\1) L -^HLCS(869.3,1,772) Q:IEN
    156207 E  D
    157208 .F  S IEN=$I(^HLCS(869.3,1,772),1) S:$D(^HL(772,IEN)) IEN=0,^HLCS(869.3,1,772)=($O(^HL(772,":"),-1)\1) Q:IEN
    158  ;
    159  ; patch HL*1.6*122: MPI-client/server start
    160  F  L +^HL(772,IEN):10 Q:$T  H 1
    161209 S ^HL(772,IEN,0)=$G(FLD01)_"^"
    162210 I $L($G(FLD01)) S ^HL(772,"B",FLD01,IEN)=""
    163  L -^HL(772,IEN)
    164  ; patch HL*1.6*122: MPI-client/server end
    165  ;
    166211 Q IEN
    167212 ;
     
    176221 I '$L($G(OS)) N OS S OS=$G(^%ZOSF("OS"))
    177222 ;
    178  I OS'["DSM",OS'["OpenM" D
     223 ; patch HL*1.6*120, protect Else command
     224 ; I OS'["DSM",OS'["OpenM" D
     225 I OS'["DSM",OS'["OpenM" D  I 1
    179226 .F  L +^HLCS(869.3,1,773):10 S IEN=+$G(^HLCS(869.3,1,773))+1,^HLCS(869.3,1,773)=IEN S:$D(^HLMA(IEN)) IEN=0,^HLCS(869.3,1,773)=($O(^HLMA(":"),-1)\1) L -^HLCS(869.3,1,773) Q:IEN
    180227 E  D
    181228 .F  S IEN=$I(^HLCS(869.3,1,773),1) S:$D(^HLMA(IEN)) IEN=0,^HLCS(869.3,1,773)=($O(^HLMA(":"),-1)\1) Q:IEN
    182  ;
    183  ; patch HL*1.6*122: MPI-client/server
    184  F  L +^HLMA(IEN):10 Q:$T  H 1
    185229 S ^HLMA(IEN,0)=$G(FLD01)_"^"
    186230 I $L($G(FLD01)) S ^HLMA("B",FLD01,IEN)=""
    187  L -^HLMA(IEN)
    188  ;
    189231 Q IEN
Note: See TracChangeset for help on using the changeset viewer.