#InterSystems IRIS

19 Followers · 5.6K 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.

InterSystems Official Dipak Bhujbal · Dec 1, 2025

Overview

This release focuses on performance optimization, improved security synchronization, and enhanced network management. The FHIR Server has been upgraded to a new version and migrated to ARM64, delivering significantly better efficiency and throughput. Additionally, several improvements enhance resiliency, subscription management, and network visibility.


New Features and Enhancements

Category

Feature / Improvement

Details

FHIR Server

ARM64 Migration with 40% Performance Gain

FHIR Server now runs on the ARM64 architecture, delivering up to 40% better performance

0
0 68
Article Iryna Mykhailova · Nov 30, 2025 4m read

In the previous article, we talked about ODBC and connecting from C#. And now, let's look at JDBC and Java. The InterSystems JDBC driver is the recommended, high-performance way to integrate your Java applications.

Here is a step-by-step guide to getting your Java application connected to an IRIS instance using the JDBC driver.

Step 1: Obtain and Include the InterSystems IRIS JDBC Driver

Unlike ODBC drivers, which are often installed system-wide, JDBC drivers are typically distributed as JAR files that must be included in your Java project's classpath.

If InterSystems IRIS is installed on your local machine or another you have access to, you can find the file in install-dir/dev/java/lib/ or similar, where install-dir is the installation directory for the instance. Conversely, you can download the jar file from Driver packages page.

Or as suggested by @Dmitry Maslennikov in the comments, use the maven central repository for Maven:

<dependency><groupId>com.intersystems</groupId><artifactId>intersystems-jdbc</artifactId><version>3.10.5</version></dependency>

or for Gradle:

implementation("com.intersystems:intersystems-jdbc:3.10.5")

Include the jar file in Project:

  • Maven/Gradle: If you use a build tool, the simplest method is to add the InterSystems JDBC driver as a dependency in your pom.xml or build.gradle file. This automatically downloads and manages the JAR.
  • Manual: For simple projects, you must place the JAR file in a project directory (e.g., /lib) and explicitly add it to your classpath when compiling and running.
2
0 151
Question Scott Roth · Dec 1, 2025

I am working on building out a Workflow task that captures errors in mapping to specific tables. Within the Workflow task, I would like to give the owner of the task the ability to resubmit message once the mapping has been corrected. Is there a way to do it in a similar fashion to pulling up the Trace ie...

EnsPortal.VisualTrace.zen?SESSIONID=#(%task.%FormValues.GetAt("MsgHdrID"))#" target="_blank">View Message Trace

Is there a one liner that could be called to resubmit the MsgHdrID (Session ID) from its source to post it again?

1
0 63
Article Timothy Leavitt · Jan 15, 2020 9m read

Introduction and Motivation

A unit of ObjectScript code (a ClassMethod, say) may produce a variety of unexpected side effects by interacting with parts of the system outside of its own scope and not properly cleaning up. As a non-exhaustive list, these include:

  • Transactions
  • Locks
  • I/O devices
  • SQL cursors
  • System flags and settings
  • $Namespace
  • Temporary files

Use of these important language features without proper cleanup and defensive coding can lead to an application that normally works correctly, but that may fail in unexpected and difficult-to-debug ways.

8
6 1663
Article Andreas Schneider · Apr 22, 2025 4m read

When using standard SQL or the object layer in InterSystems IRIS, metadata consistency is usually maintained through built-in validation and type enforcement. However, legacy systems that bypass these layers—directly accessing globals—can introduce subtle and serious inconsistencies.

Understanding how drivers behave in these edge cases is crucial for diagnosing legacy data issues and ensuring application reliability.
The DATATYPE_SAMPLE database is designed to help analyze error scenarios where column values do not conform to the data types or constraints defined in the metadata.

3
0 231
Article José Pereira · Nov 26, 2025 11m read

In Part 1, we explored how window functions operate. We learned the logic behind PARTITION BY, ORDER BY, and such functions as ROW_NUMBER() and RANK(). Now, in Part 2, let's delve into more window functions with practical examples.


1. Aggregate-over-Window Functions

Overview

These functions compute an aggregate (e.g., sum, average, min, max, count, etc.) over the defined window frame but don’t collapse rows.
Each row remains visible, augmented with aggregated values for its partition.

Supported functions include the following:

  • AVG() — average of values in the window frame.
  • SUM() — total of values
0
1 260
Article Parani.K · Mar 2, 2025 8m read

Parallel query hinting boosts certain query performances on multi-processor systems via parallel processing. The SQL optimizer determines when this is beneficial. On single-processor systems, this hint has no effect.

Parallel processing can be managed by:

  1.  Setting the auto parallel option system-wide.
    
  2. Using the %PARALLEL keyword in the FROM clause of specific queries.
    

%PARALLEL is ignored when it applied to:

  1. INSERT, UPDATE, and DELETE queries (Only SELECT queries benefit from this feature)
  2. The queries involving process-specific functions or variables
  3. A subquery correlated with an
4
5 351
Article Luis Angel Pérez Ramos · Mar 11, 2025 53m read

Since the introduction of Embedded Python there has always been doubt about its performance compared to ObjectScript and on more than one occasion I have discussed this with @Guillaume Rongier , well, taking advantage of the fact that I was making a small application to capture data from public competitions in Spain and to be able to perform searches using the capabilities of VectorSearch I saw the opportunity to carry out a small test.

Data for the test

Public tender information is provided monthly in XML files from this URL  and the typical format of a tender information is as follows:

 
7
3 420
InterSystems Official Aya Heshmat · Nov 25, 2025

The Interoperability user interface project has continued from 2025.1 and has incorporated many of the items that you – our customers and partners – have suggested and observed.  We are continuing to invest in feedback and updating this important user experience.   In the latest release, 2025.3 for IRIS, IRIS for Health, Health Connect and Health Connect Cloud, the DTL Editor and Production Configuration applications that are available for opt-in. 
NOTE:

  • You can switch between the modernized and standard experiences. 
  • All other Interoperability screens remain in the Standard user interface. 
0
0 117
Announcement Anastasia Dyubaylo · Nov 25, 2025

Hello Community,

Great news for developers who have just started working with InterSystems IRIS! We have hands‑on interactive tutorials available via the Instruqt platform! These are perfect for getting up to speed quickly, playing in real environments, and building confidence with IRIS‑based development.

Here is the list of available tutorials:

0
1 131
Article David Hockenbroch · Nov 24, 2025 4m read

Inevitably, you will eventually need to move your code up from one version of IRIS or Cache to a more recent version of IRIS. There are a few good steps you can take to set yourself up for success in that process.

Read Documentation Carefully

Before you move anything you should check out the IRIS documentation page for many useful resources on changes made to various versions of IRIS.

0
0 199
Question Scott Roth · Nov 21, 2025

I am trying to add some validation to an existing Record Map, because recently we had some wrong data get consumed into the System and is causing all kinds of havoc.

Using the AI on the Developer community it suggested that I use PATTERN within the Datatype Parameters to force some validation on some fields. I have never used PATTERN before...

When I go to generate the updated Record Map, I am getting the following...

By the screenshots is my logic not correct?

4
0 78
InterSystems Official Daniel Palevski · Nov 19, 2025

The 2025.3 release of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and HealthShare® Health Connect is now Generally Available (GA). This is a Continuous Delivery (CD) release.

Release Highlights:

  • Secure Wallet: A new encrypted framework for managing sensitive data, built on the IRISSECURITY database, improving system security and access control.
  • Expanded Observability & Cloud Integrations: Enhanced OpenTelemetry metrics, including new process and ECP metrics, plus journal archiving now supports Azure Blob Storage for cost-efficient retention.
  • Data & AI Improvements: Forei
1
0 146
InterSystems Official Stefan Wittmann · Nov 19, 2025

Hi community!

I am excited to say that since the beginning of this year we have published many of the client SDKs for InterSystems IRIS, InterSystems IRIS for Health and Health Connect to the corresponding external repositories (Maven, NuGet, npm and PyPI). This provides many benefits to you such as:

  • You can access the latest releases for a client SDK as soon as they get published, independent of the InterSystems IRIS release cadence
  • You can integrate the SDKs as a dependency with the native package manager tool within your ecosystem and manage dependencies in an industry-standard way
  • End
7
1 193
Article John Murray · Oct 6, 2025 1m read

gj :: configExplorer is a new VS Code extension integrating with Server Manager and leveraging Structurizr to produce configuration diagrams of your servers.

Here's a short introductory video.

By using the InterSystems IRIS Native API for Node.js it avoids the need for any support code to be installed on the servers. This technology choice also qualifies it for entry into the current Developer Community contest.

The initial release focuses on two aspects of server configuration:

  • Namespaces and databases
  • ECP connectivity

Suggestions for what to add next are welcome, as is general feedback.

7
0 199
Article Robert Cemper · Nov 23, 2025 1m read

A previous attempt was assisted by an external Python method.
This is all classic CSP written with ISOS, JavaScript, HTML
Besides the graphic, you also get concrete numbers freshly collected from your local
instance or from remote instances that also installed the package. 

The final result

The processing steps 

  • A CSP page is called by its URL
  • In method OnPreHTTP
    • The System Query fills the temp table from %SYS
    • If the correct URL parameter is provided 
    • ?SERVER=IP-Address[:SuperServerPort[:Username[:Password]]]
    • Actual data are fetched from this server using the Native API for ObjectScript
0
1 75
Question Deák Tamás · Nov 23, 2025

Hello word!

I am new in this field and i am coming from the dot net and angular world.
So hello to everyone!

Im trying to understand the unit test in the vs code what is works in the community version at home (25.2).
I set the  ^UnitTestRoot to somewhere and setted the "unitest: enabled" setting in the settings.json file. 
But it is not work and can't run. Is't it scan? It is not a problem because i can run it dircetley with ##class(classname).RunTest() and it runs but doesn't contain anyting. The Restresult is exist but it is empty.
I think the system is does not understand that the test can find

0
0 60
Article Julio Esquerdo · Nov 21, 2025 1m read

Hi,

When we open a terminal in IRIS, we are entering the ObjectScript shell. Within this shell, we can execute IRIS commands, such as:

In other words, the ObjectScript command is executed in the current shell. But it's always good to remember that IRIS has other shells

  • SQL
  • Python
  • TSQL
  • MDX

One very interesting aspect is shortcuts. We can access these shells through their calls or via shortcuts, as shown in the table below:

Shell

Call

Shortcut

SQL

Do $SYSTEM.SQL.Shell()

:sql

Python

Do $SYSTEM.Python.Shell

:py

TSQL

Do $SYSTEM.SQL.TSQLShell()

0
4 105
Article Haddon Baker · Nov 21, 2025 2m read

As part of improvements regarding CCR usage and usability, certain transitions are now blocked when a CCR Record has undeployed ItemSets for required Environments. 

To promote best practice, when a Tier 1 or Tier 2 CCR moves between Environments, it is important that ItemSets are deployed to required Environments before confirming that the CCR has successfully been implemented in the next Environment.

1
0 67
Article Padmaja Konduru · Nov 21, 2025 1m read

Terminal Commands for Production:

  • Production Start, Stop, Update, Recover and Clean Production

Do ##class(Ens.Director).StartProduction(“ProductionName”)

Do ##class(Ens.Director).StopProduction()

Do ##class(Ens.Director).UpdateProduction()

Do ##class(Ens.Director).RecoverProduction()

Do ##class(Ens.Director).CleanProduction()

Abort Messages in the queue:

               d ##class(Ens.Queue).AbortQueue(“Component Name”)

Get InstanceName :

              W !,##class(%SYS.System).GetUniqueInstanceName()

Get Node Name:

              W  !,##class(%SYS.System).GetNodeName()

Terminate JobId :

   d

0
4 102
Article Vachan C Rannore · Nov 21, 2025 3m read

Hola amigo! 😊 Cómo estás hoy,

I would like to share a small part of my learnings from my first ever official project: POS/EDC machine integration with our billing system. This was an exciting challenge where I got hands-on experience working with APIs and vendors. 

How does a Payment Machine actually work?

It's simple, start by initiating/creating a transaction, then retrieve its payment status.

Here, initiate/create refers to POST method and Retrieve refers to GET.

0
2 120
Article Dan Pasco · Jan 19, 2024 4m read

IRIS 2023.3.0 ASQ

Abstract Set Query, ASQ, is a super set of JSON Path Language, JPL, which was first introduced by the 2016 ISO SQL Standard. JPL is only defined within the context of SQL. In 2023.3, we introduced classes that implement ASQ. It works on any implementation of %Library.AbstractSet. The complete syntax for ASQ will be documented later. This is just a quick introduction to a few of its features. This implementation comes with a nice utility as well. You will know it when you see it!

First, let's get some data from the NHL database.

20
3 677
Question Touggourt · Nov 19, 2025

Hi,

We currently have a zen page we created to show all existing tasks and their states (Running or Stopped) as below, is the a way to do the same and create a page where we can list all Business Services of a production, state and to either Stop or restart them?  

Thanks

1
0 63
Article Iryna Mykhailova · Nov 20, 2025 4m read

For developers building external applications, especially those using familiar technologies like C#ODBC (Open Database Connectivity) is a crucial, standardized bridge to any relational database, including InterSystems IRIS. While InterSystems offers its own native ADO.NET provider, the ODBC driver is often the most straightforward path for integration with generic database tools and frameworks.

Here is a step-by-step guide to getting your C# application connected to an IRIS instance using the ODBC driver, focusing on DSN-less connection string.

Step 1: Install the InterSystems IRIS ODBC Driver

The InterSystems ODBC driver is installed by default when you install InterSystems IRIS on a Windows machine.

  • If IRIS is on the same machine: The driver is already present.
  • If IRIS is on a remote server: You must download and install the standalone ODBC client driver package for your client operating system (Windows, Linux, or macOS) and bitness (32-bit or 64-bit) from WRC website if you're a client or by installing Client components and copying ODBC driver.

Once installed, you can verify its presence in the ODBC Data Source Administrator tool on Windows (look for the InterSystems IRIS ODBC35 driver).

0
1 102