HL7

Syndicate content 18 

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.


The basic stipulations for this example are as follows:

  1. Accept a PDF file
  2. Accept an HL7 message
  3. Using the name of the PDF file, embed the PDF data into the HL7 message
  4. Output the message to file

 

 

Last comment 23 August 2017
+ 8   1 1
3433

views

+ 8

rating

Hi

 

I've got a Service that get ACK Messages originated by another system. 

 

I want to get the details of a Message when the ACK is CE (Failed Message).

 

I don't know whether this is the best approach but, at the moment, I have a DTL and I would like to search the Cache Database for a Message with the Control ID on the ACK in the MSA segment.

 

Any help with this would be great.

 

Tks.

Last answer 11 July 2017 Last comment 15 August 2017
0   0 1
314

views

0

rating

Hello Greetings-

I am exploring on converting HL7 to FHIR.

1. I saw there are built in DTLs “FHIR.FromSDA” and “FHIR.ToSDA” to convert SDA -> FHIR and FHIR -> SDA. Similarly Do Intersystems have DTLs for HL7 -> FHIR and FHIR -> HL7?

2. The reason why I am asking is, I see in HSLIB namespace HS->GateWay->HL7->HL7toSDA3 and HS->GateWay->SDA3->SDA3toHL7 DTLs. Like-wise I am trying to locate HL7 -> FHIR and FHIR -> HL7. Please help me to locate them

3. If there are no built-in DTLs for converting HL7 -> FHIR and FHIR -> HL7, what is the process to achieve this?

 

Thanks much in-advance.

Thanks,

Surya

Last answer 22 March 2017 Last comment 14 August 2017
+ 1   1 2
865

views

+ 1

rating

Hello,

Are there any utilities/api in HealthConnect 2016.2.1 that will allow conversion of XML virtual document to Json format? We were thinking to convert HL7 ADT message to XML via Ensemble DTL and then send it to another BP to convert to Json format for transmission via Web Services. To my understanding there isn't anyway to represent Json as a virtual object so it can be use for direct mapping of HL7 2.x message to Json via Ensemble DTL.

Thanks

Yuriy

Last answer 20 July 2017 Last comment 15 May 2017
0   0 1
998

views

0

rating

Hello mates,

When turning on the “Archive IO” option within the business operations, it provides us the capability of seeing the input and output communication with external systems. For instance, watching the messages sent out + ACK message sent back .

Our production has got a scheduled task that runs daily (by default I guess, as many others) and is in charge of purging “Errors and log files”. And this is likely to be linked to the “Archive IO” feature, right?

The thing is, after tweaking the variable to keep it for 7 days, it doesn't seem to be working, as messages older than 1 day will be vanished (see the below screenshot). I might be missing some other bit...

Any help is appreciated!

 

 

Last comment 17 July 2017
0   0 3
0

answers

157

views

0

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
385

views

0

rating

Hello,

I have been struggling and could use some help as I think I'm burnt.  I am trying to change a Textual 2.5.1 OBX;5 with multiple iterations to a simple non-iterating outbound result.  I have played around with $piece but can't seem to get it to work.  The outcome I would like is for OBX;5 to look like this: |Positive| and currently it looks like this: |Positive~_~_~_~_~|.  Any suggestions would be appreciated.

Last answer 27 June 2017 Last comment 27 June 2017
0   0 2
164

views

0

rating

Is there a way to use a HL7 field value as part of the File Naming in the Business Operation FileOperation class.  I know we can do this in a custom class, but I was wondering if it could be done the default FileOperation class?

Example:

MSH-4 contains the value 12345

We would like to name the file 12345_YYYYMMDDHHMMSS.HL7

MSH.4 value here_%Y%m%d%H%M%S.HL7

It may not be possible, but I just want to see if anyone has any information

Thanks,

Kevin Brown

Last answer 22 June 2017 Last comment 22 June 2017
0   0 4
296

views

0

rating

I have come across several cases where I need to set a Date filter to send only send any admit/scheduled date past a certain point. We have a couple different date comparison functions but none looking at the true date. Most of them are date + 15 or etc. Does anyone have a good date function they have written to say if x > 20170102 ?

 

Thanks

Scott

Last answer 20 June 2017
0   0 2
0

comments

437

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.

StoreFieldStreamRaw takes 3 arguments: The stream to put in the field, the VDoc path of the field in which to store the stream, and a pRemainder argument.  If the pRemainder argument isn't specified, then all fields after the field being stored are blown away.  If pRemainder is specified, then all fields after the one being stored are replaced with what's in pRemainder

Last comment 10 June 2017
+ 7   0 8
717

views

+ 7

rating

I have a case where I have a SIU message that has multiple RGSgrp's. I am writting the first RGSgrp fine, but when it comes to the additional RGSgrp's, I want the ability to look at the Target SIU message and see if the value exists.  If the AIG.3 already exists in the Target message I want to stop the looping and not write out the data.

 

Can anyone suggest a way to do this? Is there a way in a DTL to build a list or temp lookup table to see if something exists?

 

Thanks

Scott Roth

Integration - Interfaces

The Ohio State University Wexner Medical Center

Last answer 30 May 2017
0   0 1
0

comments

165

views

0

rating

Hi Everyone,

Link to webinar recording: https://learning.intersystems.com/course/view.php?id=623

Thank you for your interest in this webinar!

Please submit questions about the content of the webinar as comments below this article.

The webinar covers two topics: monitoring message activity and volume and monitoring disk space. I summarize and motivate the topics in the following two sections. The information in this webinar and post applies to the Ensemble, Health Connect, and HealthShare products. For simplicity, I am only going to refer to Ensemble in this post.

1) Monitoring Message Activity and Volume:

Last comment 16 May 2017
+ 3   0 1
322

views

+ 3

rating

Suppose I have an image and need to convert that image into a PDF for inclusion in an HL7.

I know that Zen Reports can display an image in a PDF but I do not want to view the image in a web page. I just need to convert the image to PDF in a Process and then include that PDF in an HL7. The  workflow would be like this:

Get image -> Convert image into PDF -> Include PDF in HL7 OBX.

I know how to do the last part to include PDF in HL7 OBX. Just need ideas on the first part.

 

Last answer 8 May 2017 Last comment 8 May 2017
0   0 0
446

views

0

rating

Folks

1) What's the correct way to check for an existence of a segment?  So far I have been doing this by checking to see if a required field is non-null, and this seems to work but is a bit clumsy. In this case, it’s an X12 message being checked in an IF action in BPL:

              request.GetValueAt("NTE(1):Description")'=""

Or in a DTL, to see if a Z segment exists:

              source.{ZEF:Counter}=1

2) I have a case where I need to change from an external date format (YYYYMMDD) to internal (+$H) for a DTL to create a new object (and then persist it later). I am using:  +..ConvertDateTime(source.{G62:Date},"%Y%m%d","%q(3)") Is there a cleaner way using built in utils or without writing a custom function

Last answer 25 April 2017 Last comment 26 April 2017
0   0 3
427

views

0

rating

Hi,

Can anyone  point me to an example of a DTL & Class method that can pull a base64 encoded PDF out of a MDMT02 message?

This is really asking for two things;

- how to make a DTL that extracts a specific subfield of an HL7 2.3 message into a message of its own,

and

- how to transform an base64 encoded document into its original binary form for writing to a file.

I'd also love to see an example of an HL7 2.n MDM^T02 ==> HL73.ITK2 non-coded CDA

 

I've seen some snippets in the community Q&A, but I've not been able to find any examples either here, or in the documentation or training materials.

Last answer 20 April 2017 Last comment 20 April 2017
0   0 4
1011

views

0

rating

Hi all,

I was wondering if InterSystems offers any message profiling capabilities. What I mean by "message profiling" is essentially stats or metrics gathered from a collection of data submissions of a particular type. For instance, average number of segments  <XYZ> in a specific HL7 V2 message type. Or the number of sections found in a HL7 V3 CDA documents.

Curious if there is anything like this provided "out-of-box".

 

Thanks!

James

Last answer 13 April 2017 Last comment 13 April 2017
0   0 0
160

views

0

rating

noob here..(moving from JCAPS to Ensemble)

We are wondering where is the best place to tie the schema category for an incoming HL7 message? Should we do this within the service (via the message schema category setting) or receive everything and validate in the process (DTL) level?

We want to capture everything that will be sent to that HL7 listener service and then decide what to do with bad messages at the process layer.

Does anyone have any recommendation regarding this? Appreciate your input and decision thought process.

Thank You,

 

Last answer 17 March 2017 Last comment 17 March 2017
0   0 0
143

views

0

rating

Hi, 

We have a mixture of legacy and new systems, and are grappling with the issue of moving documents between systems.

At the moment we are mostly using file drops and encoding metadata in filenames, but a new supplier (letter transcription) is going to provide a Hl7v2 feed sending MDM^T02 messages with PDF's of letters base64 encoded in the message itself.

We are thinking of asking all our suppliers to go with MDM (or ORU) for sending documents. 

I'm interested in the pros and cons of the options; and if there are options I haven't thought of. 

This is the options I have so far

Last answer 10 March 2017
0   0 1
0

comments

333

views

0

rating

Hi

I need to process a very large Batch file which contains HL7 charges which we pull using FTP. I need to loop through the file and do some checks and then split the large Batch file in to individual messages. These individual messages then gets process through a different module to create a output batch of different format

Last answer 3 March 2017
0   0 2
0

comments

276

views

0

rating

Hi all,

We have a big problem with spanish accent and special characters using Data Transformation (HL7 Messages).

We have some DT to transform HL7 messages to other type (OUL^R22 To OML^O21) so it copys the PID segment to the new one, but if in the PatienName field has any special character, the transformation stops and it not continues with the transformation.

This is the message
 

MSH|^~\&|B11111111|000000000C|LAB|TSFLAB|20170117163714||OUL^R22|ID1||2.5||||||UTF-8 
PID|1|1234567890134567890|00000000R||MUÑOZ LÓPEZ^JUAN^||19900101000000||||&||
OBR|1|23145687456894561321|23141211||||||
ORC|RS||4385025|||||||||

 

The transformation changes the "Ñ" and the "Ó" to "?", however if I'm using a personal structure based on HL7 2.5, the transformation doesn't work and the test page gets stuck

Last answer 25 January 2017
0   0 0
0

comments

339

views

0

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
490

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

835

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
332

views

0

rating