New
Question Aziz Cotrim · 1 hr ago

I have several Business Operations that share similar behavior, like building HTTP headers or parsing a specific response format. In C# I would extract this into a service class or a base class. What is the recommended way to do this in IRIS? Should I use a utility class, a common superclass, or is there another pattern the community prefers?

0
0 8
InterSystems Developer Community is a community of 27,072 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!
New
Question Aziz Cotrim · 2 hr ago

I have a Business Process that needs to call an external API that may take several seconds to respond. I'm worried that keeping the BP blocked waiting for the response could affect the overall Production throughput. Is there a recommended pattern for handling async calls inside a BPL or custom BP class to avoid this kind of bottleneck?

0
0 5
New
InterSystems Official Bob Kuszewski · 6 hr ago

InterSystems Kubernetes Operator (IKO) 3.9 is now Generally Available.  IKO 3.9 adds new functionality along with numerous bug fixes and security updates.  Highlights include:

Follow the Installation Guide for guidance on how to download, install, and get started with IKO.  The complete IKO 3.9 documentation gives you more information about IKO and using it with InterSystems IRIS and InterSystems IRIS for Health.

0
0 14
New
Question Paul Norg · 7 hr ago

I'm approaching the need to send notifications through a Microsoft Exchange or Gmail servers. however my last foray into this, I was blocked due to an issue inside my SSL certificate is what I thought after the attempt.

So my attention will be on trying to match the cryptography in the SSL certificate I produce compared to the mail server I'm trying to use.

Has anyone else had an issue with this approach? My other option is Amazon SNS potentially. I do have a functional MS Teams channel for alerts, and can make different notification channels as well.

Any help or insights are appreciated. 

2
0 20
New
Job Joe Ahmadian · 8 hr ago

Are you ready to make a difference? Choose to work for one of the most trusted companies in Kansas.

Why Join Us?

  • Make a Positive Impact: Your work will directly contribute to the health and well-being of Kansans.
  • FamilyComes First: Total rewards package that promotes the idea of family first for all employees. Paid vacation and sick leave with paid maternity and paternity available immediately upon hire
  • Professional Growth Opportunities: Advance your career with ongoing training and development programs.
1
0 24
New
Announcement Larry Finlayson · 9 hr ago

HealthShare Unified Care Record Fundamentals – In Person* June 22-26, 2026

*Please review the important prerequisite requirements for this class prior to   registering.

  • Learn the architecture, configuration, and management of HealthShare Unified Care Record.
  • This 5-day course teaches HealthShare Unified Care Record users and integrators the HealthShare Unified Care Record architecture and administration tasks. 
  • The course also includes how to install HealthShare Unified Care Record. 
  • This course is intended for HealthShare Unified Care Record developers, integrators, administrators and managers.
0
0 7
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.

1
2 128
New
Article José Pereira · May 19 13m read

Abstract

Common Table Expressions (CTEs) provide a structured framework for defining reusable intermediate result sets within SQL statements. InterSystems IRIS implements CTEs via the WITH clause, enabling clearer query composition and modular analytical processing while remaining fully integrated with the IRIS cost-based optimizer.

This article explores the semantics of CTEs in InterSystems IRIS, explains their interaction with query optimization, discusses appropriate deployment scenarios, and presents executable examples illustrating practical patterns for production environments.


2
3 215
New
Discussion Julian Matthews · 14 hr ago

Hey everyone.

My team and I have a rare opportunity to start from scratch, and I am keen to know what things others that have gone through a similar process did differently. Obviously there's the immediate benefit of losing any technical debt that has built up over 10+ years of an ever changing environment along with many organisational changes and merges, but I'm thinking about the things that we can do to make life a lot easier for the next 10+ years.

1
0 28
New
Question John Gossick · May 28

We have a long running InterSystems Engine with an Interface Development Team.  We have implemented basic interface and code development processes using mostly manually created helper tasks and functions.
We are looking to upgrade these processes by installing and starting to use Embedded GIT in our DEV spaces first.  We will not use it to deploy changes to PRODUCTION at first, keeping our same current process that the team is very comfortable with.  
We plan to start by using the BASIC mode in GIT, to avoid confusion over multiple branches and other version control functions.

1
1 24
New
Question Pietro Di Leo · May 28

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 43
New
Article Mihoko Iijima · May 28 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 59
New
Article Jonathan Card · May 28 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 75
New
Article Thomas Dyar · May 27 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 29
New
Announcement Evgeny Shvarov · May 28

Hi Developers!

Here are the technology bonuses for the InterSystems Programming Contest: AI Agents for FHIR that will give you extra points in the voting:

  • Implement suggested task - 5
  • InterSystems FHIR Server usage - 2
  • Vector Search usage - 4
  • Embedded Python - 3
  • LLM AI or LangChain usage: Chat GPT, Bard, and others - 3
  • Docker container usage - 2 
  • ZPM Package deployment - 2
  • Online Demo - 2
  • Implement InterSystems Community Idea - 4
  • Find a bug in Vector Search or Embedded Python - 2
  • First Article on Developer Community - 2
  • Second Article On DC - 1
  • First Time Contribution - 3
  • Video on YouTube - 3
0
0 26
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 61
New
Question Ashok Kumar Thangavel · May 28

Hi Community,

In traditional InterSystems SQL, I can use the %NOINDEX keyword during a bulk INSERT to improve performance and then run BUILD INDEX %ALL afterward to populate the indices.

I am looking to implement a similar strategy for an InterSystems FHIR Server.

  1. Is there a way to import/save FHIR resources while skipping the search table extraction (the FHIR version of %NOINDEX)?
  2. Once the data is loaded, what is the correct programmatic way to "rebuild" the search tables?

Thank you!

0
1 24
New
Question Ashok Kumar Thangavel · May 28

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 16
New
Question Tom Scaletti · May 27

I'm connecting to Intersystems Cache database using Intersystems JDBC Driver. There are several network interfaces on client host. I need to make all the Cache traffic to go through a particular interface. Is there a way to choose which network interface to use for Cache connection via JDBC Driver API or somehow via Java code? The approach to use ip route add is suitable but I'm looking for a Java-way like setLocalAddress() on some APIs or something.

1
0 25
New
Question Dmitrij Vladimirov · May 28

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 21
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 27
New
Question Tom Scaletti · May 23

I am working on a cache database query. Since the cache database doesn't support CTE I am using joins to calculate data. The issue is that aggregated data is only calculated for one where the condition for each row in the union. For eg. only the 'Prop decisioned' row is calculated others are always 0. There are many more case conditions.

2
0 59
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 35
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 94