#Interoperability

7 Followers · 600 Posts

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.

New
Article Geet Kalra · 1 hr ago 3m read

In the previous article, we used pyprod to create production components while relying on the UI for production configuration. That same production can now be defined entirely in Python:

from intersystems_pyprod import Production, ServiceItem, ProcessItem, OperationItem

iris_package_name = "HelloWorld"

class MyProduction(Production):
    services = [
        ServiceItem(
            "MyServiceName",
            "HelloWorld.MyService",
            host_settings={"target": "MyProcessName"},
        )
    ]
    processes = [
        ProcessItem(
            "MyProcessName",
            "HelloWorld.MyProcess",
            host_settings={"target": "MyOperationName"},
        )
    ]
    operations = [
        OperationItem("MyOperationName", "HelloWorld.MyOperation")
    ]
0
0 5
Article Kate Lau · Oct 9, 2025 5m read

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

ClassExtends%CSP.REST

2. Add a function genpatientcsv() to generate the patient data, and package it into csv string

ExtendsAs

you may test the function in the terminal by typing

3. Add a function 

4
1 214
New
Article Guillaume Rongier · 20 hr ago 9m read

 

In the previous IoP article, I showed how IoP can expose Python messages to DTL by generating JSON schemas. That is useful when the message is primarily a Python object and we want the IRIS tooling to understand its structure.

This time, the direction is a little different.

Starting with IoP 3.7.1, a PersistentMessage can now be a native IRIS message body class. The Python class is still the source code you write, but the generated IRIS class extends Ens.MessageBody

0
1 17
New
Question John Gossick · May 28

We have a long running InterSystems Engine with an Interface Development Team.  We have implemented basic interface and code development processes using mostly manually created helper tasks and functions.
We are looking to upgrade these processes by installing and starting to use Embedded GIT in our DEV spaces first.  We will not use it to deploy changes to PRODUCTION at first, keeping our same current process that the team is very comfortable with.  
We plan to start by using the BASIC mode in GIT, to avoid confusion over multiple branches and other version control functions.

1
1 33
New
Announcement Evgeny Shvarov · May 28

Hi Developers!

Here are the technology bonuses for the InterSystems Programming Contest: AI Agents for FHIR that will give you extra points in the voting:

  • Implement suggested task - 5
  • InterSystems FHIR Server usage - 2
  • Vector Search usage - 4
  • Embedded Python - 3
  • LLM AI or LangChain usage: Chat GPT, Bard, and others - 3
  • Docker container usage - 2 
  • ZPM Package deployment - 2
  • Online Demo - 2
  • Implement InterSystems Community Idea - 4
  • Find a bug in Vector Search or Embedded Python - 2
  • First Article on Developer Community - 2
  • Second Article On DC - 1
  • First Time Contribution - 3
  • Video on YouTube - 3
0
0 42
New
Question Ashok Kumar Thangavel · May 28

Hi Community,

Interoperability metrics were enabled for a production using ##class(Ens.Util.Statistics).EnableSAMForNamespace(). However, after running DisableSAMForNamespace() and DisableStatsForProduction(), the metrics continue to appear in the endpoint output.

Is there a way to completely stop these interoperability metrics from displaying in the API metrics stream? Is there an additional step or cache clear required?

0
1 22
New
Question Ethan Calloway · May 20

 I’m looking for recommendations to improve interoperability performance in InterSystems IRIS, especially when handling large volumes of HL7 or healthcare-related messages.

What are the best practices for optimizing productions, business services, operations, and message processing performance? I’d also like to know if there are recommended monitoring tools or settings commonly used in production environments.

1
0 56
Announcement Ronnie Hershkovitz · May 17

Hello Community!

We’re excited to invite you to our upcoming Hebrew webinar, presented by @Keren Skubach, an InterSystems Senior Sales Engineer:

👉A Practical Guide to Leveraging AWS Adapters and APIs 👈

📅 Date & time: June 2nd, 3:00 PM IDT

https://events.teams.microsoft.com/event/00cf0e54-16ff-4d86-8dff-659ba855128d@74abaa74-2829-4279-b25c-5743687b0bf5

Discover how to accelerate cloud-based integration with InterSystems' native AWS adapters for S3, SQS, SNS, and CloudWatch.

This session provides a practical look at building modern interoperability workflows — from secure file ingestion and asynchronous messaging to automated notifications and centralized monitoring.

0
0 52
Article Andrew Sklyarov · Oct 3, 2025 8m read

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) .

1
4 299
Article Hua Jian · May 15 1m read
  1. VS Code version 1.60.0 and above
  2. install below 3 extensions

  3. Ctrl + Shift + P show all commands

          

  1. InterSystems: Connect to Server

         

  1. input connection details 

    IP:localhost

        Port: 52773

       choose global & http connection method

       Input username and password of Intersystems management portal

       screenshot for success connection:

0
3 120
Question Oliver Wilms · May 9

I want to develop a REST API for uploading PDF files. I started with OPENAPI spec file. When I test, I get error 8727 referencing missing required parameter file.

"{"$c(13,10,9)"""errors"":[ {"$c(13,10,9,9,9)"""code"":8727,"$c(13,10,9,9,9)"""domain"":""%ObjectErrors"","$c(13,10,9,9,9)"""error"":""ERROR #8727: Parameter required: file."","$c(13,10,9,9,9)"""id"":""RESTRequired"","$c(13,10,9,9,9)"""params"":[""file"""$c(13,10,9,9,9)"]"$c(13,10,9,9)"}"$c(13,10,9)"],"$c(13,10,9)"""summary"":""ERROR #8727: Parameter required: file.

1
0 66
Article André Dienes Friedrich · May 5 9m read

Abstract

Solar irradiance forecasting is critical for grid stability in photovoltaic (PV) power plants. This article replicates and extends the methodology of Lara-Benítez et al. (2023) "Short-term solar irradiance forecasting in streaming with deep learning" replacing the original offline simulation with a fully operational streaming pipeline built on InterSystems IRIS. We leverage IRIS Interoperability Productions as the streaming backbone, Embedded Python to run MLP, LSTM, and CNN deep learning models, and IntegratedML as an AutoML baseline.

0
0 61
InterSystems Official Aya Heshmat · Mar 27, 2025 4m read

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.

24
4 982
InterSystems Official Daniel Palevski · Mar 25

The 2026.1 release of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and InterSystems Health Connect™ is now Generally Available (GA). This is an Extended Maintenance (EM) release.

3
0 208
Question Andrew Sklyarov · Apr 18

I need a %SYS.Python object that will be accessible from different processes. The goal is to avoid reinitializing the Python object whenever it is called. Ways that I checked and decided that it is NOT what I want:

  • %-variables (process variables). Reusing only in the same process
  • Save-and-restore via globals. Restoring means heavy initialization, which I want to avoid

Next, my ideas (none of them look like a silver bullet):

  • Using Interoperability Production.
5
0 111
Article Yuri Marx · Apr 20 25m read

What is a Microservice?

A microservice is an architectural style that structures an application as a collection of small, autonomous services. Each component is developed around a specific business capability, can be deployed independently, and is typically managed by a miniature, specialized, self-governing team. (Source: https://microservices.io/)

0
4 264
Article Henry Pereira · Apr 2, 2025 17m read

Image generated by OpenAI DALL·E

I'm a huge sci-fi fan, but while I'm fully onboard the Star Wars train (apologies to my fellow Trekkies!), but I've always appreciated the classic episodes of Star Trek from my childhood. The diverse crew of the USS Enterprise, each masterminding their unique roles, is a perfect metaphor for understanding AI agents and their power in projects like Facilis. So, let's embark on an intergalactic mission, leveraging AI as our ship's crew and  boldly go where no man has gone before

3
2 340
Article Alberto Fuentes · Sep 1, 2025 6m read

Customer support questions span structured data (orders, products 🗃️), unstructured knowledge (docs/FAQs 📚), and live systems (shipping updates 🚚). In this post we’ll ship a compact AI agent that handles all three—using:

  • 🧠 Python + smolagents to orchestrate the agent’s “brain”
  • 🧰 InterSystems IRIS for SQL, Vector Search (RAG), and Interoperability (a mock shipping status API)

⚡ TL;DR (snack-sized)

  • Build a working AI Customer Support Agent with Python + smolagents orchestrating tools on InterSystems IRIS (SQL, Vector Search/RAG, Interoperability for a mock shipping API).
2
5 394
InterSystems Official Daniel Palevski · Apr 15

The 2025.1.4 and 2024.1.6 maintenance releases of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and InterSystemsHealth Connect™ are now Generally Available (GA). These releases include the fixes for a number of recently issued alerts and advisories, including the following: 

0
0 92
InterSystems Official Daniel Palevski · Apr 15

Summary

Alert ID

Product & Versions Affected

Risk Category & Score

Explicit Requirements

IF-9262

InterSystems IRIS® for Health

InterSystems Health Connect

versions 
2024.1.4, 2024.1.5

System Stability Concern: 5 (High)

FHIR and Health interoperability issues may cause upgrade failures and unexpected or adverse product behavior. 

Issue

  • The impacted versions of InterSystems IRIS for Health and Health Connect are being removed from WRC distribution sites due to issues identified in several FHIR and healthcare interoperability features.
0
0 64
Article Fan Ji · Mar 26 1m read

Introduction

FHIR (Fast Healthcare Interoperability Resources) is the modern standard for storing and exchanging clinical data. But once your data is in a FHIR server, how do you actually explore it? FHIR data is stored as JSON — powerful, but not practical to read directly. I wanted a tool where you could click on a patient, see their conditions, medications, lab results, and more — in a clean, readable format. So I built the FHIR Patient Viewer.

How It Works

The app runs entirely in Docker and connects directly to an InterSystems IRIS for Health FHIR server.

2
2 372
Article Vachan C Rannore · Mar 26 2m read

Working with files often starts off simple. open the file, read, and process. That approach works perfectly well, until the file happens to be an Excel file.

A Common Assumption

At first, an Excel file (.xlsx) looks like just another data file, rows, columns and values. nothing unusual. So it's natural to assume it can be read the same way as a .txt ot .csv file. But that's where things start to break.

Why Excel files behave differently

The key difference is how the data is stored:

-> .txt / .csv - plain text, line-by-line.

-> .

2
0 106
Article Eduard Lebedyuk · Mar 27 2m read

If you have long-running messages here's a simple code to catch them. You can also use Queue Wait Alert to get the same results, although this code will catch even a single active message with an empty queue. It also scans all namespaces with no production modification, so it can be used for debugging.

Include Ensemble

Class User.LongMessagesTask Extends %SYS.Task.Definition
{

Parameter TaskName = "Long running messages";

Property LongRunningMessageThreshold As %Integer(MINVAL = 1) [ InitialExpression = 60 ];

Method OnTask() As %Status
{
	set ts = $zdatetime($NOW(0),3,1)
	set ns = ""
	while 1 {
		// Iterate namespaces
		set ns = $o($$$EnsJobMonitorRoot(ns))
		quit:ns=""
		
		set job =""
		while 1 {
			// Iterate jobs
			set job = $o($$$EnsJobMonitorRoot(ns, job))
			quit:job=""
			
			// Get business host name
			set bh = $o($$$EnsJobMonitorRoot(ns,job,""))
			
			// Get the time of the last state change
			set lastActivity = $$$EnsJobMonitorRoot(ns,job,bh,"%LastActivity")
			
			// Get active message, if any - bh can be just idling
			set active = $d(^[ns]Ens.ActiveMessage(job),messageid) // From $$$EnsActiveMessage
			if active {
				set time = $system.SQL.Functions.DATEDIFF("s", lastActivity,  ts)
				if time > ..LongRunningMessageThreshold {
					set text = $$$FormatText("Long running message %1, in ns: %2, BH: %3, processing since %4, for %5 seconds", messageid, ns, bh, lastActivity, time)
					// For debug
					// write text, !
					do ##class(%SYS.System).WriteToConsoleLog(text)
				}
			}
		}
	}
	quit $$$OK
}

}
0
1 64
Article Yuri Marx · May 5, 2025 10m read

RabbitMQ is a message broker that allows producers (those who send a data message) and consumers (those who receive a data message) to establish asynchronous, real-time, and high-performance massive data flows. RabbitMQ supports AMQP (Advanced Message Queuing Protocol), an open standard application layer protocol. 
The main reasons to employ RabbitMQ include the following:

  • You can improve the performance of the applications using an asynchronous approach.
  • It lets you decouple and reduce dependencies between services, microservices, and applications with the help of a data message mediator, meaning that there is no need for producers and consumers of exchanged data to know each other.
  • It allows the long-running processing of sent data (with the results) to be delivered after utilizing a response queue.
  • It helps you migrate from monolithic to microservices, where microservices exchange data via Rabbit in a decoupled and asynchronous way.
  • It offers reliability and resilience by making it possible for messages to be stored and forwarded. A message can be delivered multiple times until it is processed.
  • Message queueing is the key to scaling your application. As the workload increases, you will only have to add more workers to handle the queues faster.
  • It works well with data streaming applications.
  • It is beneficial for IoT applications.
  • It is a must for Bots’ communication.
3
3 399
Article Tani Frankel · Mar 26 1m read

v2026.1 was just released as GA, and one of the features I'm looking forward to using is the DTL Explainer feature.

This allows you to take a Data Transformation, and with a click of a button get a human-readable description of the transformation (which you can also use as the basis for the DTL Description).

For complex DTLs, especially ones you didn't write yourself, or you did but a long time ago, this will allow you to get a clear quick understanding of what it's doing.

0
0 84
InterSystems Official Aya Heshmat · Mar 25

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, 2026.1 for IRIS, IRIS for Health, Health Connect and Health Connect Cloud, the BPL Editor and Message Viewer/Visual Trace applications are now available for opt-in!
NOTE:

  • Existing users can switch between the modernized and standard experiences.
0
0 103
Announcement Timothy Leavitt · Nov 8, 2021

If you're building solutions on IRIS and want to use Git, that's great! Just use VSCode with a local git repo and push your changes out to the server - it's that easy.

But what if:

  • You're collaborating with other developers on a shared, remote development environment and want to avoid concurrent editing of the same file
  • You're using editors based in the management portal for BPL, DTL, pivots, dashboards, etc.
51
15 5467