HL7

Syndicate content 18 

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?

Thanks.

 

 

0   0 1
0

answers

0

comments

23

views

0

rating

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.

 

This is the response

Last comment 10 April 2019
0   0 2
0

answers

46

views

0

rating

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

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

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

 

 

Is there a way to do this? I know I can make repeating fields in the record map and can loop over repeating fields/segments in a DTL but I am not sure how to write multiple lines using one incoming message

Last answer 11 March 2019 Last comment 12 March 2019
0   1 2
77

views

0

rating

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

Last answer 7 March 2019 Last comment 7 March 2019
0   0 3
107

views

0

rating

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

Last answer 25 February 2019 Last comment 25 February 2019
0   0 2
81

views

0

rating

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 question is cleared and I'm waiting you gentlemen :-)

Faithfully,

Thomas

Last answer 22 February 2019
0   0 1
0

comments

58

views

0

rating

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

Last answer 11 February 2019 Last comment 11 February 2019
0   0 3
121

views

0

rating

I am trying to get the values of a PID:3 segment to an  array but I will need to know the length of the segment to process .

set o = ##class(EnsLib.HL7.Message).%OpenId(458)

w o.GetValueAt("PID:3")

w o.GetValueAt("PID:3").SegCount  This throws an error any help appreciated

Last answer 8 February 2019 Last comment 8 February 2019
0   0 4
110

views

0

rating

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?

Last answer 6 February 2019 Last comment 6 February 2019
0   0 3
106

views

0

rating

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.
 

Last answer 5 February 2019 Last comment 6 February 2019
0   0 3
89

views

0

rating

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 - Immediate

Last answer 22 January 2019
0   0 4
0

comments

101

views

0

rating

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 Engine:15.03.9901]

There hasn't been a HealthShare Connect release on HS Core 16.

Last answer 3 January 2019 Last comment 7 January 2019
0   1 3
225

views

0

rating

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

Last answer 19 December 2018
+ 1   0 3
0

comments

99

views

+ 1

rating

(Originally posted by @Benjamin 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/...

Last comment 16 December 2018
0   0 2
190

views

0

rating

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 Hospital

Last answer 14 December 2018 Last comment 14 December 2018
0   0 2
91

views

0

rating

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()","remove")

 

Or, with just the following command, you can easily remove all PR1 and ROL segments within a specific group in an ADT_A01 message (msg)

Last comment 14 November 2018
+ 2   0 2
782

views

+ 2

rating

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 currently trying to fire some test messages (I am able to send ITK/SOAP requests via 
POSTMAN successfully, and I would like to replicate the same behavior now from the ITK operation). 
 The first blocking stone I am finding is in one of the config settings for the ITK operation

0   0 1
0

comments

74

views

0

rating

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.  With the current purge settings of 90 days, we would need to greatly increase our server specs to cope with the extra data.

We could create a new namespace with its own production and keep a small number of days of data, but would prefer not to do this, so we can keep the number of dashboards (productions) to a minimum

Last answer 26 October 2018
0   0 2
0

comments

90

views

0

rating

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

Last answer 17 September 2018 Last comment 14 September 2018
0   0 5
165

views

0

rating

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

Last answer 13 September 2018 Last comment 13 September 2018
0   0 2
71

views

0

rating