I'm trying to lock down access in our IRIS system.
I notice there is no current %DB_X resource (which I want to add to add a read-only role for it).
If I add resource %DB_X will there be an immediate effect or will it only be applicable to roles (and users linked to that role)?
I understand that Business Rules can be used to route or transform messages without touching code. But I'm not clear on when it's better to use a Business Rule versus handling the logic directly inside a BPL or a custom BP class. What criteria do you use to decide between them?
If I need to add or change properties in a message class that is already being used by a running Production, what is the safest way to do this? Are there risks with existing messages in the queue or in the message store? Is there a migration strategy the community recommends?
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.
Hi folks,
One of the things I've been thinking about recently: how strong AI is changing my work as an ObjectScript developer right now! Yeah, yeah, I know I'm not a very fast, it should have happened 2-3 years ago... But it's only now that I've realized that I am not writing the code all my workday like before.
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.
I want to thanks the InterSystems Global Masters Rewards.
I think better than reward, is the opportunity ti share knowledge, experience and help the community to increase.
Now I'll develop with more focus... ;)
Let's go share wit all.
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).
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.
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.
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.
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.
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?
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
![]()
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

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:
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.
Updated June 6, 2026
With InterSystems industry-standard certification exams, you and your team can get certified to validate your skills and demonstrate your expertise in InterSystems technology. Find the right exam for your role!
I've seen that %JSON.Adaptor makes it easy to serialize and deserialize objects to JSON, but I've also seen people building custom serialization logic. Are there scenarios where %JSON.Adaptor falls short, such as handling nested objects, null values or custom field naming conventions? What has been your experience?
Sara is my entry for the InterSystems AI Agents for FHIR contest. Feel free to try out Sara and vote for Sara on the contest page.

https://youtu.be/UAjI9O848wU?si=BWTVk9gsV4xTOlUj
Physicians spend only 47% of their work time on direct patient care [1]. The rest goes to EHR administrative tasks: order entry, documentation, prior authorizations, with 43% of their time spent on a clinical computer [2]
Hi Developers!
Recently we are getting a lot of requests on how to become an active and helpful member of the InterSystems Developer Community.
The terms are very simple:
Introduction
In my previous article, I introduced the FHIR Data Explorer, a proof-of-concept application that connects InterSystems IRIS, Python, and Ollama to enable semantic search and visualization over healthcare data in FHIR format, a project currently participating in the InterSystems External Language Contest.
In this follow-up, we’ll see how I integrated Ollama for generating patient history summaries directly from structured FHIR data stored in IRIS, using lightweight local language models (LLMs) such as Llama 3.2:1B or Gemma 2:2B.
The goal was to build a completely local AI pipeline that can extract, format, and narrate patient histories while keeping data private and under full control.
All patient data used in this demo comes from FHIR bundles, which were parsed and loaded into IRIS via the IRIStool module. This approach makes it straightforward to query, transform, and vectorize healthcare data using familiar pandas operations in Python. If you’re curious about how I built this integration, check out my previous article Building a FHIR Vector Repository with InterSystems IRIS and Python through the IRIStool module.
Both IRIStool and FHIR Data Explorer are available on the InterSystems Open Exchange — and part of my contest submissions. If you find them useful, please consider voting for them!
The First Tool Call: The Hack That Sparked Agentic AI
Healthcare billing isn’t a pipeline. It’s a conversation about trust.
Every day, millions of clinical transactions flow from doctors’ keyboards to insurance ledgers. Standard health IT systems are built to count these transactions. They store them. They organize them.
They route them. But standard systems don't notice them.
We’ve built faster and faster databases to process claims, but we forgot to ask: Does this claim make sense?
Because we don’t ask in real-time, we’ve accepted a compromise. We pay first, wait six months, and then hire forensic auditors to find the mistakes.
I decided to write this down before time wiped out my memory
It's a very personal story as a partner, as a competitor, as an employee,
as a customer and finally as an external observer of InterSystems.
This is a rather personal view of the history before Caché.
It is in no sense meant to compete with the excellent books from Mike Kadow discussed in an earlier article.
We have different histories and so this is meant to create a different perspective of the past.
The whole story started in 1966 at MGH (Mass.General Hospital) on a PDP-7 Ser.#103
with 8K of memory (18-bit words) [today = 18K byte ] as a spare system.
"Serial Number 103 - was located in the basement of the now demolished Thayer Building,
currently [2014] the site of the Cox Cancer Center at MGH.
In .NET projects I usually rely on appsettings per environment. In IRIS Productions, settings are stored per component and seem tied to the namespace. What strategies do you use to manage different configurations across environments without manually changing settings every time you promote a Production?
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Labcorp Biopharmas Journey to and with Intersystems IRIS For Health @ Ready 2025
Hi all,
It's me again 😁. In the pervious article Writing a REST api service for exporting the generated FHIR bundle in JSON, we actually generated a resource DocumentReference, with the content data encoded in Base64
.png)
Question!! Is it possible to write a REST service for decoding it? Because I am very curious what is the message data talking about🤔🤔🤔
OK, Let's start!
1. Create a new utility class datagen.utli.decodefhirjson.cls for decoding the data inside the DocumentReference
ClassExtends%RegisteredObject2. Write a Python function decodebase64docref to
a. loop through the FHIR bundle
b.
Any plans for ODBC 3.8 support?


