Overview
Version 25.20.1 delivers important security updates, improved documentation resources, expanded customization options for IRIS, and enhancements across Data Studio, Advanced Security, and Health Connect Cloud.
New Features and Enhancements
InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.
Overview
Version 25.20.1 delivers important security updates, improved documentation resources, expanded customization options for IRIS, and enhancements across Data Studio, Advanced Security, and Health Connect Cloud.
New Features and Enhancements
Overview
This release focuses on performance optimization, improved security synchronization, and enhanced network management. The FHIR Server has been upgraded to a new version and migrated to ARM64, delivering significantly better efficiency and throughput. Additionally, several improvements enhance resiliency, subscription management, and network visibility.
New Features and Enhancements
I am working on building out a Workflow task that captures errors in mapping to specific tables. Within the Workflow task, I would like to give the owner of the task the ability to resubmit message once the mapping has been corrected. Is there a way to do it in a similar fashion to pulling up the Trace ie...
EnsPortal.VisualTrace.zen?SESSIONID=#(%task.%FormValues.GetAt("MsgHdrID"))#" target="_blank">View Message TraceIs there a one liner that could be called to resubmit the MsgHdrID (Session ID) from its source to post it again?
When using standard SQL or the object layer in InterSystems IRIS, metadata consistency is usually maintained through built-in validation and type enforcement. However, legacy systems that bypass these layers—directly accessing globals—can introduce subtle and serious inconsistencies.
Since the introduction of Embedded Python there has always been doubt about its performance compared to ObjectScript and on more than one occasion I have discussed this with @Guillaume Rongier , well, taking advantage of the fact that I was making a small application to capture data from public competitions in Spain and to be able to perform searches using the capabilities of VectorSearch I saw the opportunity to carry out a small test.
Public tender information is provided monthly in XML files from this URL and the typical format of a tender information is as follows:
The Interoperability user interface project has continued from 2025.1 and has incorporated many of the items that you – our customers and partners – have suggested and observed. We are continuing to invest in feedback and updating this important user experience. In the latest release, 2025.3 for IRIS, IRIS for Health, Health Connect and Health Connect Cloud, the DTL Editor and Production Configuration applications that are available for opt-in.
NOTE:
Hello Community,
Great news for developers who have just started working with InterSystems IRIS! We have hands‑on interactive tutorials available via the Instruqt platform! These are perfect for getting up to speed quickly, playing in real environments, and building confidence with IRIS‑based development.
.png)
I am trying to add validation to a RecordMap, because the source of the data sent file sent us bad data within the file. So, I am using PATTERN to verify certain fields start with Numeric, and Alpha where applicable. When the EnsLib.RecordMap.Service.FTPService runs into an issue it doesn't seem like it continues onto the next record if the record does not meet the validation requirements.
How can I tell EnsLib.RecordMap.Service.FTPService to log the error and continue onto the next record, so those records that fail are not processed?
I am trying to add some validation to an existing Record Map, because recently we had some wrong data get consumed into the System and is causing all kinds of havoc.
Using the AI on the Developer community it suggested that I use PATTERN within the Datatype Parameters to force some validation on some fields. I have never used PATTERN before...
When I go to generate the updated Record Map, I am getting the following...
By the screenshots is my logic not correct?
I copied a Business Process router and did a Save As on its routing rule. I added the new routing rule to my new Business Process router. However, when I click the green circle next to my new Business Process router it shows the old Business Process router connection. Anyone know the cause and fix for this? I found a old post that said to add a Route Alias. But that did not work.
The 2025.3 release of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and HealthShare® Health Connect is now Generally Available (GA). This is a Continuous Delivery (CD) release.
Release Highlights:
Hi community!
I am excited to say that since the beginning of this year we have published many of the client SDKs for InterSystems IRIS, InterSystems IRIS for Health and Health Connect to the corresponding external repositories (Maven, NuGet, npm and PyPI). This provides many benefits to you such as:
Overview
Fast Healthcare Interoperability Resources (FHIR) is a standardized framework developed by HL7 International to facilitate the exchange of healthcare data in a flexible, developer-friendly, and modern way. It leverages contemporary web technologies to ensure seamless integration and communication across healthcare systems.
Key FHIR Technologies
gj :: configExplorer is a new VS Code extension integrating with Server Manager and leveraging Structurizr to produce configuration diagrams of your servers.
Here's a short introductory video.
By using the InterSystems IRIS Native API for Node.js it avoids the need for any support code to be installed on the servers. This technology choice also qualifies it for entry into the current Developer Community contest.
The initial release focuses on two aspects of server configuration:
Suggestions for what to add next are welcome, as is general feedback.
Hi,
I want to get the status of a Production (Running, Stopped), Queue length, Time the Production started
I did this:
>zn "test"
>set status=##class(Ens.Director).GetProductionSummary(.pinfo)
>write status
1
>zwrite pinfo
pinfo("PKG.FoundationProduction")=$lb("Stopped","","",0)
pinfo("Report.Print.EnsemblePrintService")=$lb("Stopped","2021-02-09 23:15:57.538","2021-02-09 23:16:15.264",0)
pinfo("TC.hmf.Production")=$lb("Stopped","","",0)
pinfo("TC.hmf.System.Production")=$lb("Running","2025-10-30 10:18:24.057","",1)
A previous attempt was assisted by an external Python method.
This is all classic CSP written with ISOS, JavaScript, HTML
Besides the graphic, you also get concrete numbers freshly collected from your local
instance or from remote instances that also installed the package.
In today’s healthcare data landscape, FHIR has become the standard for structured clinical data exchange. However, while FHIR excels at interoperability, its JSON format makes analytics challenging—including FHIR QuestionnaireResponse.
This project demonstrates how to transform FHIR QuestionnaireResponse data from nested JSON into relational SQL tables and vector embeddings. By integrating the InterSystems IRIS FHIR SQL Builder and Vector Search, we unlock the semantic meaning behind patient answers.
Terminal Commands for Production:
Do ##class(Ens.Director).StartProduction(“ProductionName”)
Do ##class(Ens.Director).StopProduction()
Do ##class(Ens.Director).UpdateProduction()
Do ##class(Ens.Director).RecoverProduction()
Do ##class(Ens.Director).CleanProduction()
Abort Messages in the queue:
d ##class(Ens.Queue).AbortQueue(“Component Name”)
Get InstanceName :
W !,##class(%SYS.System).GetUniqueInstanceName()
Get Node Name:
W !,##class(%SYS.System).GetNodeName()
Terminate JobId :
Hola amigo! 😊 Cómo estás hoy,
I would like to share a small part of my learnings from my first ever official project: POS/EDC machine integration with our billing system. This was an exciting challenge where I got hands-on experience working with APIs and vendors.
How does a Payment Machine actually work?
It's simple, start by initiating/creating a transaction, then retrieve its payment status.
Here, initiate/create refers to POST method and Retrieve refers to GET.
While working with the FHIR to OMOP Service, I've seen good FHIR synthetic data being created using commercial LLM's etc, custom tailored for ConditionOnset with the typical amazement on return, but witnessed some questionable trust first hand on a call. This approach also falls short generating gigantic payloads so I can go back to my interests on the backend and ensure smooth data transition.
Hi Community,
In the first part of this series, we examined the fundamentals of Interoperability on Python (IoP), specifically how it enables us to construct such interoperability elements as business services, processes, and operations using pure Python.
Now, we are ready to take things a step further. Real-world integration scenarios extend beyond simple message handoffs.They involve scheduled polling, custom message structures, decision logic, filtering, and configuration handling.In this article, we will delve into these more advanced IoP capabilities and demonstrate how to create and run a more complex interoperability flow using only Python.
To make it practical, we will build a comprehensive example: The Reddit Post Analyzer Production. The concept is straightforward: continuously retrieving the latest submissions from a chosen subreddit, filtering them based on popularity, adding extra tags to them, and sending them off for storage or further analysis.
The ultimate goal here is a reliable, self-running data ingestion pipeline. All major parts (the Business Service, Business Process, and Business Operation) are implemented in Python, showcasing how to use IoP as a Python-first integration methodology.
Hi, Community!
If you need to help providers meet a payer's documentation requirements, see how the Documentation Templates and Rules (DTR) module of the InterSystems Payer Services ePrior Authorization solution can help:
Documentation Templates and Rules
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/SKZ_pz6GkUY?utm_source=youtube&utm_medium=social&utm_campaign=SKZ_pz6GkUY" width="640"></iframe>
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, business processes and business operations to receive and send HL7 messages.
Students also learn how to transform HL7 messages
Hey Community,
We're happy to invite you to a LinkedIn Live session in Dutch
🎤 Data exchange in healthcare according to the FHIR standard with Python 🎤
Event details:
📅 Date: Thursday, November 27th
🕓 Time: 1:30-2:15 PM EST

Using embedded Python while building your InterSystems-based solution can add very powerful and deep capabilities to your toolbox.
I'd like to share one sample use-case I encountered - enabling a CDC (Change Data Capture) for a mongoDB Collection - capturing those changes, digesting them through an Interoperability flow, and eventually updating an EMR via a REST API.
.png)
Hi,
I'm using the iris for health community edition and I cannot seem to get the FHIR server configuration UI to show up. I was able to create a FHIR server programaticlly but none of the user interface features that the installation guide talks about are available. Once I was created the server I was able to see a Bulk FHIR Coordinator in the management portal, ut that's it. Are the UI features not available in the community edition or do they need to be enabled somehow?
Hey Intersystems Community!
I'm trying to get IRIS to serve static files, including security and redirect to login if no session is present.
This is the flow I am trying to accomplish:
I have a small web application developed on angular js hosted on IRIS using web application option from management portal.
I am looking out for a login page which can simply use Health Share authentication to get user login.
Simple CSP login page to come when application is launched .
I have a quite complex FHIR Implementation Guide (IG) which is based on several other FHIR IGs. It's likely the versions of IGs conflict with each other.
From what I understand, I would need to load in all the other FHIR IG's first?
I don't actually need FHIR profiles to be in our FHIR Repository - I'm just after terminology and the examples for our test system.
Is it possible to load a FHIR IG just as data? (I think I mean here, ignore the FHIR profiles and dependencies between them)
You may have noticed that to configure a mirror for InterSystems IRIS for Health™ and HealthShare® Health Connect there is a special requirement. I wanted to go through it step by step in this article.
This assumes you have already configured the second failover member and confirmed a successful failover member status in the mirror monitor:
Step 1:Enable HS_Services user (on backup and primary) .png)
Step 2: Switch to Namespace HSSYS and go to Interoperability > Configure > Credentials. Enter the Password for your predefined HS_Services user (on backup and primary)