Welcome to the monthly recap of updates and releases to VS Code and InterSystems-related extensions relevant to IRIS developers.
Don’t forget, if you’re migrating from InterSystems Studio to VS Code, or want to deepen your knowledge, check out the VS Code training courses from George James Software: georgejames.com/vscode-training.
This recap covers the four VS Code releases in May: v1.119, v1.120, v1.121, and v1.122.
Editor and navigation
Hi Community!
We’ve just added some 🎁 new rewards on Global Masters!
Take a moment to explore the Rewards section. Exciting Spring Rewards – Grab Yours now!
Please note that our prize selection varies by region and country. We kindly ask you to review the available options for your location.
Not a Global Masters member yet? Join here using your InterSystems SSO credentials.
Hi all,
I'm working on a DICOM router in InterSystems IRIS, based on the workshop-iris-dicom-interop (https://github.com/intersystems-ib/workshop-iris-dicom-interop) example on GitHub. I'm using EnsLib.DICOM.Process to route incoming images to different PACS destinations, where the target system is decided at runtime via a database lookup.
I've run into two issues I'd love some guidance on:
1. Dynamically changing the destination without disrupting transactions
Right now, if I want to send to a new PACS target, I'd need to add a new Business Operation and call

In the previous IoP article, I showed how IoP can expose Python messages to DTL by generating JSON schemas. That is useful when the message is primarily a Python object and we want the IRIS tooling to understand its structure.
This time, the direction is a little different.
Starting with IoP 3.7.1, a PersistentMessage can now be a native IRIS message body class. The Python class is still the source code you write, but the generated IRIS class extends Ens.MessageBody
READY is right around the corner, and this year the Application Services team from InterSystems will be hosting a IPM Users GroupMeeting during the conference!This will be held Wednesday, April 29th during lunch from 12:30 – 1:30 (lunch will be served at the meeting room).
IPM version 0.10.7 was released on May 29th, 2026. As usual, you can check it out on the GitHub page or through the Community Registry.
Highlighted Features
Utility Scripts iriscli and ipm
IPM is now bundled with two convenience scripts that are runnable from a standard terminal. iriscli launches an interactive IRIS terminal and runs IPM commands directly. These are automatically installed to both ~/.local/bin/ and , so they work inside and outside of containers (Unix/Linux only).
Examples:
I have several Business Operations that share similar behavior, like building HTTP headers or parsing a specific response format. In C# I would extract this into a service class or a base class. What is the recommended way to do this in IRIS? Should I use a utility class, a common superclass, or is there another pattern the community prefers?
I have a Business Process that needs to call an external API that may take several seconds to respond. I'm worried that keeping the BP blocked waiting for the response could affect the overall Production throughput. Is there a recommended pattern for handling async calls inside a BPL or custom BP class to avoid this kind of bottleneck?
Hey everyone.
My team and I have a rare opportunity to start from scratch, and I am keen to know what things others that have gone through a similar process did differently. Obviously there's the immediate benefit of losing any technical debt that has built up over 10+ years of an ever changing environment along with many organisational changes and merges, but I'm thinking about the things that we can do to make life a lot easier for the next 10+ years.
Hi, we are trying to adapt the solution to use the IKO but we have problems deploying the webgateway on our company clusters, our clusters requires to have a specific definition on the securityContext due security concerns, it's possible to set those values trough the IrisCluster CRD? or we cannot use it from it? Should I open a WRC to handle this?

create Pod iris-webgateway-0 in StatefulSet iris-webgateway failed error: pods "iris-webgateway-0" is forbidden: ValidatingAdmissionPolicy 'prevent-root-run' with binding 'prevent-root-run' denied request: Containers should run with securityContext.runAsNonRoot or securityContext.runAsUser != 0. To learn more, check out the documentation: https://build.roche.com...I'm approaching the need to send notifications through a Microsoft Exchange or Gmail servers. however my last foray into this, I was blocked due to an issue inside my SSL certificate is what I thought after the attempt.
So my attention will be on trying to match the cryptography in the SSL certificate I produce compared to the mail server I'm trying to use.
Has anyone else had an issue with this approach? My other option is Amazon SNS potentially. I do have a functional MS Teams channel for alerts, and can make different notification channels as well.
Any help or insights are appreciated.
InterSystems Kubernetes Operator (IKO) 3.9 is now Generally Available. IKO 3.9 adds new functionality along with numerous bug fixes and security updates. Highlights include:
- podTemplate initContainers can now specify volumeMounts
- computeAffinity allows compute nodes to move to the zone of your primary data node
Follow the Installation Guide for guidance on how to download, install, and get started with IKO. The complete IKO 3.9 documentation gives you more information about IKO and using it with InterSystems IRIS and InterSystems IRIS for Health.
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Streamlined Source Control with Embedded Git on InterSystems @ Ready 2025
Are you ready to make a difference? Choose to work for one of the most trusted companies in Kansas.
Why Join Us?
- Make a Positive Impact: Your work will directly contribute to the health and well-being of Kansans.
- FamilyComes First: Total rewards package that promotes the idea of family first for all employees. Paid vacation and sick leave with paid maternity and paternity available immediately upon hire
- Professional Growth Opportunities: Advance your career with ongoing training and development programs.
HealthShare Unified Care Record Fundamentals – In Person* June 22-26, 2026
*Please review the important prerequisite requirements for this class prior to registering.
- Learn the architecture, configuration, and management of HealthShare Unified Care Record.
- This 5-day course teaches HealthShare Unified Care Record users and integrators the HealthShare Unified Care Record architecture and administration tasks.
- The course also includes how to install HealthShare Unified Care Record.
- This course is intended for HealthShare Unified Care Record developers, integrators, administrators and managers.
#InterSystems Demo Games entry
⏯️ Text-to-SQL and MQTT Monitoring
A text-to-sql demo on mqtt data analytics with RAG.
🗣Presenter: @Jeff Liu, Sales Engineer, InterSystems
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.
We have a long running InterSystems Engine with an Interface Development Team. We have implemented basic interface and code development processes using mostly manually created helper tasks and functions.
We are looking to upgrade these processes by installing and starting to use Embedded GIT in our DEV spaces first. We will not use it to deploy changes to PRODUCTION at first, keeping our same current process that the team is very comfortable with.
We plan to start by using the BASIC mode in GIT, to avoid confusion over multiple branches and other version control functions.
What tools or techniques do you use to debug a Production during development? I know the Management Portal shows the message queue and event log, but I'm wondering if there are better ways to trace a message through the full BS > BP > BO flow without relying only on logs.
Hello,
Looking for some additional help, maybe someone who has experience with this before, in setting up and configuring the Web Gateway with Kerberos.
Have read through the documentation (at the link below) and it's a good start but seems there are some details missing, or I'm not clear on.
Questions:
- Is there a external enterprise Kerberos server required, or is this set up contained within the local server?
- Is there a step-by-step instructions on what to do and configure to successfully complete this?
- Are there there config changes necessary for Apache?
Hello everyone, I am working with the VSCode extension by connecting to clients' IRIS servers remotely with my personal user (pdileo). However, one of the development environments was recently updated and my user was created for the second time with a different password.
I noticed that the VSCode extension no longer allows me to log in because the password has been changed, without asking me for a new one, only showing the 401 AxiosError.
Vector search is a retrieval method that converts text, images, audio, and other data into numeric vectors using an AI model, and then searches for items that are semantically close. It enables “semantic similarity search” from free text, which is difficult with keyword search alone.
However, in real use, I encountered cases where results that are “close in meaning” but logically the opposite appeared near the top of the search results.
This is a serious issue in situations where affirmation vs. negation matters. If the system returns the wrong answer, the impact can be significant, so we cannot ignore this problem.
This article does not propose a new algorithm. I wrote it to share a practical way I found useful when semantic search fails due to negation.
TL;DR: This article demonstrates how to run GraphRAG-style hybrid retrieval—combining vector similarity, graph traversal, and full-text search—entirely within InterSystems IRIS using the
iris-vector-graphpackage. We use a fraud detection scenario to show how graph patterns reveal what vector search alone would miss.
Why Fraud Detection Needs Graphs
Every year, businesses and consumers lose billions to fraud. In 2024 alone, consumers reported $12.5 billion lost—a 25% increase year over year. What makes modern fraud so difficult to detect is that fraudsters rarely work alone.
Hi Developers!
Here are the technology bonuses for the InterSystems Programming Contest: AI Agents for FHIR that will give you extra points in the voting:
- Implement suggested task - 5
- InterSystems FHIR Server usage - 2
- Vector Search usage - 4
- Embedded Python - 3
- LLM AI or LangChain usage: Chat GPT, Bard, and others - 3
- Docker container usage - 2
- ZPM Package deployment - 2
- Online Demo - 2
- Implement InterSystems Community Idea - 4
- Find a bug in Vector Search or Embedded Python - 2
- First Article on Developer Community - 2
- Second Article On DC - 1
- First Time Contribution - 3
- Video on YouTube - 3
Welcome back to a series of introductory articles on AI Hub, the new product feature currently in an early access program! (links: EAP Site for download, documentation)
In the last article, we covered how to create agents and agent tools directly in ObjectScript using the new %AI classes. However, sometimes, instead of creating a new agent, you just want to add some custom tools to an existing agent so you can ask your local claude code, codex, copilot or other agent of choice to query your data directly. This is where MCP Servers might come in.
Hi Community,
In traditional InterSystems SQL, I can use the %NOINDEX keyword during a bulk INSERT to improve performance and then run BUILD INDEX %ALL afterward to populate the indices.
I am looking to implement a similar strategy for an InterSystems FHIR Server.
- Is there a way to import/save FHIR resources while skipping the search table extraction (the FHIR version of
%NOINDEX)? - Once the data is loaded, what is the correct programmatic way to "rebuild" the search tables?
Thank you!
Hi Community,
Interoperability metrics were enabled for a production using ##class(Ens.Util.Statistics).EnableSAMForNamespace(). However, after running DisableSAMForNamespace() and DisableStatsForProduction(), the metrics continue to appear in the endpoint output.
Is there a way to completely stop these interoperability metrics from displaying in the API metrics stream? Is there an additional step or cache clear required?
I'm connecting to Intersystems Cache database using Intersystems JDBC Driver. There are several network interfaces on client host. I need to make all the Cache traffic to go through a particular interface. Is there a way to choose which network interface to use for Cache connection via JDBC Driver API or somehow via Java code? The approach to use ip route add is suitable but I'm looking for a Java-way like setLocalAddress() on some APIs or something.

