Hey Developers,
Enjoy the new video on InterSystems Developers YouTube from our Tech Video Challenge:
InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube from our Tech Video Challenge:
I am receiving a FHIR response bundle back with a resource of patient. Using fromDao, I attempted to take the stream and put it into FHIRModel.R4.Patient but it is not mapping correctly. When I attempt to take FHIRModel.R4.Patient and write it out using toString(), all I am seeing is the resource
{"resourceType":"Patient"}
so the response is not mapping correctly to FHIRModel.R4.Patient. How have others handled this? Do I need to translate it to an SDA since it does fit the model format?
Do not let the title of this article confuse you; we are not planning to take the InterSystems staff out to a fine Italian restaurant. Instead, this article will cover the principles of working with date and time data types in IRIS. When we use these data types, we should be aware of three different conversion issues:
Developing with InterSystems Objects and SQL – VirtualJuly 28-August 1, 2025
I have built a REST operation to submit a JSON Request Body, and in the JSON Response Object, I need to pull out certain values like pureID, portalURL, and under the identifiers array the ClassifiedID that has a term."en_US" = "Scopus Author ID"
{
"count": 1,
"pageInformation": {
"offset": 0,
"size": 10
},
"items": [
{
"pureId": 0000000000000,
"uuid": "xxxxxxxxxxxxxxxxxxxxx",
"createdBy": "root",
"createdDate": "2024-11-18T22:01:07.853Z",
"modifiedBy": "root",
"modifiedDaIn IRIS, every time a request need to be processed, a specific IRIS process (IRISDB.EXE) need to be assigned to handle that request.
If there is no spare IRIS process at that time, process will need to be created (and later destroyed). On some Windows systems (especially with security/antimalware solutions being active) creating new processes can be slow, which can results in delays during peak times (due to inrush of requests).
Because of that, it's sometimes useful to have some a certain number of processes already created and idling, for handling requests, especially during peak times (eg:
is there a way to include a pdf in a zen report in a stream field?
something somewhat similar to what is done for images
Hi Community,
Watch this video to learn about Shift's new Data Platform architecture, combined with the InterSystems IRIS roadmap for data management:
⏯ Shift Data Platform: The IRIS Roadmap Applied @ Global Summit 2024
I am looking to create a Python virtual environment (venv) so that my imported/installed python packages can be separate on different namespaces in IRIS. I am able to go and create an environment, activate it, and install packages, but I am not sure how to ensure that Embedded Python methods actually point to this virtual environment.
Is the best solution to just load the virtual environment at runtime, in each method? That seems like a bad solution. Has anyone run into this and found a good solution?
Hi Community,
Enjoy the new video on InterSystems Developers YouTube from our Tech Video Challenge:
⏯ Genes in DNA Sequences as vector representation using IRIS vector database
Hello Community,
Is there a programmatic method or specific property to differentiate system-defined (/csp/altelier , /api/mgmnt and so on) or user-defined web applications in IRIS?
Thanks!
Hey Community,
We're excited to invite you to the next InterSystems UKI Tech Talk webinar:
👉The Future of Healthcare Integration with Health Connect & InterSystems
⏱ Date & Time: Thursday, July 3, 2025 10:30-11:30 UK
Speakers:
👨🏫 @Mark Massias, Senior Sales Engineer, InterSystems
👨🏫 Mike Fitzgerald. Head of Customer Solutions, ReStart

I am writing this post primarily to gather an informal consensus on how developers are using Python in conjunction with IRIS, so please respond to the poll at the end of this article! In the body of the article, I'll give some background on each choice provided, as well as the advantages for each, but feel free to skim over it and just respond to the poll.
As most of you are probably aware, Python is currently the most popular programming language among developers around the world - and for good reason.
Hi fellow developers!
Curious if you guys use CreatedAt and LastUpdated properties in your classes?
Created to stamp when the record was created and LastUpdated when it was last updated. Where it can be useful - almost everywhere )) I find it convenient in records sorting (e.g. by creation or last update), in sync (with other systems), and so on, for better analytics.
Do you use it all the time for all the classes?
If don't, why not? What do you use instead?
What property type do you use - %TimeStamp? %DateTime?
What is the best practice to have CreatedAt filled automatically during creation and LastUpdated on every successful save (guess it could be in %OnSave)?
Please share your experience /thoughts?
The below code is not working. its unable retrieve Record count and merge files
Class Util
{
ClassMethod zPyRecordCount(inputfile) As %Integer [ Language = python ]
{
import pandas as pd
import iris
import io
try:
df = pd.read_csv(inputfile, sep='|')
recordcount=len(df.index)
sys.stdout.write(len(df.index))
return recordcount
except Exception as e:
return 0
}
ClassMethod zPymergefiles(file1, file2, outputfilename) As %Boolean [ Language = python ]
{
import pandas as pd
import iris
import io
try:
dataframe1=pd.read_csv(file1,
Hi noble devs!
Just building a simple frontend->JSON->IRIS backend story, and figured that IRIS while importing via %JSON.Adaptor wants JSON fields to match property names, meaning even should match the case. Like:
{ name: "John",
surname: "Doe"}will have issues while saving the dynamic object to a class Sample.Person with:
Class Sample.Person Extends (%Persistent, %JSON.Adaptor)
{
Property Name: %Sting;Property Surname: %String;
}As soon as the case is not the same...
Is there any setting to fix this?) By fixing I mean I want IRIS to don't care about the case JSON fields, as it
Thank you community for translating an earlier article into Portuguese.
Am returning the favor with a new release of Pattern Match Workbench demo app.
Added support for Portuguese.
The labels, buttons, feedback messages and help-text for user interface are updated.
Pattern Descriptions can be requested for the new language.

The single AI Model for transforming user prompt into Pattern match code was fully retrained.
.png)
The separate AI model for generating Pattern match code from a sample list of values has been retrained.
The previous model release exhibited
I was wondering what best practice was for using macros in Embedded Python, i.e. iris.execute('$$$MACRO()') or something else. Does anyone have insight into this?
Hello Community,
When handling a %CSP.REST API response for a custom endpoint, how can I capture or access the response content before it is written to the output buffer and sent through the Web Gateway to the UI?
In manually created REST services (for example, with a route like:<Route Url="/test" Method="POST" Call="User.Sample:Test" Cors="true"/> ),
the response is typically written from within any class method in the execution flow.
Is there a way to intercept or log the response content before it is sent to the client?
Thanks!
I have notified that on several servers the IRISTEMP database is reported as only a few GB in size while on the disk where it's located, the IRIS.DAT file is much bigger (eg: 3GB reported in Portal (including free space) while file on the disk file is 121GB). The last modification date of IRIS.DAT is recent so I'm not looking into a location no more in use.
Is there an explanation for that difference in size ?
I know temporary databases are special in a way they are not always stored on the disk, here is what InterSystems says about it :
Changes to temporary globals are not written to disk.
I have a database that is 2TB in size (from a LIVE system).
I would like to defragment it but I have some questions. I took a look at official documentation but it does not help.
Hi Guys,
I'm trying to use %Net.WebSocket.Client to collect data from a sever,
.png)
and part of that I needed to implement Two classes (SX3.Production.HTTP.AdvCredenials & SX3.Production.HTTP.AdvListener) as below for the purpose of Credentials & EventListener properties,
Class SX3.Production.HTTP.AdvCredenials Extends %Net.WebSocket.ICredentials
{
Method GetPassword() As %String
{
q ""
}
Method GetUsername() As %String
{
q ""
}
Method GetSSLConfiguration() As %String
{
q "MySSL"
}
}
Class SX3.Production.HTTP.AdvListener Extends %Net.WebSocket.IEventListener
{
Method OnMessage(pContent As %Stream.Object)
{
S ^d
Hi Community,
Enjoy the new video on InterSystems Developers YouTube from our Tech Video Challenge:
Hi all,
We're developing a medical appointment app that connects doctors' schedules to an appointment provider.
The provider is returning us the appointment in the following format:
Thu Jul 03 08:20:00 CEST 2025
It means, 03 july 2025 at 08:20:00 Central European Summer Time (UTC+2)
But we need the following format:
2025-07-03 08:20:00+02:00
Is there any option to convert zone time code (CEST) to a UTC+x ?
How to convert zone time code (CEST, CET, ET, EDT, etc..) in its zone time in UTC (UTC+2, UTC+1, UTC-5, etc..) ?
Best regards
Previously, we trained our model using machine learning. However, the sample data we utilized was generated directly from insert statements.
Today, we will learn how to load this data straight from a file.
Learn how to design scalable, autonomous AI agents that combine reasoning, vector search, and tool integration using LangGraph.

Hi community,
A few weeks ago I published an API accelerator call Memoria, Is a very simple way to minimize the time and network traffic to and end-point, I hope could be useful.
The link in openexchange: https://openexchange.intersystems.com/package/memoria
Regards!
This can be achieved by using the CSV() procedure of the %SQL.Util.Procedures class.
Below is an example of usage code. (Assuming that the file test.csv is in c:\temp.)
I have a class with a projection that creates some persistent classes (chunks) and a non-persistent "Daemon" class that I want to have running in the background, doing some processing. The daemon needs to look at the "chunk" classes, and I want it to be simple to start the daemon -- I am currently calling the daemon's start method at the end of the CreateProjection method. When I do this, I get a <CLASS DOES NOT EXIST> error from the daemon when it tries to query against one of the chunk tables. But, if I add a "HANG 5" at the beginning of the daemon start method, this runs fine.