Article Yuri Marx · May 25 12m read

The rise of distributed systems and cloud-native architectures within large institutions has redefined hosting for InterSystems IRIS interoperability applications (productions). In modern environments, the standard layout involves at least two production instances operating on distinct nodes under a load-balancing configuration to handle requests.

The benefits are clear: you can now scale dynamically based on request volume, increasing the number of active productions during peak demand and going down when traffic subsides.

4
1 334
Article Robert Cemper · Oct 18, 2025 1m read

As in the previous package, all is running from a CSP page.
And it is all classic CSP written with InterSystems ObjectScript, 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. 

The final result

The processing steps 

  • A CSP page is called by its URL
  • In method OnPreHTTP
    • The System Query fills the temp table from %SYS
    • If the correct URL parameter is provided 
3
2 231
New
Article Developer Community Admin · Jun 11 12m read

Overview 

This article explains how InterSystems IRIS Data Platform handles both transactional and analytic workloads without sacrificing performance. It also covers how the platform manages memory and scales under peak load, what its security model looks like, and how global banks and brokerages are using it in production today.

InterSystems IRIS Data Platform for Financial Services

InterSystems IRIS data platform is a technology for mission-critical financial services applications.

0
0 224
New
Question Norman W. Freeman · Jun 11

I would like to create a generic error handler defined somewhere in a class (or if not possible a routine that calls a class). 
This should not be page specific but for the whole app (as I have lots of CSP pages inside a legacy app). Obvisouly this will not be a single try catch block but rather something setup at system level (or web application level if not possible). The same way it's possible to handle sessions in a global way (by having aclass that inherit from %CSP.SessionEvents).

1
0 44
New
Article Johannes Heikkonen · Jun 11 1m read

Hi everyone, 

I created a short demo and reference repository showing how to configure Auth0 as an OAuth provider for an InterSystems IRIS FHIR server, and how to call protected FHIR resources from a Python Flask application. 

The links below include a video walkthrough and a github repo with the sample application used in the video 

Links 

Video walkthrough

GitHub repository: https://github.com/MarshyKid/iris-fhir-oauth-demo

0
1 51
Article Sylvain Guilbaud · Oct 6, 2016 2m read

to dismount/mount a database, use Dismount() and Mount() methods in SYS.Database class available in %SYS namespace.
NB: the database ID is its Directory

You'll find  some examples of how to dismount/mount and check if a database is mounted (Mounted=1) or not (Mounted=0), and quickly see all the attributes of a database (via zwrite)


%SYS>set db="/opt/irisapp/data" 

%SYS>w ##class(SYS.Database).%OpenId(db).Mounted                     
1
%SYS>w ##class(SYS.Database).%OpenId(db).Dismount()
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted   
0
%SYS>w ##class(SYS.Database).%OpenId(db).Mount()   
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted
1
%SYS>zw ##class(SYS.Database).%OpenId(db)
+----------------- general information ---------------
|      oref value: 3
|      class name: SYS.Database
|           %%OID: $lb("/opt/irisapp/data","SYS.Database")
| reference count: 2
+----------------- attribute values ------------------
|       %Concurrency = 0  <Set>
|        BlockFormat = 2
|          BlockSize = 8192  <Set>
|             Blocks = 780288
|       BlocksPerMap = 62464
|   ClusterMountMode = 0  <Set>
|     ClusterMounted = 0  <Set>
|        CurrentMaps = 13
|          Directory = "/opt/irisapp/data/"  <Set>
|     DirectoryBlock = 3
|        EncryptedDB = 0  <Set>
|    EncryptionKeyID = ""
|          Expanding = 0
|      ExpansionSize = 0  <Set>
|               Full = 0
| GlobalJournalState = 3  <Get,Set>
|     InActiveMirror = 0
|  LastExpansionTime = "09/06/2023 20:00:01"
|            MaxSize = 0  <Set>
|MirrorActivationRequired = 0
|    MirrorDBCatchup = 0
| MirrorDBCreatedNew = 0
|       MirrorDBName = ""
|     MirrorDBPaused = 0
|   MirrorFailoverDB = 0
|      MirrorNoWrite = 0
|     MirrorObsolete = 0
|      MirrorSetName = ""
|           Mirrored = 0
|            Mounted = 1
| NewGlobalCollation = 5  <Set>
|NewGlobalGrowthBlock = 50  <Set>
|    NewGlobalIsKeep = 0  <Set>
|NewGlobalPointerBlock = 16  <Set>
|   NumberOfConfigDB = 0
|       ROReasonCode = 0
|       ROReasonText = ""
|           ReCreate = 0
|           ReadOnly = 0  <Set>
|    ReadOnlyMounted = 0
|       Reinitialize = 0
|        RequestSize = 0
|       ResourceName = "%DB_IRISAPP-DATA"
|RunCatchupDBOnCreate = 1
|                SFN = 6
|               Size = 6096  <Set>
|           Skeleton = 0
|           SparseDB = 0
+----------------------------------------------------- 
%SYS>
5
1 3011
New
InterSystems Official Bob Kuszewski · Jun 10

We released the x64_64 Ubuntu 26.04 build back on May 21st.  At the time we said that we were holding off on releasing ARM support due to come occasional network problems we found in testing.  We've worked with Ubuntu to resolve those issues - a bug in a vendor's network driver - and are pleased to say...

 InterSystems announces the general availability of:

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

This release adds support for the Ubuntu 26.04 operating system for both ARM and x86_64 processors

1
0 55
Question Don Martin · Sep 5, 2025

We have a task that runs objectscript code to load data into a linked external table.  After upgrading from 2024.1 to 2025.1, the load is throwing an error, with error code -400, and no error message.  The data DOES get loaded into the external table in its entirety, so with no meaningful error message, its hard to determine what the issue is.  The result is the same with and without the USING clause, so don't let that confuse you.

3
0 158
Article Robert Cemper · Oct 14, 2025 3m read

To better understand Streams in IRIS I'll start with a short

History

In the beginning (before IRIS), there was just basic access to external devices.
The 4 commands OPEN, CLOSE, READ, WRITE still work and are documented 
by  Introduction to I/O in detail.
Especially for files, this is a direct access to your actual file system.
You have to take care of any status or other signal in your code.  
Also, any code conversion or similar is up to you. 

Class %Library.File aka %File offers a large collection of methods and queries 
for standard operations on directories and files.

3
4 279
Question Anderson Negreli · Mar 25, 2021

Hi,

I'm doing a query in SQL and I need to sort my data by some non-repeated field.

Unfortunately, my data is grouped in a way that I cannot guarantee that any column will not have repeated data, so one solution would be to take the row number.

Also, the Cache is not accepting Row_Number () in my querry and I would like to know if there is another solution to return line numbers or some way to add this function to the Cache.

Best regards.

9
0 3997
Question Tani Frankel · Feb 1, 2024

Is it possible to authenticate an xDBC (ODBC/JDBC) connection to InterSystems IRIS via (a 3rd party) OAuth server?

For REST APIs this is possible, but could this be achieved with OAuth? 

Out-of-the-box the ODBC/JDBC Drivers don't seem to have this option, but maybe some custom code could enable this? perhaps via Delegated Authentication and some OAuth classes customization, or some other way?

Has anyone done this already and can share how it was implemented, or someone with some guideline suggestions?

2
0 264
New
Article Luana Machado · Jun 9 12m read

1. Introduction

Epidemiological surveillance is one of the foundational pillars of public health. Régis Júnior et al. (2026) define it as a continuous system of data collection, analysis, interpretation and dissemination of health events — a function whose effectiveness depends critically on the quality of information systems, data analysis capacity, and coordination between different levels of care.

2
2 45
New
Article Dmitry Maslennikov · Jun 10 7m read

FHIR REST APIs are powerful and standardized, but they are not a general-purpose query engine.

They are great for operations such as reading resources, searching by supported parameters, following links, and working with Bundles. But many real-world questions require orchestration across multiple resources.

For example:

  • Show diabetic patients with A1c above 9 in the last 6 months.
  • Find diabetic patients whose HbA1c is getting worse despite active insulin therapy.
  • Find patients with abnormal HbA1c and no follow-up encounter within 90 days.
  • Find patients with overlapping anticoagulant and NSAID prescriptions.
  • Build an evidence timeline for a patient.
  • Explain why this patient matched the query.
0
1 21
Article Carlos Eduardo Dias Duarte · Jun 7 7m read

Hospital readmissions cost the US healthcare system $17 billion annually. A significant portion of those readmissions are preventable — but only if the right information reaches the right clinician at the right moment: at discharge.

That's the problem I set out to solve with Smart Discharge Navigator, my entry for the InterSystems Programming Contest: AI Agents for FHIR 2026.


2
0 65
Article Jonathan Card · May 28 5m read

There seems to be a generous use of ClassMethods in ObjectScript code generally. I hope my own experiences aren't representative, but I bet they are. Forgive me for giving away the ending of this article, but in short: don't use them. Unless you can make a pretty convincing case that you have to, just never use them.1

What is a ClassMethod? In an ObjectScript class, you can define methods in two different ways: in a Method, you must instantiate an instance of the class to call the method, and in a ClassMethod, you can call the method without instantiating the class. Of course, in a ClassMethod, you don't have access to any properties of the object (because there's no object), but you can access globals (they are global, after all) and Parameters (which are class constants).

8
2 265
Article José Pereira · May 19 13m read

Abstract

Common Table Expressions (CTEs) provide a structured framework for defining reusable intermediate result sets within SQL statements. InterSystems IRIS implements CTEs via the WITH clause, enabling clearer query composition and modular analytical processing while remaining fully integrated with the IRIS cost-based optimizer.

This article explores the semantics of CTEs in InterSystems IRIS, explains their interaction with query optimization, discusses appropriate deployment scenarios, and presents executable examples illustrating practical patterns for production environments.


3
4 324
Article André Dienes Friedrich · Jun 3 13m read

An engineering walkthrough of the IRIS-CardioFlow project architecture with real code for its AI, FHIR, and connectivity layers and the role of iris-agentic-dev in a modern ObjectScript workflow.


Introduction

Monitoring cardiovascular surgical flow in real time is a classic healthcare integration problem: data arrives from heterogeneous sources, must be persisted with clinical semantics, exposed through an API, and presented in a way the care team can act on. The CardioIris repository (internally named IRIS-CardioFlow) is a lean demonstration of that scenario, built on InterSystems IRIS 2026.

1
0 59
New
Article Muhammad Waseem · Jun 9 6m read

Hi Community,

Have you ever wished your EHR could think? Not just display data. Not just fire alerts. But actually read a patient record, reason over clinical guidelines, and write a structured referral order back to the system — in response to a single message from a clinician

In this article, I am going to show you how to create your own custom clinical AI agent.


🏥 About iris-fhir-agents App

iris-fhir-agents is a multi-agent clinical AI platform built entirely on InterSystems IRIS for Health.

0
0 43
New
Article Carlos Eduardo Dias Duarte · Jun 8 5m read

When I started building Smart Discharge Navigator, I faced a common challenge: FHIR data is stored as JSON bundles, but the analysis I needed required joining multiple resources together, the kind of thing SQL was built for.

InterSystems FHIR SQL Builder solved this completely. Instead of parsing JSON bundles in application code, I was able to write plain SQL directly against FHIR resource projections inside IRIS for Health. This article shows exactly how I used it to build the population-level readmission risk scoring engine at the heart of the application.


0
0 29
New
Article Ben Schlanger · Jun 8 4m read

Back when I was a Developer Support Engineer in the InterSystems Worldwide Response Center (WRC), I would occasionally receive cases involving large message backlogs in a production. The customer would discover that a subset of queued messages were no longer useful and would ask a question similar to the following:

Is there an established best practice for mass-aborting messages in a specific component's queue that match a particular set of criteria?

0
1 69
Article Jorge Jaramillo Herrera · May 5 19m read

This article introduces SHAP explainability methods as an approach to understand the reasons behind predictions in machine learning black-box models. It also includes a simple Jupyter notebook that you can use and modify to gain hands-on experience with these concepts:

https://www.kaggle.com/code/jorgeivnjh/explainability-in-ml-models

https://github.com/JorgeIvanJH/Explainability-in-ML-models

We will leverage these concepts for a future implementation in our Continuous Training Pipeline: https://community.intersystems.com/post/complementing-iris-mlflow-continuous-training-ct-pipeline

1
0 176
New
Article Sean Connelly · Jun 8 1m read

 

I’m pleased to share a demo of FHIR Agent Studio, now available on YouTube.

FHIR Agent Studio Demo

https://www.youtube.com/watch?v=vktfq_kvNnk

FHIR Agent Studio brings AI agents together with FHIR, InterSystems IRIS, Vector Search, and large language models to demonstrate how developers can explore, build, and test agent-driven healthcare workflows.

You can also find more information here:

Introduction article: https://community.intersystems.com/post/introducing-fhir-agent-studio-ai-agents-fhir-intersystems-iris

GitHub repository: https://github.com/SeanConnelly/ai-studio-for-fhir

0
0 40
New
Announcement Admin GlobalMasters · Jun 8


Hey! June Article Bounty is live on Global Masters! ☀️🚀

Submit a brand-new article on one of the announced topics and earn a bounty of 🏆 5,000 Global Masters points once it’s approved! 🎉

Here’s the list of June topics:

0
0 40
New
Article José Pereira · Jun 8 20m read

An AI agent reads the FHIR patient record before the consultation, asks the right questions based on what it already knows, detects critical red flags, and writes its findings back — so the physician arrives prepared.

This project was inspired in the suggested task #10 (Conversational FHIR Triage Assistant) for the InterSystems Programming Contest: AI Agents for FHIR


Healthcare Pain Points Addressed

Before a patient walks into a consultation room, a critical failure has already occurred: nobody read their medical history. The physician has 15 minutes.

0
0 73