
Update (Feb 22): The migration has been successfully completed. You may still experience some temporary instability. If you notice any issues, please report them via DC GitHub.
Hi Developers!
Please note that the Developer Community will undergo scheduled maintenance on February 21–22, 2026.
.png)
Hi everyone,
I am currently integrating a Sysmex analyzer with InterSystems Ensemble/IRIS using a Moxa NPort 5110. I have successfully verified the physical and serial layers, but I am facing two specific issues: a protocol sync error and a persistent TCP connection state.
Environment:
Interface: ASTM.
Gateway: Moxa NPort 5110 (TCP Client Mode).
Server: Ensemble Business Service (EnsLib.ASTM.Service.TCPService).
Port: xxxx.
Current Status & Observations:
Serial Layer: Verified. The Moxa "Async Monitor" shows RxCnt increasing when the instrument sends data. Hardware pins (DSR/CTS) are ON.
TCP
Hi developers!
Observing the avalanche of AI-driven and vibe-coding developer tools that have been appearing lately almost every month with more and more exciting dev features, I was puzzled whether it is possible to leverage it with InterSystems IRIS. At least to build a frontend. And the answer - yes! At least with the approach I followed.
Here is my recipe to prompt the UI vs InterSystems IRIS Backend:
- Have the REST API on the IRIS side, which reflects some Open API (swagger) spec.
- Generate the UI with any vibe-coding tool (e.g., Lovable) and point the UI to the REST API endpoint.
- Profit!
Here is the result of my own exercise - a 100% prompted UI vs IRIS REST API that allows to list, create, update delete entries of a persistent class (Open Exchange,frontend source, video):
What is the recipe in detail?
Hi developers. Just want to share with you a finding that might save you a few important minutes of your developer life with InterSystems IRIS.

But!
It should work; you deployed the REST API correctly, and everything is just in place.
What can go wrong?
If one of your packages on OEX receives a review, you get notified by OEX only of YOUR own package.
The rating reflects the experience of the reviewer with the status found at the time of review.
It is kind of a snapshot and might have changed meanwhile.
Reviews by other members of the community are marked by * in the last column.
I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.
Some were accepted and merged, and some were just ignored.
So if you made a major change and expect a changed review, just let me know.
| # | Package | Review | Stars | IPM | Docker | * |
|---|---|---|---|---|---|---|
| 1 | iris-medmatch | a Great |
Hi Community,
Please welcome @Ashok Kumar T as our new Moderator in the Developer Community Team! 🎉

Let's greet Ashok with a round of applause and look at his bio!
Hi Community!
Welcome to Issue #26 of the InterSystems Ideas newsletter! Let's look at the latest news from the Ideas Portal, such as:
✓ General Statistics
✓ Recently implemented ideas by InterSystems
✓ Recently implemented ideas by Developer Community members
(1).png)
Introduction
The standard %Net.HttpRequest library in InterSystems IRIS is powerful and comprehensive, but it can be verbose for simple operations. Writing an HTTP request often requires several lines of code to instantiate the class, configure the server, the port, HTTPS, add headers, and finally send the request.
When testing in the terminal, this configuration quickly becomes too heavy, and usually ends up with the creation of temporary methods...
FastHTTP was designed to address this need. This utility class provides a fluent and concise interface to perform HTTP calls in a single line, while automatically handling the underlying complexity (SSL/TLS, URL parsing, JSON encoding, headers, etc.).

Have you ever needed to change an IP or port before deploying an interface to production? Needed to remove items from an export? What about modifying the value(s) in a lookup table before deploying? Have you wanted to disable an interface before deploying? What about adding a comment, category, or alert setting to an interface before deploying to production?
If you’ve ever needed to make any changes to an interface or lookup table before deploying to production, then Export Editor is for you!
Export Editoris a Python/WSGI web application that provides a method for editing exports before
Hi Developers,
We are happy to announce the first InterSystems online programming contest of the year:
🏆 InterSystems Full Stack Contest 🏆
Duration: February 2 - March 1, 2026
Prize pool: $12,000
.jpg)
Hi Community!
@Joan Pérez published a review that it is not very clear what applications are available for InterSystems Package Manager. Thanks Joan! Indeed it deserves a post.
There at least two ways I know to showcase them:
1. Run find command in zpm:
IRISAPP>zpm ============================================================================= || Welcome to the Package Manager Shell (ZPM). || || Enter q/quit to exit the shell. Enter ?/help to view available commands || ============================================================================= zpm:IRISAPP>find
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ InterSystems IRIS & IRIS Health as a Managed Service @ Ready 2025
One objective of vectorization is to render unstructured text more machine-usable. Vector embeddings accomplish this by encoding the semantics of text as high-dimensional numeric vectors, which can be employed by advanced search algorithms (normally an approximate nearest neighbor algorithm like Hierarchical Navigable Small World). This not only improves our ability to interact with unstructured text programmatically but makes it searchable by context and by meaning beyond what is captured literally by keyword.
In this article I will walk through a simple vector search implementation that Kwabena Ayim-Aboagye and I fleshed out using embedded python in InterSystems IRIS for Health. I'll also dive a bit into how to use embedded python and dynamic SQL generally, and how to take advantage of vector search features offered natively through IRIS.
.png)
IRIS makes SIEM systems integration simple with Structured Logging and Pipes!
Challenges of real-time AI/ML computations
We will start from the examples that we faced as Data Science practice at InterSystems:
- A “high-load” customer portal is integrated with an online recommendation system. The plan is to reconfigure promo campaigns at the level of the entire retail network (we will assume that instead of a “flat” promo campaign master there will be used a “segment-tactic” matrix). What will happen to the recommender mechanisms? What will happen to data feeds and updates into the recommender mechanisms (the volume of input data having increased 25000 times)? What will happen to recommendation rule generation setup (the need to reduce 1000 times the recommendation rule filtering threshold due to a thousandfold increase of the volume and “assortment” of the rules generated)?
- An equipment health monitoring system uses “manual” data sample feeds. Now it is connected to a SCADA system that transmits thousands of process parameter readings each second. What will happen to the monitoring system (will it be able to handle equipment health monitoring on a second-by-second basis)? What will happen once the input data receives a new bloc of several hundreds of columns with data sensor readings recently implemented in the SCADA system (will it be necessary, and for how long, to shut down the monitoring system to integrate the new sensor data in the analysis)?
- A complex of AI/ML mechanisms (recommendation, monitoring, forecasting) depend on each other’s results. How many man-hours will it take every month to adapt those AI/ML mechanisms’ functioning to changes in the input data? What is the overall “delay” in supporting business decision making by the AI/ML mechanisms (the refresh frequency of supporting information against the feed frequency of new input data)?
This is an excellent candidate for a developer community post (like Dev.to, Medium, or the InterSystems Community). It bridges the gap between high-level architecture and hands-on implementation.
Here is the summarized article format.
Building a Robust Asynchronous Queue Manager with InterSystems IRIS and Angular
As applications scale, handling heavy computational tasks synchronously becomes a bottleneck. Whether it's processing large data sets, sending high-volume emails, or managing API integrations, a decoupled architecture is essential.
I’ve recently developed %ZQueue, a process-based queue
Project Overview:
The Clinical Staff Master Data Management (CSMDM) system is a full-stack healthcare integration application built on InterSystems IRIS for Health. It centralizes and standardizes clinical staff metadata into a single authoritative repository, exposed through RESTful CRUD APIs and reusable backend methods.
The platform eliminates fragmented lookup tables and hardcoded mappings that commonly cause errors in HL7 and FHIR integration workflows, ensuring data consistency and interface reliability.
Application to Other Domains:
This approach can be applied to other domains such as
Hi everyone,
This is the first time I'm dealing with a request of modifying a variable value in a UDF OnSQLTrigger on InterSystems TrakCare.
I can't find any documentation to address this issue, but basically, my goal is to modify the value of one of the fields in a table when it is first inserted.
This is basically what the code should do, namely, to change the content of the %d variable at a specific key.
I have done quite a bit of debugging and seen that the %d has been correctly modified after I set %d(51) = <something>, but the value saved in the database it is still the original %d(51)
Hi developers!
I'm testing vibecoding with ObjectScript and my silicon friend created a code-block that got me thinking "what's wrong"?
Here is the piece of code:
for i=0:1:(json.%Size()-1) {
set p = json.%Get(i)
if (p="value1")!(p="value2") {
quit1
}
AI wanted to quit from a method with a return value. Good intention, but bad use of the command.
And ObjectScript compiler compiles this code with no error(?) (syntax linter in VSCode says it's a syntax, kudos @Brett Saviano ).
But in action, it produces <COMMAND>, of course.
Wanted to share with you as this is a good case where return
Hi Developers!
Currently I have 2000+ lines in a class, and I think it's a lot already? What are the best practices?
if 10K lines OK? How do you cope with it? Please share?

Greetings,
As a long time Cache developer is there a way to get a copy of the Cache Studio that supports IRIS 2024.3? I do not have a WRC account? I need Studio just to experiment, not to build commercial software.
Thank you,
Everardo
Hi, Community!
👩⚕️If you need to access clinical data at scale, the InterSystems Bulk FHIR Coordinator can help!
Using the InterSystems Bulk FHIR Coordinator to Extract Clinical Data
We use local containers a lot for evaluation and development with Health Connect and other IRIS based applications.
When evaluating Podman Desktop on Windows as replacement for Docker Desktop, we are experiencing an issue with the durable %SYS:
The only way it works is when we use a named volume which then is located inside the WSL-Podman-Machine under /var/lib/containers/storage/volumes/...
With Docker Desktop we could simply bind-mount a folder inside our workspace, and could browse the folders inside the durable %SYS, this does not work with podman, IRIS won't start because of security
When I build docker containers my build log usually looks like this:
#924.94 Using 'iris.cpf' configuration file
#925.82
#927.55 Starting Control Process
#927.55 Global buffer setting requires attention. Auto-selected 25% of total memory.
#927.55 Allocated 4999MB shared memory
#927.553915MB global buffers, 391MB routine buffers
#929.84 This copy of InterSystems IRIS has been licensed foruse exclusively by:
#929.84 No local key detected, trying license server.
#929.84 Copyright (c) 1986-2026 by InterSystems Corporation
#929.84 Any other use is a violation of your licenseHello Team,
I am currently working with the CD Ruby machine, which is connected through DIGI. When I click on the “Test Link” option on the instrument, I can see the following behavior in Wireshark logs:.png)
Ensemble sends an ACK (06) after receiving ENQ (05), followed by EOT (04) (somewhat like above photo). However, when another ENQ is received, Ensemble does not send an ACK in response. As a result, the instrument displays a failure message.
Also attaching the Ensemble settings:
I am using a TCP service with an inbound adapter configured for the ASTM protocol.
In the previous article, we examined how we can use the %CSP.Request and %CSP.Response classes to test a REST API without having the API fully set up and accessible across a network with an authentication mechanism. In this article, we will build on that foundation to perform some simple unit testing of one of our REST API methods.
The unit testing framework requires a couple of setup steps before we can use it.
Hey Developers,
Watch this video to learn about automating the provisioning and management of FHIR services:
⏯ Automating Provisioning and Management of FHIR Services @ Ready 2025
Hello DC community,
InterSystems Certification is currently developing a certification exam for ObjectScript developers, and if you match the exam candidate description below, we would like you to beta test the exam! The exam will be available for beta testing starting February 18th, 2026.
Beta testing will be completed May 4, 2026.
What are my responsibilities as a beta tester?
As a beta tester, we ask that you schedule and take the exam by May 4, 2026. The exam will be administered in an online proctored environment free of charge (the standard fee of $150 per exam is waived for all beta
We are attempting to "Repoint" old class data to new class data to save disk space and data redundancy across multiple tables. This works to a point. In essence the two classes are sharing the same data / Index / stream globals. But if an ID in the Old_Class is opened, a property is modified, and saved the property that is in the New_Class (but not in the Old_Class) is NULLed / blanked.
Simplified explanation of data and what’s occurring.
| Old Class | Values | New Class | Values | |
| First_Name | John | First_Name | John | |
| Middle_Initial | Q | Middle_Initial | Q | |
| Last_Name | Public |


