#InterSystems IRIS

19 Followers · 5.7K Posts

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.

New
Question Pietro Di Leo · 6 hr ago

Hello everyone, I am working with the VSCode extension by connecting to clients' IRIS servers remotely with my personal user (pdileo). However, one of the development environments was recently updated and my user was created for the second time with a different password.

I noticed that the VSCode extension no longer allows me to log in because the password has been changed, without asking me for a new one, only showing the 401 AxiosError.

2
0 20
New
Article Mihoko Iijima · 10 hr ago 31m read

Vector search is a retrieval method that converts text, images, audio, and other data into numeric vectors using an AI model, and then searches for items that are semantically close. It enables “semantic similarity search” from free text, which is difficult with keyword search alone.

However, in real use, I encountered cases where results that are “close in meaning” but logically the opposite appeared near the top of the search results.

This is a serious issue in situations where affirmation vs. negation matters. If the system returns the wrong answer, the impact can be significant, so we cannot ignore this problem.

This article does not propose a new algorithm. I wrote it to share a practical way I found useful when semantic search fails due to negation.

 

0
1 53
New
Article Jonathan Card · 12 hr ago 5m read

There seems to be a generous use of ClassMethods in ObjectScript code generally. I hope my own experiences aren't representative, but I bet they are. Forgive me for giving away the ending of this article, but in short: don't use them. Unless you can make a pretty convincing case that you have to, just never use them.1

What is a ClassMethod? In an ObjectScript class, you can define methods in two different ways: in a Method, you must instantiate an instance of the class to call the method, and in a ClassMethod, you can call the method without instantiating the class. Of course, in a ClassMethod, you don't have access to any properties of the object (because there's no object), but you can access globals (they are global, after all) and Parameters (which are class constants).

3
1 55
New
Article Thomas Dyar · 17 hr ago 15m read

TL;DR: This article demonstrates how to run GraphRAG-style hybrid retrieval—combining vector similarity, graph traversal, and full-text search—entirely within InterSystems IRIS using the iris-vector-graph package. We use a fraud detection scenario to show how graph patterns reveal what vector search alone would miss.


Why Fraud Detection Needs Graphs

Every year, businesses and consumers lose billions to fraud. In 2024 alone, consumers reported $12.5 billion lost—a 25% increase year over year. What makes modern fraud so difficult to detect is that fraudsters rarely work alone.

0
0 24
New
Article Gabriel Ing · May 27 8m read

Welcome back to a series of introductory articles on AI Hub, the new product feature currently in an early access program! (links: EAP Site for download, documentation)

In the last article, we covered how to create agents and agent tools directly in ObjectScript using the new %AI classes. However, sometimes, instead of creating a new agent, you just want to add some custom tools to an existing agent so you can ask your local claude code, codex, copilot or other agent of choice to query your data directly. This is where MCP Servers might come in.

2
4 50
New
Question Ashok Kumar Thangavel · 12 hr ago

Hi Community,

Interoperability metrics were enabled for a production using ##class(Ens.Util.Statistics).EnableSAMForNamespace(). However, after running DisableSAMForNamespace() and DisableStatsForProduction(), the metrics continue to appear in the endpoint output.

Is there a way to completely stop these interoperability metrics from displaying in the API metrics stream? Is there an additional step or cache clear required?

0
1 14
New
Question Dmitrij Vladimirov · 13 hr ago

Hi community.

How do i count distinct values over cumulative date dimension?

I got calculated measure function defined in cube: COUNT([dimension].[H1].[dimension].Members, EXCLUDEEMPTY)

[dimension].[H1].[dimension] = non-unique numerical fields of ids

Then i got AGGREGATION function defined in Analyzer (that stored in ^DeepSee.CalcMbrs):

AGGREGATE(%TIMERANGE(TimeDimension.hierarchy.level,TimeDimension.hierarchy.level.CurrentMember),Measures.Measure)

This return an error:

ERROR #5001: No member provider object found for member function: MEMBER(5)

All syntax is correct. I checked it twice.

1
0 18
New
Announcement Liubov Zelenskaia · May 27

Join our next in-person Developer Meetup in Boston to explore AI for Developers and Startups.

This event is hosted at CIC Venture Cafe.

Talk 1:"Developing Full-Stack AI Applications from the Ground Up" by Robert Costa, Senior Systems Developer, InterSystems

Talk 2:"Blood, Bytes, and Babies: Building an AI-Powered Autism Diagnostic Test from Scratch" by Hugh Cam, Scientist | Entrepreneur, BlueSavant AI

Food, beverages, and networking opportunities will be provided as always.

>> Register here

0
0 11
Question Don Martin · Sep 5, 2025

We have a task that runs objectscript code to load data into a linked external table.  After upgrading from 2024.1 to 2025.1, the load is throwing an error, with error code -400, and no error message.  The data DOES get loaded into the external table in its entirety, so with no meaningful error message, its hard to determine what the issue is.  The result is the same with and without the USING clause, so don't let that confuse you.

2
0 135
New
Article Guillaume Rongier · May 27 7m read

With Embedded Python and the Native API, it is becoming increasingly natural to write part of IRIS application logic in Python. But one question quickly comes up: how can you manipulate IRIS persistent objects from Python without losing the connection to the native object model, class dictionary, indexes, storage, and SQL projections?

 

iris-persistence explores that question. The project provides a Python object persistence layer for InterSystems IRIS, inspired by %Persistent

1
1 26
New
Question Daniel Astudillo · May 26

Hello everyone,

As part of our recent initiative to modernize our observability stack, we have successfully transitioned our InterSystems IRIS logging framework to a structured JSON format. Now we need to dynamically enrich these logs with business-critical metadata specifically, theTenant ID.

We have this configmap to enable Json logs:

apiVersion: v1 
kind: ConfigMap
metadata: 
	name: iris-cpf-merge  
	namespace: {{ .Release.Namespace }}
data:  
	merge.cpf: |    
	[Logging]    
	ChildProcessLaunchCommand=/usr/irissys/bin/irislogd -f /tmp/messages.json    
	Format=JSON    
	Enabled=1
0
0 33
New
Discussion Ethan Calloway · May 20

 I’m exploring deployment options for InterSystems IRIS in cloud environments such as AWS or Azure.

What deployment architectures, scaling strategies, or infrastructure best practices are commonly recommended by the community? I’d also appreciate guidance regarding high availability, backups, and monitoring in cloud-based deployments.

4
0 91
New
Question Steve Alex · May 26

IRIS is installed and running in an Ubuntu VM.

Visual Studio Code is being used in the host Windows OS and is connected to the IRIS server.

When attempting to execute commands with sudo from the InterSystems Lite Terminal in VSCode using $ZF(-100), error code 127 is returned.

I tried configuring Ubuntu to avoid password prompts by adding the following line to /etc/sudoers.tmp:

ALL=(ALL) NOPASSWD: ALL

However, the above configuration did not work.

Is there a way to execute sudo commands from InterSystems IRIS Production ObjectScript code in Ubuntu?

3
0 57
New
Question Tom Scaletti · May 25

I am trying to connect to hive database and IRIS Intersystems Databases using jaydebeapi in python. I am able to connect to one database at a time. While trying to connect to other database, I am getting the below error

"Class org.apache.hive.jdbc.HiveDriver is not found"

or 

"Class com.intersystems.jdbc.IRISDriver is not found"

lin1 -

hive_con = jd.connect(java_driver_class, jdbc_conn_url, [hive_user, hive_pass],jarfile)

lin2 -

iris_con = jd.connect(iris_driver_class, iris_conn_url, [iris_user, iris_pass],jarfile)
2
0 33
New
Article Yuri Marx · May 25 12m read

The rise of distributed systems and cloud-native architectures within large institutions has redefined hosting for InterSystems IRIS interoperability applications (productions). In modern environments, the standard layout involves at least two production instances operating on distinct nodes under a load-balancing configuration to handle requests.

The benefits are clear: you can now scale dynamically based on request volume, increasing the number of active productions during peak demand and going down when traffic subsides.

2
1 45
New
Question RKumar · May 21
Currently, my Caché code triggers an email using Basic Authentication. Now Microsoft is going to stop Basic SMTP Authentication. In this case, what is the best approach to trigger an email alert from the database? It seems OAuth 2.0 is the best approach. Do anybody have any sample using Azure Entra ID?
4
1 63
New
Question Kurro Lopez · May 25

Hello everyone.

After trying to run Python methods in the intersystemsdc/irishealth-community Docker container, which no longer allows any Python methods to be executed, I decided to abandon this version and start working with containers.intersystems.com/intersystems/iris-community.

In this environment, the Python methods work, which was a significant improvement.

I'm trying to import my libraries with pip install -r requirements.txt

2
0 33
Article Pietro Di Leo · Oct 6, 2025 5m read

Hi everyone! 👋
I’m excited to share the project I’ve submitted to the current InterSystems .Net, Java, Python, and JavaScript Contest — it’s called IRIStool and Data Manager, and you can find it on the InterSystems Open Exchange and on my GitHub page.

11
3 340
Article Dmitry Maslennikov · Oct 7, 2025 28m read

Since we reached two important milestones for Go developers working with InterSystems IRIS:

Now it’s time to see everything working together.

To demonstrate how easily Go developers can adopt InterSystems IRIS, I took an existing production-grade open-source project — the RealWorld Example App — which showcases a full-stack Medium.com-style clone implemented with Go Fiber, GORM, and SQLite.

RealWorld Example App

With just a few configuration tweaks, I swapped out SQLite for gorm-iris, keeping everything else unchanged. The result?
A fully functional Go + Fiber application powered by InterSystems IRIS — no code rewrites, no ORM gymnastics, just a different database backend.

You can find the complete working demo here: github.com/caretdev/golang-fiber-iris-realworld-example-app

2
2 254
Article Pietro Di Leo · Oct 9, 2025 4m read

Introduction

In a previous article, I presented the IRIStool module, which seamlessly integrates the pandas Python library with the IRIS database. Now, I'm explaining how we can use IRIStool to leverage InterSystems IRIS as a foundation for intelligent, semantic search over healthcare data in FHIR format.

This article covers what I did to create the database for another of my projects, the FHIR Data Explorer. Both projects are candidates in the current InterSystems contest, so please vote for them if you find them useful.

You can find them at the Open Exchange:

In this article we'll cover:

  • Connecting to InterSystems IRIS database through Python
  • Creating a FHIR-ready database schema
  • Importing FHIR data with vector embeddings for semantic search
2
2 247
Article Guillaume Rongier · May 12 7m read

InterSystems IRIS globals are one of the platform's core strengths: they store hierarchical data in a direct, ordered, and efficient structure. But when working from Python, manipulating globals can sometimes feel closer to a low-level API than to the natural habits of the language.

The iris-global-reference project provides a Python layer on top of IRIS globals. Its goal is simple: make access to globals more readable, more idiomatic, and easier to integrate into modern Python code, without hiding the underlying hierarchical model.

1
3 112
New
InterSystems Official Bob Kuszewski · May 21

InterSystems is pleased to announce the general availability of:

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

This release adds support for the Ubuntu 26.04 operating system.  Ubuntu 26.04 includes Linux kernel 7.0, security improvements, along with installer and user interface improvements.  

We are only releasing IRIS for Intel/AMD (x86_64) processors at this time.  We've seen occasional network problems on ARM servers.

0
0 62
Article John Murray · Oct 9, 2025 3m read

UPDATE: since version 0.0.4 of the extension was published on 2025-11-23 it is now possible to use gj :: configExplorer directly in VS Code on Windows.

In my previous article introducing gj :: configExplorer I flagged up how an apparent bug in the Windows elements of the Native API for Node.js means it's not currently available to run in VS Code on a Windows desktop. In a comment on that article I offered a workaround, but this requires a Docker-equipped Linux host you can SSH to.

If you don't have a suitable target it's now possible to leverage your local Windows Docker Desktop.

3
0 218
Article Eric Fortenberry · Oct 7, 2025 3m read

While working with external languages for IRIS (such as Python and Node.js), one of the first things you must accomplish is making a connection to an IRIS instance.

For instance, to make a connection in python (from https://pypi.org/project/intersystems-irispython/):

import iris

# Open a connection to the server
args = {
	'hostname':'127.0.0.1', 
	'port': 1972,
	'namespace':'USER', 
	'username':'username', 
	'password':'password'
}
conn = iris.connect(**args)

# Create an iris object
irispy = iris.createIRIS(conn)

# Create a global array in the USER namespace on the server
irispy.set("myGlobal", "hello world!") 
1
1 208