#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.

New
Discussion Gabriel Ing · Mar 4

Anyone up for a round of golf?

Are you fed up of making a machine write code for you? Do you miss thinking through problems yourself? Then you are in luck, this round, I propose adding the rule of no AI use. obviously its a game of honor with no prize, so I shan't be enforcing this, but you'll know... 

Challenge:

Create a function which takes a string as a parameter, and returns the length of thelongest sequence of alternating consonants and vowels. The sequence is broken by having two vowels or two consonants in a

7
0 95
Discussion Jorge Jaramillo Herrera · Feb 23

Hello everyone,
I’m looking to implement Continuous Training (CT) as part of an MLOps strategy for some data science projects in IRIS. I want to automate the full cycle:

- Monitoring model performance & accuracy degradation.
- Retraining models automatically.
- Validating and updating production models.

I’ve looked into IntegratedML, but it seems more focused on the SQL interface for training (AutoML). Even with the new Custom Models (beta), which allows for more flexibility with Python, it doesn't seem to provide the "Continuous" orchestration out of the box.

I’d like to know:

0
0 40
Discussion Evgeny Shvarov · Feb 14

Hi developers!

I'm testing vibecoding with ObjectScript and my silicon friend created a code-block that got me thinking "what's wrong"?

Here is the piece of code:

for i=0:1:(json.%Size()-1) {

set p = json.%Get(i)

if (p="value1")!(p="value2") {

quit 1
}

 

AI wanted to quit from a method with a return value. Good intention, but bad use of the command.

And ObjectScript compiler compiles this code with no error(?) (syntax linter in VSCode says it's a syntax, kudos @Brett Saviano ).

But in action, it produces <COMMAND>, of course.

27
0 264
Discussion Daniel Kutac · Dec 18, 2025

Hello community!
I have a small challenge for you :)

One of customers is sending quite a lot of messages between interoperability components, which mix standard request content and streams representing serialized JSON objects. As these JSON streams can be quite long (but not too long, just couple hundreds of characters) they would appreciate if the JSON content of stream was displayed in a nice-to-read way, using syntax highlighting by message trace view.

4
0 108
Discussion Eduard Lebedyuk · Dec 16, 2025

Time for another round of code golf!

Develop a function that performs a two-step encryption process on a given string:

  • First Step: Reverse Cipher

    • Reverse the entire input string.
    • Relocate the last character of the original string (now the first character of the reversed string) to the end.
  • Second Step: Alphabetic Index Binary Encoding

    • For each alphabetic character, determine its zero-based index in the lowercase alphabet (a-z).
    • Replace odd-indexed characters with '1' and even-indexed characters with '0'.
    • Preserve non-alphabetic characters unchanged.

Example:

encrypt("Hello World!

17
0 306
Discussion Evgeny Shvarov · Dec 21, 2025

Hi noble developers!

Have a question/discussion. Sometimes, while developing, we'd need to connect VSCode directly to a remote server (e.g., stage one) for debugging purposes. And after change back to local one. And then to remote again.

How do you perform this switching in VSCode in a convenient way?

I have several settings.json files (settings_local, settings_remote) which I put to a main settings.json when I need to make VSCode to connect to switch the connection:

Is it the best practice?

8
0 135
Discussion Benjamin De Boe · Dec 4, 2025

Hi,

We're working on new capabilities to help you build Agents and AI applications faster with InterSystems IRIS. In order to better understand which entry points and development methodologies would help you most, we've created this brief survey: Building AI solutions with InterSystems IRIS. 

Filling it in should not take much more than 5 minutes, and your feedback on this exciting topic will help us fine tune our designs and prioritize the right features.

Thanks in advance!
benjamin
 

0
0 81
Discussion Dmitry Maslennikov · Nov 14, 2025

Over the past several years, the InterSystems Developer Community has accumulated more than 1,000 open-source projects. Many of them serve as examples and learning materials — but a significant number have become useful tools, libraries, integrations, and real-world components used in production.

Some of these projects are mine, and like many community developers, I’ve seen the same recurring problem:

  • It’s easy to create an open-source project.
  • It’s hard to maintain, support, and develop it sustainably — especially without funding.

Writing code is one thing.
Supporting it for years, keeping up with new IRIS versions, building CI pipelines, writing documentation, fixing issues, reviewing PRs — all of this demands both time and motivation, and the biggest motivator is often financial support.

This is not a new challenge.
The global open-source world has faced this for decades and has developed various models to support OSS ecosystems.

I believe it’s time for the InterSystems community to start a discussion about adopting a similar model.

7
0 214
Discussion Benjamin De Boe · Oct 29, 2025

Hi, 

We very much appreciate the interest in the Developer Community for IRIS Vector Search and hope our technology has helped many of you build innovative applications or advanced your R&D efforts. With a dedicated index, integrated embeddings generation, and deep integration with our SQL engine now available in InterSystems IRIS, we're looking at the next frontier, and would love to hear your feedback on the technology to prioritize our investments.

0
0 85
Discussion Luis Angel Pérez Ramos · Apr 28, 2025

It's been a while since the new UI for Productions and DTL was published as a preview and I would like to know your opinions about it.

WARNING: This is a personal opinion, totally personal and not related with InterSystems Corporation.

I'm going to start with the Interoperabilty screen:

Production screen:

The style is sober and without frills, following the line of cloud services design, I like it.

But, always a but...or maybe two:

In my opinion there is too much information, the left menu is superfluous, it's true that you can collapse it, but I don't want to do it each time that I use the

6
0 371
Discussion Yuri Marx · Oct 12, 2025

This anthropic article made me think of several InterSystems presentations and articles on the topic of data quality for AI applications. InterSystems is right that data quality is crucial for AI, but I imagined there would be room for small errors, but this study suggests otherwise. That small errors can lead to big hallucinations. What do you think of this? And how can InterSystems technology help?

https://www.anthropic.com/research/small-samples-poison

0
0 72
Discussion Andrew Sklyarov · Oct 8, 2025

I know the next ones:

1. Place all different settings in environment variables. You have a different .env file for each environment, and you must add some code to Production for reading and setting these values. It's good for deploying into containers, but challenging for management when we have a large production. I mean, we have many settings that can vary depending on the environment: active flag, pool size, timeouts, and so on. Not only endpoints.

2. My own case.

10
0 200
Discussion Otto Medin · Sep 24, 2025

Hi all,
I needed to pick up the username from a set of credentials configured for a business operation in an interop production, and it turned out to take a few steps, so I'm sharing my method here, in the dual hope that someone has an easier way to do it, or failing that, that it is useful to someone.
Best,
Otto

/// Fetch the user name from the credentials configured for a production item.
/// Parameters:
///  productionName - The name of the production where the config iterm lives.
///  configItemName - The name of the config item that holds the credential setting.
4
0 139
Discussion Laura Blázquez García · Aug 14, 2025

I would like to know which are the best practices of using Streams in Interoperability messages.

I have always use %Stream.GlobalCharacter properties to hold a JSON, or a base64 document, when creating messages. This is fine and I can see the content in Visual Trace without doing anything, so I can check what is happening and resolve issues if I have, or reprocess messages if something went wrong, because I have the content.

But I think this is not the best way of using Streams.

8
0 251
Discussion Infant Livingston · Jul 10, 2025

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:

  1. Upgrade the application servers to IRIS first.
    Since IRIS is expected to be backward-compatible with Caché over ECP, the database server would remain on Caché temporarily.
  2. Upgrade the database server first,
    followed by upgrading the application servers, as they don’t store data.
8
0 212
Discussion Vadim Aniskin · Aug 15, 2023

Hi Developers!

There is a free ObjectScriptQuality tool for ObjectScript developers who upload solutions on GitHub. This tool helps developers validate ObjectScript code using a variety of rules, based on common code errors.

There are currently 16 rules in this tool, but there are definitely many more rules to consider when testing ObjectScript code.

Could you suggest any other rules to add to this tool?

Note: You can submit it as an idea on the InterSystems Ideas for the 2nd Idea-A-Thon contest.

13
0 573
Discussion Evgeny Shvarov · Jun 21, 2025

Hi fellow developers!

Curious if you guys use CreatedAt and LastUpdated properties in your classes?

Created to stamp when the record was created and LastUpdated when it was last updated. Where it can be useful - almost everywhere )) I find it convenient in records sorting (e.g. by creation or last update), in sync (with other systems), and so on, for better analytics.

Do you use it all the time for all the classes?

If don't, why not? What do you use instead?

What property type do you use - %TimeStamp? %DateTime?

What is the best practice to have CreatedAt filled automatically during creation and LastUpdated on every successful save (guess it could be in %OnSave)?

Please share your experience /thoughts?

16
0 208
Discussion Harshitha · May 30, 2025

Hey everyone,

I'm diving deeper into Caché ObjectScript and would love to open a discussion around the most useful tips, tricks, and best practices you’ve learned or discovered while working with it.

Whether you're an experienced developer or just getting started, ObjectScript has its own set of quirks and powerful features—some well-documented, others hidden gems. I’m looking to compile a helpful set of ideas from the community.

3
4 224
Discussion Jonathan Harris · Feb 6, 2023

If anyone has a custom checklist of tasks that must absolutely be done when doing this upgrade to make sure everything is included and nothing is lost or destroyed, we would greatly appreciate it? We have the generic checklist provided on the support websites but we run custom build classes, ftp, tcp-ip, batch, etc.

Thanks,

Jonathan Harris

2
2 254
Discussion Evgeny Shvarov · Apr 24, 2025

Hi devs!

What is the best way to return JSON in IRIS for a GET request in a REST app?

This is how I do it now:

ClassMethod GetAllPersons() As %Stream.Object
{
    d ..%SetContentType("application/json")
    Set rset = ##class(dc.Sample.Person).ExtentFunc()

    set stream=##class(%Stream.TmpCharacter).%New()
    d stream.Write("[")
    if rset.%Next() {
        Set person = ##class(dc.Sample.Person).%OpenId(rset.ID)
        Do person.%JSONExportToStream(.stream)
    }
    While rset.%Next() {
        d stream.Write(",")
        Set person = ##class(dc.Sample.Person).%OpenId(rset
8
1 337
Discussion Oliver Wilms · Apr 20, 2025

I read the article by @Rodolfo Pscheidt:

https://community.intersystems.com/post/ollama-ai-iris

I forked his app and copied selected files from @Guillaume Rongier iris-rag-demo to make it containerized:

oliverwilms/ollama-ai-iris
 

I ran load_data.py and I got this output:

irisowner@e10968e4da42:/irisdev/app$ python3 load_data.py
Document ID: cbfa2f20-6627-407b-bbad-31722d18ca13
modules.json: 100%|█████████████████████████████████████████████████████████████| 349/349 [00:00<00:00, 778kB/s]
config_sentence_transformers.

0
0 133
Discussion Hannah Sullivan · Apr 16, 2025

I have written a new script for csv file export, which writes lines to a %Library.File file based on a SQL query.

The code is simplified into the following as 

try {
    // set up file as %Libary.File
    set f = ##class(%Library.File).%New()
    set f.Name = "export.csv"
    if (##class(%File).Exists(f.Name)) { $$$ThrowOnError(##class(%File).Delete(f.Name)) }
    $$$ThrowOnError(f.Open("WUN"))
    $$$ThrowOnError(f.
2
0 158
Discussion Alex Woodhead · Apr 12, 2025

There is a list of numbers from 1 to 190.

AllList="1,2,3,4,5,6,7,8,9,.....,187,188,189,190"

There is a collection of sets of these values:

List(1)="3,5,6,7,9"
List(2)="1,2,6,9"
List(3)="5,8,9"
List(4)="2,4,6,8"
List(5)="4,7,9"

What is an elegant approach in Object Script to pick the least number of list items:

  • List(1)
  • List(5)
  • List(n)

That together would cover as many numbers as possible from the AllList.

Interested in best coverage over efficiency.

7
0 233
Discussion Anna Golitsyna · Apr 10, 2025

I ask ChatGPT periodically to produce ObjectScript or plain MUMPS code for string manipulation, or for implementing known algorithms etc. Occasionally, it does make mistakes or uses non-existing class members but generally not that bad. Is there any tutorial on the subject of using AI for coding, ideally specifically for ObjectScript/MUMPS? Any AI productivity advice, or tricks you are using, or another AI flavor?

Thanks in advance,
Anna

4
0 275
Discussion Alex Woodhead · Apr 10, 2025

Background

Embeddings is a new IRIS feature empowering the latest capability in AI semantic search.
This presents as a new kind of column on a table that holds vector data.
The embedding column supports search for another existing column of the same table.
As records are added or updated to the table, the supported column is passed through an AI model and the semantic signature is returned.
This signature information is stored as the vector for future search comparison.
Subsequently when search runs, a comparison of the stored signatures occurs without any further AI model processing overhead.

0
2 142
Discussion Paul Hula · Mar 21, 2025

Hi All,

  After doing IRIS/Ensemble etc for 20 years I've come across a company who have very odd view, especially about DTL's and routers.

  They have convinced themselves to use COS for transforms (including HL7) and for routers (and one of their 3rd party providers agree!)

  Their reasons are; efficiency, compatibility, flexibility, power and re-usability.

 

  Of course these reasons are wrong!

  • Efficiency, difference between 1-2 lines compared to a DTL/XML going to 3-4 lines (This also assumes the COS code is well written)
  • Compatibility, surely less with COS as its subject to developer style?
3
1 176
Discussion Enrico Parisi · Mar 20, 2025

Once upon a time in Ensemble Management Portal the pool size of each component (Business Host) within the production was displayed in the Production Configuration page.

This information was very useful, especially when a production have tens or hundreds of components.

Now days the pool size is no longer displayed in the Production Configuration page and to get the pool size you need to click in each and every host in your production.
What if you have hundreds of business hosts and you need to check the pool size of each? It's a nightmare!

0
0 134