- Building and Managing HL7 Integrations – In PersonFebruary 24-28, 2025 9:00am-5:00pm EST
- Build, configure, and manage HL7® V2 interfaces using InterSystems integration technologies.
- This healthcare-focused 5-day course teaches implementation partners, integrators and analysts how to rapidly build HL7 integration solutions.
- Students build a production that processes and routes HL7 messages.
- Students learn how to work with the pre-built HL7 business services, bus
We can loop over segment group or repeatable segments with FOREACH in business rules. How can we loop over repeated fields within a segment in business rule?
Thank you
Hello All,
I need help Integrating the vendor-provided code into the current code to check if the data is an array and if it is, iterate through each item using a for each loop. Also, I need to hit every error handler code mentioned at the bottom along with the transform in both instances.
My Current Code:
/// Given a patient number in a JSON string format, this includes required transformations and makes use of
/// the MPI Query Handler to pull basic demographics from Epic.
Class CUH.Proc.DCIQGetPatient Extends Ens.BusinessProcessBPL [ ClassType = persistent, ProcedureBlock ]
{
Storage Def
Host Variables are a rather common programming feature in many implementations of SQL.
A recent question in DC made me aware that in IRIS, Caché, Ensemble, ...
host variables just exist within embedded SQL
> You can supply host variables for Embedded SQL queries only. <
Related examples are included in the available Documentation
This is a description for a workaround if you don't / can't use embedded SQL.
Import from DC-PT, @Edilson Eberle Carvalho
We have some *.mac routines and we need to preserve their source,
as these routines have intellectual authorship and can only be used per session
with the right to use (they cannot be viewed or edited).
The question: how to keep only the routine object in the IRIS namespace,
without interfering with its execution?
All pods are assigned a Quality of Service (QoS). These are 3 levels of priority pods are assigned within a node.
The levels are as following:
1) Guaranteed: High Priority
2) Burstable: Medium Priority
3) BestEffort: Low Priority
It is a way of telling the kubelet what your priorities are on a certain node if resources need to be reclaimed. This great GIF below by Anvesh Muppeda explains it.
If resources need to be freed, firstly pods with Best Effort QoS will be evicted, then those with Burstable, and finally those with Guaranteed. The idea is that hopefully by evicting the pods that ar

Hello everyone,
I'm trying to get back into shape with IRIS. My current goal is to practice with ObjectScript and VS Code. I installed both on my Mac, and everything worked like a charm—perhaps that's why I'm still a big fan of Unix.
For the past week, however, I've been trying to set up IRIS and VS Code on a Lenovo Legion with a Ryzen 7 processor running Windows 11 Pro, but without success. While IRIS itself is running perfectly, I'm unable to connect to it from VS Code to store ObjectScript routines. The closest I've gotten, after multiple attempts at modifying the settings.json file, was

Hi everyone,
I am trying to create a listen server in Cache 2016 that can capture data from a specific port. Can someone guide me on how to set this up, including handling incoming connections and reading data from the port? Any advice or example code would be much appreciated!
Thanks in advance!
✓ 145 new posts published in January:
– 45 new announcements
– 77 new questions
✓ 349 new members joined in January
✓ 14,427 posts published all time
✓ 15,012 members joined all time
I build a simple text string from an HL7 message in the DTL. What target message type and Business Operation should I use to write the text to a file?
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Case Studies in InterSystems Supply Chain Orchestrator @ Global Summit 2024
I have VS Code with extensions connected to IRIS for Health. One top-level ObjectScript package is not displayed in the workspace for this namespace. This package exists in the namespace and is visible in SMP. If I create a new class with a different top-level package name (package that didn't previously exist) it will immediately appear in the workspace.
Is there any debug logging I can enable to look for errors or do any other troubleshooting?
Forgot to mention: the missing package is custom, not a system package.
In a containerized environment, you can manage your container time via the TZ variable or via the /etc/timezone and /etc/localtime directories:
environment:
- TZ=Europe/Parisvolumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"You can find complete examples here:
My main goal of this article was to prove the use of InterSystems IRIS for Health for REST FHIR interoperability between multiple applications. In this use case, some initiating application makes a REST call to IRIS for Health (which is merely a passthrough for REST calls) to retrieve FHIR data from an Oracle Health R4 FHIR repository. Ideally, it simplifies the syntax for calling the Oracle Health APIs.
In this article, I will demonstrate a means for implementing a REST Dispatch Class in InterSystems IRIS, where multiple endpoints can have an optional number of arguments, and all endpoints
Hello,
I'm trying to add another segment to an HL7 MDM message. More specifically OBXgrp(1).OBX. The addition itself works,. When I look at the message in the trace, the segment with the content can be seen. However, it is not displayed as an OBX segment.
Build Map Status = 'ERROR <EnsEDI>ErrMapRequired: Missing required OBXgrp(1) element at segment 6'
'ERROR <EnsEDI>ErrMapSegUnrecog: Unrecognized Segment 6:'' found after segment 5 (TXA)'
.png)
// HL7-Nachricht klonenSet response = msg.%ConstructClone()
// OBX-Segment erstellenSet tSegmentOBX = ##class(EnsLib.HL7.Segment).%Hey Community,
More than 1000 applications are already available for everyone to download on the InterSystems Open Exchange.
And now it's time to announce the best developers and the most downloaded apps of 2024!
%20(2).jpg)
Let's take a closer look at our heroes and their apps:
Hello I try to implementing this service, and try to convert HL7v2, FHIR on both sides.
https://github.com/grongierisc/iris-healthtoolkit-service/
I download this service and tried run docker-compose but after that I get some error.
Building iris
[+] Building 8.0s (11/14) docker:default
=> [internal] load build definition from dockerfile Iris Healthtoolkit Service
Easy to use HL7v2 to FHIR, CDA to FHIR, FHIR to HL7v2 as a Service.
The aim of this project is to provide an REST API that can convert easily various health formats. Post the desire format in the REST body, get the answer in the new format.
:fire: Official Version : https://aws.amazon.com/marketplace/pp/prodview-q7ryewpz75cq2 :fire:
:tv: Video : https://youtu.be/lr2B7zSFkds :tv:
Install
Clone this repository
git clone https://github.com/grongierisc/iris-healthtoolkit-service.git
Docker
docker-compose up --build -d
Usage
- Go to : http://localhost:32783/swagg

You need to install the application first. If not installed, please refer to the previous article
Application demonstration
After successfully running the iris image vector search application, some data needs to be stored to support image retrieval as it is not initialized in the library.
Image storage
Firstly, drag and drop the image or click the upload icon, select the image, and click the upload button to upload and vectorize it. This process may be a bit slow.
This process involves using embedded Python to call the CLIP model and vectorize the image into 512 dimensional vector d
.png)
Is it possible to get the length of queue for a production using Python code?
I'm using embedded Python at the moment.
I'd like to use the Python external language server later - the Python external server will not start in my environment.
If it is possible to query the production queue length programmically, please advise how?
It would also be nice to show the number of messages processed per second, if IRIS keeps track of this.
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
I am looking for a link to documentation that shows what responses are available to commands like:
^%GI, ^%GO, ^%RO, ^%RIMF
tried search in docs.intersystems.com "https://docs.intersystems.com/iris20243/csp/docbook/Doc.Results.cls?doc…"
So far had a suggestion just go to the code to figure it out.
While working on getting JSON support for some Python libraries, I discovered some capabilities IRIS provided.
- JSON_OBJECT - A conversion function that returns data as a JSON object.
- JSON_ARRAY - A conversion function that returns data as a JSON array.
- IS JSON - Determines if a data value is in JSON format.
- JSON_TABLE function returns a table that can be used in a SQL query by mapping JSON.
- JSONPath support - is a query language for querying values in JSON.
✓ 7,069 downloads in 2024
✓ 1,029 applications all time
✓ 38,243 downloads all time
✓ 2,981 developers joined
We are using a DTL transformation to take HL7 and transform into custom XML. But the nodes in the resulting XML are appearing out of sequence - and therefore failing validation against the schema.
The XSD schema for the XML looks fine when imported into Ensemble: root node in the XSD looks like this:
And shows in Ensemble like this:
The transformation looks like this, and we can see the text from the trace elements at lines 5, 12 and 19 appear in the correct order in the event log:
HOWEVER, the resulting XML has the <allergies> nodes before the <patientNotes> nodes....:
.png)
Any ideas about
We are using a DTL transformation to take HL7 and transform into custom XML (XML is a virtual document, held in an EnsLib.EDI.XML.Document object). The schema specifying the format of the XML says one element should occur no more than 24 times (maxOccurs="24" in the XSD schema). However, the transformation to produce one such element always produces 24 elements, all but the last one blank, when tested stand-alone. And when the sub-transform producing one element is incorporated into the full transformation to produce the whole XML object, it produces the wrong output.
Is this a bug in the Ensem

Hi,
We are currently switching from Studio to VSCode and central GIT with Serverside Development and have a few start problems.
I have set up a system with Git.
The baseline commit including remote push works.
But now I have a problem with the VSCode. When I create and compile a new class, it saves it correctly. But if I want to make further changes to the class, it saves the class and loads it again with the previous status. So the changes I made are gone again.
I have deactivated CompileOnSave without success.
The log shows the following



