#InterSystems IRIS

19 Followers · 5.7K Posts

InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.

New
Question Tim Stowe · 22 hr ago

I recently started using Cursor/VSCode with an IRIS container for development rather than Studio/Terminal.  
I've noticed that whenever I use %G (so basically all the time), when I exit %G, the terminal window simply closes, rather than returning me to my usual namespace prompt.  
%G also does not retain the command stack like it does in old school terminal, so I'm forced to constantly retype every global reference.  
Anyone figured out a solution to this?  It's a relatively minor problem in the grand scheme of things, but a time consuming and irritating one.  
 

0
0 17
Contestant
Article Pietro Di Leo · May 6 18m read

Introduction

Today, coding assistants like Claude, GitHub Copilot and Cursor have transformed the way developers write code. However, these tools are limited by being isolated from the systems and data sources that developers work with daily. This limitation can be overcome through the Model Context Protocol (MCP), an open standard designed to connect AI assistants to external data sources and tools in a secure and standardized way.

In this review article, we'll explore the current state-of-the-art regarding the MCP within the InterSystems ecosystem.

2
2 215
New
Article Hua Jian · May 15 1m read
  1. VS Code version 1.60.0 and above
  2. install below 3 extensions

  3. Ctrl + Shift + P show all commands

          

  1. InterSystems: Connect to Server

         

  1. input connection details 

    IP:localhost

        Port: 52773

       choose global & http connection method

       Input username and password of Intersystems management portal

       screenshot for success connection:

0
1 26
New
Question Sam Hall · May 14

What's the most straight-forward way to install this on an offline server? I'm trying to set this up on an Azure DevOps server to support our CI/CD pipelines. I've tried using zpm installing the tgz from the local filesystem. I note zpm seems to need a repo configured to install but I can't work out how to setup a bare-bones Filesystem repo (please point me to some documentation on this). I have no idea what I'm doing...

zpm:%SYS>install f:/tmp/zpm-registry-1.3.4.tgz 
  
ERROR! 'tmp' not found in any repository. 
zpm:%SYS>install zpm-registry-1.3.4.tgz 
  
ERROR! 'zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>install zpm-registry 
  
ERROR! 'zpm-registry' not found in any repository. 
zpm:%SYS>install "f:\tmp\zpm-registry-1.3.4.tgz" 
  
ERROR! 'f:\tmp\zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>list 
IPM (zpm) 0.10.6 
zpm:%SYS>repo 
  
  
1) Filesystem 
2) ORAS 
3) Remote Repository 
  
Which sort of repository do you wish to configure? 1 
Name:  local 
local 
        Source:                 F:\tmp\* 
        Enabled?                Yes 
        Available?              Yes 
        Use for Snapshots?      Yes 
        Use for Prereleases?    Yes 
        Is Read-Only?           No
  
local 
        Source:                 F:\tmp\* 
        Enabled?                Yes 
        Available?              Yes 
        Use for Snapshots?      Yes 
        Use for Prereleases?    Yes 
        Is Read-Only?           No

zpm:%SYS>install f:/tmp/zpm-registry-1.3.4.tgz 
  
ERROR! 'tmp' not found in any repository. 
zpm:%SYS>install zpm-registry-1.3.4.tgz 
  
ERROR! 'zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>install zpm-registry 
  
ERROR! 'zpm-registry' not found in any repository. 
zpm:%SYS>install "f:\tmp\zpm-registry-1.3.4.tgz" 
  
ERROR! 'f:\tmp\zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>info

Welcome to the Package Manager Shell (ZPM). Version: 0.10.6
Enter q/quit to exit the shell. Enter ?/help to view available commands
No registry configured
System Mode: <unset>
Mirror Status: NOTINIT
IRIS for Windows (x86-64) 2025.2 (Build 227U) Thu Jul 10 2025 11:01:07 EDT

Currently installed top-level modules are listed below:
IPM 0.10.6
2
0 26
New
Article Jorge Jaramillo Herrera · May 14 7m read

This article presents a straightforward approach to automatically and efficiently tune hyperparameters for machine learning models using Optuna as the optimisation framework. We explore how to use both Optuna’s native storage options and InterSystems IRIS as a database backend to track the progress of hyperparameter searches. We also show how MLflow can be used to monitor experiments and manage models through its tracking and model registry UI.

This article is based on this Kaggle Notebook, which you can run and directly edit yourself.

0
0 22
Contestant
Article Rob Ellis · May 5 5m read

When managing critical healthcare data through an integration engine you want to know the moment a queue starts backing up or a service drops. 

Unfortunately, this usually leads to an email inbox stuffed full of notifications that can sometimes seem impossible to maintain.

Well, I’ve not solved that problem. 

But I have created something that could help...

4
2 99
New
Job Victor Gordillo · May 14

Key Responsibilities & Requirements

Core Infrastructure & Cloud Management

  • Full-Stack Administration: Maintain and optimize both Linux (Ubuntu/RHEL) and Windows Server environments.
  • Cloud Orchestration: Take full ownership of VM cloud infrastructure, including provisioning, health monitoring, backup and resource scaling.
  • Policy Governance: Design and enforce comprehensive SysAdmin and Deployment policies (CI/CD pipelines, automated provisioning, and security hardening).

InterSystems Database Administration

  • Platform Expertise: Expert-level administration of both InterSystems IRIS and Caché.
0
0 28
Contestant
Article José Pereira · May 10 15m read

Data privacy regulations such as GDPR, LGPD, and HIPAA demand that organizations know exactly where Personally Identifiable Information (PII) lives inside their databases. Yet in practice, most teams rely on manual inventories, tribal knowledge, or external scanning tools that require data to leave the database engine — a process that itself creates privacy and security risks.

This article presents an MVP that takes a different approach: it runs PII detection inside InterSystems IRIS using Embedded Python, analyzing data where it lives and never exporting it to an external process.

3
0 89
New
Article Guillaume Rongier · May 12 7m read

InterSystems IRIS globals are one of the platform's core strengths: they store hierarchical data in a direct, ordered, and efficient structure. But when working from Python, manipulating globals can sometimes feel closer to a low-level API than to the natural habits of the language.

The iris-global-reference project provides a Python layer on top of IRIS globals. Its goal is simple: make access to globals more readable, more idiomatic, and easier to integrate into modern Python code, without hiding the underlying hierarchical model.

0
1 40
New
Question Mikhail (VetsEZ) Akselrod · May 11

What is wrong with the *inc file code below:

#define ArrayToString(%array,%out,%del)      set %out="" for { ##continue
                                                                                   set key=$order(%array("")) quit:key="" ##continue
                                                                                   set %out=%out_%del_key ##continue
                                                                               } quit

Compilation at calling classmethod as : Set tQStr = $$$ArrayToString(pQArray,tQStr,"##") brings error as:

8
0 73
New
Question Tom Scaletti · May 11

I need to analyse and improve the performance on some old SQL statements.

One statement uses NVL in the WHERE clause (no wonder why it's slow) but I still have to improve the performance and the data really needs to be the same when returned.

SELECT *
FROM TOURHead, TOURFIND, SGNRFIND, TNRHead
WHERE TOURHead.cl = '123'
AND TOURHead.cl = TOURFIND.cl
AND TOURHead.TOURNR = TOURFIND.TOURNR
AND TOURFIND.cl =* SGNRFIND.cl
AND TOURFIND.SGNR    =* SGNRFIND.SGNR
AND TOURFIND.cl = TNRHead.cl
AND NVL(TOURFIND.TNR, SGNRFIND.TNR) = TNRHead.TNR;

Really hope someone can help me with this one.

3
0 57
Contestant
Article Clinovera · May 9 10m read

Many organizations that operate systems built on legacy technology stacks are facing significant support and maintenance complexities. They are eager to modernize, but the transition is usually prohibitively complex and expensive. These challenges apply to virtually any legacy tech, while InterSystems-based systems have their own unique nuances.

Key modernization challenges include:

  • Refactoring massive amounts of code, including identifying and removing obsolete "dead code."
  • Managing complex business logic accumulated organically over decades.
0
0 127
Contestant
Article Matheus Augusto · Apr 20 6m read

Hello, community.

I've been working with Intersystem Caché for two years, and right away I was excited about the rich ecosystem that Caché provides. However, I was disappointed with calls using #call, and I understand that it was a limitation of the time. Well, the frustration is that #call returns null by default, meaning an AJAX request is executed, but there's no hook to retrieve the return from that request. The only way to retrieve the data from that request is by building a callback on the server side using &js<>.

1
1 87
New
Article Luis Angel Pérez Ramos · May 7 8m read

Introduction

In healthcare interoperability environments, InterSystems Health Connect typically contains critical components such as productions, business processes, operations, services, utility classes, routines, and other ObjectScript artifacts. Traditionally, many deployments of these components have been done manually, by copying classes, importing XML, or using administrative tools from the management portal.

1
2 81
New
Article David Hockenbroch · May 7 8m read

In our previous article, we explored the basics of unit testing in IRIS and the ways to apply it to a REST API. We even figured out how to test logic before finalizing network configurations and authentication, allowing us to focus solely on testing the API contents. Today, we will build upon that foundation and elevate our unit testing strategy by using another tool: %Populate .

At first glance, the %Populate class appears to be very simple. You can create a class that extends both %Persistent and %Populate and inherit a Populate method designed to generate randomized records.

0
0 46
New
Article Gabriel Ing · May 7 4m read

For those of you that weren't at READY last week, you may have missed the exciting announcement that the Early Access Program for AI Hub is officially open. It was announced during an amazing demo from @Benjamin De Boe and @Jeff Fried, I recommend catching up with this demo when the recording is released!  I had the opportunity to play with AI Hub in advance, and thought I might share an introduction with the community.

0
3 108
New
Announcement Ali Nasser · May 5

Hello everyone,

The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems IRIS SQL Professional exam. It is now available for purchase and scheduling in the InterSystems exam catalog. This exam is geared towards IRIS SQL experts, and it deals with a variety of advanced IRIS SQL topics that you can find in the exam page.

1
0 43
New
Question Davi Massaru Teixeira Muta · May 6

How can I remove UNIQUE NOT NULL from an existing column via DDL?

I currently have a table in production that was originally created via DDL, where the column was defined as UNIQUE NOT NULL:

CREATE TABLE database.Books ( ID %Library.UniqueIdentifier PRIMARY KEY, TagExternal VARCHAR('') UNIQUE NOT NULL,  

I now need to change this column so that it is no longer UNIQUE and no longer NOT NULL, making it equivalent to:

TagExternal VARCHAR(''),

1
0 28
Question Scott Roth · Apr 23

Was wondering if anyone had a Dynamic way to see if a Global is still being used by a Class File. 

We have been monitoring our Global Size recently, and I am trying to find problematic Class files that are not being cleaned up or used appropriately. I have come across some globals that do not seem to have a Class attached to them anymore, and instead of deleting globals 1 by 1, I was looking for a way that we could dynamically do this since the globals have data that is stale in them.

Thanks

Scott

7
0 83
New
Question Luis Gallardo · May 6

Hi! 
We are working on containerizing our IRIS product. We want to extract the message log that is shown in the terminal, but if possible, we want to format the output as JSON and include some extra fields from the instance to enhance our monitoring. Is this possible?
Any guide or example about it?
Thanks!

4
0 46
Contestant
Article André Dienes Friedrich · May 5 9m read

Abstract

Solar irradiance forecasting is critical for grid stability in photovoltaic (PV) power plants. This article replicates and extends the methodology of Lara-Benítez et al. (2023) "Short-term solar irradiance forecasting in streaming with deep learning" replacing the original offline simulation with a fully operational streaming pipeline built on InterSystems IRIS. We leverage IRIS Interoperability Productions as the streaming backbone, Embedded Python to run MLP, LSTM, and CNN deep learning models, and IntegratedML as an AutoML baseline.

0
0 46
New
Question John Murray · May 4

As an experiment in agentic coding in ObjectScript I'm using VS Code to try and create an implementation of an SFTP server.

SFTP is built on top of SSH, so the first phase involves implementing an SSH server. While working on the KEX part of that the agent (using GPT-5.3-Codex) reported:

  1. IRIS has what we already need for signing and hashing: RSASHASign, RSASHAVerify, RSAGetLastError, SHAHash, SHA1Hash, SHA3Hash.
  2. It does not list a Diffie-Hellman key exchange or modular exponentiation API in %SYSTEM.Encryption.

It then offered these options:

  1. Keep using IRIS APIs for cert/key/sign/hash.
1
0 69
New
Article Eduard Lebedyuk · May 4 2m read

Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.

Today I want to share a few approaches that will decrease your compilation time (especially if you're doing incremental/diff compilation rather than a full build).

Compiler flags and qualifiers

Code load and compilation are affected by a variety of flags and qualifiers. If you write deployment scripts for InterSystems platforms, I highly recommend reading them at least once through.

0
0 55
InterSystems Official Bob Kuszewski · Apr 29

Below is an update to the IRIS release calendar for 2026 and an early look at the planned changes for 2027. The key takeaway for 2026 is that maintenance release numbering will differ slightly from prior years.

2026: IRIS 2026.1 maintenance release numbering

  • July 2026: first maintenance release for IRIS 2026.1 (planned version: 2026.1.4)
  • October 2026: next maintenance release (planned version: 2026.1.5)
  • February 2027: following maintenance release (planned version: 2026.1.6)

This numbering change prepares us for the expanded maintenance cadence planned for 2027.

2
1 171