.png)
IRIS makes SIEM systems integration simple with Structured Logging and Pipes!
.png)
IRIS makes SIEM systems integration simple with Structured Logging and Pipes!
We will start from the examples that we faced as Data Science practice at InterSystems:
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.
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
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.
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 comma
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)
.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:.png)
.png)
.png)
.png)
.png)
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.First, we have to ensure that the unit testing portion of the management portal is enabled so we can review the results of our tests.
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.
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 |
Intersystems IRIS Productions provide a powerful framework for connecting disparate systems across various protocols and message formats in a reliable, observable, and scalable manner. intersystems_pyprod, short for InterSystems Python Productions, is a Python library that enables developers to build these interoperability components entirely in Python.Designed for flexibility, it supports a hybrid approach: you can seamlessly mix new Python-based components with existing ObjectScript-based ones, leveraging your established IRIS infrastructure.

Welcome to the finale of our journey in building MAIS.
Now, the stage is set. Our agents are ready, defined, and eager to work. However, they remain frozen in time. They require a mechanism to drive the conversation, execute their requested tools, and pass the baton to one another.
Today, we will assemble the Nervous System. We are going to implement the Orchestrator using InterSystems BPL, creating a living, breathing loop that
Hi Community,
We're happy to announce that registration for the event of the year — InterSystems Ready 2026 — is now open. This is the premier global summit for the InterSystems technology community – a gathering of industry leaders and developers at the forefront of their respective industries. This event attracts a wide range of attendees, from C-level executives, top subject matter experts and visionary leaders, managers, directors and developers. Attendees gather to network with peers, connect with InterSystems partners, learn best practices and get a firsthand look at upcoming features and future innovations from InterSystems.
🗓 Dates: April 27 - 30, 2026
📍 Location: Gaylord National Resort & Convention Center, National Harbor, Maryland, USA
.jpg)
Hi,
I'm having a problem with %JSON.Adaptor and "list of" binding.
For exemple, this class with a property "oazisCode As list of %String".
Class User.ADGroup Extends (%Persistent, %JSON.Adaptor)
{
/// Code interne
Property code As %String;
/// Libellé
Property text As %String(MAXLEN = "");
Property oazisCode As list Of %String;
}The first time call to %JSONImport works properly
s r = ##class(User.ADGroup).%New()
s json = {"code": "123", "text":"456", "oazisCode": ["1","2"]}
d r.%JSONImport(json)
w r.oazisCode.Size
2If I call %JSONIMport a second time with another json , the
I was having trouble with some dimension based calculated members defined in Analyzer. They would work and then not work. At one point I had two identical calculated measures, same code, same specification and one would work and one would not. I was trying to set them up in "shared storage", that checkbox in the calculated member dialog that should allow the measures to be used across multiple pivots.
My hypothesis to the inconsistent behavior of the calculated members was that their definitions were somehow being mangled behind the scenes when the Analyzer logged the "shared code" to
Hello,
First of all thanks for your time reading our question, and thanks for your replies and help
We would need to know if a patient has less than 65 years old, using their birthday from the PID 7.1
So far we have developed the following code:
//19760422set nacimiento = request.GetValueAt("PID:DateTimeofBirth.Time") $$$LOGINFO("nacimiento: "_nacimiento) //22/04/1976 set nacimientoFormateado = ##class(Util.FuncionesComunes).DateFormatConvertToXML(nacimiento) // "" set nacimientoFormateado65 =
Hi communauty
I've two columns in my table and the type must be interval of integer values for example : age must be interval between [2 and 6] years and wigth between [10 and 30 ] Kg , how can i define them when creating my table?
thank's
Hi all,
I've created a method to calculate the age of a person, or the age of a process, contract or other stuff as you want.
/// Calculate the age from date of birth and other date (by default shoud be today)./// <b>dateOfBird</b> Date of birth in cache format.ie./// <b>day</b> Date to calculate to.
Hello All,
No matter what I try in Business Process Logic (BPL), I am unable to calculate the patient's age in days or years.
Has anyone ever built logic in a Business Process (BPL) to calculate a person's age in days?
Thank you!
Why do these clauses affect SQL performance?
select ID from some_table where row_status in ('I','U') order by ID limit 5 - makes the query infinite
select top 10 ID from some_table where row_status in ('I','U') order by ID - the same
select ID from some_table where row_status in ('I','U') order by ID - is fast
Actually there are no rows in the table having row_status 'I' or 'U'.
I asked Gemini and it recommended me rewrite the query as
select ID from table where row_status in ('I','U') order by ID || '' limit 5,
and this helped, but I have never encountered a similar problem with any other
I want to implement isc-rest in my new project iris-budget/module.xml at master · oliverwilms/iris-budget
I get this error:
#8 11.30 Building dependency graph...
#8 12.69 ERROR! Could not find satisfactory version of isc.rest in any repositories. Required by: iris-budget 0.0.1: ^2.0.0
#8 ERROR: process "/bin/sh -c iris start IRIS && \tiris session IRIS < iris.script && ([ $TESTS -eq 0 ] || iris session iris -U $NAMESPACE \"##class(%ZPM.PackageManager).Shell(\\\"test $MODULE -v -only\\\",1,1)\") && iris stop IRIS quietly" did not complete successfully: exit code: 1
In this article, I aim to demonstrate a couple of methods for easily adding validation to REST APIs on InterSystems IRIS Data Platform. I believe a specification-first approach is an excellent idea for API development. IRIS already has features for generating an implementation stub from a specification and publishing that specification for external developers (use it with iris-web-swagger-ui for the best results). The remaining important thing not yet implemented in the platform is the request validator. Let's fix it!
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Optimizing Query Performance in Health Insight @ Ready 2025