Hey Community!
We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:
Hey Community!
We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:
Hello All,
I have used github (outside of IRIS) for many many years and have no problem with it. Also used SVN and other source control systems.
I have a conceptual problem understanding the ISC github links and how they work via VSCode.
https://github.com/intersystems/git-source-control
Our server is on Linux.
What I've done:
1. On Linux Server - d ##class(SourceControl.Git.API).Configure()
2. Create a local repo (we have a local git), say https://repo/myrepo
3. VSCode installed Object script addons, github Pull requests extension
4. VSCode Connect to namespace on server, all good
5.
This article describes a significant enhancement of how InterSystems IRIS deals with table statistics, a crucial element for IRIS SQL processing, in the 2025.2 release. We'll start with a brief refresher on what table statistics are, how they are used, and why we needed this enhancement. Then, we'll dive into the details of the new infrastructure for collecting and saving table statistics, after which we'll zoom in onto what the change means in practice for your applications. We'll end with a few additional notes on patterns enabled by the new model, and look forward to the follow-on phases of this initial delivery.
I am trying to use upload.csp as a template for choosing a CDV file to process. I am calling it from a zen page using this:
controlStyle="width:500px; height:100px; font-size:1.5em;"
onclick="zenPage.importExtract();"/>
{
// Open CSP popup to upload the CSV
//alert('importExtract called.');
zenPage.launchPopupWindow(zenLink('Upload.
Build 2025.1.0.1.24372U.f00326d.
This release delivers expanded Azure support for InterSystems Data Studio, enhanced subscription flexibility, major module updates, and multiple improvements to networking, security, and API responsiveness.
|
Category |
Feature/Improvement |
Details |
|---|---|---|
|
Azure Support |
Enhanced InterSystems Data Studio (IDFS) on Azure |
Improved stability, compatibility, and performance for IDFS deployments in Azure environments. Deployment update required. |
This article outlines the process of utilizing the renowned Jaeger solution for tracing InterSystems IRIS applications. Jaeger is an open-source product for tracking and identifying issues, especially in distributed and microservices environments. This tracing backend that emerged at Uber in 2015 was inspired by Google's Dapper and Twitter's OpenZipkin. It later joined the Cloud Native Computing Foundation (CNCF) as an incubating project in 2017, achieving graduated status in 2019. This guide will demonstrate how to operate the containerized Jaeger solution integrated with IRIS.
#InterSystems Demo Games entry
InterSystems Go tHE DIStance is a next-generation care management solution aimed at helping health plans address rising unmanaged healthcare costs and declining quality ratings, particularly in chronic condition management like diabetes. The platform integrates rich, real-time clinical data (rather than relying solely on delayed claims data) into interactive views that can track HEDIS performance, identify care gaps, and support targeted, personalized outreach through built-in communication tools. Care managers can access a unified clinical record, engagement history, and recommended next actions to improve both individual patient outcomes and broader population health.
Presenters:
🗣 @Jess Jowdy, Manager of Healthcare Sales Engineering, InterSystems
🗣 @Jimmy Carney, Team Lead of Emerging Markets & SMB Sales Engineering, InterSystems
🗣 @Clayton Lewis, Senior Technical Specialist, InterSystems
The August Article Bounty on the Global Masters article caught my attention, and one of the proposed topics sounded quite interesting in regard to its future use in my teaching. So, here's what I'd like to tell my students about tables in IRIS and how they correlate with the object model.
First of all, InterSystems IRIS boasts a unified data model. This means that when you work with data, you are not locked into a single paradigm. The same data can be accessed and manipulated as a traditional SQL table, as a native object, or even as a multidimensional array (a global). It means that when you create an SQL table, IRIS automatically creates a corresponding object class. When you define an object class, IRIS automatically makes it available as an SQL table. The data itself is stored only once in IRIS's efficient multidimensional storage engine. The SQL engine and the object engine are simply different "lenses" to view and work with the same data.
First, let's look at the correlation between the relational model and the object model:
| Relational | Object |
| Table | Class |
| Column | Property |
| Row | Object |
| Primary key | Object Identifier |
It's not always a 1:1 correlation, as you may have several tables represent one class, for example. But it's a general rule of thumb.
Over the years, I’ve noticed that certain SQL questions come up repeatedly on the InterSystems Developer Community, especially about using the LIKE predicate in different contexts. Common variations include:
and many more derivatives. So, I decided to write an article that focuses on how LIKE works in InterSystems IRIS SQL, especially when used with variables in Embedded SQL, Dynamic SQL, and Class Queries, while touching on pattern escaping and special character searches.

First of all, I'd like to mention that InterSystems IRIS SQL offers most of the capabilities available in other relational DBMS that implement a later version of the SQL standard. But at the same time, it's important to mention that apart from relational access, in IRIS you can also use other models to get the same data, for example, object or document models.
On this note, let's look at the LIKE predicate and how this tool is used in SQL for pattern matching.
In the Caché database, when calculating the total count based on the unique identifier of a record, the quantity is over 1.2 million. After removing duplicates based on the unique identifier and then calculating the total count, the quantity is over 400,000. When grouping by the unique identifier, it can be observed that the count for this identifier is not one. However, when performing a conditional query based on the identifier, only one record can be retrieved. Why is this the case?
Is there a way to Remove specific all Addresses from a Provider.Individual.Address before reinserting the Addresses from an HL7 message in Provider Directory?
Most fields we can call %clearFields() however since Addresses come from multiple locations we need to isolate and treat Addresses from this HL7 source as a snapshot.
Thanks
Scott
#InterSystems Demo Games entry
MyVitals is a Personal Health Device Hub that bridges the gap between wearable health devices and clinical workflows. In this demo, we show how healthcare organizations can enroll patients, collect real-time data from personal devices via mobile apps, and seamlessly integrate that information into EHR systems using FHIR, HL7, and InterSystems technology. Built on IRIS for Health and FHIR repositories, MyVitals turns disconnected wearable data into actionable clinical insights—securely, efficiently, and at scale.
Presenters:
🗣 @Alberto Fuentes, Sales Engineer, InterSystems
🗣 @Pierre-Yves Duquesnoy, Senior Sales Engineer, InterSystems
🗣 @Luis Angel Pérez Ramos, Sales Engineer, InterSystems
Hi all,
I’m running into an issue with a %ZEN.Component.tablePane in a Zen page.
We have:
SearchMessages) that accepts multiple filter parameters
We’re trying to run the query from a button click using a client-side method (runSearch()) that collects the filter values, sets them as parameters, and calls executeQuery().
The problem is that the table does not update at all Old rows remain, or sometimes nothing appears.
Hi, Community!
Looking for ways to improve your application testing? See how to build requirements such as performance and scalability into your development workflow:
Hello
I want to get the property of a class, sorted by order in storage.
I know we can use
Set definition = ##class(%Dictionary.ClassDefinition).%OpenId(className)
Set listProperty = definition.Properties
For ii = 1:1:listProperty.Count(){
write listProperty.GetAt(ii).NameBut using GetAt sorts the results alphabetically.
Example :
Class Test.class Extends (%SerialObject, %XML.Adaptor, %JSON.Adaptor)
{
Property tiers As %String;
Property journal As %String;
}listProperty.GetAt(1).Name = "journal" and listProperty.GetAt(2).
I have the unfortunate job of installing IRIS and Healthshare (real Healthshare not Healthconnect) on 16 difference instances (tst, stg, prd with mirrors etc). the Dev was set up manually (mostly by me).
So I decided to create a class that installed the db's, namespaces, mappings and HSREGISTRY options , i then decided an installer manifest was a better idea, I keep changing my mind on which!
The operations manager in our company was using structured logging in IRIS to tail information to an on-prem monitoring tool and started to get concerned with the ever-growing size of the output file. He just leaned across the aisle here and informed me that the output file has no mechanism for rolling this file over at a certain point for archival or disposal. Sure enough, I can't find any documentation to refute this.
Hey Community!
We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:
Hi everyone,
I am trying to create a treeMapChart in IRIS BI that will then be displayed on my DeepSeeWeb dashboard. In the IRIS BI User Portal, this is an example of what my treeMapChart looks like:
.png)
I know there is a huge amount of rectangles in this graphic - I care most about the common components (the largest boxes) but I still want all of the boxes to show. However, it projects to my DeepSeeWeb dashboard as the following:
.png)
The labels do not show, even if I hover over the boxes.
Hello Community,
I’m working on an InterSystems IRIS production that needs to call an external API using OAuth client credentials (client_id and client_secret). For security reasons, I must pass these credentials via environment variables in my Docker container.
In the IRIS terminal, I can successfully retrieve these environment variables using $System.Util.GetEnviron("api-clientid") and $System.Util.GetEnviron("api-clientsecret"). However, inside my Business Operation class (OnMessage method), these environment variables return empty strings.
#InterSystems Demo Games entry
Navigating interoperability and healthcare can be an exciting adventure. In this demo, we will show you how InterSystems IRIS can be the perfect tool to get data - wherever it may lie, in whatever format, into a format of your choice, including FHIR! Once that is done, analytics is a piece of cake with the FHIR SQL Builder and Deep See Web. Let the questing begin!
Presenters:
🗣 @Kate Lau, Sales Engineer, InterSystems
🗣 @Merlin Wijaya, Sales Engineer, InterSystems
🗣 @Martyn Lee, Sales Engineer, InterSystems
🗣 @Bryan Hoon, Sales Engineer, InterSystems
For example, you start debugging the AAA function, which calls the BBB function, then goes to the CCC^ABC function in a different routine and ends up while executing XXX^XYZ. No other routines or functions are visited in this example. What I would like is to get the record of AAA -> BBB -> CCC^ABC -> XXX^XYZ. No marking each function with recording code should be involved: too time consuming, too many functions in real code.
UPD: Iris has built in %SYS.Trace for this purpose but this class is apparently absent in Cache 2017. Did not find any substitutes yet.
This article is a continuation of the IRIS JSON project and features additional methods and insights.
Let's continue with the instance methods
This instance method is used to determine the JSON data type of the %DynamicObject or %DynamicArray.
It returns one of the following strings:
|
|
USER>Set array = [1,"test",true,12.Hey, Developer Community!
We’ve launched a brand-new activity on Global Masters — the Article Bounty!
It’s your chance to share your expertise, help fellow developers, and, of course, earn points while doing it.
👉 Join the August Article Bounty on Global Masters here
Earlier, we launched the Submit an Article Idea challenge — where Global Masters members could suggest new articles, tutorials, how-tos, and more. We received an overwhelming number of fantastic ideas!
👉 Now, once a month, we’ll publish a list of 10 in-demand topics requested by the community.
You can choose a topic from the list, write an article about it, and earn bounty of 🏆 5,000 points when the article is approved.
I have a personal copy of Cache which I use to help me with certain things. The instance resides on my Windows desktop. The apps I use a web enabled. It would be great if I could access my apps via web browser from my laptop without having to keep a copy of Cache on my laptop. It would make it difficult to keep the databases synced. So, if I restart my Cache instance, then I can use get to my apps by entering the url: http://ipadd:57772/csp/user/myapp.cls. but later, after having closed the browser on my laptop, if I try to open a browser session on my desktop I get license limit exceeded.
Been testing out the Production Validator toolkit, just to see what we can/not do with it. Seems really interesting and there seem to be some use cases for it that can really streamline some upgrades (or at least parts of upgrades) but I was running into so many hurdles with the documentation. I am curious if anyone else has used it.
Did you experience any issues getting it working? Any clarification that you would have liked in the documentation? any use cases that you worked through that made it particularly valuable? etc?
Visual Studio Code releases new updates every month with new features and bug fixes, and the July 2025 release is now available.
Enhancements include revamped tool picker and expanded tool limits for MCPs, Chat GPT-5 integration and chat checkpoints, and multi-branch Git worktrees plus coding agent session management to improve productivity.
If you need help migrating from InterSystems Studio to VS Code, or want to advance your knowledge of VS Code, take a look at the training courses George James Software offers > georgejames.com/vscode-training/
Updates in version 1.
Any time a change is made to the configuration of a running Production, an update is needed to apply any changes in configuration or default settings to the running Production. This has historically been a manual step by the user. Now, if the CCR Client Tools cause a running Production to need update, the Production is updated automatically. This means users will no longer have to navigate to the Production Configuration page and click the 'Update Production' button every time they load an ItemSet.
Hello Community,
I'm currently planning a system upgrade from Caché (2018.1.8.766) to InterSystems IRIS (2024.1). The environment consists of one database server and three application servers connected via ECP.
I’m considering two possible upgrade approaches:
Hi Guys,
Not sure what should be the url format, but I'm using : https://PBS.products.com:2188/ to post to the below Business Service
.png)
But I'm getting "connect ECONNREFUSED 3.209.112.146" error, so am I missing something?
.png)
Thanks