My intention is to show how simple it is to generate a lookup table taking into account the information received in our HL7 messaging. The HL7 message lookup table provided by IRIS is certainly sufficient for most of the searches we want to perform, but we always have that special field in our HIS, LIS, RIS, etc. that we'd like to search by. But that's in a segment outside of that lookup table. That field forces us to generate a specific search using the expanded search criteria. We'll likely have many messages, and we'll also have to filter by date and time so we don't timeout.
Do you have at least two years' experience developing with InterSystems IRIS® data platform and basic knowledge of InterSystems ObjectScript?
👨🎓Validate your expertise with the new InterSystems IRIS Development Professional certification exam, our first professional-level exam!

Our community is speaking — and you're invited to the READY 2025!
Members of the InterSystems Developer Community are getting Ready — and they’ve recorded short video messages just for you.
Find out why InterSystems READY 2025 is a must-attend event, what they're most excited about, and what makes this summit special — straight from the voices of our engineers, developers, tech advocates, and Community moderators.
▶️ Watch their stories. Get inspired. Join us in-person.
Kicking things off, hear from:
I am trying to add a value to my concatenation string and the value is not being inserted in the right place. I am adding onto this code from another developer and cannot seem to get it to work. The only code I have added is underlined in bold red.
This is how the translated HL7 message looks:
OBX|1|CE|CDX^History||Specimen 1 Clinical History: CLINICAL HISTORY\.br\\.br\Specimen 2 Clinical History: CLINICAL HISTORY 2\.br\Specimen 1 Suspected Clinical Diagnosis\.br\Specimen 3 Clinical History: HISTORY 3\.
I am trying to create a database using python. The example shows setting a Name string and a Properties object containing Directory=.
; Use class methods to create an instance
%SYS>s Name="ABC"
%SYS>s Properties("Directory")="c:\abc\"
%SYS>s Status=##Class(Config.Databases).Create(Name,.Properties)
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)How do I update and pass the Directory property using Python?
Hi Community,
Enjoy the new video in a series of videos created by our Project Managers to highlight some of the interesting features of the new 2025.1 release:
⏯ RAG with built-in Vector Search in InterSystems IRIS 2025.1

Description
This is a template for a Flask application that can be deployed in IRIS as an native Web Application.
Installation
- Clone the repository
- Create a virtual environment
- Install the requirements
- Run the docker-compose file
git clone
cd iris-flask-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
Usage
The base URL is http://localhost:53795/flask/.
Endpoints
/iris- Returns a JSON object with the top 10 classes present in the IRISAPP namespace./interop- A ping endpoint to test the interoperability framework of IRIS.
Here's a sample code to display JSON or dynamic object.
It shows how to iterate over object, get property values and their paths.
Having been inspired with Shared code execution speed question/discussion, I dare to ask another one which is annoying me and my colleagues for several weeks.
We have a routine called Lib that comprises 200 $$-functions of 1500 code lines total. It was noticed that after calling _any_ function of another rather big routine (1900 functions, 32000 lines) the next call of $$someFunction^Lib(x) is getting 10-20% slower than previous call of the same function.
I am having issues trying to send SOAP requests to a Cloud Based AWS Application that lives outside of our network.
It is using a Basic Authentication, Key, Certificate Authority and Whitelist for Security.
If I attempt the connection using wget from the command line I am able to connect,
:>wget --bind-address=10.95.129.245 --server-response https://xxxxxxxxxx/xxxxxxx/services/Mirth
--2025-06-06 15:54:51-- https://xxxxxxx/xxxxxxxx/services/Mirth
wget: /ensemble/.netrc:16: unknown token xxxxxxx
wget: /ensemble/.netrc:16: unknown token xxxxxxxx
Resolving xxxxxxx.com (xxxxxxx). 34.233.89.
Hello, dear members of our developer community!
In today's article, we're going to take a look at one of the latest remote monitoring features that have been added to the product for our IRIS instances. I'm talking about OpenTelemetry support.
.png)
Before we start with some intermediate and advanced topics, I would like to sum up some more general points. They are subjective, of course, so I will be happy to discuss them if you have other opinion or better arguments for any of them.
The list is not comprehensive and this is intended, cause I will cover some topics in future articles.
Tip 1. Follow official styleguide
Angular is quite strict in terms of limiting the possible architecture of an application, but there are still many places in it that allow you to do things your own way.
1. A Motivating Example
Embedded Python has been around for a while. You probably followed the tutorials and learned about it. However, if you've tried to combine Python and ObjectScript in real development work, you probably ran into situations where you get an error message like this:
USER>Do ##class(MyClass).SomeMethod() ERROR #5002: ObjectScript error: <PYTHON EXCEPTION> *<class 'ZeroDivisionError'>: division by zero
It's a long string for limited information.
Two big changes for the TestCoverage open source tool: Embedded Python support, and a new UI
Embedded Python
Previously, TestCoverage could only track unit test coverage for code written in ObjectScript. It would ignore code written in other languages like Python in the coverage statistics.
As more and more IRIS application code is being written in Embedded Python instead of just ObjectScript, it's critical that TestCoverage can include coverage results for Embedded Python code.
Hi.
I want to save and compile a class in VS Code, but I get the error:
Failed to save 'Utils.cls': Unable to write file 'isfs://mip:mz/API/Utils.cls?project=MZ' (Unknown (FileSystemError): Unknown Error).
Any ideas what is wrong?
Regards,
Matjaž
We are glad to announce that DBeaver has supported InterSystems IRIS out-of-the-box since version 7.2.4. You don't need to configure it manually anymore, just find the IRIS icon in the Connections list.
.png)
Hey everyone,
I'm diving deeper into Caché ObjectScript and would love to open a discussion around the most useful tips, tricks, and best practices you’ve learned or discovered while working with it.
Whether you're an experienced developer or just getting started, ObjectScript has its own set of quirks and powerful features—some well-documented, others hidden gems. I’m looking to compile a helpful set of ideas from the community.
If you're migrating from Oracle to InterSystems IRIS—like many of my customers—you may run into Oracle-specific SQL patterns that need translation.
Take this example:
SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);
In Oracle:
LEVELis a pseudo-column used in hierarchical queries (CONNECT BY). It starts at 1 and increments by 1.CONNECT BY LEVEL <= (...)determines how many rows to
InterSystems EMPI (formerly HealthShare Patient Index) – Virtual July 9-11, 2025
- Configure, tune, and work with InterSystems EMPI, an Enterprise Master Person Index
- This 3-day course teaches the installation, configuration, and use of InterSystems EMPI™ (formerly HealthShare® Patient Index).
- Starting with version 2025.1, HealthShare Patient Index has been renamed to InterSystems EMPI, but the core functionality remains the same.
- Day one focuses on person identification issues, and the tools that can be used for reviewing records identified by the system for human attention.
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ It's CLEAR - Re-Imagining the Digital Front Door @ Global Summit 2024
Is anyone using DICOM Interoperability in IRIS for Health configured in Mirror?
I'm asking because I'm not sure how to handle where the DICOM messages are stored.
For some reason DICOM use the filesystem to store raw messages, the directory used can be configured in the StorageLocation production settings, obviously this is a big issue if/when a mirror failover occur.
Unfortunately in IRIS it's not possible to change the DICOM storage from file stream to global stream.
Has anyone came across this issue?
Hello Community
I have previously experimented with embedded Python in IRIS; however, I have not yet had the opportunity to implement IRIS using native Python. In this article, I aim to outline the steps I took to begin learning and implementing IRIS within the Python source. I would also like thank to @Guillaume Rongier and @LuisAngel.PérezRamos for their help in resolving the issues I encountered during my recent PIP installation of IRIS in Python, which ultimately enabled it to function properly.
Let's begin to write IRIS in python.
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Innovation Highlight - Medical Device Waveform Data @ Global Summit 2024
I have created a new docker stack with webgateway and IRIS for Health 2025.1. I have mapped the posts of wegateway like this:
- 8743:443
- 8780:80
I can access IRIS portal through 8743 without problems.
I also have created a FHIR repository, and I'm able to access it through 8743 port.
I have a web application, in another server with another domain, that connects to this FHIR repository. I have configured in FHIR endpoint the allowed origin to the domain of this application.
InterSystems has released new point updates to resolve a defect affecting the most recent prior versions of 2025.1.0, 2024.1.4, 2023.1.6, and 2022.1.
For those that use IRIS for Health, HealthShare, and or Health Connect...
As Health Applications are moving to the Cloud, how have you handled communication from the Application to your instances via HTTPS?
Trying to figure out the best path on designing the proper workflow to allow these messages to be allowed to be eventually sent to our EMR to post to the patient chart.
We are very wary of opening a connection from the internet to our instance of Health Connect.
Thanks
Hi, Community!
Hello Everyone,
The Certification team of InterSystems Learning Services is developing two new HealthShare Unified Care Record certification exams, and we are reaching out to our community for feedback that will help us evaluate and establish the contents of the exams. Please note that these exams will replace our HealthShare Unified Care Record Technical Specialist exam that we plan to retire in January 2026. Certifications earned in this technology before the exam’s retirement will remain valid for five years from the date of achievement.
How do I provide my input?
Hello everyone, let me introduce, one of my latest projects. It is a DataSource plugin for Grafana, which can connect directly to InterSystems IRIS and gather any data (in the future).
.png)
Hello,
I have created this script that does lot of writes to a single global. DB write performance is much slower than expected (compared to another similar systems).
set rec = "..." //fill it with something
set time = $piece($horolog,",",2)
while(($piece($horolog,",",2)-time) < 30) //30 seconds
set ^A($System.Util.CreateGUID()) = rec
}I have notified the following :
- CPU usage does not reach 100% on a single core (eg: 25% of total CPU usage should be seen on a 4 cores system).



