New
Question Tom Scaletti · May 11

I need to analyse and improve the performance on some old SQL statements.

One statement uses NVL in the WHERE clause (no wonder why it's slow) but I still have to improve the performance and the data really needs to be the same when returned.

SELECT *
FROM TOURHead, TOURFIND, SGNRFIND, TNRHead
WHERE TOURHead.cl = '123'
AND TOURHead.cl = TOURFIND.cl
AND TOURHead.TOURNR = TOURFIND.TOURNR
AND TOURFIND.cl =* SGNRFIND.cl
AND TOURFIND.SGNR    =* SGNRFIND.SGNR
AND TOURFIND.cl = TNRHead.cl
AND NVL(TOURFIND.TNR, SGNRFIND.TNR) = TNRHead.TNR;

Really hope someone can help me with this one.

3
0 57
New
Question Oliver Wilms · May 9

I want to develop a REST API for uploading PDF files. I started with OPENAPI spec file. When I test, I get error 8727 referencing missing required parameter file.

"{"$c(13,10,9)"""errors"":[ {"$c(13,10,9,9,9)"""code"":8727,"$c(13,10,9,9,9)"""domain"":""%ObjectErrors"","$c(13,10,9,9,9)"""error"":""ERROR #8727: Parameter required: file."","$c(13,10,9,9,9)"""id"":""RESTRequired"","$c(13,10,9,9,9)"""params"":[""file"""$c(13,10,9,9,9)"]"$c(13,10,9,9)"}"$c(13,10,9)"],"$c(13,10,9)"""summary"":""ERROR #8727: Parameter required: file.

1
0 58
Contestant
Article Iryna Mykhailova · May 10 3m read

The recently published tutorial "Introduction to InterSystems Data Studio" inspired me to check out this product. And I think it’s an interesting look at how to manage a data fabric without deep-diving into complex code. It allows you to connect disparate data silos, transform the data through automated pipelines, and load it into a unified environment for analysis. So, I decided to write up an example of how you can use it. Basically, I'll walk you through the tutorial in case you don't have time to do it on your own. Though I would definitely suggest you actually follow the tutorial - it has lots of useful information.

To see how it works, I stepped into the shoes of a system administrator, logging in with the provided credentials to explore the interface. The layout centers on a few core pillars: defining where data comes from, cataloging its structure, and building automated "recipes" to move it into production.

And the very first step is to establish a connection to my data. 

0
0 92
New
Question Robert deLeeuw · May 9

Sorry for the weird question, but mumps skills are very rusty.

Am trying to create globals dynamically, but with using names from an array. For example: 

S Names="A,B,Y,Z"
S A=$L(Names,"$")
F I=1:1:A D
//Create globals based on names from database
//^A,  ^B,  ^Y, ^Z etc..  
2
0 67
New
Question Yuriy Borokhov · May 6

Hi Everyone,

We are looking for a way to disable production Business Services concurrently so that the whole process takes shorter amount time than just going sequentially in a loop and disable them one at a time (very slow). This is necessary for us to be able to stop all traffic to IRIS so that no data remains after we perform full production stop. 

Thank you!   

7
0 82
Contestant
Article Clinovera · May 9 10m read

Many organizations that operate systems built on legacy technology stacks are facing significant support and maintenance complexities. They are eager to modernize, but the transition is usually prohibitively complex and expensive. These challenges apply to virtually any legacy tech, while InterSystems-based systems have their own unique nuances.

Key modernization challenges include:

  • Refactoring massive amounts of code, including identifying and removing obsolete "dead code."
  • Managing complex business logic accumulated organically over decades.
0
0 125
Contestant
Article Matheus Augusto · Apr 20 6m read

Hello, community.

I've been working with Intersystem Caché for two years, and right away I was excited about the rich ecosystem that Caché provides. However, I was disappointed with calls using #call, and I understand that it was a limitation of the time. Well, the frustration is that #call returns null by default, meaning an AJAX request is executed, but there's no hook to retrieve the return from that request. The only way to retrieve the data from that request is by building a callback on the server side using &js<>.

1
1 87
New
Article Luis Angel Pérez Ramos · May 7 8m read

Introduction

In healthcare interoperability environments, InterSystems Health Connect typically contains critical components such as productions, business processes, operations, services, utility classes, routines, and other ObjectScript artifacts. Traditionally, many deployments of these components have been done manually, by copying classes, importing XML, or using administrative tools from the management portal.

1
2 79
New
Article David Hockenbroch · May 7 8m read

In our previous article, we explored the basics of unit testing in IRIS and the ways to apply it to a REST API. We even figured out how to test logic before finalizing network configurations and authentication, allowing us to focus solely on testing the API contents. Today, we will build upon that foundation and elevate our unit testing strategy by using another tool: %Populate .

At first glance, the %Populate class appears to be very simple. You can create a class that extends both %Persistent and %Populate and inherit a Populate method designed to generate randomized records.

0
0 46
New
Article Gabriel Ing · May 7 4m read

For those of you that weren't at READY last week, you may have missed the exciting announcement that the Early Access Program for AI Hub is officially open. It was announced during an amazing demo from @Benjamin De Boe and @Jeff Fried, I recommend catching up with this demo when the recording is released!  I had the opportunity to play with AI Hub in advance, and thought I might share an introduction with the community.

0
3 107
New
Question Fahmi Rizaldi · May 7

Hi everyone,

I'm working on a requirement to generate and export medical reports to PDF using Logi Reports. The core requirement is that each generated PDF must be encrypted (password-protected), and the password needs to be dynamically set to the specific Patient's Date of Birth (DOB).

Currently, the report is populated using a Stored Procedure as its data source.

My questions are:

  1. Is there a built-in way or API in Logi Reports to dynamically set the PDF export password using a field returned from my dataset (e.g., taking the Patient_DOB column from the Stored Procedure)?
0
1 26
New
Announcement Ali Nasser · May 5

Hello everyone,

The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems IRIS SQL Professional exam. It is now available for purchase and scheduling in the InterSystems exam catalog. This exam is geared towards IRIS SQL experts, and it deals with a variety of advanced IRIS SQL topics that you can find in the exam page.

1
0 43
New
Article Iryna Mykhailova · May 4 3m read

Okay… first things first - sorry it took me so long to write this up. There was just too much happening, too many conversations, too many photos, too much travel and honestly… too much excitement to sit down and write right away.

READY 2026 started the way it always does, with that unique mix of anticipation and energy in the room. Look at these excited faces! 

@Gabriel Ing, @Mariam Makhmutova, @Olga Zavrazhnova, @Dean Andrews, @Anastasia Dyubaylo, @Iryna Mykhailova 

(Let's be honest, this was the end, and everyone was happy that we survived 😁)

7
0 141
New
Question Touggourt · May 5

Hi Guys,

I've the below code to build JSON and send it via httpRequest called from business Operation.

But I'm getting this error, which I'm guessing that the formulated JSON doesn't have the correct format, so I was looking to convert the JSONStream to JSON string and try to validate it so see where the JSON is broken, problem is that I'm expecting that there will thousands of records in this JSON so it will hard to go through it, so is there a way to track for error or why this JSON is failing to send    

Thanks

2
0 48
New
Question Davi Massaru Teixeira Muta · May 6

How can I remove UNIQUE NOT NULL from an existing column via DDL?

I currently have a table in production that was originally created via DDL, where the column was defined as UNIQUE NOT NULL:

CREATE TABLE database.Books ( ID %Library.UniqueIdentifier PRIMARY KEY, TagExternal VARCHAR('') UNIQUE NOT NULL,  

I now need to change this column so that it is no longer UNIQUE and no longer NOT NULL, making it equivalent to:

TagExternal VARCHAR(''),

1
0 28
New
Article Iryna Mykhailova · May 5 3m read

As promised, here comes the second part.

But before I begin, here's the view from my hotel window in Boston, where I went before the READY. And a grand building on the right is the office of InterSystems. Not bad, ha?

Anyway, after getting some sleep after the Demos and Drinks the day before, we were back at it the next day, which started with more keynotes.

3
0 112
Question Scott Roth · Apr 23

Was wondering if anyone had a Dynamic way to see if a Global is still being used by a Class File. 

We have been monitoring our Global Size recently, and I am trying to find problematic Class files that are not being cleaned up or used appropriately. I have come across some globals that do not seem to have a Class attached to them anymore, and instead of deleting globals 1 by 1, I was looking for a way that we could dynamically do this since the globals have data that is stale in them.

Thanks

Scott

7
0 83
New
Question Luis Gallardo · May 6

Hi! 
We are working on containerizing our IRIS product. We want to extract the message log that is shown in the terminal, but if possible, we want to format the output as JSON and include some extra fields from the instance to enhance our monitoring. Is this possible?
Any guide or example about it?
Thanks!

4
0 46
New
Question Glenn Elliott · May 6

I have a question around mapping between different datasets during the HL7 -> SDA3 -> FHIR transformation.

We have a FHIR server which uses the standard ISC HL7->SDA3->FHIR conversion when ingesting HL7 messages. There is the odd requirement to enrich FHIR data from the original HL7 message. due to site specific HL7. Our approach is to extend HS.Gateway.HL7.HL7ToSDA3 with a custom GetSDA method that includes the original HL7 Message ID via CustomPairs.

0
0 28
Contestant
Article André Dienes Friedrich · May 5 9m read

Abstract

Solar irradiance forecasting is critical for grid stability in photovoltaic (PV) power plants. This article replicates and extends the methodology of Lara-Benítez et al. (2023) "Short-term solar irradiance forecasting in streaming with deep learning" replacing the original offline simulation with a fully operational streaming pipeline built on InterSystems IRIS. We leverage IRIS Interoperability Productions as the streaming backbone, Embedded Python to run MLP, LSTM, and CNN deep learning models, and IntegratedML as an AutoML baseline.

0
0 45
New
Article Jorge Jaramillo Herrera · May 5 19m read

This article introduces SHAP explainability methods as an approach to understand the reasons behind predictions in machine learning black-box models. It also includes a simple Jupyter notebook that you can use and modify to gain hands-on experience with these concepts:

https://www.kaggle.com/code/jorgeivnjh/explainability-in-ml-models

https://github.com/JorgeIvanJH/Explainability-in-ML-models

We will leverage these concepts for a future implementation in our Continuous Training Pipeline: https://community.intersystems.com/post/complementing-iris-mlflow-continuous-training-ct-pipeline

0
0 33
New
Announcement Anastasia Dyubaylo · May 5

Hey Community,

Round 1 of the Community Bounty Program "Idea to Application" is officially open. Three ideas from the Ideas Portal are ready to be implemented — pick one or more, build it, publish it on Open Exchange, and earn Global Masters points. 

🏅Every qualifying submission earns a Credly badge, Global Masters badge, and 10k+ points. Implement all ideas this round and unlock Tier 2 rewards.

0
0 55
New
Question John Murray · May 4

As an experiment in agentic coding in ObjectScript I'm using VS Code to try and create an implementation of an SFTP server.

SFTP is built on top of SSH, so the first phase involves implementing an SSH server. While working on the KEX part of that the agent (using GPT-5.3-Codex) reported:

  1. IRIS has what we already need for signing and hashing: RSASHASign, RSASHAVerify, RSAGetLastError, SHAHash, SHA1Hash, SHA3Hash.
  2. It does not list a Diffie-Hellman key exchange or modular exponentiation API in %SYSTEM.Encryption.

It then offered these options:

  1. Keep using IRIS APIs for cert/key/sign/hash.
1
0 69
New
Article Eduard Lebedyuk · May 4 2m read

Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.

Today I want to share a few approaches that will decrease your compilation time (especially if you're doing incremental/diff compilation rather than a full build).

Compiler flags and qualifiers

Code load and compilation are affected by a variety of flags and qualifiers. If you write deployment scripts for InterSystems platforms, I highly recommend reading them at least once through.

0
0 55
InterSystems Official Bob Kuszewski · Apr 29

Below is an update to the IRIS release calendar for 2026 and an early look at the planned changes for 2027. The key takeaway for 2026 is that maintenance release numbering will differ slightly from prior years.

2026: IRIS 2026.1 maintenance release numbering

  • July 2026: first maintenance release for IRIS 2026.1 (planned version: 2026.1.4)
  • October 2026: next maintenance release (planned version: 2026.1.5)
  • February 2027: following maintenance release (planned version: 2026.1.6)

This numbering change prepares us for the expanded maintenance cadence planned for 2027.

2
1 171