Hi Developers,
We are happy to announce the new InterSystems online programming contest dedicated to all things health-related:
🏆 InterSystems FHIR and Digital Health Interoperability Contest 🏆
Duration: May 12 - June 1, 2025
Prize pool: $12,000

In healthcare, interoperability is the ability of different information technology systems and software applications to communicate, exchange data, and use the information that has been exchanged.
Hi Developers,
We are happy to announce the new InterSystems online programming contest dedicated to all things health-related:
🏆 InterSystems FHIR and Digital Health Interoperability Contest 🏆
Duration: May 12 - June 1, 2025
Prize pool: $12,000

After we rolled out a new cointainer based on containers.intersystems.com/intersystems/irishealth:2023.1 this week, we suddenly noticed that our FHIR Repository started responding with an Error 500. This turns out to be caused by PROTECT violations on the new HSSYSLOCALTEMP namespace and database used by this version of the IRIS for Health FHIR components.
The trick to solve that is to add the "%DB_HSSYSLOCALTEMP" to the Web Application(s) that handle FHIR Requests. You can script that by running the following Class method in the namespace(s) that define these Web Applications:
do ##class(HS.HealthConnect.FHIRServer.Upgrade.MethodsV6).AddLOCALTEMPRoleToCSP()
We’re issuing a point release for InterSystems IRIS, IRIS for Health, and Health Connect 2025.1 — version 2025.1.0.225.1 — to address a critical interoperability issue affecting users who leverage System Default Setting enabled business hosts.
What’s the issue?
In certain configurations where a Business Host is marked as System Default Setting enabled, applying new settings via the UI may incorrectly indicate that changes were applied, even though the necessary restart did not occur.
I'm creating a Business Process that:
The Business Process is created with BPL, and objects are stored in BP context. When I execute this Process, in the 3rd point the object obtained in first transformation doesn't exist. It's empty.
In the previous article we have reviewed how to install our EMPI in standalone, so we are ready to start the basic configuration of our EMPI.
First of all we have to do an initial basic configuration, we can access to the configuration from the Configuration menu of our Registry.
.png)
Selecting that option will allow to us to edit the basic configuration table of the Registry:
In this menu we have to add the following parameters and update the value of one of them:
| KEY | VALUE | DESCRIPTION |
| \HSPI\LinkageDefinition | Local.Linkage. |
Business Process is adding control characters.
Input HL7 shows no control characters in Notepad ++
.png)
Output
Code:
Method FromCerner(pRequest As EnsLib.HL7.Message) As %Status
{
#dim tStatus As %Status = $$$OK
#dim eException As %Exception.AbstractException
#dim tOBXText As %String
#dim tItemNumberCount As %Integer = 0
#dim tItemNumberProcessed As %Integer = 0
#dim tTotalCostSegment As %Integer = 0
#dim tOrderType As %String
#dim i As %Interger = 0
#dim tOBXKey As %Integer = 0
#dim tOBXTextChanged As %String
////
Set pOutput = pRequest.
Hi Developers!
Hi,
I've been working on a very basic Interoperability production in my computer. I followed one of the examples in the courses and created a TEST.FileRouterRoutingRule, but when trying to edit this rule, it takes me to the Rule Editor Login Page, where I can't get in (Not even with the _SYSTEM credentials) - Is this functionality unavailable in the community edition?
.png)
The amazing Iris-nator has arrived in town.
He knows what you think, with just a few questions he is able to guess the character you have thought of.
Do you dare?
One of the challenges of creating a DICOM message is how to implement putting data in the correct place. Part of it is by inserting the data in the specific DICOM tags, while the other is to insert binary data such as a picture - In this article I will explain both.
To create a DICOM message, you can either use the EnsLib.DICOM.File class (to create a DICOM file) or the EnsLib.DICOM.Document class (to create a message that can be sent to PACS directly). In either case, the SetValueAt method will allow you to add your data to the DICOM tags.
Hey Developers,
Get an introduction to Apache Kafka, a popular event-streaming platform, and see a demonstration of the upcoming Kafka integration with InterSystems IRIS Interoperability:
⏯ Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS
Has anybody tried to extend the Menu on Management Portal? I like to add a new page or a dashboard that will be created soon to the Management Portal and allow others to use it also. I understand there are risks that I could lose things during an upgrade. I am okay with that. Does InterSystems support such an effort?
The InterSystems IRIS is a great data platform and it is met the current features required by the market. In this article, you see the top 10:
Note: this list was updated because many features are added to IRIS in last 3 years (thanks @Kristina Lauer)
| Rank | Feature | Why | Learning more about it |
| 1 | Democratized analytics | InterSystems IRIS Adaptive Analytics: Delivers virtual cubes with centralized business semantics, abstracted from technical details and modeling, to allow business users to easily and quickly create their analyses in Excel or their preferred analytics product (PowerBI, Tableau, etc.). |
Hi all,
I can't find the list of business host setting sections and (crucially) how to refer to them in the SETTINGS parameter, as marked in purple here:
Parameter SETTINGS = "MySetting:Basic";
Does anyone know where this list lives?
Otto
I added extra OBX segments and I need to renumber OBX 4 so they are sequential.
.png)
For my hundredth article on the Developer Community, I wanted to present something practical, so here's a comprehensive implementation of the GPG Interoperability Adapter for InterSystems IRIS.
Every so often, I would encounter a request for some GPG support, so I had several code samples written for a while, and I thought to combine all of them and add missing GPG functionality for a fairly complete coverage. That said, this Business Operation primarily covers data actions, skipping management actions such as key generation, export, and retrieval as they are usually one-off and performed manually anyways. However, this implementation does support key imports for obvious reasons. Well, let's get into it.
One of the pain points for maintaining HL7 interfaces is the need to run a reliable regression test upon deployment to new environments and after upgrades. The %UnitTest class allows unit tests to be created and packaged alongside interface code. Test data can also be maintained within the unit test class, allowing for quick and easily repeatable smoke-testing and regression testing.
##Resources:
Standard %UnitTest class
This tutorial utilizes a modification of UnitTest-RuleSet by Alex Woodhead from the Open Exchange (https://openexchange.intersystems.com/package/UnitTest-RuleSet
I need to add an extra blank OBX segment after a segment containing text, Total Cost:
I get the OBX segment but it is in incorrect location.
It should be after the line containing Total Cost:
It needs to contain:
OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|
code:
//Do pOutput.SetValueAt(tOBXText_"~~","ORCgrp(1).OBRuniongrp.OBXgrp("_i_").OBX:5","set") //
If (tOBXText[ "Total Cost:") {
Set tSegmentOBX = ##class(EnsLib.HL7.Segment).%New()
Set tSegmentOBX.SegType = "2.3:OBX"
Set tSC = tSegmentOBX.SetValueAt("OBX", 0, "set")
Set tSC = pOutput.
I am receiving the garbled text due to incorrect encoding or decoding. I tried to use the $zconvert function to convert it into the normal text but failed to do that. Can anybody suggest what I have to use to convert that into normal text?
Example: Garbled text that I am getting is "canââ¬â¢t , theyââ¬â¢re".
Hi Community,
I would like to present my last package OpenAPI-Suite, this is a set of tools to generate ObjectScript code from an OpenAPI specification version 3.0. In short, these packages allow to:
The complex record mapper can help you process text file data consisting of various types of records to persistent messages in IRIS. To gain a basic understanding of the complex record mapper and see an example implemented in the production, check out the learning services video below:
https://community.intersystems.com/post/video-using-complex-record-mapper
This article is going to help troubleshoot when you see <Method DOES NOT EXIST> when handling record objects.
We are receiving the report in text format and it has special characters like ', - like that in the text. Source system is using the UTF8 encoding format hence the text is showing as ' � ' . Is there a way to convert the utf8 to actual character in the DTL.
Thank you,
Hi all,
I'm triying to create a SOAP Pass-through acording to Configuring Pass-through Business Services instructions, but I'm not able to run it ![]()
I'm using the following WebService
I have text coming in CCDA file as below:
virus vaccine
<sup>1</sup>
I want to get the entire value available inside the content tag. Can anybody please help me out how to get this?
Once upon a time in Ensemble Management Portal the pool size of each component (Business Host) within the production was displayed in the Production Configuration page.
This information was very useful, especially when a production have tens or hundreds of components.
.png)
Now days the pool size is no longer displayed in the Production Configuration page and to get the pool size you need to click in each and every host in your production.
What if you have hundreds of business hosts and you need to check the pool size of each? It's a nightmare!
Hello everyone,
I'm looking for a practical project guide to help me gain hands-on experience with InterSystems Ensemble HL7. Ideally, this guide would walk through building a small project — something that covers key concepts like message routing, transformations, and interoperability.
If there's a resource that also includes step-by-step instructions and perhaps even offers a certification upon completion, that would be perfect.
Any recommendations or guidance would be greatly appreciated. Thanks in advance! 😊
I'm proud to announce the new release of iris-pex-embedded-python (v2.3.1) with a new command line interface.
This command line is called iop for Interoperability On Python.
First I would like to present in few words the project the main changes since the version 1.
Version 1.0 was a proof of concept to show how the interoperability framework of IRIS can be used with a python first approach while remaining compatible with any existing ObjectScript code.
What does it mean? It means that any python developer can use the IRIS interoperability framework without any knowledge of ObjectScript.
Example :
from grongier.pex import BusinessOperation
class MyBusinessOperation(BusinessOperation):
def on_message(self, request):
self.log.info("Received request")
Great, isn't it?
In 2023, according to IDC, Salesforce's market share in CRM reached 21.7%. This company owns a substantial amount of critical corporate business processes and data, so the InterSystems IRIS must have an interoperability connector to fetch data from the Salesforce data catalog. This article will show you how to get any data hosted by Salesforce and create an interoperation production to get data and send it to such targets as files and relational databases.
1. Go to https://developer.salesforce.com/signup:
Hello everyone
For those interested, here is an implementation example I used in one of my projects to interoperate with MongoDB using the pymongo package.
Interoperates with MongoDB (via pymongo package) with InterSystems IRIS (including outbound adapter)
Remember to import pymongo package.
implementation example for testing here
NAMESPACE> do ##class(custom.python.pymongo.test).TestMongoDBCrud()
for interoperability, use the following adapter in your business operation:
Parameter ADAPTER = "custom.python.pymongo.outboundAdapter";
Parameter INVOCATION = "Queue";
FHIR repositories, applications and servers typically serve clinical data in small quantities, whether to return data about a patient, their medications, vaccines, allergies, among other information. However, it is common for a large amount of data in FHIR/JSON format to be requested to be used to load into Data Lakes, identifying study cohorts, population health, or transferring data from one EHR to another. To meet these business scenarios that require large extractions and loads of data, it is recommended to use the FHIR Bulk Data Access feature provided by HL7 institution.