New
Discussion Anastasia Dyubaylo · Jun 9

Hi Community!

The next addition to the "Code to Care" video series is in progress, and we’d like to hear from you. 

The goal of the project has always been to make complex healthcare and AI concepts easier to understand. In this discussion, we invite you to suggest fresh topics for a conversation.

💡 What could @Don Woodlock, the President of InterSystems, cover in future episodes?

Are there new AI concepts you'd like explained? Healthcare technology trends you're curious about? Architectural patterns, interoperability challenges, or emerging standards you think are worth exploring?

1
0 24
InterSystems Developer Community is a community of 27,259 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!
New
Question Joshua Wigley · Jun 9

Hey All!

I wanted to reach out and get some advice on the best way to interact with a external SQL database, as I'm finding the documentation quite confusing to follow. I'm new to using SQL within InterSystem, and I want to make sure I'm following the best practices.

In essence, what I am trying to achieve, is extracting certain values from a HL7 message and then insert those message field values into an external database. The ODBC, DSN and Credentials details are all setup and working correctly.

2
0 31
New
Question Patrick Fleming · 1 hr ago

 Hello Community,

I am learning more about InterSystems IRIS administration and would like to understand the recommended approach for monitoring performance in a production environment.

What tools, metrics, or dashboards do you typically use to monitor system health, database activity, and application performance?

I am particularly interested in learning which indicators are most useful for identifying potential bottlenecks before they affect users.

Thank you for sharing your experience and recommendations.

0
0 5
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 2991
New
InterSystems Official Bob Kuszewski · 2 hr ago

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 16
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 153
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
3 220
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 3980
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 259
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 26
New
Article Dmitry Maslennikov · 9 hr ago 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 9
New
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 48
New
Discussion Evgeny Shvarov · Jun 5

Hi folks!

Suppose a new version of your amazing software solution built on IRIS needs some persistence change: some data needs to be converted, some classes get new properties or even renamed, and some data should be prepopulated for newly introduced persistent classes to keep the whole application data consistent.

What are your approaches? 

SQL-based scripts? ObjectScript, or Python? for both directions of migration, up and down? 

Do you autogenerate it with Claude/Codex? What about data-consistency tests?

COuld you please share your thoughts? or libraries?

9
1 111
New
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 250
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 307
New
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 48
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 22
Announcement Anastasia Dyubaylo · May 5

Hey Community,

Round 1 of the Community Bounty Program "Idea to Application" is officially open. Three ideas from the Ideas Portal are ready to be implemented — pick one or more, build it, publish it on Open Exchange, and earn Global Masters points. 

🏅Every qualifying submission earns a Credly badge, Global Masters badge, and 10k+ points. Implement all ideas this round and unlock Tier 2 rewards.

2
0 221
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 17
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
0 35
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 174
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 18