#InterSystems IRIS for Health

0 Followers · 2.3K Posts

InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.

Question Jonathan Lent · Aug 13, 2025

The operations manager in our company was using structured logging in IRIS to tail information to an on-prem monitoring tool and started to get concerned with the ever-growing size of the output file. He just leaned across the aisle here and informed me that the output file has no mechanism for rolling this file over at a certain point for archival or disposal. Sure enough, I can't find any documentation to refute this. If we were on Linux, I suppose we could get around this by using syslog or even taking advantage of the fact that the filesystem does not always to a lock on the output file

1
0 43
Question TAZ.R · Jul 16, 2025

Hello Community,

I’m working on an InterSystems IRIS production that needs to call an external API using OAuth client credentials (client_id and client_secret). For security reasons, I must pass these credentials via environment variables in my Docker container.

In the IRIS terminal, I can successfully retrieve these environment variables using $System.Util.GetEnviron("api-clientid") and $System.Util.GetEnviron("api-clientsecret"). However, inside my Business Operation class (OnMessage method), these environment variables return empty strings.

13
1 125
Article Ashok Kumar T · Jul 21, 2025 13m read

This article is a continuation of the IRIS JSON project and features additional methods and insights.

Let's continue with the instance methods

%GetTypeOf(Key)

This instance method is used to determine the JSON data type of the %DynamicObject or %DynamicArray.

It returns one of the following strings:

1
3 239
Question Andre Ribera · Mar 25, 2025

Been testing out the Production Validator toolkit, just to see what we can/not do with it. Seems really interesting and there seem to be some use cases for it that can really streamline some upgrades (or at least parts of upgrades) but I was running into so many hurdles with the documentation. I am curious if anyone else has used it.
Did you experience any issues getting it working? Any clarification that you would have liked in the documentation? any use cases that you worked through that made it particularly valuable? etc?
The hurdles I experienced included:

6
0 159
Discussion Infant Livingston · Jul 10, 2025

Hello Community,

I'm currently planning a system upgrade from Caché (2018.1.8.766) to InterSystems IRIS (2024.1). The environment consists of one database server and three application servers connected via ECP.

I’m considering two possible upgrade approaches:

  1. Upgrade the application servers to IRIS first.
    Since IRIS is expected to be backward-compatible with Caché over ECP, the database server would remain on Caché temporarily.
  2. Upgrade the database server first,
    followed by upgrading the application servers, as they don’t store data.
8
0 138
Question alon levi · Jul 31, 2025

Hi everyone,

I'm developing an Ensemble process that sends user data from a Business Process to a Business Operation using EnsLib.SQL.OutboundAdapter. The operation is supposed to call a stored procedure on a SQL Server.

The stored procedure expects 3 parameters:
@FirstName, @LastName, and @Email.

The procedure works fine when executed directly from SQL Server Management Studio.

However, when I trigger it via Ensemble, I get the following error:

[SQL Server] Incorrect syntax near 'email@domain.com'

5
0 73
Article Developer Community Admin · Aug 11, 2025 2m read

Data is at the heart of the digital transformation sweeping healthcare. Radical change requires a new foundation to handle the massive data demands of modern healthcare.

Time to market is crucial as you develop the next therapeutic breakthroughs, genomic insights, and intelligent clinical workflows. You need to deliver them now.

That’s why we’ve extended the power of our InterSystems IRIS Data Platform to address the unique characteristics of healthcare information. InterSystems IRIS for Health is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data.

IRIS Health diagram

0
0 122
Question JESUS (COGNOSANTE) BRAVO · Jun 24, 2025

I installed and configure CodeTidy in my local development environment, without InterSystems source-control (git-source-control) and only git for source control.

I would like to use only CodeTidy to stablish an automated  Linting and Code Style Validation for InterSystems ObjectScript code triggered by GitHub Actions.

Could you shed some light on how to accomplish that?

4
0 101
Question Dmitrii Baranov · Aug 8, 2025

I have a table with 5M rows, the table contains lab observation codes and display names, both columns have type varchar(2000) and both are indexed.

The query looks like:

select code_1_text, count(code_1_text)
  from demo.observation_lab
  group by code_1_text
  order by 2 desc

The table contains ~1000 distinct display names.

It takes 4 minutes for the query to complete on a VM with some pretty old Xeon, 4 cores, 32G RAM, NVME SSD and Linux on board.

Isn't it too slow? During the execution I see no active hardware resources consumption - CPU load is 12-25%, RAM is almost free, swap file is not used.

The execution plan is as follows:

Relative Cost = 3098072
• Call module F, which populates temp-file B.
• Call module J, which populates temp-file C.
• Read temp-file C, looping on count([value]) and a counter.
• For each row:
    - Output the row.
Module: F

• Divide master map demo.observation_lab.IDKEY into subranges of IDs.
• Call module A in parallel on each subrange, piping results into temp-file D.
• Read temp-file D, looping on a counter.
• For each row:
    - Check distinct values for %SQLUPPER(code_1_text) using temp-file B,
        subscripted by a hash of the %SQLUPPER(code_1_text).
    - For each distinct row:
        · Add a row to temp-file B, subscripted by the hash,
            with node data of %SQLUPPER(code_1_text).
    - Update the accumulated count([value]) in temp-file B,
        subscripted by the hash
Module: J

• Read temp-file B, looping on the hash subscript.
• For each row:
    - Add a row to temp-file C, subscripted by count([value]) and a counter,
        with node data of the uncollate expression.
Module: A

• Call module B, which populates temp-file A.
• Read temp-file A, looping on the hash subscript.
• For each row:
    - Add a row to temp-file D, subscripted by a counter, with node data of %SQLUPPER(code_1_text) and count([value]).
Module: B

• Read master map demo.observation_lab.IDKEY, looping on the subrange of ID.
• For each row:
    - Check distinct values for %SQLUPPER(code_1_text) using temp-file A,
        subscripted by a hash of the %SQLUPPER(code_1_text).
    - For each distinct row:
        · Add a row to temp-file A, subscripted by the hash,
            with node data of %SQLUPPER(code_1_text).
    - Update the accumulated count([value]) in temp-file A,
        subscripted by the hash

Why is it using temp files instead of RAM?

Also, if I rewrite the query to aggregate lab observation codes (which are much shorter than display names) the query starts fetching almost immediately.

4
0 93
Question Srinath Raghavendran · Aug 6, 2025

Trying to extract the narrative text from large CCDA files using EnsLib.EDI.XML.Document:GetValueAt method

Getting a MAXSTRING error from the GetValueAt method.. Tried alternate by using GetSubDocumentAt and put it to string. Still it is giving a Invalid OREF method. Is there any limitation on these OOB methods. Also looking for ideas to extract it

1
0 29
Article Ashok Kumar T · Aug 5, 2025 4m read

IrisTest is a light weight, powerful, user-friendly tool designed to simplify unit test report generation. It includes an interactive shell and API to facilitate communication, allowing developers to easily manage and generate reports for their test runs in various formats. Whether you're debugging or creating detailed reports for analysis, IrisTest makes the process smooth and efficient!

Table of Contents

  • Overview
  • Key Features
  • Shell Commands
  • Usage
  • Report Formats
  • Installation
  • Configuration
  • Examples
  • Commands
  • Contributing
  • License

Overview

0
0 59
Article Harshitha · Aug 3, 2025 2m read

Working in healthcare IT as a young developer, especially on InterSystems TrakCare, you quickly realize one thing: it’s not just about HL7 messages or backend integrations. A hugepart of making TrakCare work smoothly for hospitals comes down to how it’s configured, customized, and supported on the application side.

That’s where people like me come in—techno-functional developers who understand both the tech and how it impacts actual hospital workflows.

We’re Not Just Techies (or Functional Consultants)

Our role sits right in the middle. We're the ones:

1
2 77
Question Oliver Wilms · Apr 21, 2025

I am brand new to using AI. I downloaded some medical visit progress notes from my Patient Portal. I extracted text from PDF files. I found a YouTube video that showed how to extract metadata using an OpenAI query / prompt such as this one:

ollama-ai-iris/data/prompts/medical_progress_notes_prompt.txt at main · oliverwilms/ollama-ai-iris
 

I combined @Rodolfo Pscheidt Jr https://github.com/RodolfoPscheidtJr/ollama-ai-iris with some files from @Guillaume Rongier https://openexchange.intersystems.com/package/iris-rag-demo.

I attempted to run

1
0 128
Announcement John McBride · Jul 24, 2024

Overview

The extension and source code are now available
After having some discussions at Global Summit and using a lot of package managers in my day to day development (npm,nuget,Chocolatey, etc) in addition to recently using the InterSystems Package Manager for some CICD process I'm building using Intersystems IRIS and IRIS 4 Health, I wanted an easy and integrated way to search/view/install packages related to the Intersystems tech stack.

3
4 191
Question André-Claude Gendron · Jul 31, 2025

Hi everyone,

I’m working with an existing InterSystems IRIS server that hosts several web applications and namespace-specific code and data. I’d like to reverse-engineer the current environment into a %Installer.Manifest file so I can store it in Git and manage its changes.

My goal is to:

  • Track the application setup and configuration in version control
  • Rebuild environments consistently (namespaces, CSP apps, security roles, etc.)
  • Possibly automate deployments later on
1
2 60
Question Elisha Gould · Apr 4, 2022

We are attempting to update some old FTP interfaces to use FTPS and having an issue with an outbound operation to a FileZilla server.

The connection to the the server works, however it fails to transfer files with the error "TLS session of data connection not resumed."

It appears that "TLS session resumption" is no longer optional in FileZilla Server, and I cannot find any details in the IRIS documentation about it.

Does IRIS support TLS session resumption, or know how to set up FTPS to a recent install of FileZilla Server?

4
0 987
Question Elisha Gould · Jul 28, 2025

With Intersystems indicating ZEN pages are being deprecated, I'm looking to find out how to add custom configuration pages for the management portal using the new method similar to the new Rules editor.

From what I can tell the new method uses rest pages using JWT Authentication, and has a mechanism to use the session cookie to generate the JWT token.
I've gotten the REST part done as per:

Creating a REST API with JWT Authentication in ObjectScript | InterSystems
 

0
0 69
Article Ashok Kumar T · Jun 30, 2025 23m read

Overview

Fast Healthcare Interoperability Resources (FHIR) is a standardized framework developed by HL7 International to facilitate the exchange of healthcare data in a flexible, developer-friendly, and modern way. It leverages contemporary web technologies to ensure seamless integration and communication across healthcare systems.

Key FHIR Technologies

  • RESTful APIs for resource interaction
  • JSON and XML for data representation
  • OAuth2 for secure authorization and authentication
1
6 352
Announcement Daniel Cole · Jul 25, 2025

#InterSystems Demo Games entry


⏯️ Healthcare AI Agent Platform

An AI Agent Platform specifically built for the healthcare industry that requires no technical background to utilize. By simply defining a goal or initiative, a swarm of AI agents will conduct operations to achieve the stated end goal and measure their own efficacy along the way to continuously improve. Healthcare organizations today are facing a myriad of challenges that impact financial and clinical performance. These problems are well known, and there is a general consensus on how many of them can be alleviated with AI. However, healthcare organizations face unique challenges in implementing AI:

  • HIPAA/Regulatory compliance - Data quality & accessibility - Embedding AI into current clinical workflows, i.e. integrating AI in such a way that it does not require clinicians to re-orient their processes. It should complement existing workflows, not disrupt them.
  • Implementation cost/high technical barrier of entry – staff needed to build and maintain AI processes can become expensive
  • Ambiguous ROI calculation – careful considerations must be made to properly measure and understand the efficacy of AI integrations. InterSystems is uniquely positioned to address these challenges, enabling healthcare organizations to implement AI with minimal burden.

Presenters:
🗣 @Daniel Cole, Sales Engineer, InterSystems
🗣 @Jeff Morgan, Sales Engineer, InterSystems
🗣 @Raef Youssef, Sales Engineer, InterSystems
🗣 @Jose Ruperez, Senior Sales Engineer, InterSystems
🗣 @Harry Tong, Principal Solutions Architect, InterSystems
🗣 @Nicholai Mitchko, Sales Engineering Manager, InterSystems

0
0 110
Article Mihoko Iijima · Oct 3, 2024 3m read

InterSystems FAQ rubric

You can check the free disk space at any time using the system utility class: SYS.Database and query: FreeSpace.

Here's how to try it in the IRIS terminal (go to the %SYS namespace and then run it):

zn"%SYS"set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
set rset=stmt.%Execute()
do rset.%Display()

The output result example is as follows:

*In the command execution example, all databases are located on the same disk, so the free disk space (DiskFreeSpace) returns the same value.

1
1 302
Question Jonathan Lent · Jul 24, 2025

I feel I may be in the "people unclear on the concept" group here.

System Default Settings is a great mechanism, and we use some custom code to deploy it in our pipeline after environment specific changes have been applied to the content. However, we are trying our best to reduce the amount of custom code we use in our system that does not relate directly to the business. For CI/CD, this means we are trying to leverage IPM for the heavy lifting.

4
0 61
Job Mohammad Ali · Jul 25, 2025

We are looking for experienced InterSystems IRIS for Health developers to join a long-term healthcare technology project. You must be USA-based and available to work full-time remotely.

🔹 Requirements:

  • Strong experience with InterSystems IRIS for Health
  • Solid understanding of HL7, FHIR, and healthcare integration workflows
  • Proficiency in ObjectScript, and Python/Java/SQL
  • Prior experience with EHR, LIS, or other clinical systems is a big plus
  • Must be based in the United States

Interested candidates can DM here or email on: ali.ceo@softhawker.com
 

0
0 70
Article Vachan C Rannore · Jul 24, 2025 1m read

Are you curious about how to run Python scripts directly in your InterSystems IRIS or Caché terminal? 🤔 Good news it's easy! 😆 IRIS supports Embedded Python, allowing you to use Python interactively within its terminal environment. 

How to access the Python Shell?

To launch the Python shell from the IRIS terminal, simply run the following command:

do##class(%SYS.Python).Shell()

This opens an interactive Python shell inside the IRIS terminal. From here, you can write and run Python code just as you would in a normal Python environment.

Exiting the Shell:

>>> quit()

4
1 135