| 1 | RGADTP ;BIR/DLR-ADT PROCESSOR TO RETRIGGER A08 or A04 MESSAGES WITH AL/AL (COMMIT/APPLICATION) ACKNOWLEDGEMENTS ;5/28/02
 | 
|---|
| 2 |  ;;1.0;CLINICAL INFO RESOURCE NETWORK;**26,27,20,34,35,40,45,44,47**;30 Apr 99;Build 10
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;Reference to BLDEVN^VAFCQRY and BLDPID^VAFCQRY supported by IA #3630
 | 
|---|
| 5 |  ;Reference to EN1^VAFHLZEL is supported by IA #752
 | 
|---|
| 6 |  ;Reference to Patient file (#2) PREFERRED FACILITY (#27.02) is supported by IA #1850
 | 
|---|
| 7 |  ;Reference to $$PV2, $$PHARA, $$LABE, $$RADE ^VAFCSB is supported by IA #4921
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | INIT ;
 | 
|---|
| 10 |  N RGER,RGSITE,ARRAY,MSH,RGLOCAL,RGEVNT,REP,DIC,DR,DIE,DA,DLAYGO
 | 
|---|
| 11 |  S RGER=""
 | 
|---|
| 12 |  D IN
 | 
|---|
| 13 |  D PROCIN
 | 
|---|
| 14 |  D GENACK
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | PROC ;processing entry point
 | 
|---|
| 17 |  N HLA,RGADT,PV1,DIC,ARRAY,RGEVNT,RGLOCAL,REP,ICN,RGSITE
 | 
|---|
| 18 |  S RGEVNT=HL("ETN")
 | 
|---|
| 19 |  I $G(HL("MID"))'="" S RGADT=HL("MID")
 | 
|---|
| 20 |  I $G(HL("MID"))="" S RGADT=999
 | 
|---|
| 21 |  D IN
 | 
|---|
| 22 |  S ICN=$G(ARRAY("ICN"))
 | 
|---|
| 23 |  I +$G(ICN)<1 Q  ;quit if no ICN
 | 
|---|
| 24 |  I $E($G(ICN),1,3)=$P($$SITE^VASITE,"^",3) Q  ;quit if ICN is a local
 | 
|---|
| 25 |  S ZTSAVE("DFN")="",ZTSAVE("RGEVNT")="",ZTSAVE("HLA(""HLS"",")="",ZTRTN="SEND^RGADTPC",ZTDESC="Sending HL7 Patient Update...",ZTIO="RG QUEUE",ZTDTH=$H D ^%ZTLOAD
 | 
|---|
| 26 |  K ZTSAVE,ZTRTN,ZTDESC,ZTIO,ZTDTH
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | IN ;Process in the ADT A04/A08 (routing logic)
 | 
|---|
| 29 |  N RGI,MSG,RG,SG,DFN,EVN,SITE,RGC,RGJ,DIC,PV1,PID,COMP,ENT,EN,THLA,LAB,RAD,PHARM,TMP
 | 
|---|
| 30 |  S ENT=1,REP=$E(HL("ECH"),2),COMP=$E(HL("ECH"),1)
 | 
|---|
| 31 |  ;set local flag to indicate the processing of an outbound for reformatting
 | 
|---|
| 32 |  I $P($G(HL("SAF")),COMP)=$P($$SITE^VASITE,"^",3) S RGLOCAL=1
 | 
|---|
| 33 |  I $P($G(HL("SAF")),COMP)'=$P($$SITE^VASITE,"^",3) S RGLOCAL=0
 | 
|---|
| 34 |  S RGC=$E($G(HL("ECH")),1)
 | 
|---|
| 35 |  F RGI=1:1 X HLNEXT Q:HLQUIT'>0  S MSG=HLNODE,SG=$E(HLNODE,1,3) D
 | 
|---|
| 36 |  .S RGJ=0 F  S RGJ=$O(HLNODE(RGJ)) Q:'RGJ  S MSG(RGJ)=HLNODE(RGJ)
 | 
|---|
| 37 |  .D:SG?2A1(1A,1N) PICK
 | 
|---|
| 38 |  ;if message MSH sending facility matches the PID assigning authority update
 | 
|---|
| 39 |  S ENT=0,EN=1 F  S ENT=$O(THLA("HLS",ENT)) Q:ENT=""  D
 | 
|---|
| 40 |  .S HLA("HLS",EN)=THLA("HLS",ENT),EN=EN+1
 | 
|---|
| 41 |  .I $E($G(THLA("HLS",ENT)),1,3)="PID"!($E($G(THLA("HLS",ENT)),1,3)="ZEL") D
 | 
|---|
| 42 |  ..;**47 handle if ZEL is over 245 as well
 | 
|---|
| 43 |  ..I $O(THLA("HLS",ENT,""))'="" D
 | 
|---|
| 44 |  ...S CNT="" F  S CNT=$O(THLA("HLS",ENT,CNT)) Q:CNT=""  S HLA("HLS",EN-1,CNT)=THLA("HLS",ENT,CNT)
 | 
|---|
| 45 |  .I $E($G(THLA("HLS",ENT)),1,3)="PV1" I RGLOCAL S TMP=$$PV2B I TMP'="" S HLA("HLS",EN)=$$PV2B,EN=EN+1  ;**47
 | 
|---|
| 46 |  .I $E($G(THLA("HLS",ENT)),1,3)="ZPD" I RGLOCAL D
 | 
|---|
| 47 |  ..S RAD=$$RADE I RAD'="" S HLA("HLS",EN)=RAD,EN=EN+1
 | 
|---|
| 48 |  ..S LAB=$$LABE I LAB'="" S HLA("HLS",EN)=LAB,EN=EN+1
 | 
|---|
| 49 |  ..S PHARM=$$PHARA I PHARM'="" S HLA("HLS",EN)=PHARM,EN=EN+1
 | 
|---|
| 50 | QUIT Q
 | 
|---|
| 51 | ROUTE ;
 | 
|---|
| 52 |  N RGERR
 | 
|---|
| 53 |  I $G(RGEVNT)="" S RGEVNT=$G(HL("ETN"))
 | 
|---|
| 54 |  N MPI S MPI=$$MPILINK^MPIFAPI() D
 | 
|---|
| 55 |  .I $P($G(MPI),U)'=-1 S HLL("LINKS",1)="RG ADT-"_HL("ETN")_" 2.4 CLIENT^"_MPI
 | 
|---|
| 56 |  .I $P($G(MPI),U)=-1 D
 | 
|---|
| 57 |  ..N RGLOG,RGMTXT D START^RGHLLOG(HLMTIEN,"","") S RGMTXT="for DFN#"_$G(DFN)
 | 
|---|
| 58 |  ..D EXC^RGHLLOG(224,"No MPI link identified"_RGMTXT,$G(DFN)) S RGERR=1
 | 
|---|
| 59 |  I $G(RGERR)'=1 S ^XTMP("RG"_HL("ETN")_"%"_DFN,0)=$$FMADD^XLFDT(DT,5)_"^"_DT_"^"_"RG"_HL("ETN")_" msg to MPI for DFN "_DFN S ^XTMP("RG"_HL("ETN")_"%"_DFN,"MPI",0)="A"
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 | RESP ;
 | 
|---|
| 62 |  N RGER,RGSITE,ARRAY,MSH,RGLOCAL,RGEVNT,RGI,MSG,RG,SG,DFN,EVN,SITE,RGC,RGJ,DIC,PV1,PID
 | 
|---|
| 63 |  D IN
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | PICK ;check routine for segment entry point
 | 
|---|
| 66 |  I $T(@SG)]"" D @SG
 | 
|---|
| 67 |  I $T(@SG)="" Q
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | MSA ;process the MSA segment
 | 
|---|
| 70 |  N ARRAY,CNT,DFN,EXIT,HLCOMP,RGAA,RGERR,RGEVNT,RGMSG,RETURN,RGX,RGY,RGCODE
 | 
|---|
| 71 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 72 |  S RGAA=MSG,EXIT=0,RGCODE=$P(RGAA,HL("FS"),2),RGMSG=$P(RGAA,HL("FS"),3),RGERR=$P(RGAA,HL("FS"),4),RGMSG=$$MSG^HLCSUTL(RGMSG,"RETURN(1)") K RGMSG
 | 
|---|
| 73 |  S CNT=1,RGX=0 F  S RGX=$O(RETURN(1,RGX)) Q:'RGX!(EXIT=1)  D
 | 
|---|
| 74 |  .I RETURN(1,RGX)'="" D
 | 
|---|
| 75 |  ..I $D(RGMSG) S RGMSG(CNT)=RETURN(1,RGX),CNT=CNT+1
 | 
|---|
| 76 |  ..I '$D(RGMSG) S RGMSG=RETURN(1,RGX),RGY=RGX
 | 
|---|
| 77 |  .I RETURN(1,RGX)="" D  S CNT=1 K RGMSG
 | 
|---|
| 78 |  ..I $E(RETURN(1,RGY),1,3)="MSH" D MSH
 | 
|---|
| 79 |  ..I $E(RETURN(1,RGY),1,3)="PID" D PIDP^RGADTP1(.RGMSG,.ARRAY,.HL) S EXIT=1
 | 
|---|
| 80 |  S DFN=$G(ARRAY("DFN"))
 | 
|---|
| 81 |  ;**45 Log Exception ONLY if AR is returned in MSA segment
 | 
|---|
| 82 |  I RGCODE="AR" D
 | 
|---|
| 83 |  .D START^RGHLLOG(HLMTIEN,"","")
 | 
|---|
| 84 |  .D EXC^RGHLLOG(234,RGERR,DFN) ;**44
 | 
|---|
| 85 |  .D STOP^RGHLLOG(0)
 | 
|---|
| 86 |  I $D(^XTMP("RG"_HL("ETN")_"%"_DFN,0)) K ^XTMP("RG"_HL("ETN")_"%"_DFN)
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 | MSH ;
 | 
|---|
| 89 |  S MSH=1
 | 
|---|
| 90 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 91 |  I 'RGLOCAL S RGC=$E(HL("ECH"),1)
 | 
|---|
| 92 |  S RGSITE=$P($P(MSG,HL("FS"),4),RGC),RGEVNT=$P($P(MSG,HL("FS"),9),RGC,2)
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 | PV2 ;processor of PV2 segment ;**47
 | 
|---|
| 95 |  Q
 | 
|---|
| 96 | PV2B() ;builder of PV2 segment ;**47
 | 
|---|
| 97 |  N RET S RET=""
 | 
|---|
| 98 |  I 'RGLOCAL Q RET
 | 
|---|
| 99 |  N X S X="VAFCSB" X ^%ZOSF("TEST") Q:'$T RET
 | 
|---|
| 100 |  ;**45 VAFCSB coming in with DG*5.3*707
 | 
|---|
| 101 |  Q $$PV2^VAFCSB
 | 
|---|
| 102 | PHARA() ;build obx to show active prescriptions
 | 
|---|
| 103 |  N RET S RET=""
 | 
|---|
| 104 |  I 'RGLOCAL Q RET
 | 
|---|
| 105 |  I '$$PATCH^XPDUTL("PSS*1.0*101") Q RET
 | 
|---|
| 106 |  N X S X="VAFCSB" X ^%ZOSF("TEST") Q:'$T RET
 | 
|---|
| 107 |  ;**45 VAFCSB coming in with DG*5.3*707
 | 
|---|
| 108 |  Q $$PHARA^VAFCSB
 | 
|---|
| 109 | LABE() ;BUILD OBX FOR LAST LAB TEST DATE
 | 
|---|
| 110 |  N RET S RET=""
 | 
|---|
| 111 |  I 'RGLOCAL Q RET
 | 
|---|
| 112 |  I '$$PATCH^XPDUTL("LR*5.2*295") Q RET
 | 
|---|
| 113 |  N X S X="VAFCSB" X ^%ZOSF("TEST") Q:'$T RET
 | 
|---|
| 114 |  ;**45 VAFCSB coming in with DG*5.3*707
 | 
|---|
| 115 |  Q $$LABE^VAFCSB
 | 
|---|
| 116 | RADE() ;BUILD OBX FOR LAST RADIOLOGY TEST DATE
 | 
|---|
| 117 |  N RET S RET=""
 | 
|---|
| 118 |  I 'RGLOCAL Q RET
 | 
|---|
| 119 |  I '$$PATCH^XPDUTL("RA*5.0*76") Q RET
 | 
|---|
| 120 |  N X S X="VAFCSB" X ^%ZOSF("TEST") Q:'$T RET
 | 
|---|
| 121 |  ;**45 VAFCSB coming in with DG*5.3*707
 | 
|---|
| 122 |  Q $$RADE^VAFCSB
 | 
|---|
| 123 | EVN ;;
 | 
|---|
| 124 |  N CNT,ERR S EVN=RGI
 | 
|---|
| 125 |  I RGLOCAL S (EVN(1),THLA("HLS",ENT))=MSG,ENT=ENT+1
 | 
|---|
| 126 |  I 'RGLOCAL D
 | 
|---|
| 127 |  .S ARRAY("EVR")=$P(MSG,HL("FS"),2),ARRAY("DLT")=$$FMDATE^HLFNC($P(MSG,HL("FS"),3))
 | 
|---|
| 128 |  .S ARRAY("EVNAME")=$$FMNAME^XLFNAME($P(MSG,HL("FS"),2),"",$E(HL("ECH"),1)),ARRAY("SENDING SITE")=$P(MSG,HL("FS"),8)
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | EVNP ;
 | 
|---|
| 131 |  N EVNX
 | 
|---|
| 132 |  I $G(DFN)'="" D BLDEVN^VAFCQRY(DFN,"1,2,4,5,6,7",.EVN,.HL,$G(HL("ETN")),.ERR) S CNT=0,EVNX=0 F  S EVNX=$O(EVN(EVNX)) Q:'EVNX  D
 | 
|---|
| 133 |  .I CNT>0 S THLA("HLS",EVN,CNT)=EVN(EVNX),CNT=CNT+1
 | 
|---|
| 134 |  .I CNT'>0 S THLA("HLS",EVN)=EVN(EVNX),CNT=CNT+1
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 | PID ;;
 | 
|---|
| 137 |  N CNT,PIDX
 | 
|---|
| 138 |  I RGLOCAL D
 | 
|---|
| 139 |  .N HLCOMP S HLCOMP=$E(HL("ECH"),1),THLA("HLS",ENT)=MSG,DFN=$P($P(MSG,HL("FS"),4),HLCOMP) ;**45 REMOVED +
 | 
|---|
| 140 |  .D EVNP
 | 
|---|
| 141 |  .D BLDPID^VAFCQRY(DFN,1,"ALL",.PID,.HL)
 | 
|---|
| 142 |  .;get ICN value in the PID segment
 | 
|---|
| 143 |  .S ARRAY("ICN")=+$P($P(PID(1),HL("FS"),4),HLCOMP)
 | 
|---|
| 144 |  .S CNT=0,PIDX=0 F  S PIDX=$O(PID(PIDX)) Q:'PIDX  D
 | 
|---|
| 145 |  ..I CNT>0 S THLA("HLS",ENT,CNT)=PID(PIDX),CNT=CNT+1
 | 
|---|
| 146 |  ..I CNT'>0 S THLA("HLS",ENT)=PID(PIDX),CNT=CNT+1
 | 
|---|
| 147 |  .S ENT=ENT+1
 | 
|---|
| 148 |  I 'RGLOCAL D PIDP^RGADTP1(.MSG,.ARRAY,.HL)
 | 
|---|
| 149 |  Q
 | 
|---|
| 150 | PD1 ;SET PD1 SEQ 3 TO BE PREFERRED FACILITY INSTEAD OF CMOR PATCH **45
 | 
|---|
| 151 |  N PD1
 | 
|---|
| 152 |  I RGLOCAL D
 | 
|---|
| 153 |  .;S PD1=$$PD1^VAFCSB
 | 
|---|
| 154 |  .;I PD1'="" S THLA("HLS",ENT)=PD1,ENT=ENT+1
 | 
|---|
| 155 |  I 'RGLOCAL S (ARRAY(991.03),ARRAY("CMOR"))=$P($P(MSG,HL("FS"),4),RGC) ;PUTTING BACK TO DO NEED FOR PATCH 40 ON MPI SIDE
 | 
|---|
| 156 |  ;- NO LONGER DEALING WITH CMOR
 | 
|---|
| 157 |  Q
 | 
|---|
| 158 | PV1 ;;
 | 
|---|
| 159 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 160 |  Q
 | 
|---|
| 161 | OBX ;;
 | 
|---|
| 162 |  N COMP,SSNV S COMP=$E(HL("ECH"),1)
 | 
|---|
| 163 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 164 |  I 'RGLOCAL D:$$FREE^RGRSPARS($P($P(MSG,HL("FS"),4),RGC,2))="SECURITY LEVEL"
 | 
|---|
| 165 |  .S ARRAY("SENSITIVITY")=$$SENSTIVE^RGRSPARS($P(MSG,HL("FS"),6),COMP),ARRAY("SENSITIVITY DATE")=$$FREE^RGRSPARS($$FMDATE^HLFNC($P(MSG,HL("FS"),15)))
 | 
|---|
| 166 |  .S ARRAY("SENSITIVITY USER")=$$FREE^RGRSPARS($P($P(MSG,HL("FS"),17),RGC,2))_","_$$FREE^RGRSPARS($P($P(MSG,HL("FS"),17),RGC,3))
 | 
|---|
| 167 |  ;**45 Get SSN VERIFICATION STATUS out of OBX if message is from the MPI
 | 
|---|
| 168 |  ;I 'RGLOCAL,$P(HL("SFN"),COMP)="200M" I $P($P(MSG,HL("FS"),4),RGC)="SSN VERIFICATION STATUS" S SSNV=$P($P(MSG,HL("FS"),6),RGC,2),ARRAY(.0907)=$S(SSNV="VERIFIED":4,SSNV="INVALID":2,1:"@")
 | 
|---|
| 169 |  ;**47 use SSN Verification status code and not words since they have changed since this code was first written
 | 
|---|
| 170 |  ;only update values to valid or invalid other statuses aren't stored in VistA
 | 
|---|
| 171 |  I 'RGLOCAL,$P(HL("SFN"),COMP)="200M" I $P($P(MSG,HL("FS"),4),RGC)="SSN VERIFICATION STATUS" S SSNV=$P($P(MSG,HL("FS"),6),RGC,1),ARRAY(.0907)=$S(SSNV=4:4,SSNV=2:2,1:"@")
 | 
|---|
| 172 |  Q
 | 
|---|
| 173 | ZPD ;;
 | 
|---|
| 174 |  I RGLOCAL S THLA("HLS",ENT)=$$EN1^VAFHLZPD(DFN,"1,17,21,34"),ENT=ENT+1 ;**45 to build new ZPD
 | 
|---|
| 175 |  I 'RGLOCAL S ARRAY(.0906)=$P(MSG,HL("FS"),35) I ARRAY(.0906)=HL("Q") S ARRAY(.0906)="@" ;**45 Pull out pseudo ssn reason
 | 
|---|
| 176 |  Q
 | 
|---|
| 177 | ZSP ;;
 | 
|---|
| 178 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 179 |  I 'RGLOCAL S ARRAY(.301)=$$YESNO^RGRSPARS($P(MSG,HL("FS"),3)),ARRAY(.302)=$$FREE^RGRSPARS($P(MSG,HL("FS"),4)),ARRAY(.323)=$$POS^RGRSPARS($P(MSG,HL("FS"),5))
 | 
|---|
| 180 |  Q
 | 
|---|
| 181 | ZEL ;;
 | 
|---|
| 182 |  I RGLOCAL D
 | 
|---|
| 183 |  .;**40 to rebuild ZEL segment
 | 
|---|
| 184 |  .I '$D(DFN) S THLA("HLS",ENT)=MSG,ENT=ENT+1 Q  ;don't know DFN pass back original ZEL segment
 | 
|---|
| 185 |  .N VAFZEL D EN1^VAFHLZEL(DFN,"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22",2,.VAFZEL) ;build a complete ZEL segment
 | 
|---|
| 186 |  .;need to take into account may be more than 1 array entry and that each entry could go over 245 so there would be another subscript
 | 
|---|
| 187 |  .N CNT,ZELX S (CNT,ZELX)=0 F  S ZELX=$O(VAFZEL(ZELX)) Q:'ZELX  D
 | 
|---|
| 188 |  ..I CNT>0 S THLA("HLS",ENT,CNT)=VAFZEL(ZELX),CNT=CNT+1
 | 
|---|
| 189 |  ..I CNT'>0 S THLA("HLS",ENT)=VAFZEL(ZELX),ENT=ENT+1
 | 
|---|
| 190 |  I 'RGLOCAL D
 | 
|---|
| 191 |  . S ARRAY(.361)=$$ELIG^RGRSPARS($P(MSG,HL("FS"),3)),ARRAY(.3612)=$$FREE^RGRSPARS($P(MSG,HL("FS"),12))
 | 
|---|
| 192 |  . S ARRAY(.3615)=$$FREE^RGRSPARS($P(MSG,HL("FS"),14)),ARRAY(391)=$$TYPE^RGRSPARS($P(MSG,HL("FS"),10)),ARRAY(1901)=$$VETERAN^RGRSPARS($P(MSG,HL("FS"),9))
 | 
|---|
| 193 |  Q
 | 
|---|
| 194 | ZCT ;;
 | 
|---|
| 195 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 196 |  I 'RGLOCAL S ARRAY(.211)=$$FREE^RGRSPARS($P(MSG,HL("FS"),4)),ARRAY(.219)=$$FREE^RGRSPARS($P(MSG,HL("FS"),7))
 | 
|---|
| 197 |  Q
 | 
|---|
| 198 | ZEM ;;
 | 
|---|
| 199 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 200 |  I 'RGLOCAL S ARRAY(.31115)=$$EMP^RGRSPARS($P(MSG,HL("FS"),4))
 | 
|---|
| 201 |  Q
 | 
|---|
| 202 | ZFF ;;
 | 
|---|
| 203 |  I RGLOCAL S THLA("HLS",ENT)=MSG,ENT=ENT+1
 | 
|---|
| 204 |  I 'RGLOCAL S ARRAY("FLD")=$P(MSG,HL("FS"),3)
 | 
|---|
| 205 |  Q
 | 
|---|
| 206 | PROCIN ;
 | 
|---|
| 207 |  D PROCIN^RGADTP2(.ARRAY,.RGLOCAL,.RGER,.DFN,.HL)
 | 
|---|
| 208 |  Q
 | 
|---|
| 209 | GENACK ;
 | 
|---|
| 210 |  N RGCNT,IEN,RG
 | 
|---|
| 211 |  I $G(ARRAY("DFN"))'>0 S RGER="-1^Unknown ICN#"_$G(ARRAY("ICN"))_" and SSN#"_$G(ARRAY(.09))
 | 
|---|
| 212 |  S RGCNT=1,HLA("HLA",RGCNT)="MSA"_HL("FS")_"AA"_HL("FS")_HL("MID")_HL("FS")_$S(+$G(RGER)<0:$P(RGER,"^",2,3),1:""),RGCNT=RGCNT+1
 | 
|---|
| 213 |  S RGSITE=$$LKUP^XUAF4(RGSITE)
 | 
|---|
| 214 |  D LINK^HLUTIL3(RGSITE,.RG) S IEN=$O(RG(0)) S HLL("LINKS",1)="^"_RG(IEN)
 | 
|---|
| 215 |  D GENACK^HLMA1(HL("EID"),HLMTIENS,HL("EIDS"),"LM",1,.HLRESLTA,"",.HL)
 | 
|---|
| 216 |  K HLA
 | 
|---|
| 217 |  Q
 | 
|---|
| 218 | RSP ;
 | 
|---|
| 219 |  Q
 | 
|---|