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.

Welcome to the finale of our journey in building MAIS.
- In Part 1, we constructed the agnostic "Brain" using LiteLLM and IRIS.
- In Part 2, we designed the "Persona", mastering Dynamic Prompt Engineering and the ReAct theory.
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.
➡️ InterSystems Ready 2026
🗓 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
✓ 44 new implementations in 2025
✓ 174 new comments in 2025
✓ 725 new votes in 2025
✓ 232 new users in 2025
✓ 132 implemented ideas all time
✓ 991 comments all time
✓ 3,426 votes all time
✓ 1,207 users all time
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).
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
I am working on a new project oliverwilms/iris-budget
based on intersystems-community/iris-fullstack-template: This template shows you how to build, test and deploy a simple full-stack application using InterSystems IRIS REST API
I do not understand why I get this error:
[INFO] ...started InterSystems IRIS instance IRIS
[INFO] Executing command /docker-entrypoint.sh iris-after-start ...
[INFO] Create namespace: USER
[ERROR] module 'iris' has no attribute 'system'
[ERROR] Command "/docker-entrypoint.sh iris-after-start " exited with status 256
[FATAL] Error executing post-startup command
[INFO]
Recent versions of IRIS come with Lite Terminal available from VSCode. It's a websocket server, with JSON messaging. Here's how to connect to it from Python:
import websocket
import argparse
import requests
import json
defterminal(host, port, namespace, username, password, command, secure):
session = requests.Session()
r = session.get(f"http{"s"if secure else""}://{host}:{port}/api/atelier/", auth=(username, password))
cookies = session.cookies.get_dict()
ws = websocket.WebSocket()
ws.connect(f"ws{"s"if secure else""}://{host}:{port}/api/atelier/v8/%25SYS/tWe use the Caché JDBC Gateway to Oracle and SQL servers to directly invoke their stored procedures from Ensemble. Getting quick, inline data results back are typically handled within the Functions.Library class as a function to wrap the query and format the return appropriately.
But what about more elaborate stored procedures made for posting data without log-jamming a Router? The operations to construct those data pipelines can get tedious, especially when changes are needed. What follows is a code generator to make a new Ensemble Message class from a SQL Stored Procedure that is compatible
Hi Community! 👋
As 2026 gets underway, we’d love to hear what you’re focusing on this year.
This discussion is a space to share your resolutions, goals, and focus areas for 2026 - technical, professional or community-related.
These don’t have to be traditional New Year’s resolutions. Think of them as intentions or priorities you’d like to work on this year.
💬 What you can share
- Skills or technologies you want to learn
- Projects you want to start or continue
- Things you want to improve at work
- Events or activities you want to take part in
- Anything you’re excited to focus on in 2026
✍️ How to
Hi Community,
Here we have requirement to process messages min 10 sec delay. Current time it is taking my businessProcess is less than 1 sec.
To implement this requirement , I need to sleep 10 sec in business process custom code.
Could somebody help me to implement delay in BusinessProcess.
Thanks,
Prashanth
Hello everyone,
The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems EHR Reports Specialist exam. It is now available for purchase and scheduling in InterSystems exam catalog. This exam tests candidates’ ability to use Logi Report Designer along with TrakCare/Intellicare to design, author, and support InterSystems Reports. For a list of topics covered by the exam, please refer to the exam page. Candidates who successfully pass the exam will receive a digital certification badge that can be shared on social media accounts like LinkedIn. If you are new to InterSystems Certification, please review our program pages that include information on taking exams, exam policies, FAQ and more.
Hey everyone,
I'm just seeking some guidance and confirmation on what I'm doing for my production health monitoring.
We utilize Grafana to have reporting/monitoring dashboards and I have made a REST API to query the health of our productions. I believe I have everything figured out except for one thing that I'm uncertain about and that is the Production Item Color indicators:
.png)
Is there an easy way of being able to figure out the status of an item with the legend above?
Hi, Community!
Building integrations with InterSystems products? Find out about the latest UX enhancements available in version 2025.3!
Hi developers!
In a method I need to return a result as a dynamic object aka JSON Object. And here is my logic:
Classmethod Planets() as%DynamicObject {
set val1="Jupiter"
set val2="Mars"// this doesn't work! cannot compile
return {"value1":val1, "value2":val2}
}So I need to do the following:
Classmethod Planets() as%DynamicObject {
set val1="Jupiter"
set val2="Mars"
set result={}
set result.value1=val1
set result.value2=val2
return result
}The second case works.
Hey everyone.
I have a web service which is receiving XML as a stream, and I'm intending to then correlate the stream into an object. Unfortunately I am hitting a road block where the sender places a large chunk of the XML within a cdata block which is then causing the correlate of %XML.Reader to not work.
The structure of my xml is along the lines of:
<abc><def>010203</def><ghi>040506</ghi><jkl><mno><pqr>070809</pqr><stu>101112</stu></mno></jkl></abc>I have my objectscript classes built that conform to the above, and the
Hello everyone. I'm currently working on how to implement a solution that makes it possible to include within the response of a BusinessOperation the "RetryCount" for each message.
For Example, we have this message that was retried twice:.png)
This is an HL7.message going through a specific business operation, we did not create a custom one: we used the default implementation EnsLib.HL7.Operation.TCPOperation. This operation should automatically handle retries (infinetely waiting on a response). I found out each Business Operation has this property :
Can we retrieve this information AFTER the message
can my old account be merged with my new account?
Hi,
I need to create a bundle of synthetic data in order to populate FHIR servers (not mine).
Can I use a predefined ids, or is it possible the one of the servers will not allow using my IDs and replace them with it's automatic numbering?
Hi Community! 👋
You’ve asked for easier ways to connect with other Global Masters and we heard you!
Random Coffee Chat is an easy way for Global Masters to connect and have an informal 1:1 conversation. ☕
🗓 When: January 26 – February 15
This thread is for participants in Europe & UK time zones who’d like to connect and schedule a short coffee chat directly with each other.
☕ How it works
- Leave a comment in this thread to join
- Reply to someone’s comment if you’d like to connect
- Continue the conversation in Direct Messages on the Developer Community and schedule a 30-minute quick call
You
Hi Community,
We're pleased to invite you to the upcoming webinar in Hebrew:
👉 Debugging InterSystems IRIS & Health Connect: From VS Code Breakpoints to Interoperability Traces 👈
📅 Date & time: Feb 18th, 3:00 PM IDT
When production issues arise, speed and precision matter.
Hello Team,
I am trying to duplicate the production flow in the Ensemble 2018 but after doing all the steps (like copying same class file, adapter file, process class file) as production, still the flow is not working.

