A quick question. What's the shortcut to uncomment multiple lines of code in Studio? And what's the shortcut to comment out multiple lines of code in Studio?
Thanks in advance!
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.
A quick question. What's the shortcut to uncomment multiple lines of code in Studio? And what's the shortcut to comment out multiple lines of code in Studio?
Thanks in advance!
Hello! In this article, I will be discussing database degrade, a type of data integrity issue one can face when using IRIS. First, I will be going over a review of the structure of IRIS databases. I'll then discuss how database degrade can manifest and common causes of degrade issues. I'll then conclude with general tips we give our customers about how to prevent or prepare for database degrade issues.
What exactly is a database? An IRIS database is a single file that consists of a fundamental unit called the "block". It contains a number of equally-sized b

Hello everybody,
I would like to export project contents using Visual Studio Code, as well as I do with InterSystems Studio.
However, while attempting the export through the InterSystems extension I get the following error:
- There are no folders in the current workspace that code can be exported to.
These are the step to reproduce my error:
.png)
Anyone can help me solving this is
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Multi-threading an HL7 Interface and scaling beyond FIFO constraints @ Ready 2025
Who this guide is for.
This guide is intended for developers, solution architects, and DevOps engineers who want to deploy InterSystems IRIS Community Edition on Amazon Web Services (AWS). No prior AWS automation experience is required, but basic familiarity with EC2 and SSH is helpful.
What you will achieve.
After completing this guide, you will be able to:
Prerequisites
Before you begin, make sure you have:
Deployment overview
The deployment process consists of the following steps:
Hi Gang!
Did you know you can deploy InterSystems IRIS Community Edition on the cloud without paying for a license? You can try for free, and it could even come in handy if you want to show off that shiny new app you've created (maybe for the full stack competition..?)
In this article I will provide a complete walkthrough on how to deploy IRIS on Amazon Web Services (AWS), and will also add a follow up for deploying on Azure.
Now before I begin the walkthrough, I want to admit that I was terrified of using AWS the first time because I'd seen memes about how easy it is to rack up costs on AWS. So if you're thinking the same, I suggest you start by signing up to a Free Tier Account, which gives you $100 free credit to evaluate, and automatically shuts off to prevent charges. InterSystems IRIS Community Edition has a free license so if you pair the two, you can deploy without risk and completely for free. (Disclaimer: although I'm sure this is true, please do read the free account terms and make your own decisions 😅 )
Note, this article walks through deploying IRIS Community on AWS, however the same guide can be followed to deploy IRIS for Health Community Edition, or with Bring-your-own-licence editions of IRIS and IRIS for Health, to deploy a fully licensed, production version of IRIS on AWS.
Here at InterSystems, we often deal with massive datasets of structured data. It’s not uncommon to see customers with tables spanning >100 fields and >1 billion rows, each table totaling hundred of GB of data. Now imagine joining two or three of these tables together, with a schema that wasn’t optimized for this specific use case. Just for fun, let’s say you have 10 years worth of EMR data from 20 different hospitals across your state, and you’ve been tasked with finding….
every clinician within your network
who has administered a specific drug
between the years of 2017-2019
.png)
Can the IRIS SQL engine be extended with custom optimization rules (e.g., prioritizing certain indices or join orders)? If not, is there a supported way to influence cost models?
Hi Community,
What is the correct syntax in a merge.cpf file to create a database with its associated resource ?
where can use sandbox in InterSystems IRIS Data Platform 2025.3
How many times have you had to receive or generate a JSON and wished you could work on it using DTLs without having to deal with DynamicObjects trying to remember the name of each field? Do you want to break down and make your giant JSON file more digestible?

In my case, never, but I thought that someone might find it useful to have a feature that captures your JSON and breaks it down into a series of ObjectScript classes that you can work with more easily and conveniently.
Well then...behold JSON2Class in all its glory!
Job Title: InterSystems Developer / Specialist (IRIS / HealthShare)
Location: New York City, NY (Hybrid / Remote)
Duration: Contract (2+ years)
Experience: Min. 8 Years
We are looking for an experienced InterSystems Developer / Specialist with expertise in InterSystems IRIS / HealthShare to support healthcare integration and interoperability initiatives. The ideal candidate should have hands-on experience in ObjectScript development, healthcare data standards, and integration protocols supporting EHR/HIE

Some concepts make perfect sense on paper, whereas others require you to get your hands dirty. Take driving, for example. You can memorize every component of the engine mechanics, but that does not mean you can actually drive.
You cannot truly grasp it until you are in the driver's seat, physically feeling the friction point of the clutch and the vibration of the road beneath. While some computing concepts are intuitive, Intelligent Agents are different. To understand them, you have to get in the driver's seat.
In my previous articles regarding AI agents, we discussed such tools as CrewAI and
As mentioned in the previous article, it is possible to configure the way you wish your collections to be stored and queried in SQL.
.png)
To set this up, you will need to use the following field parameters and settings:
In InterSystems IRIS, when you compile a persistent class, you automatically get a SQL table. Sometimes, there are situations that require having a slightly (or not so slightly) different names/options in SQL compared to Object model. Here are some of the settings that you can change to make it happen.
They define the "Face" of your class when it appears as a table in the SQL catalog.
SqlTableName allows you to change the name of SQL table that holds objects from your class. This is especially useful, when your class name uses reserved SQL words in a name, e.g. Group.
A question that quickly arises when configuring IAM (aka Kong Gateway) is how many routes should be created to reach all the business objects in an IRIS API.
A common mistake is to create one route per business object, unnecessarily multiplying the number of routes.
Let's take the example of the Supply Chain Orchestrator Data Model API:
/api/SC/scmodel/v1/objects /api/SC/scmodel/v1/objects/BOM /api/SC/scmodel/v1/objects/Carrier /api/SC/scmodel/v1/objects/Customer /api/SC/scmodel/v1/objects/DemandPlan /api/SC/scmodel/v1/objects/InventoryThreshold /api/SC/scmodel/v1/objects/Issue /
.png)
This is the second part of an article pair where I walk you through:
As mentioned the goal is to give you a smooth “first run” experience.

If you already know Java (or .Net) and perhaps also have used other document databases (or looking for one), but you are new to the InterSystems world, this post should help you.
InterSystems IRIS Cloud Document is a fully managed document database that lets you store JSON documents and query them with familiar SQL syntax, delivered as a cloud service managed by InterSystems.
In this article pair I’ll walk you through:
The goal is to give you a smooth “first run” experience.

This article is intended as a beginner level article for people that want to learn how to use OAuth2 in their web applications natively.
There is an accompanying video/demo that may be helpful here:
and you can reproduce this locally with the Open Exchange application attached.
OAuth (Open Authorization) 2.0 is a standard way to let one application call another application’s API without sharing a username and password. Instead of sending credentials on every request, the client sends an access token (typically in an Authoriz
.png)
Hi folks!
Is there any way to know the text of the SQL queries executed against the IRIS server?
My case: I have an SQL class query with a few parameters and and some combination of values causes unexpected results.
It'd be great if I could just copy the query from some log of queries done vs my IRIS the server. Cannot find it easily, though. Any advice?
Modern platforms usually treat observability as three core signals:
OpenTelemetry (OTel) is the standard way to produce and ship all three signals. This article explains a practical setup for InterSystems IRIS running in Docker Compose, with a full local observability stack:
.png)
RabbitMQ is a message broker that allows producers (those who send a data message) and consumers (those who receive a data message) to establish asynchronous, real-time, and high-performance massive data flows. RabbitMQ supports AMQP (Advanced Message Queuing Protocol), an open standard application layer protocol.
The main reasons to employ RabbitMQ include the following:
We are hiring! 100% Remote W2 Contract | 3-6+ Months (numerous extensions likely)
Two Roles:
🔹InterSystems Engineer
🔹Epic Bridges Certified/InterSystems Engineer
Having solid experience with the below:
Hi folks!
How can we handle JSON boolean types in IRIS?
I'm having a UI sending me a JSON payload as:
{
"id": 1,
"strprop": "string",
"boolprop": true
}The class is
MyPackage.MyClass Extends (%Persistent, %JSON.Adaptor)
{
strprop as%String;
boolprop as%Boolean;
}And I'm trying to update an instance of a MyPackage.MyClass and I'm getting a datatype-related error, something like %JSONImportInternal+269...
How am I supposed to deal with booleans in JSON with IRIS and ObjectScript? Any best practice advices?
There are numerous excellent tools available for testing your REST APIs, especially when they are live. Postman, various web browser extensions, and even custom ObjectScript written with %Net.HttpRequest objects can get the job done. However, it is often difficult to test just the REST API without inadvertently involving the authentication scheme, the web application configuration, or even network connectivity. Those are a lot of hoops to jump through just to test the code within your dispatch class. The good news is that if we take our time to understand the inner workings of the %CSP.REST class, we will find an alternative option suited for testing only the contents of the dispatch class. We can set up the request and response objects to invoke the methods directly.
Hi, now I would like to continuous on the topic that we talk about previously
Using Postman for testing the OAuth2.0 of the InterSystems FHIR repository - Part1
Question 1: Where is my client_id and client_secret come form?
Short answer: Authentication Server.
If you don't have an Authentication Server, you may set up one as following
Provide the hostname (the host must support Https), at least 1 grand type (we choose client credential here), and SSL/TSL configuration
Input the scopes (here we input user/*.read and user/*.write, which is based on the scope support by
.png)
Sometimes customers need a small IRIS instance to do something in the cloud and shut it down, or they need hundreds of containers (i.e. one per end user or one per interface) with small workloads. This exercise came about to see how small an IRIS instance could be. For this exercise we focused on what is the smallest amount of memory we can configure for an IRIS instance.Do you know all the parameters that affect the memory allocated by IRIS ?
These are the different buckets that affect memory allocation by IRIS and its corresponding parameters:

What is JWT?
JWT (JSON Web Token) is an open standard (RFC 7519) that offers a lightweight, compact, and self-contained method for securely transmitting information between two parties. It is commonly used in web applications for authentication, authorization, and information exchange.
A JWT is typically composed of three parts:
1. JOSE (JSON Object Signing and Encryption) Header
2. Payload
3. Signature
These parts are encoded in Base64Url format and concatenated with dots (.) separating them.
Structure of a JWT
Header
{ "alg": "HS256", "typ": "JWT"}
Payload
{"sub": "1234567890", "namtrying importing classDefinition to Iris via LoadStream() fails with <INVALID OREF>zLoadStream+1^%SYSTEM.OBJ.1 ----> InterSystems.Data.IRISClient.IRISException : Exception thrown on server (code = 1192)...
Code is here; use any valid exported ClassDefinition as File to test that:
public static void loadClassFromStream(this IRIS iris, string txt)
{
// IRISObject globalCharStr = IrisStreamExtensions.FromTxt(iris, text);
var fp = @"C:\tmp\TestClass.xml";
txt = File.ReadAllText(fp);
var stream = new MemoryStream();
var bytes = Encoding.DefaHi developers!
There is a very neat variable in IPM ${ipmdir} that lets packages be installed on a particular IRIS server and ensures that the data and resources they bring don't mess around as ${ipmdir} variable during the installation transforms into:
iris installation dir/ipm/package_name/version/whatever_you_install_here
It is very convenient, e.g., to bring some data and resource files that can be useful during the installation setup, e.g., via FILECOPY. Indeed, suppose you bring some csv_file, e.g. titanic.csv via FILECOPY as:
<FileCopy Name="data/titanic.csv" Target="${ipmdir}data/titanic.csv"/>or even the whole folder of data in the source code repo into the package:
<FileCopy Name="data/" Target="${ipmdir}data/"/>And in the case of Iris in Docker it resides in:
/usr/irissys/ipm/package_name/1.0.0/data/titanic.csv
This is all great, but is there any way for the installed code to determine the location of the data files? It'd be neat to let the installed app know somehow where is the data that came with it? Could it be the method in the IPM client that will resolve ${ipmdir} for the app?
Hi, Community!
Do you need a way to securely manage your passwords, API keys, and other credentials? See how the Secure Wallet in InterSystems IRIS® data platform can help: