8 Followers · 510 Posts

Health Level-7 or HL7 refers to a set of international standards for the transfer of clinical and administrative data between software applications used by various healthcare providers

Learn more

Discussion Anthony Jackson · Mar 13, 2020

Hello Everyone , Good Day ! I have a question regarding the implementation of USCDI (US Core Data for Interoperability).

Why USCDI was introduced? What is the disadvantage of previous process ( communication between systems using concept like HL7) ? What is the impact of implementing this concept in existing systems ? Do we have to change logics for processing the messages? Will it effect the existing work flow of all the healthcare application?

0
1 296
Article Mark Bolinsky · Mar 3, 2020 11m read

InterSystems and Intel recently conducted a series of benchmarks combining InterSystems IRIS with 2nd Generation Intel® Xeon® Scalable Processors, also known as “Cascade Lake”, and Intel® Optane™ DC Persistent Memory (DCPMM). The goals of these benchmarks are to demonstrate the performance and scalability capabilities of InterSystems IRIS with Intel’s latest server technologies in various workload settings and server configurations. Along with various benchmark results, three different use-cases of Intel DCPMM with InterSystems IRIS are provided in this report.

5
0 1143
Question James Fitzpatrick · Feb 10, 2020

Hello,

I am playing around with an HL7 business rule set and a EnsLib.HL7.MsgRouter.RoutingEngine component. I'm wondering how I can get the routing engine to fire a rule when a response is received from a business operation.

I have a simple "debug" statement in my rule to log the "Source" value when a message is received. This debug statement only seems to fire when the message comes as a request from the business service (trace item #1 below). However, I want to fire a rule when a response is received from a specific business operation (item #6 below) - specifically, I  want to execute a D

6
1 908
Question Tomoko Furuzono · Jan 3, 2020

Hi,

My customer is implementing HL7 validation using EnsLib.HL7.Util.Validator.Validate in an HL7 production.
They set validation spec "dmr-z" because they want to allow unrecognized Z-segments and verify the presence of required fields.
Despite using "-z", Z-segments are not allowed and the following error occurs:
<Ens> ErrGeneral: Cannot validate segment schemas without a category.Unable to validate segment 8: ZPR.
Aside to that, when the verification spec is “dm-z”, the Z-segment is allowed as expected.
Can 't "r" and "-z" be used together? 
Is there any other way to implement both validations?

2
0 421
Announcement Anastasia Dyubaylo · Oct 30, 2019

Hi Community,

Please join the upcoming InterSystems Israel Meetup in Herzelia which will be held on November 21st, 2019! 

It will take place in the Spaces Herzliya Oxygen Ltd from 9:00 a.m. to 5:30 p.m.

The event will be focused on the InterSystems IRIS: it will be divided into IRIS for Healthcare and IRIS Data Platform. A joint lunch will be also included.

Please check the draft of the agenda below:

2
0 427
Question Federico Raimondo · Oct 18, 2019

Hi everyone, 

I have just started to use JavaGateway and I didn''t encountered so much difficulties since I've got the output of the Java class I have called. 

This is the class I have implemented: 

Method OnRequest(pRequest As EnsLib.HL7.Message, Output pResponse As EnsLib.HL7.Message) As %Status{set MDMarchiv=pRequest.OutputToString()$$$TRACE(MDMarchiv)#dim RPConverter = ##class(training.hl7.HL7toRP).%New()set output=RPConverter.hl7toRp(MDMarchiv)$$$LOGINFO("after transformation: "_output)set RPStream = ##class(%FileCharacterStream).%New(output)#dim finalResponse As %F
6
0 453
Question Chip Gore · Oct 11, 2019

Hi -

I was recently working with an HL7 message processing production, and some of the HL7 messages were failing the HL7 message router's configured validation. In this basic context, the messages were delivered and then the router would log an event for the message and move on to the next message in the inbound queue. Within the Visual Trace, the event is marked as expected, but from the Message Viewer, there wasn't any searchable/filterable context that would let me get a list of these validation failing messages so they could be resent, and from within the Event Log display, the sessions a

1
0 640
Job Tamsin Holland · Oct 8, 2019

At LifeLabs, we are focused on our vision of building a healthier Canada!  We are the largest community diagnostics laboratory in Canada with over 350 collection centers, 21 laboratories and service over 19 million patients each year. As the Software developer, you will be concerned with all facets of the software development process.  You will be responsible for the design of application modules, maintain and deploy software applications to meet user and business needs.

This is full time permanent positions, located at 3500 Gilmore Way, Burnaby BC reporting into the Manager, Software Develop

0
0 499
Question Craig Regester · Sep 30, 2019

Good morning -

I am attempting to pass some HL7 content (say, a complete ADT message) from one server to another via REST/JSON - for reasons. 

I can get the data across but when I try to create an EnsLib.HL7.Message object from the message in the JSON body, I end up with just the start of an HL7 msg in the resulting object. Looks like: MSH|^~\&

The start of the code accepting the data looks like this:

tReq = {}.%FromJSON(%request.Content.Read())
tInput = tReq.Message

tMsg = ##class(EnsLib.HL7.Message).%New()
tMsg.ImportFromString(tInput)
tMsg.DocType = "2.3.1:ADT_A01"

So now if I

3
0 1154
Question Scott Roth · Sep 9, 2019

We have a customer that is not able to accept HL7 result messages that are missing OBX:3.1. I have been trying to create a function that could return a boolean value of 0 if the message didn't meet the expectations of the function.

ClassMethod IsValued(pHL7Msg As EnsLib.HL7.Message, pSegment As %String, pField As %String) As %Boolean
{
            #dim tSeg as EnsLib.HL7.Segment
            
            set tSegCount = pHL7Msg.SegCountGet()
            set = 1
            Set tFound = 0
            while ((<= tSegCount) && (tval="")) {
                         
                        set tSeg = pH

7
0 544
Article Gevorg Arutiunian · Dec 13, 2018 2m read

(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/cls/benspead/EnsTablesSchema.cls

3
0 951
Question Scott Roth · Aug 19, 2019

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?

((HL7.{PV1:AssignedPatientLocation.PointofCare}="D3")||(HL7.{PV1:AssignedPatientLocation.PointofCare}="D4"))&&(SUBSTRING(HL7.{PV1:AdmitDateTime.Time},9,12)!=0000)

Thanks

Scott Roth

4
0 476
Question Julian Matthews · Jun 18, 2019

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.

Has anyone else come across something similar and would be able to advise on

3
0 648
Question Nijeesh Balan · Apr 24, 2019

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.

1
0 1131
Question Armin Gayl · Apr 3, 2019

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:


0000 00 15 5d 4b c0 00 00 1a e2 4a 45 00 08 00 45 02 ..]K....JE...E.
0010 02 5a 35 ec 40 00 7f 06 6b

2
0 1076
Question Stephen De Gabrielle · Apr 29, 2019

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.

Another system takes the full feed, but we gave found this problematic as we can often get demographic updates faster th


3
0 387
Question Graham Uricchio · Mar 11, 2019

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

8
1 1276