HL7

Syndicate content 24 

(Originally posted by @Ben Spead on June 25, 2014)

This code snippet generates a list of Ensemble Lookup Tables and Schema documents in the user's current namespace. Run the code by running the class method "test":


Class benspead.EnsTablesSchema
{
    classmethod test() {
        If ##class(%Dictionary.CompiledClass).%ExistsId("Ens.Util.LookupTableDocument") {
            // only supported in Ensemble 2012.1+
            Write !,!,"Exporting Ensemble Lookup Tables..."
            Set sc = $$$OK
            Set rs = ##class(%ResultSet).%New("Ens.Util.LookupTableDocument:List")
            Do rs.Execute()
            While rs.Next() {
                Set item=rs.Data("name")
                Write "document found: "_ item,!
            }
            Do rs.Close()
            Set rs=""
        }
        If ##class(%Dictionary.CompiledClass).%ExistsId("EnsLib.HL7.SchemaDocument") {
            Write !,!,"Exporting Ensemble HL7 Schemas..."
            Set sc = $$$OK
            Set rs = ##class(%ResultSet).%New("EnsLib.HL7.SchemaDocument:List")
            Do rs.Execute()
            While rs.Next() {
                Set item=rs.Data("name")
                Continue:$listfind($lb("2.1.HL7","2.2.HL7","2.3.HL7","2.4.HL7","2.5.HL7","2.6.HL7","2.7.HL7","2.3.1.HL7","2.5.1.HL7","2.7.1.HL7","ITK.HL7")
                                    ,item)
                Write "document found: "_ item,!
            }
            Do rs.Close()
            Set rs=""
        }
    }
}

Here's a link to the code on GitHub: https://github.com/intersystems-community/code-snippets/blob/master/src/...

00
0 3 445
Question
Scott Roth · Aug 19, 2019
Filter by time in Routing Rule

I have a colleague that is trying to eliminate any HL7 transactions that have admit date/time of midnight from going to an downstream system within a routing rule. I have tried several different iterations of code trying to figure this out just in the routing editor. Without having to write an object script function is this possible?

00
0 4 183

Hi,

I have a ORU message, which has a EVN segment that I want to remove and send the message across.

I tried to clone the request as below:

s newreq = request.constructClone

s changreq = newreq.RemoveSegmentAt("EVN")

Set request  = changereq

but it fails. Is there a way that I can safely remove a segment and pass it on?

Would appreciate your help in this

Regards,

Eric

00
0 12 490

​​​​​​We have Full time or Part Time Cache\ENSEMBLE\IRIS programmer positions available with our UK and US/North American teams.

For details on what we do and our products please see our web site intsoftsol.com  

Interested persons should email reply to admin@intsoftsol.com

00
0 0 356

Hi,

While HL7 Errors ACKs come back in the soap response, the HL7v2 Error ACK message is not processed. 

I used the SOAP Wizard to construct my classes, but the generated code doesn't handle the HL7v2 ACK.
Does health Connect have a class that handles this?

Failing an official solution should I go ahead and make make my own classes based on EnsLib.HL7.Operation.TCPOperation, but wrapping it with the generated SOAP handling code.

How have others dealt with this?

00
0 0 133

Way back when during our Siemens LCR days we had to limit the number of characters in OBX.5 to a length of 75. That was back when we had eGate.

Now I need to do the reversal of that and take loop through a string length and split the string up into multiple OBX or NTE based on a certain length. In reading documentation $EXTRACT can do this if you know the exact length, but in this case we don't. 

So how would one loop through a string and say every 75 characters create a new OBX or NTE segment?

Thanks

Scott

10
0 6 1,126

Hi there.

I am dealing with a clinical system that returns a stack trace within the NACK (Specifically, within MSA:3).

Within the stack trace there is an error code I am interested in, and hoped I could use the Reply Code Actions to look for that code within the error by using the "E*<text>" condition to either suspend or accept the response and move on. The problem is, looking at the error within the event log, I can see that the error text is truncated, cutting off the error code I'm looking for within the stack trace.

00
0 3 174

Hi,

I would like to use EnsLib.HL7.Operation.HTTPOperation for sending HL7 messages via HTTP. It sends the Content-Type as "text/html"

I would like to change it to something else, say "text/plain". I cannot see a way to do it.

I have now written a custom Operation (based on EnsLib.HTTP.OutboundAdapter) and modifying the Content-Type while POSTing using SendFormDataArray(). It's bit frustrating to parse the response etc.,

I would rather prefer to use HTTPOperation of HL7. Can somebody help?

00
0 1 303
Question
Armin Gayl · Apr 3, 2019
HL7 HTTP Response Charset

Hello,

currently we have a problem in development with the character set of the response message.

We are transmitting an HL7 message with an operation based on the EnsLib.HL7.Operation.HTTPOperation class.
We have changed this as follows.

Set pMsgIn=$$$NULLOREF, tHttpRequest=##class(%Net.HttpRequest).%New(), tHttpRequest.WriteRawMode=1, tHttpRequest.ContentType="APPLICATION/HL7-V2; charset=UTF-8"

Unfortunately, the ContentType character set is not read correctly in the response.

 

00
0 2 363

Hi, 

It is sometimes undesirable to send a full demographic or results feed to departmental clinical systems, that only see a subset of the patients.

While some systems (paediatrics, maternity, geriatrics) can filter on patient demographics, a number of systems are for cohorts of patients that don't fit a particular criteria.

One of our system vendors has a patient index filter service that keeps a local index of relevant patient identifiers, and only forwards matching messages.

00
0 3 168

So I have an interesting problem. I am going to be using a process and rule to determine if an HL7 message qualifies to be sent out, then using a record map to write certain aspects of that HL7 message to disk (with an HL7 to record map DTL). This is simple enough but the recipient of this file is requiring a single record map entry per DG1 segment in the HL7 message.

 

For instance if said HL7 message for PATIENT^TEST  has 3 DG1 segments, I would need to write three lines (or records) like so:

123^^^^MR|TEST|PATIENT|DG1(1) TEXT|DG1(1) CODE|DG1(1) DATE

00
1 8 483

Hello Gentlemen,

 

My Business process connector receive a Oru_01 hl7 message with an ED segment inside (Base64 pdf). How is it possible to extract it and create a pdf file within?

Here is the sample of function I have. I know it doesn't work but if you could help me, it would be perfect. Here is my function, the goal would be it create the file where I want and return me the link of the file.

00
0 5 712
Question
Scott Roth · Feb 20, 2019
HL7 ORU^R40 Schema Structure

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

00
0 3 590

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?

00
0 3 203

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.
 

00
0 5 422

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.

00
0 1 584

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

00
1 5 707

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".

10
0 2 214

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

00
0 2 229