I have a locally saved multiple saved .cls file. How can I bundle them together as a XML file programmatically (ObjectScript) so that I can import in the next environment. Does anyone have a sample code?
Hi,
When we open a terminal in IRIS, we are entering the ObjectScript shell. Within this shell, we can execute IRIS commands, such as:
In other words, the ObjectScript command is executed in the current shell. But it's always good to remember that IRIS has other shells
- SQL
- Python
- TSQL
- MDX
One very interesting aspect is shortcuts. We can access these shells through their calls or via shortcuts, as shown in the table below:
|
Shell |
Call |
Shortcut |
|
SQL |
Do $SYSTEM.SQL.Shell() |
:sql |
|
Python |
Do $SYSTEM.Python.Shell |
:py |
|
TSQL |
Do $SYSTEM. |

As part of improvements regarding CCR usage and usability, certain transitions are now blocked when a CCR Record has undeployed ItemSets for required Environments.
To promote best practice, when a Tier 1 or Tier 2 CCR moves between Environments, it is important that ItemSets are deployed to required Environments before confirming that the CCR has successfully been implemented in the next Environment. Previously, when progressing a CCR from one Environment to the next, users were not required to deploy ItemSets before performing markMoveToXXXXComplete or markCANCELComplete transitions. Now
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Optimizing Parallel Aggregation Using Shared Globals @ Ready 2025
In today’s healthcare data landscape, FHIR has become the standard for structured clinical data exchange. However, while FHIR excels at interoperability, its JSON format makes analytics challenging—including FHIR QuestionnaireResponse.
This project demonstrates how to transform FHIR QuestionnaireResponse data from nested JSON into relational SQL tables and vector embeddings. By integrating the InterSystems IRIS FHIR SQL Builder and Vector Search, we unlock the semantic meaning behind patient answers.
Three Steps to Build It
1. Design and Collect the Questionnaire
Start by designing
Terminal Commands for Production:
- Production Start, Stop, Update, Recover and Clean Production
Do ##class(Ens.Director).StartProduction(“ProductionName”)
Do ##class(Ens.Director).StopProduction()
Do ##class(Ens.Director).UpdateProduction()
Do ##class(Ens.Director).RecoverProduction()
Do ##class(Ens.Director).CleanProduction()
Abort Messages in the queue:
d ##class(Ens.Queue).AbortQueue(“Component Name”)
Get InstanceName :
W !,##class(%SYS.System).GetUniqueInstanceName()
Get Node Name:
W !,##class(%SYS.System).GetNodeName()
Terminat
Hola amigo! 😊 Cómo estás hoy,
I would like to share a small part of my learnings from my first ever official project: POS/EDC machine integration with our billing system. This was an exciting challenge where I got hands-on experience working with APIs and vendors.
How does a Payment Machine actually work?
It's simple, start by initiating/creating a transaction, then retrieve its payment status.
Here, initiate/create refers to POST method and Retrieve refers to GET.
IRIS 2023.3.0 ASQ
Abstract Set Query, ASQ, is a super set of JSON Path Language, JPL, which was first introduced by the 2016 ISO SQL Standard. JPL is only defined within the context of SQL. In 2023.3, we introduced classes that implement ASQ. It works on any implementation of %Library.AbstractSet. The complete syntax for ASQ will be documented later. This is just a quick introduction to a few of its features. This implementation comes with a nice utility as well. You will know it when you see it!
First, let's get some data from the NHL database. This step requires a valid SSL/TLS configuration
Hi,
We currently have a zen page we created to show all existing tasks and their states (Running or Stopped) as below, is the a way to do the same and create a page where we can list all Business Services of a production, state and to either Stop or restart them?
.png)
Thanks
In review of the previous quarter, several notable developments were highlighted that remain relevant for this quarter’s report.
- Beginning with 2025.3, OpenSSL 3 will be standard across supported platforms; SUSE 15 sp6 becomes the required OS for organizations utilizing SUSE.
- For 2025.3, revised minimum CPU specifications will take effect.
- Windows Server 2016 will not be supported in 2025.3.
For those newly acquainted with these communications, this update provides details about recent enhancements as well as anticipated changes based on current information; however, future projectio
For developers building external applications, especially those using familiar technologies like C#, ODBC (Open Database Connectivity) is a crucial, standardized bridge to any relational database, including InterSystems IRIS. While InterSystems offers its own native ADO.NET provider, the ODBC driver is often the most straightforward path for integration with generic database tools and frameworks.
Here is a step-by-step guide to getting your C# application connected to an IRIS instance using the ODBC driver, focusing on DSN-less connection string.
Step 1: Install the InterSystems IRIS ODBC Driver
The InterSystems ODBC driver is installed by default when you install InterSystems IRIS on a Windows machine.
- If IRIS is on the same machine: The driver is already present.
- If IRIS is on a remote server: You must download and install the standalone ODBC client driver package for your client operating system (Windows, Linux, or macOS) and bitness (32-bit or 64-bit) from WRC website if you're a client or by installing Client components and copying ODBC driver.
Once installed, you can verify its presence in the ODBC Data Source Administrator tool on Windows (look for the InterSystems IRIS ODBC35 driver).
.png)
Vibe the Module, Not the Data
While working with the FHIR to OMOP Service, I've seen good FHIR synthetic data being created using commercial LLM's etc, custom tailored for ConditionOnset with the typical amazement on return, but witnessed some questionable trust first hand on a call. This approach also falls short generating gigantic payloads so I can go back to my interests on the backend and ensure smooth data transition.
So imposters syndrome quickly surfaced after a couple day hiatus at the 2025 OHDSI Collaborator Showcase out in New Brunswick last October, so a new approach to genera
.png)
Hi Community,
In the first part of this series, we examined the fundamentals of Interoperability on Python (IoP), specifically how it enables us to construct such interoperability elements as business services, processes, and operations using pure Python.
Now, we are ready to take things a step further. Real-world integration scenarios extend beyond simple message handoffs.They involve scheduled polling, custom message structures, decision logic, filtering, and configuration handling.In this article, we will delve into these more advanced IoP capabilities and demonstrate how to create and run a more complex interoperability flow using only Python.
To make it practical, we will build a comprehensive example: The Reddit Post Analyzer Production. The concept is straightforward: continuously retrieving the latest submissions from a chosen subreddit, filtering them based on popularity, adding extra tags to them, and sending them off for storage or further analysis.
The ultimate goal here is a reliable, self-running data ingestion pipeline. All major parts (the Business Service, Business Process, and Business Operation) are implemented in Python, showcasing how to use IoP as a Python-first integration methodology.
Strengthening your connections with others in the field can give you new insights and spark innovation—and it can be fun!.
🤝How have you built a network that supports your own growth?
Our certification subject matter experts recently shared what they learned by joining others in the field:
Hi, Community!
If you need to help providers meet a payer's documentation requirements, see how the Documentation Templates and Rules (DTR) module of the InterSystems Payer Services ePrior Authorization solution can help:
Documentation Templates and Rules
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/SKZ_pz6GkUY?utm_source=youtube&utm_medium=social&utm_campaign=SKZ_pz6GkUY" width="640"></iframe>
Hey Community!
We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:
Hi everyone,
I'm getting prepared to take the following certification exam: "InterSystems IRIS Development Professional".
Can you give some advice on how to prepare (aside from the official course page: https://www.intersystems.com/certifications/intersystems-iris-development-professional/ )?
Do you have examples of quiz questions that simulate the real exam or any material that helped you getting prepared?
Thanks you in advance,
Arber
I'm pleased to announce version 2.6.0 of the VS Code ObjectScript extension, containing a number of enhancements that make a developer's life easier. Some highlights are described below. As always, find the full list of modifications in the CHANGELOG, including many bug and vulnerability fixes.
Switch namespaces quickly
Thanks to @Olli Tanskanen at partner company JediSoft Oy for this enhancement! You can now switch namespaces from the Server Actions menu (when using client-side folders only).
Fast, asynchronous server-side search
This one requires InterSystems IRIS 2023.x and the proposed
.png)
.png)
Now Under Heavy Rotation, Your IrisCluster Secrets
A few days before Kubecon, the external-secrets-operator went GA with 1.0.0 and is set to ride shotgun for Kubernetes Secrets Management and put Vault in the backseat. You can glance at the "Providers" list for the solution and immediatley understand that you can leave the "which Secrets Manager" conversation to others while you do your job utilizing external secrets on your IrisCluster workloads, which by my count with the operator and a single IrisCluster is more than a fistful of secrets of different types, even under a single tenant. So let them sprawl, the secrets managers that is, not the secrets.
.png)
My issue is that I don't know why Ensemble processes incoming data in the wrong encoding.
Update: Issue was solved, I think, see my answer below.
our customer uploads UTF-8 encoded CSV files to our sFTP server. When I view the files on the server side, the scandinavian characters Ä and Ö (A and O with two dots on top of themselves, respectively) display correctly in the source file. When Ensemble downloads the files using a FTP Service, the characters display incorrectly in Ensemble.
I am unable to pinpoint the reason for this behavior and I was hoping this is easily solvable.
Edit: two additiona
Hello
I'm using from visual code. My routines are server-side files. If I try to search patterns in files (e.g find all routines containing the string "version=3") , the search runs but didn't find anything. If I do the same search from the management portal, it finds all routines including this pattern with a good performance.
regards Matthias
Modern data architectures utilize real-time data capture, transformation, movement, and loading solutions to build data lakes, analytical warehouses, and big data repositories. It enables the analysis of data from various sources without impacting the operations that use them. To achieve this, establishing a continuous, scalable, elastic, and robust data flow is essential. The most prevalent method for that is through the CDC (Change Data Capture) technique. CDC monitors for small data set production, automatically captures this data, and delivers it to one or more recipients, including analytical data repositories. The major benefit is the elimination of the D+1 delay in analysis, as data is detected at the source as soon as it is produced, and later is replicated to the destination.
This article will demonstrate the two most common data sources for CDC scenarios, both as a source and a destination. For the data source (origin), we will explore the CDC in SQL databases and CSV files. For the data destination, we will use a columnar database (a typical high-performance analytical database scenario) and a Kafka topic (a standard approach for streaming data to the cloud and/or to multiple real-time data consumers).
Overview
This article will provide a sample for the following interoperability scenario:
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ Data Platforms Vision and Roadmap - The AI Era Runs on Data @ READY 2025
- HealthShare Unified Care Record Overview – Virtual December 15-16, 2025
- Overview of HealthShare Unified Care Record® architecture, data flows, consent, and notifications
- This 2-day course provides an overview of HealthShare Unified Care Record®. It focuses on architecture, data flows, consent, alerts, user management and terminology.
- This non-technical course provides an introduction to the product for those who do not need the detail provided in the 5-day HealthShare Unified Care Record Fundamentals class.
- This course is intended for those needing an understanding of Unified Care Rec
- Building and Managing HL7 Integrations – In PersonDecember 15-19, 2025 9:00am-5:00pm EST
- Build, configure, and manage HL7® V2 interfaces using InterSystems integration technologies.
- This healthcare-focused 5-day course teaches implementation partners, integrators and analysts how to rapidly build HL7 integration solutions.
- Students build a production that processes and routes HL7 messages.
- Students learn how to work with the pre-built HL7 business services, business processes and business operations to receive and send HL7 messages.
- Students also learn how to transform HL7 message
Hey Community,
We're pleased to invite everyone to the upcoming kick-off Webinar for InterSystems "Bringing Ideas to Reality" Contest!
During the webinar, our speakers will explore the Community Opportunity Ideas from the InterSystems Ideas Portal, which are the topics of this programming contest. They will show how to develop, build, and deploy applications using the InterSystems IRIS data platform.
Date & Time: Monday, November 17 – 10:30 am EST | 4:30 pm CET
Hi Everyone,
As I'm sure most of you will be aware, we have an excellent resource available to developers in the Open Exchange, which is a place for Community Members to share open source resources, templates, tools and demos built with or for InterSystems technologies. This has been a massive success, with >1100 projects shared!
However, the growing size of the Open Exchange inevitably leads to some excellent resources being buried and lost in the sea of resources. As such, developers who are new to InterSystems technology, as I was just a few months ago, might miss out on tools that coul
Hi community
I have a persistent data class where there are some properties that contain underscores in their names, for example:
Property "client_name" As %String(MAXLEN = 250) [ SqlFieldName = client_name ];
In Architect, I would like to use this property in an expression, in this field:.png)
But I can't figure it out. If I use %source.client_name, it gives a compilation error. If I use %source."client_name", it treats it as the string "client_name" instead of getting the value from the field. Any suggestions on how to do this?
Hi developers!
How do you debug implementation code in .impl classes of REST.API in InterSystems IRIS?
Especially if you don't have access to globals, so no things like:
Set^AAA="here we are"not possible in this case.

Suppose I have the following signature of the REST.API method called as POST and containing JSON. :
In my previous article, I structured network communications
in these 3 possible layers, and covered the last
- Client <---> Transport
- Server <---> Transport
- Client <---> Server
In fact, you have the most control over the last one.
The IRIS side as a server is yours and under your full control.
Up to now, the Transport layer was assumed to be as passive as a bare wire.
This assumption should be verified. I once met a Windows environment with
a quite surprising setup where a Firewall-like filter was isolating internal
processes and causing a lot of trouble.


