#InterSystems IRIS

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

Question Shashvati Dash · Jul 1, 2025

The below code is not working. its unable retrieve Record count and merge files

Class Util

{

ClassMethod zPyRecordCount(inputfile) As %Integer [ Language = python ]

{

    import pandas as pd

    import iris

    import io

    try:

        df = pd.read_csv(inputfile, sep='|')

        recordcount=len(df.index)

        sys.stdout.write(len(df.index))

        return recordcount

    except Exception as e:

        return 0

}

ClassMethod zPymergefiles(file1, file2, outputfilename) As %Boolean [ Language = python ]

{

    import pandas as pd

    import iris

    import

1
0 72
Question Evgeny Shvarov · Jun 29, 2025

Hi noble devs!

Just building a simple frontend->JSON->IRIS backend story, and figured that IRIS while importing via %JSON.Adaptor wants JSON fields to match property names, meaning even should match the case. Like:

{ name: "John", 

surname: "Doe"}

will have issues while saving the dynamic object to a class Sample.Person with:

Class Sample.Person Extends (%Persistent, %JSON.Adaptor)

{

Property Name: %Sting;Property Surname: %String;
}

As soon as the case is not the same... 

Is there any setting to fix this?) By fixing I mean I want IRIS to don't care about the case JSON fields

15
0 298
Article Alex Woodhead · Jul 1, 2025 3m read

Thank you community for translating an earlier article into Portuguese.
Am returning the favor with a new release of Pattern Match Workbench demo app.

Added support for Portuguese.

The labels, buttons, feedback messages and help-text for user interface are updated.

Pattern Descriptions can be requested for the new language.

The single AI Model for transforming user prompt into Pattern match code was fully retrained.

Values to Pattern Code Model also retrained

The separate AI model for generating Pattern match code from a sample list of values has been retrained.
The previous model r




0
0 103
Article Marco Bahamondes · Jun 24, 2025 3m read

Introduction

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:

  • A persistent data class
  • A REST class with GET and POST methods
  • A web application to expose the API
  • A full demonstration using Docker

Step 1: Create the data class Demo.Producto

Class Demo.Producto Extends (%Persistent, %JSON.Adaptor) {
  Property Nombre As %St





3
3 296
Question Ashok Kumar T · Jun 27, 2025

Hello Community,

When handling a %CSP.REST API response for a custom endpoint, how can I capture or access the response content before it is written to the output buffer and sent through the Web Gateway to the UI?

In manually created REST services (for example, with a route like:<Route Url="/test" Method="POST" Call="User.Sample:Test" Cors="true"/> ),
the response is typically written from within any class method in the execution flow.

Is there a way to intercept or log the response content before it is sent to the client?

Thanks!

4
0 121
Question Norman W. Freeman · Jun 27, 2025

I have notified that on several servers the IRISTEMP database is reported as only a few GB in size while on the disk where it's located, the IRIS.DAT file is much bigger (eg: 3GB reported in Portal (including free space) while file on the disk file is 121GB). The last modification date of IRIS.DAT is recent so I'm not looking into a location no more in use.

Is there an explanation for that difference in size ? 

I know temporary databases are special in a way they are not always stored on the disk, here is what InterSystems says about it :

Changes to temporary globals are not written to di

4
0 139
Question Norman W. Freeman · Jun 10, 2025

I have a database that is 2TB in size (from a LIVE system).

I would like to defragment it but I have some questions. I took a look at official documentation but it does not help.

  • Is is possible to get a measurement about how much database is fragmented ? (eg: a percentage). Most operating systems are able to give a an indication about how much a filesystem is fragmented before any operation.
  • The database is on a LIVE server, the IRIS service is restarted every night (around 1AM). Because of that I can't run defragment continuously. I don't think it will be able to complete under 24 hours.
10
0 196
Question Nezla · Jun 24, 2025

Hi Guys,

I'm trying to use %Net.WebSocket.Client to collect data from a sever,

and part of that I needed to implement Two classes (SX3.Production.HTTP.AdvCredenials  & SX3.Production.HTTP.AdvListener) as below for the purpose of Credentials & EventListener properties,   

Class SX3.Production.HTTP.AdvCredenials Extends %Net.WebSocket.ICredentials
{

Method GetPassword() As %String
{
""
}

Method GetUsername() As %String
{
""
}

Method GetSSLConfiguration() As %String
{
"MySSL"
}

}

Class SX3.Production.HTTP.AdvListener Extends %Net.WebSocket.IEventListener
{

Method OnMessage(pConte

7
0 127
Question Kurro Lopez · Jun 23, 2025

Hi all,

We're developing a medical appointment app that connects doctors' schedules to an appointment provider.

The provider is returning us the appointment in the following format:

Thu Jul 03 08:20:00 CEST 2025

It means, 03 july 2025 at 08:20:00 Central European Summer Time (UTC+2)

But we need the following format:

2025-07-03 08:20:00+02:00

Is there any option to convert zone time code (CEST) to a UTC+x ?

How to convert zone time code (CEST, CET, ET, EDT, etc..) in its zone time in UTC (UTC+2, UTC+1, UTC-5, etc..) ?

Best regards

4
0 131
Article Henry Pereira · Jun 11, 2025 15m read

Learn how to design scalable, autonomous AI agents that combine reasoning, vector search, and tool integration using LangGraph.

Too Long; Didn't Read

  • AI Agents are proactive systems that combine memory, context, and initiative to automate tasks beyond simple chatbots.
  • LangGraph is a framework that enables us to build complex AI workflows, utilizing nodes (tasks) and edges (connections) with built-in state management.
  • This guide will walk you through building an AI-powered customer support agent that classifies priorities, identifies relevant topics, and determines whether to escalate or auto

image.png

4
4 675
Article Tomoko Furuzono · Aug 29, 2024 1m read

InterSystems FAQ rubric

This can be achieved by using the CSV() procedure of the %SQL.Util.Procedures class.
Below is an example of usage code. (Assuming that the file test.csv is in c:\temp.)

 Set rowtype="Name VARCHAR(50),UID VARCHAR(50), PHONE VARCHAR(50)"
 Set filename="c:\temp\test.csv"
 Set result=##class(%SQL.Statement).%ExecDirect(,"call %SQL_Util.CSV(,?,?)",.rowtype,.filename)
 Set rset =result.%NextResult()
 
 // To display all results, use do rset.%Display()
 While rset.%Next() {
     Write "Name:",rset.%GetData(1)," UID:",rset.%GetData(2)," PHONE:",rset.%GetData(3),!
     }

 Set rset="",re
8
7 578
Question Justin Millette · Jun 23, 2025

I have a class with a projection that creates some persistent classes (chunks) and a non-persistent "Daemon" class that I want to have running in the background, doing some processing. The daemon needs to look at the "chunk" classes, and I want it to be simple to start the daemon -- I am currently calling the daemon's start method at the end of the CreateProjection method. When I do this, I get a <CLASS DOES NOT EXIST> error from the daemon when it tries to query against one of the chunk tables. But, if I add a "HANG 5" at the beginning of the daemon start method, this runs fine. I am assuming

8
0 120
Announcement Celeste Canzano · May 12, 2025

Hello IRIS community,

InterSystems Certification is currently developing a certification exam for InterSystems IRIS SQL professionals, and if you match the exam candidate description given below, we would like you to beta test the exam! The exam will be available for beta testing starting May 19, 2025.

5
1 320
Article Hannah Kimura · Jun 23, 2025 19m read

INTRO

Barricade is a tool developed by ICCA Ops to streamline and scale support for FHIR-to-OMOP transformations for InterSystems OMOP. Our clients will be using InterSystems OMOP to transform FHIR data to this OMOP structure. As a managed service, our job is to troubleshoot any issues that come with the transformation process. Barricade is the ideal tool to aid us in this process for a variety of reasons. First, effective support demands knowledge across FHIR standards, the OHDSI OMOP model, and InterSystems-specific operational workflows—all highly specialized areas. Barricade helps bridge k


0
4 171
Announcement Larry Finlayson · Jun 23, 2025
  • Using InterSystems Embedded Analytics – Virtual July 14-18, 2025
    • Embed analytics capabilities in applications and create the supporting business intelligence cubes.
    • This 5-day course teaches developers and business intelligence users how to embed real-time analytics capabilities in their applications using InterSystems IRIS® Business Intelligence.
    • This course presents the basics of building data models from transactional data using the InterSystems IRIS BI Architect, exploring those models and building pivot tables and charts using the InterSystems IRIS BI Analyzer, as well as creating
0
0 75
Question Nezla · Jun 23, 2025

Hi,

I'm trying to install NodeJs (javascript runtime environment) in IRIS container so I can execute JS files?
It was easy to install it outside the container but I got the attached error when trying in the container:  

Thanks

0
0 69
Question Pietro Di Leo · Jun 21, 2025

Hi everyone,

I'm preparing to move to a new PC soon and I'm trying to migrate the server connections I use in IRIS Studio to the new environment.

I’ve followed without success an old procedure I've found on a post on the community that involves exporting the registry key from:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Intersystems\Cache\Servers

But I’ve realized that this only includes the entries from the Server Manager and not the actual server connections used within IRIS Studio and shown within the "Server Connections" menu.

As I've done to copy other software configurations, I also c

2
0 164
Article Iryna Mykhailova · Mar 16, 2023 6m read

InterSystems IRIS has quite a few different kinds properties. Let’s put them in order so that they make better sense.

First of all, I would divide them into categories:

  • Atomic or simple properties (all those %String, %Integer, %Data and other system or user datatypes)
  • References to stored objects
  • Built-in objects
  • Streams (both binary and character)
  • Collections (which are divided into arrays and lists)
  • Relationships (one-many and parent-children)

Some of these kinds of properties are quite straightforward. For example, atomic properties:

Property Name As %Name;Property DoB As %DateProperty Age As %Integer
4
3 682
Question Fraser J. Hunter · May 1, 2025

Mirror Member

Hi ISC Experts,

I'm in the process of setting up InterSystems IRIS for HealthShare with database mirroring, and I’d appreciate some guidance around how to handle an existing ODBC connection in this new setup.

Scenario:

  • We currently have a system running IRIS for HealthShare that external systems connect to via ODBC (using a standard connection string with hostname and port).
  • We're now configuring mirroring on this system — it will become one of the mirror members (Primary/Backup).
  • The external system using ODBC will not be part of the mirror, but it needs to continue ac


4
0 157
Question Vivian Lee · Sep 13, 2024

How do you iterate over the array of namespaces returned in the result byref from the call below?

DO ##class(%SYS.Namespace).ListAll(.result)

Running "zw result" displays the namespaces (as individual subscripts in result) in the Terminal but I want to be able to programmatically iterate through each namespace name. 

The documentation for ListAll() mentions here that result will be a local array name passed by reference. Is there a way to turn it into a dynamic array?

6
1 260
Question Nezla · Jun 19, 2025

Hi Guys,

below is a running a URL in a browser to connect and get live advertising packets data from Cassia AC server which keeps the connect live and keep going and population data. 

So now I'm doing the same in the below code but the issue I'm not getting anything and it gets stuck at Get(HttpURL) line because it hanging on that live connection I guess and not outputting, so how can I get the HTTP request to exit and get me only a snapshot of that data, maybe something like 20 sec worth of data?  

 BleMac="DC:0D:30:9E:3A:EC",GatewayMac="CC:1B:E0:E2:56:18"
Token=##class(SX3.Task.Te

1
0 91
Article Liam Evans · Jun 18, 2025 3m read

My intention is to show how simple it is to generate a lookup table taking into account the information received in our HL7 messaging. The HL7 message lookup table provided by IRIS is certainly sufficient for most of the searches we want to perform, but we always have that special field in our HIS, LIS, RIS, etc. that we'd like to search by. But that's in a segment outside of that lookup table. That field forces us to generate a specific search using the expanded search criteria. We'll likely have many messages, and we'll also have to filter by date and time so we don't timeout.
 

How do





0
4 229
Article Guillaume Rongier · Jul 8, 2024 6m read

Flask_logo

Description

This is a template for a Flask application that can be deployed in IRIS as an native Web Application.

Installation

  1. Clone the repository
  2. Create a virtual environment
  3. Install the requirements
  4. Run the docker-compose file
git clone
cd iris-flask-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Usage

The base URL is http://localhost:53795/flask/.

Endpoints

  • /iris - Returns a JSON object with the top 10 classes present in the IRISAPP namespace.
  • /interop - A ping endpoint to test the interoperability framework of IRIS.
  • /posts -
4
1 555