Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Using SerenityGPT to Build Out an Application GenAI Middleware at InterSystems @ Ready 2025
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.
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Using SerenityGPT to Build Out an Application GenAI Middleware at InterSystems @ Ready 2025
In this article, we will explore various approaches to extending and customizing the behavior of InterSystems IRIS (and IRIS Health) built-in interoperability message routers.
Message routers perform one of the core functions of Enterprise Application Integration (EAI) and are among the most frequently used business processes in interoperability productions.
When I started my journey with InterSystems IRIS, especially in Interoperability, one of the initial and common questions I had was: how can I run something on an interval or schedule? In this topic, I want to share two simple classes that address this issue. I'm surprised that some similar classes are not located somewhere in EnsLib. Or maybe I didn't search well? Anyway, this topic is not meant to be complex work, just a couple of snippets for beginners.
The Interoperability user interface now includes modernized user experiences for the DTL Editor and Production Configuration applications that are available for opt-in in all interoperability products. You can switch between the modernized and standard views. All other Interoperability screens remain in the Standard user interface. Please note that changes are limited to these two applications and we identify below the functionality that is currently available.
To try out the new screens prior to upgrading, you can download the 2025.
What is XML?
XML(eXtensible Markup Language) is a flexible, text-based, andplatform-independentformat used to store and transport data in a well-structured way that is both human- and machine-readable. XML permits users to define custom tags to describe the meaning and organization of their data. For example: <book><title>The Hitchhiker's Guide</title></book>.
An XML document is self-descriptive and structured as a hierarchical tree of elements. Every document has a single root element that encapsulates all other content.
When we create a FHIR repository in IRIS, we have an endpoint to access information, create new resources, etc. But there are some resources in FHIR that probably we wont have in our repository, for example, Binary resource (this resource returns a document, like PDF for example).
I have created an example that when a Binary resource is requested, FHIR endpoint returns a response, like it exists in the repository.
First of all, we need a Namespace and a FHIR endpoint. After this, we need to configure an Interoperability production that will be connected to the FHIR endpoint.
Hello
This article follows up on the question I had asked the community UDP Adapter not working
In this article, I will present to you
1) What is "UDP"?
2) The current state of Iris with UDP
3) My solution with the UDP adapter
UDP stands for User Datagram Protocol. It is one of the core protocols of the Internet Protocol (IP) suite, used for transmitting data over a network. Here are some key features of UDP:
Have you ever tried to do a search in Message Viewer on a busy interface and had the query time out? This can become quite a problem as the amount of data increases. For context, the instance of Health Connect I am working with does roughly 155 million Message Headers per day with 21 day message retention. To try and help with search performance, we extended the built-in SearchTable with commonly used fields in hopes that indexing these fields would result in faster query times. Despite this, we still couldn't get some of these queries to finish at all.
Over time, while I was working with Interoperability on the IRIS Data Platform, I developed rules for organizing a project code into packages and classes. That is what is called a Naming Convention, usually. In this topic, I want to organize and share these rules. I hope it can be helpful for somebody.
Disclaimer: This guide is a good fit for Interoperability projects. When you have integrations, data flows, when you use IRIS for ETL processes, etc. Overall, when your code is combined with Productions.
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Source Control Interoperability Productions in a Decomposed Format @ Ready 2025
TLS, the successor to SSL, stands for Transport Layer Security and provides security (i.e. encryption and authentication) over a TCP/IP connection. If you have ever noticed the "s" on "https" URLs, you have recognized an HTTP connection "secured" by SSL/TLS. In the past, only login/authorization pages on the web would use TLS, but in today's hostile internet environment, best practice indicates that we should secure all connections with TLS.
So, why would you implement TLS for HL7 connections?
Hi all,
Let's do some more work about the testing data generation and export the result by REST API.😁
Here, I would like to reuse the datagen.restservice class which built in the pervious article Writing a REST api service for exporting the generated patient data in .csv
This time, we are planning to generate a FHIR bundle include multiple resources for testing the FHIR repository.
Here is some reference for you, if you want to know mare about FHIR The Concept of FHIR: A Healthcare Data Standard Designed for the Future
OK... Let's start😆
1. Create a new utility class datagen.utli.
Hi community,
I have a service that uses EnsLib.RecordMap.Service.FTPService to capture files in an FTP directory.
Instead of uploading them all at once, I would need to do so one at a time.
I have a class that extends this class because it preprocesses, saves everything in the RecordMap class, and then processes all the records at once.
When I invoke the BP, it does so through the method set tStatus = ..SendRequest(message, 1).
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ How to Boost Data Quality with Interoperability @ Ready 2025
To manage the accumulation of production data, InterSystems IRIS enables users to manage the database size by periodically purging the data. This purge can apply to messages, logs, business processes, and managed alerts.
Please check the documentation for more details on the settings of the purge task:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EGMG_purge#EGMG_purge_settings
An issue that many users ran into is still finding old messages after running the purge task for messages. For example, a user has a purge task for messages that has NumberOfDaysToKeep=45.
Hi,
It's me again😁, recently I am working on generating some fake patient data for testing purpose with the help of Chat-GPT by using Python. And, at the same time I would like to share my learning curve.😑
1st of all for building a custom REST api service is easy by extending the %CSP.REST
Creating a REST Service Manually
Let's Start !😂
1. Create a class datagen.restservice which extends %CSP.REST
Class datagen.restservice Extends %CSP.REST
{
Parameter CONTENTTYPE = "application/json";
}2.
I know the next ones:
1. Place all different settings in environment variables. You have a different .env file for each environment, and you must add some code to Production for reading and setting these values. It's good for deploying into containers, but challenging for management when we have a large production. I mean, we have many settings that can vary depending on the environment: active flag, pool size, timeouts, and so on. Not only endpoints.
2. My own case.
Hey Community,
The InterSystems team put on our monthly Developer Meetup with a triumphant return to CIC's Venture Café, the crowd including both new and familiar faces. Despite the shakeup in both location and topic, we had a full house of folks ready to listen, learn, and have discussions about health tech innovation!
For historic reasons we've got a mix of ADT feeds coming out of our PAS (TrakCare) to a wide range of downstream systems. In particular, there are some that are direct from TrakCare to the downstream systems, and many more that pass through Ensemble as our integration engine.
This is complicating management of the integrations, and so we'd like everything to go through the integration engine.
I was really surprised that such a flexible integration platform with a rich toolset specifically for app connections has no out-of-the-box Enterprise Service Bus solution. Like Apache ServiceMix, Mule ESB, SAP PI/PO, etc, what’s the reason? What do you think? Has this pattern lost its relevance completely nowadays? And everybody moved to message brokers, maybe?
Wiki time: An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA) .
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:

I am truly excited to continue my "InterSystems for Dummies" series of articles, and today, we want to tell you everything about one of the most powerful features we have for interoperability.
Hey, even if you have already had a go, we plan to take a really close look at how to get the most out of them and make our production even better.
Hi all,
I needed to pick up the username from a set of credentials configured for a business operation in an interop production, and it turned out to take a few steps, so I'm sharing my method here, in the dual hope that someone has an easier way to do it, or failing that, that it is useful to someone.
Best,
Otto
/// Fetch the user name from the credentials configured for a production item.
/// Parameters:
/// productionName - The name of the production where the config iterm lives.
/// configItemName - The name of the config item that holds the credential setting.
Let's pretend for a moment that you're an international action spy who's dedicated your life to keeping the people of the world safe from danger. You recieve the following mission:
Good day, Agent IRIS,
We're sorry for interrupting your vacation in the
Bahamas, but we just received word from ourLondonagent that a "time bomb" is set to detonate in a highly populated area inLos Angeles. Our sources say that the "time bomb" is set to trigger at3:14 PMthis afternoon.Hurry, the people are counting on you!
Actually, I want to know specific production component status. I used "Ens.Config.Production" to get the status of component. But it will return only the component enabled/disabled. Anyone is having any Idea to get the specific production component status?
I have been walking through this with a few team members and as such I thought there might be others out there who could use it, especially if you work with HL7 & Ensemble/HealthConnect/HealthShare and never venture out past the Interoperability section.
First, I would like to establish that this is an extension of the already established documentation on importing and exporting SQL data found here: https://docs.intersystems.com/iris20241/csp/docbook/DocBook.UI.Page.cls?
There is a way to remove the web source control in the web page of BPL?.png)
i already disabled a configuration in the production and works fine:.png)
But in the BPL page, it doesn't worked. There is a way to disable this configuration at portal?
FHIR Server
A FHIR Server is a software application that implements the FHIR (Fast Healthcare Interoperability Resources) standard, enabling healthcare systems to store, access, exchange, and manage healthcare data in a standardized manner.
Intersystems IRIS can store and retrieve the following FHIR resources:
Fast Healthcare Interoperability Resources (FHIR) is a standardized framework created 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 various healthcare systems.
#InterSystems Demo Games entry
Managed Cloud Solutions to Help Streamline Your Health Services.
This demo showcases composing several InterSystems Managed Cloud Services to solve various use-cases.
The video is actually built of 6 short chapters (each ~2.5 minutes long) showing each part of the story, demoing a different service.
You can watch each "chapter" individually if you're interested in a specific service, but there is value in viewing the whole composition and observing the full flow.
[Note the "FHIR IntelliChat" part is not an actual formal InterSystems service, it is just a demonstration of a possibility (based on this solution by @José Pereira)]
Presenters:
🗣 @Tani Frankel, Sales Engineer Manager, InterSystems
🗣 @Keren Skubach, Senior Sales Engineer, InterSystems
🗣 @Ariel Glikman, Sales Engineer, InterSystems
InterSystems IRIS interoperability production development involves using or writing various types of components. They include services (which handle incoming data), processes (which deal with the data flow and logic), and operations (which manage outgoing data or requests). Messages flowing through those components constantly require being adapted to consuming applications. Therefore,Data transformations are by far the most common component in interoperability productions.
In the early stages of data transformation development, thetest tool from the Management Portal becomes quite handy.