8 Followers · 509 Posts

Health Level-7 or HL7 refers to a set of international standards for the transfer of clinical and administrative data between software applications used by various healthcare providers

Learn more

Question Scott Roth · Feb 20, 2019

We are currently on 2015.2.2 and in schema structures for vs 2.6 HL7 I do not have a ORU^R40.  Its for a GE Device alarm. Has anyone hear of this structure, have a way to export it, and can send it to me so I don't have to build from scratch?

Thanks

Scott

3
0 1324
Question Thomas Schroyen · Feb 25, 2019

Hello Gentlemen,

As you can read on the title, my question is to know how to retranslate the hl7 message into a string and so to remove the '\E' that are inside. A example/picture worth more than a thousand word.
OBX|1|RP|ECG||CARDIO ECG^APPLICATION^PDF^^\E\\E\sitehopital.org\E\files\E\cardio\E\022018\E\GE274583.PDF|

As you can see, the escape character \E is used by hl7 message in the purpose to authorize a character '\' just but I don't want it in my program... Is there any function that retranslates this format into a "normal" format?

Faithfully,

Thomas

5
0 1511
Question Thomas Schroyen · Feb 22, 2019

Hello gentlemen,

I'm wondering how to get the specific HL7 message structur by coding in ObjectScript. I'm explaining myself, when you receive a hl7 message, you have to set its DocType to be able to read it conveniently. For example, an ADT_A15 (2.3.1) must have the docType of an ADT_A09 (2.3.1) to be well read. So you have 2 possibilities to know that, either you go in the documentation to see which structur to set in but I don't think it's generic.... Either there is a way to code it and to get the correct specific structur and this is why I'm here, if it's possible, how? 
I hope my questio

1
0 592
Question Jimmy Christian · Feb 8, 2019

Hello ,

I have a class Method ClassMethod SearchOBXFlag(pSourceMsg As EnsLib.HL7.Message, Identifier As %String) As %String

How can i test this method from terminal or from portal or studio.  In Terminal i am not able to pass a HL7 message to the method since it terminates after segment terminator. It should be great if i can pass a local file with the hl7 message to the function instead.

Any help will be appreciated how to pass a hl7 message to this function inorder to test.

Thanks

Jimmy Christian.

6
0 648
Question Jimmy Christian · Feb 8, 2019

Hello,

I have a Rule Class which receives the HL7 message and sends it to the concerned target based on the condition.

/// 
Class XYZ Extends Ens.Rule.Definition [ CompileAfter = CUSTOM.Util.Rules.FunctionSet ]
{
Parameter RuleAssistClass = "EnsLib.HL7.MsgRouter.RuleAssist";
XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule]
{
<ruleDefinition alias="" context="EnsLib.HL7.MsgRouter.RoutingEngine" production="ABCProduction">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<rule name="">
<when condition="(SearchOBXFlag(Document,&quot;searchvalue&quot;))">
<send transform="DT

4
0 734
Question Lawrence Grace · Feb 5, 2019

Does Intersystems Ensemble support (for LGBTQ+) gender code "U" in Healtshare? Specifically for the clinical (or physician) viewer?

Test shows the gender code is consumed without error and stored, but the viewer does not present it except (as far as I can see) in the patient search drop-down.

The 2.3.1 HL7 ADT schema code table lists "U" as a supported option.

Would this require customization in the viewer code to support this?

3
0 511
Question Darin Kurth · Feb 5, 2019

I'm looking for options to create multiple DFT HL7 messages based on data contained in a ZCO segment in a single inbound DFT message.  I have the following ZCO segment:

ZCO|CCC^Charge Code|1306794,1071301,23510,1071424|MFCD^Charge Code|14232,3542|||||

In this example, I need to create a new DFT message based on the data contained in ZCO:2.  Each code needs to be in it's own DFT message and put in FT1:7.1.  The number of codes will vary for each inbound message, but each code will need to create its own outbound message to the client.
 

5
0 1432
Question Mogamad Allie Saal · Jan 17, 2019

Hi.

We have created an Ensemble production that receives HL7 information via TCP Adapters, but the requirement from the vendor is that we submit an ACK message with the MSH segment mist have a date and time populated with seconds.

We are utilising the standard class for the Service Adapter (EnsLib.HL7.Service.TCPService).

HL7 Version 2.5 no modifications currently.

The messages received via the service is correctly received in ddMMyyyyhhmmss but our ACK back is only ddMMyyyyhhmm.

Due to the ACK not having the ss the message is rejected by the vendor.

Ps: Our interface is using ACK Mode -

1
0 1479
Question Stephen De Gabrielle · Dec 27, 2018

Is there any good documentation/tutorials on creating gateways in both directions between FHIR and Hl7v2 (for Health Connect)?

the scenarios I'm most interested in

1. Client application sends a FHIR demographic query to Health Connect - and the interface has to convert this to Hl7v2 QBP^Q11 message to the PAS.

2. Health connect sends a PDF document (from a file or HL7v2 interface) to an EPR over FHIR.

Thanks

Stephen

UPDATE

We are using Health Connect  15.03 - Cache for Windows (x86-64) 2017.2.1 (Build 801U) Wed Dec 6 2017 09:07:51 EST [HealthShare Modules:Core:15.03.9901 + Linkage Engin

5
1 1222
Question Lassi Autio · Sep 26, 2018

I want to test automatically that HL7 business operation works correctly in error conditions. One is to test CE acknowledgement. I have planned to implement test production which includes business services for different situations (AA, AE, CA, CE, timeout, late response etc).

How should I implement HL7 business service that always returns CE (commit error)? I have tried but it keeps returning "AA".

2
0 439
Question Jim Dolson · Dec 13, 2018

Hello.

I have a delimited flat file that I need to read and then generate an HL7 A08 message from the fields in the file.  I used the Management Portal's Record Mapper to generate the Map.Record class, then used drag & drop to map fields in the delimited flat-file to an A08 message.

But when I try testing this in the test tool, I'm getting an ERROR #6254: Tag expected . XML input. ... is not in proper format as child of Record (ending at line 2 character 11).

I can't find any real information on the error other than a mention that 6254 is an error :-)

Suggestions, anyone?

Best,

Jim Dolson

Holland Hos

2
0 563
Article Wilber Tang · Jul 25, 2016 1m read

EnsLib.HL7.Message.cls provides many API methods for manipulating an HL7 message.  RemoveSegmentAt(), for example, can be used to remove a segment by path or index, but only one segment at a time.   There may be times that you'll need to remove all segments within a group or even many groups of segments from the HL7 message.  Surely you can iterate through each segment in each group and remove them one by one, but there's a much easier way. 

With just one command, like below, you can remove all OBX segments in an ORU_R01 message (msg):

Set tSC = msg.SetValueAt(,"PIDgrpgrp(1).ORCgrp(1).OBXgrp()"

1
0 2624
Question Arun Madhan · Oct 29, 2018

HealShare 2017

Hi dev community,

I am currently  working on an interface that needs to communicate to a SOAP/ITK endpoint.

I am using the EnsLib.ITK.AdapterKit.Operation.SOAPOperation to interface with an ITK 
service, but it is proving to be more complex than originally expected to set up the web client 
against that particular end-point since I haven't been provided with a WSDL from ITK service side as 
the vendor state they are following the ITK standard and no WSDLs are needed.

I have set up an EnsLib.ITK.AdapterKit.Operation.SOAPOperation within Health Share production and 
we are current

1
0 393
Question Stuart Byrne · Oct 26, 2018

I'm currently working on a project to run our medical device integration through ensemble.

I've noticed a potential problem with the volume of messages .  The feed generates around 474K messages daily( average of 1 message per minute per device from 300+ devices).

We currently keep all our other feeds message data for 90 days and purge automatically.   From what I can see is that the purge functions in Ensemble are production wide and cannot set it at the Business Operation, Service or Router level.

Ideally we would like to have the new feed in the same namespace & production  as our other feeds.

1
0 435
Question David Foard · Sep 7, 2018

Is there any out of the box capability in Ensmeble to remove an FHS segment from a batch file? We have a client that is creating a batch of HL7 messages and they insert an FHS but there is no trailing FTS.

We are hoping to avoid custom COS code to handle this scenario.

2
1 483
Question Scott Roth · Sep 13, 2018

We have the need to write a function that can loop through say a field in an OBX segment within HL7 and compare it to a string passed. Is it possible to have the user enter the Operator ( >,<,=,<>) as a variable inside Cache object script? Does anyone have any examples they can share?

Thanks

Scott Roth

The Ohio State University Wexner Medical Center

8
0 647
Question Herb Salgado · Sep 13, 2018

Hello,

I am trying to send a HL7 Billing Batch 2.3:FHS file out to an FTP site:

The file needs to be  in Variable Length / Carriage return carriage control format--  

 When I send the file, the format is Fixed Length 512 Byte Record-- Not Working

The data is ok within the file-- It is just the way I am sending it out of Ensemble that is not correct.

I am thinking that it is a setting within the Operation that I am missing or not choosing correctly.

Charset-AsciiCR

Separators -|^~\&\r

Default Char Encoding: Binary

I appreciate the help,

Herb

Record format:      Fixed length 512 byte records

Record attribut


2
0 384
Question Kami Sama · Sep 10, 2018

Hello,

I have some issues trying to store a base64 encoded stream into the obx:5 segment.

I'm using  the StoreFieldStreamBase64 method in my business process to store the stream into the segment.

I'm sending the hl7 message containing my stream to an ensemble business operation (EnsLib.HL7.Operation.FileOperation) to write the message on disk.

When i'm reading it with an ensemble business service, it can't parse the stream because it contains multiple CRLF.

Why is my business operation splitting my stream into multiple newlines ?

Ensemble ver : 2016.2

Kami

7
1 1325
Question Wouter Langenberg · Jul 9, 2018

I'm receiving HL7 message containing the escape sequence \X00D\ indicating a carriage return. In the HL7 documentation I find that this is a valid escape sequence but when I read the intersystems documentation it states that only \X0D\ is valid.

What is the best way to work around this? I think that intersystems should change the UnescapeEx method in the EnsLib.HL7.Segment so that it complies with the standards.

2
0 1153
Question Chip Gore · Jun 20, 2018

Hi -

I'm working on a project that will be dealing with depression screening and I'm not certain where any of this information would belong in the HL7v2.x world.

Can anyone suggest what the proper placement of "has this person been screened" and if so, "this was what the screening showed"?

At first thought I was thinking that this is an "Observation" of some sort (and ORU message) for the "what the screening (or perhaps testing) showed", but I'm not sure if the screening was performed yes/no qualifies as an "ordered test".

Just looking for a starting point I guess. Thanks

1
0 302
Question Stephen De Gabrielle · Jun 11, 2018

Hi, 

I want to splice a PID segement returned from a query, so I can use it in a DTL:

<assign value='context.pidSegment' property='target.{PIDgrp.PID}' action='set' />

I need to set the value of 'context.pidSegment' to something I can use in the DTL objectscript expression

but I'm not sure what method (or property) to use to get the class EnsLib.HL7.Segment segment into a datatype that can be used in the DTL?

I've tried the following to no avail;

  • context.K21response.GetSegmentAt("PIDgrp.PID")
  • context.K21response.FindSegment("PIDgrp.PID")
  • context.K21response.GetSegmentAt("PIDgrp.PID").RawContent
  • contex
1
0 532
Question Scott Roth · May 29, 2018

I have a vendor that is sending me an Abbreviation in FT1:16.4.2 that I need to look up against a table to find the correct ID for.

FT1|1|||20180523161501|20180523161503|CG|1906551^Lipid Profile|||1||||||^^^ LAB&06CL|||Z00.00||00410^Knerr^Joel||721410||30100001^Lipid Profile|

But in my Business Process when I refer to request.GetValueAt("FT1:16.4.2") its not recognizing that this field contains information. Is my syntax wrong?

5
0 948
Article Randy Pallotta · May 27, 2016 3m read

Two fairly common requests we receive from HL7 customers are (1) how to remove all trailing delimiters for fields and segments in HL7 messages and (2) how to "find and replace" for an entire HL7 message (as opposed to one segment/field at a time).  The code sample below shows a custom function that solves for item 1 and by extension item 2 above.  In other words the same approach can be used for finding/replacing any sequence of chars in an entire HL7 message, with some tweaks to the custom function.

Here’s an example of how to actually call the function from DTL.  I recommend doing this as the

6
0 3776
Announcement James Schultz · May 7, 2018

Hi Community!

Join us at the FHIR event of the year in the US: the HL7 FHIR Dev Days 2018!
A unique chance to meet 400 colleagues and discuss all topics relating to your field.

InterSystems is proud to be the Host Sponsorof HL7 FHIR Dev Days for its first U.S. edition, Boston, June 19 – 21st! We support the HL7 FHIR standard as it is critical for rapid innovation. FHIR can be used as an accelerant to bring all the information that matters for a patent into a unified health record. 

0
0 517