Hi Community,
Please welcome the new video on InterSystems Developers YouTube:
⏯ Build HL7 Interfaces in a Flash
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
Hi Community,
Please welcome the new video on InterSystems Developers YouTube:
⏯ Build HL7 Interfaces in a Flash
Ready to build an HL7 production all by yourself?
Try the new Building Your First HL7 Production with InterSystems IRIS for Health learning path from InterSystems Online Learning.
These videos, online courses, and hands-on exercises get you building, optimizing, and troubleshooting productions with InterSystems IRIS for Health. See for yourself!
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.
Ensemble beginner here. One of the downstream applications requires to send two A02 messages instead of one A17. We do it easily in Cloverleaf - either in translation or TCL. How do I create 2 target messages out of one source message in DTL?
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
.png)
Hi Community,
The new video is available on InterSystems Developers YouTube Channel:
⏯ Collecting Healthcare Data with Alexa
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?
Hi Everyone,
Please welcome the new Global Summit 2019 video on InterSystems Developers YouTube Channel:
⏯ Using IoT in InterSystems IRIS for Health
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:
Looking at the DTL, we can pretty much understand what the provided mapping from FHIR to SDA3.
But, is there any Intersystems document, where the mapping To/From FHIR is documented, at least FHIR to SDA3 ?
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 %FHi -
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
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
hi
A newbie question. I am trying to use Data Transformation Editor to transform NTE segments into additional OBX segments. At the moment I am getting both segments OBX and NTE trying to populate a single OBX. Can this be easily fixed?
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:
S tReq = {}.%FromJSON(%request.Content.Read())
S tInput = tReq.Message
S tMsg = ##class(EnsLib.HL7.Message).%New()
D tMsg.ImportFromString(tInput)
S tMsg.DocType = "2.3.1:ADT_A01"
So now if I
Can health Connect create a file in a directory, than add data (HL7 messages) to it?
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.
.png)
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 i = 1
Set tFound = 0
while ((i <= tSegCount) && (tval="")) {
set tSeg = pH
In a new rule I configured for a route, I have no constraint configured (so I assume it should pass everything), but I am getting an error that states "Constraints for rule failed".... ?
(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
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?
.png)
((HL7.{PV1:AssignedPatientLocation.PointofCare}="D3")||(HL7.{PV1:AssignedPatientLocation.PointofCare}="D4"))&&(SUBSTRING(HL7.{PV1:AdmitDateTime.Time},9,12)!=0000)
Thanks
Scott Roth
Hi all
Is there a data model for the Ensemble EnsLib_HL7 tables in the database? A client wants to run some SQL and would like some documentation about table relationships.
Thanks in advance
Ian
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
I use rest service on Health Connect and will has utilized HL7 FHIR for get information of external database. But i don't find exemplo in oficial documentation.
Someone to utilize the HL7 FHIR for info request in to external database?
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.
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
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

We can load a CCDA xml document into SDA3 object.
Once parsing SDA3 object, how do we determine from which XPATH from CCDA the specific SDA3 elements were mapped to.
Is there any way?
hi
I need help to import the HL7 message file into sql server using SAP Data Services..
anyone who did it before please help..
Regards
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
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.
Method getPdfFromED(req As EnsLib.HL7.Message,segment As %String) As %Status
{
do req.GetFieldStreamBase64(.base64, segment)
set stream1=##class(%Stream.FileCharacter).%New()
set stream2=#