New
Article Yuri Marx · 2 hr ago 2m read

The successful construction and implementation of AI agents to address diverse use cases in the healthcare sector depend on high-quality data and APIs, effective governance, and management. The InterSystems IRIS FHIR server delivers all of this and is also fluent in Python, Vectors, and Interoperability. Combined with a strong LLM, patients, physicians, caregivers, and managers gain access to state-of-the-art technology for personal and public health.

0
1 13
InterSystems Developer Community is a community of 27,272 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!
New
Discussion Patrick Fleming · 10 hr ago

Hello everyone,

I am new to InterSystems IRIS and would like to know which resources you recommend for beginners.

I have already explored some of the documentation, but I would appreciate suggestions for tutorials, videos, training courses, or hands-on exercises that helped you learn the platform.

What learning path would you recommend for someone just getting started?

Thank you in advance for your advice.

3
0 28
New
Question Norman W. Freeman · 3 hr ago

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 18
New
Article Johannes Heikkonen · 4 hr ago 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 17
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 27
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 36
New
Question Patrick Fleming · 15 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.

1
0 15
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 3002
New
InterSystems Official Bob Kuszewski · 16 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 29
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 156
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 233
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 3983
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 261
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 28
New
Article Dmitry Maslennikov · 23 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 10
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 50
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 112
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 253
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 308
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 50
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 23