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.

12 4
5 13.7K

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.

7 6
0 3.3K

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?

1 4
0 2.9K

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.

10 6
6 2.4K
Question
· Dec 8, 2016
JSON to HL7

I have a project to convert a JSON message with two patient identifiers into an HL7 ADT^A31. Is there any documentation or training that you would think is appropriate?

Currently using Ensemble 2014.1.5 on AIX

0 1
0 2.3K

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

4 1
0 2.3K
Article
· Sep 20, 2016 4m read
Diagnosing Framing Errors

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 0
2 2.2K
Question
· Dec 19, 2016
HL7 Section to JSON

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

1 6
0 1.3K
Question
· May 17, 2016
Tools for CDA/CCD?

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.

1 1
0 1.2K

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

0 3
0 836

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?

0 2
0 773

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.

1 2
0 658

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!

0 1
0 541

I have a service named FTP_In that is of class EnsLib.HL7.Service.FTPService. It picks up files from multiple subfolders and sends them to an EnsLib.HL7.MsgRouter.RoutingEngine. What I want to do is somehow capture the subfolder as a variable for use in the routing rules. Is this possible?

Let's say I have the following files and directory structure on my FTP Server

0 6
0 528

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
0 440

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.

0 1
0 412

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.

2 1
0 408
Question
· Apr 14, 2016
HL7 to Quadramed

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.

0 1
0 374
Question
· Aug 9, 2016
Storage Management

We want to isolate the storage of our CCDAs from our HL7 V2 data, but keep them under the same namespace. From my understanding, I should create a new database then store those classes related to CCDAs in that database. Is this the correct approach?

0 1
0 373