Hi, Community!
Want to try using Flask to expose InterSystems IRIS data over HTTP? This short video will get you started:
Building a REST API in Flask with InterSystems IRIS
👨💻Try it yourself in this hands-on exercise! (exercise, 30m).
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.
Hi, Community!
Want to try using Flask to expose InterSystems IRIS data over HTTP? This short video will get you started:
Building a REST API in Flask with InterSystems IRIS
👨💻Try it yourself in this hands-on exercise! (exercise, 30m).
Keywords: Vibe coding, Windsurf, IRIS, TIE
Has anyone not been trying "vibe coding" so far?
Even merely 3 years ago, if anyone asked
Inspired by @Ashok Kumar T's post on the ideas portal here as well as my own wishes for a solution to this problem, I have come up with a simple way to allow more complete and consistent JSON queries without having to specify every desired field. I have created a class that extends the built-in %JSON.Adaptor class and makes its %JSONExportToString and %JSONExportToStream methods accessible through SQL with just a couple of simple SqlProc Methods.
Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
try{
set myobj = .I created iris-budget app for the InterSystems Full Stack Contest in 2026. By full stack, we mean a frontend web or mobile application that inserts, updates, or deletes data in InterSystems IRIS via REST API, Native API, ODBC/JDBC, or Embedded Python.
My app uses multiple REST APIs to add a new category or retrieve a list of categories of expenses and income.
I inherited /csp/coffee from module.xml in iris-fullstack-template.
For this project, I created a swagger file called "budget.json.
With the release of InterSystems IRIS Cloud SQL, we're getting more frequent questions about how to establish secure connections over JDBC and other driver technologies. While we have nice summary and detailed documentation on the driver technologies themselves, our documentation does not go as far to describe individual client tools, such as our personal favourite DBeaver. In this article, we'll describe the steps to create a secure connection from DBeaver to your Cloud SQL deployment.
Hi Community,
In this article, I will introduce my application iris-CliniNote .
CliniNote is a full-featured clinical notes application that combines classic CRUD operations with **real-time AI-assisted notes matching** powered by **InterSystems IRIS native vector search**. The standout feature: while a doctor is writing or editing a clinical note, a side panel shows the **top 5 most similar notes** based on the semantic content of the note being written — **excluding the current patient** to avoid trivial matches. This gives clinicians immediate access to "patients like this one" — helping with differential diagnosis, treatment pattern recognition, and rare presentation detection.
https://irisclininote.sandbox.developer.intersystems.com/csp/clininote/login.html
Keywords: IRIS, Agents, Agentic AI, Smart Apps
Transformer based LLMs appear to be a pretty good "universal logical–symbolic abstractor". They started to bridge up the previous abyss among human languages and machine languages, which in essence are all logic symbols that could be mapped into the same vector space.
Wondering for 3 years we might be able to just use English (etc human natural languages) to do IRIS implementations as well, one day.
This is a step-by-step instruction guide for creating a task to collect data about the InterSystems database and globals therein (as seen in the associated Open Exchange App - find all the associated code there)
UPDATE (Aug 1 2024): Recently I've been asked about the differences between this and the History Monitor functionality. In short, the data collection monitor builds on the history monitor by adding the ability to track growth of individual globals.
Disclaimer: This software is merely for TEST/DEMO purposes.
In the modern healthcare landscape, finding clinically similar patients often feels like looking for a needle in a haystack. Traditional keyword searches often fail because medical language is highly nuanced; a search for "Heart Failure" might miss a record containing "Congestive Cardiac Failure."
I am excited to share iris-medmatch, an AI-powered patient matching engine built on InterSystems IRIS for Health. By leveraging Vector Search, this tool understands clinical intent rather than just matching literal strings.

You’ve seen how tools like Lovable are shaking up web development. People are spinning up entire apps just by talking to an AI, almost like pair‑programming on steroids.
Now imagine bringing that same “vibe coding” experience into healthcare. know, it sounds crazy. Healthcare is complex, full of regulations, and usually gives us a headache just thinking about the interoperability rules.
That’s exactly the space where withLove lives: an AI‑Native, Low‑Code platform built entirely on InterSystems IRIS for Health.
InterSystems IRIS allows you to build REST APIs using ObjectScript classes and the %CSP.REST framework. This enables the development of modern services to expose data for web apps, mobile apps, or system integrations.
In this article, you'll learn how to create a basic REST API in InterSystems IRIS, including:
GET and POST methodsA full demonstration using Docker
I need to reproduce a table (in fact a view, but let's start with a simple table 😊) in IRIS as the currently used in Oracle.
I need to expose/project one column to JDBC as CLOB, in my class I have the corresponding property defined as:
Property GlobStream As %Stream.GlobalCharacter;
In JDBC this column is projected as LONGVARCHAR, this is compliant with the documentation but I need to project it as CLOB.
In addition, I'm no expert in JDBC but wit seems that LONGVARCHAR has a Maximum Length 32,700 characters in JDBC, not quite enough for an arbitrary stream.
using intersystemsdc/iris-ml-community:latest I failed with
Error: Invalid Community Edition license, may have exceeded core limit.
Shutting down the system : $zu(56,2)= 0Starting IRIS
What is the actual valid version with ML ??
There are always those who say that their child looks more like their mother or their father. How about using math and Artificial Intelligence to be sure? The facial-matching application can answer you.
See these results:

I have a persistent class (GetOrgUpdatesResponse) that has a property which is a list of another persistent class (Organization).
What would be the best way to cascade deletes so that on deletion of a parent row each object in the list property is then also deleted?
I have included a sample of my classes here for clarity
Class Integration.ISIS.BO.SyncOrg.Custom.GetOrgUpdatesResponse Extends (%Persistent, Ens.Hello everyone,
I’m looking to implement Continuous Training (CT) as part of an MLOps strategy for some data science projects in IRIS. I want to automate the full cycle:
- Monitoring model performance & accuracy degradation.
- Retraining models automatically.
- Validating and updating production models.
I’ve looked into IntegratedML, but it seems more focused on the SQL interface for training (AutoML). Even with the new Custom Models (beta), which allows for more flexibility with Python, it doesn't seem to provide the "Continuous" orchestration out of the box.
I’d like to know:
Hi developers!
Observing the avalanche of AI-driven and vibe-coding developer tools that have been appearing lately almost every month with more and more exciting dev features, I was puzzled whether it is possible to leverage it with InterSystems IRIS. At least to build a frontend. And the answer - yes! At least with the approach I followed.
Here is my recipe to prompt the UI vs InterSystems IRIS Backend:
Here is the result of my own exercise - a 100% prompted UI vs IRIS REST API that allows to list, create, update delete entries of a persistent class (Open Exchange,frontend source, video):
What is the recipe in detail?
Hi developers. Just want to share with you a finding that might save you a few important minutes of your developer life with InterSystems IRIS.

But!
It should work; you deployed the REST API correctly, and everything is just in place.
What can go wrong?
The standard %Net.HttpRequest library in InterSystems IRIS is powerful and comprehensive, but it can be verbose for simple operations. Writing an HTTP request often requires several lines of code to instantiate the class, configure the server, the port, HTTPS, add headers, and finally send the request.
When testing in the terminal, this configuration quickly becomes too heavy, and usually ends up with the creation of temporary methods...
FastHTTP was designed to address this need. This utility class provides a fluent and concise interface to perform HTTP calls in a single line, while automatically handling the underlying complexity (SSL/TLS, URL parsing, JSON encoding, headers, etc.).

Have you ever needed to change an IP or port before deploying an interface to production? Needed to remove items from an export? What about modifying the value(s) in a lookup table before deploying? Have you wanted to disable an interface before deploying? What about adding a comment, category, or alert setting to an interface before deploying to production?
If you’ve ever needed to make any changes to an interface or lookup table before deploying to production, then Export Editor is for you!
Hi Developers,
We are happy to announce the first InterSystems online programming contest of the year:
🏆 InterSystems Full Stack Contest 🏆
Duration: February 2 - March 1, 2026
Prize pool: $12,000
.jpg)
Hi Community!
@Joan.Pérez published a review that it is not very clear what applications are available for InterSystems Package Manager. Thanks Joan! Indeed it deserves a post.
There at least two ways I know to showcase them:
1. Run find command in zpm:
IRISAPP>zpm ============================================================================= || Welcome to the Package Manager Shell (ZPM). || || Enter q/quit to exit the shell. Enter ?
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ InterSystems IRIS & IRIS Health as a Managed Service @ Ready 2025
One objective of vectorization is to render unstructured text more machine-usable. Vector embeddings accomplish this by encoding the semantics of text as high-dimensional numeric vectors, which can be employed by advanced search algorithms (normally an approximate nearest neighbor algorithm like Hierarchical Navigable Small World). This not only improves our ability to interact with unstructured text programmatically but makes it searchable by context and by meaning beyond what is captured literally by keyword.
In this article I will walk through a simple vector search implementation that Kwabena Ayim-Aboagye and I fleshed out using embedded python in InterSystems IRIS for Health. I'll also dive a bit into how to use embedded python and dynamic SQL generally, and how to take advantage of vector search features offered natively through IRIS.
.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.
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") {
quit 1
}
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.
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?
