HL7

Syndicate content 21 

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):

Last comment 14 November 2018
+ 3   0 2
951

views

+ 3

rating

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.

Last comment 16 May 2018
+ 5   0 5
1458

views

+ 5

rating

This is a sample Ensemble/Health Connect production which demonstrates how to receive an HL7 order (ORM) inbound from a file, extract fields (in this case, basic demographic information), and insert those into a table in an external SQL database via ODBC.  

Included in the zip file:

  • Exported code
  • Sample ORM message
  • 'How to configure' doc 
Last comment 19 April 2018
+ 1   0 3
1017

views

+ 1

rating

I am trying to come up with a way to decode the Base64 we receive in an HL7 message into a PDF file and save it in a directory on our AIX machine. I thought I had the following working at one time but I am having issues. Has anyone done this before?

Last answer 19 November 2016 Last comment 25 January 2018
0   1 4
1552

views

0

rating

This article will describe and include an example of how to embed an external PDF file into an HL7 segment, specifically ADT_A01:2.3.1 OBX().  This can be useful when attempting to insert pictures or other external data into an HL7 message.  In this example, the name of the PDF file to be embedded is provided in the incoming HL7 message in OBX(1):ObservationValue field.

Last comment 23 August 2017
+ 8   1 1
4375

views

+ 8

rating

Ensemble 2015.  Working on an a way to send NACK'd HL7 messages to a flat file for external review/troubleshooting. (Similar to the way BadMessageHandler deals with validation errors.)

I think I have the Alert piece down, but need assistance with the exact syntax to do an SQL query in the DTL (or a custom function) to pull the HL7 message Raw Content into the Alert, based on the SessionID.

(Also, anything special to write alerts to the File Operation?)

 

Thanks,  Brian

 

Last answer 12 July 2017 Last comment 12 September 2016
0   0 1
488

views

0

rating

DTL Transformations and GetValueAt/SetValueAt calls on HL7 messages will truncate any fields longer than 32K.  To avoid this, the methods GetFieldStreamRaw and StoreFieldStreamRaw must be used when dealing with fields that might be larger than 32K.  OBX:5 is a frequent example.  These methods have some subtleties and must be used carefully.

This can't be done by simply dragging from left to right in a DTL.  It must be done with a code action.  Also, the StoreFieldStreamRaw call must be the last edit made to the segment because the segment becomes immutable after that.

+ 8   2 8
863

views

+ 8

rating

Hi all,

I'm trying to convert a HL7 section to a XML or JSON string.

We need to save the content of PID section into a SQL Column, therefore we need to convert it into a XML o JSON string

is there any easy way to convert it?

I've tried to convert it directly into a DTL, but all my attempts have been unsuccessful

Best regards,

Francisco Lopez

Last answer 22 December 2016 Last comment 20 December 2016
0   0 0
600

views

0

rating

For testing purposes, I would like to create an EnsLib.HL7.Message from either a %String or a file on disk and pass it into a function in a unit test (outside of an Ensemble context). EnsLib.HL7.Parser appears to do the necessary parsing, but it also sends the message via Ensemble service rather than returning it as a value. Is there a way to leverage the parsing outside of a Ensemble service? Alternatively, is there another way to create an EnsLib.HL7.Message?

Last answer 15 December 2016
+ 1   0 3
0

comments

1077

views

+ 1

rating

Hopefully somebody can help with this :

Using healthshare - Ensemble::: I have an HL7 message (ORU^R01) where I have an RTF file embeded into an OBX segment as what appears to be plain text.

example below :

How would I  extract this file out and create an email and attach this RTF file as an attachment?

Last answer 22 November 2016 Last comment 2 December 2016
0   0 1
414

views

0

rating

We are interfacing through Ensemble with an application that does not like diacritic signs in text. I have been searching for a way to strip these signs from the HL7 messages that get send to that application. 
The problem in short is we have an incoming HL7 message with e.g. é (or ë, á etc), this goes into Ensemble. In the outgoing message the é should be replaced with an e. 

Last answer 11 October 2016
+ 2   0 1
0

comments

185

views

+ 2

rating

I'm trying to read PID-3 and route the message based on if a certain prefix existed, but I keep getting Property Does Not Exist.

I've tried

HL7.(PID:PatientIDInternalID()) Contains "COS"

HL7.(PID:PatientIDInternalID(1)) Contains "COS"

HL7.{PID:PatientIDInternalID()} Contains "COS"

HL7.{PID:PatientIDInternalID(1)} Contains "COS"

This is a 2.3 MDM message. Thanks!

Last answer 5 October 2016
0   0 2
0

comments

296

views

0

rating

Framing refers to the characters that mark the start and end of an HL7 message (or other types of framed messages).  Most HL7 services and operations have a Framing setting that allows the user to define this framing.  The most common choices are available as defaults, but with the AsciiMM/NN setting, components can be configured to recognize any framing characters.

+ 4   2 2
0

comments

783

views

+ 4

rating

We have an incoming ADT adapter and the ACK MODE is set to IMMEDIATE.  This is what the docs say: 

Send back (commit) ACK reply message immediately upon receipt of the inbound message.

 

An inbound ACK shows up as a square in the visual trace.  These do not.  How can I view them?

Last answer 19 August 2016 Last comment 19 August 2016
0   0 1
262

views

0

rating

I'm doing some Schema changes.  I used our existing standard schema as a base, which was already based on 2.3.  So let's call our existing one Custom.MHC.Schema (based on 2.3).  I created Custom.MHC.Schema.Advanced (based on Custom.MHC.Schema) and copied down one of the code tables then made a change to it.

When I ran a message through, the code table change didn't show up.  I noticed in the message viewer that the DocType is still Custom.MHC.Schema:ADT_A01 but the DocType Category is Custom.MHC.Schema.Advanced.

Last answer 30 July 2016
0   0 2
0

comments

159

views

0

rating

We had a major problem recently where a participant was sending unexpected data. It was not enough to throw an error or warning in the actual trace, but when examining the message in the viewer it did show the following:

Build Map Status = 'ERROR <EnsEDI>ErrMapSegUnrecog: Unrecognized Segment 4:'CON' found after segment 3 (CON)'

How can I query for these or be notified of them?  This caused major ramifications but we did not notice it.  I have Managed Services investigating but I want to cover all my bases.

Last answer 14 July 2016 Last comment 13 July 2016
0   0 1
257

views

0

rating

I have a tool I absolutely love for HL7 v2 analysis and manipulation. It's called 7edit.  I'm wondering if there is anything similar for HL7v3/CDA/CCD.  I know it is considerably more complex, but I still have hope.

So far the best resource I've found is http://www.cdapro.com/.  I'd love to hear anyone else's tips for tools or resources.

Last answer 31 May 2016
+ 1   0 1
0

comments

774

views

+ 1

rating

Hi,

IHAC who is trying to connect Ensemble to Quadramed for HL7 messaging, however, it seems that in order to do this, the following is required:

"we open a passive connection to Quadramed and then listen for a connection request from Quadramed, once this is established we then send messages"

 

Has anyone done this before?  Is this possible with the standard HL7 components?

 

Thanks,

Steve.

Last answer 14 April 2016
0   0 1
0

comments

225

views

0

rating

Hi everyone!

I have imported a schema (HL7 v2.5 XML schema) using the "Ensemble > Interoperate > XML" and I have built a Web Service that receives a string with an XML document that follows the schema. I have used EnsLib.EDI.XML.Document as follows to consume the string and produce the XML vDoc:

Last answer 9 April 2016
0   0 2
0

comments

412

views

0

rating

Presenter: Matt Spielman
Task: Use the FHIR standard with HealthShare-based solutions
Approach: Provide an overview of how HealthShare will support the evolving FHIR

 

The next major release of HealthShare will be the first version to support the emerging HL7 FHIR standard. This presentation will discuss InterSystems’ involvement with the FHIR standard, detail the new FHIR functionality, and review our long term plans for FHIR in the HealthShare platform.

 

Content related to this session, including slides, video and additional learning content can be found here. Please note that this content is available only to HealthShare customers and attendees of the Global Summit. On the learning web site you will be prompted for your Global Summit credentials to access this content.

0   0 2
0

comments

318

views

0

rating

What is the recommended approach to handle the following scenario: Large number of HL7 messages are serviced via Ensemble. Those messages are then transformed and routed to an Operation which calls a web service which does a number of different activities. If will do address normalization, location geo coding, MPI lookup and resolution, and insert into a SQL Server database to stage for an analytics product. Unfortunately all of this work takes time and the first thing that happens in the web service is a lock taken out on the Patien in SQL Server.

Last comment 4 March 2016
+ 1   0 4
0

answers

445

views

+ 1

rating