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

Question Norman W. Freeman · May 20, 2025

Hello,
I have created this script that does lot of writes to a single global. DB write performance is much slower than expected (compared to another similar systems).

set rec = "..."//fill it with somethingset time = $piece($horolog,",",2)
while(($piece($horolog,",",2)-time) < 30) //30 secondsset^A($System.Util.CreateGUID()) = rec
}

I have notified the following : 

  • CPU usage does not reach 100% on a single core (eg: 25% of total CPU usage should be seen on a 4 cores system).
9
1 226
Question Scott Roth · Jun 11, 2025

I am having a hard time trying to figure out the following...

Within a DTC, I was able to take the a EnsLib.HL7.Message source and using

set a= $System.Encryption.Base64Encode(source.RawContent)
set encodedMessage=$Get(a)

to take the HL7 message encode it and add it to the Data Class as a string to be sent to an Operation to be sent out as a SOAP Request. 

However to make it more universal I tried doing this within a copy of EnsLib.HL7.SOAPOperation

Method SendMessage(pMsgOut As EnsLib.HL7.Message, Output pMsgIn As EnsLib.
3
0 123
Question Nezla · Jun 11, 2025

Hi  Guys,

I'm looking for a Zen component that allow me to populate a list of items and the ability to multiselect, similar to checklist?

I've thought of using MultiSelectSet component but don't know how can I populate it like to a query or resultset?

a short sample code would be helpful.

Thanks

6
1 112
Article Guillaume Rongier · Apr 9, 2019 3m read

IRIS and Ensemble are designed to act as an ESB/EAI. This mean they are build to process lots of small messages.

But some times, in real life we have to use them as ETL. The down side is not that they can't do so, but it can take a long time to process millions of row at once.

To improve performance, I have created a new SQLOutboundAdaptor who only works with JDBC.

BatchSqlOutboundAdapter

Extend EnsLib.SQL.OutboundAdapter to add batch batch and fetch support on JDBC connection.

Benchmark

Benchmarks released on Postgres 11.2 with 1 000 000 rows fetched and 100 000 rows inserted on 2 columns.

alt text

10
3 1923
Question Scott Roth · Jun 11, 2025

I have created a New Database/Namespace within our TEST environment on both the Primary and Backup of the mirror. When I go to create the database/namespace on the DR node I am getting "Cannot open file '/ensemble/TEST/iris.cpf_...." while the cpf file that it references does not exist. Anyone have any clue to why this might be happening?

3
0 137
Article Heloisa Paiva · Mar 17, 2023 2m read

Why I've decided to write this

In my last article I've talked about returning values with Python. But returning them is simple, what can make it harder is what I'm going to talk about today: where the value is treated.
 

Python object in IRIS

Following the example of the last aricle, we have the method:

Class python.returnTest [ Abstract ]
{

ClassMethod returnSomething(pValue... As%String) As%Integer [ Language = python ]
{
	return pValue
}

}


Then, we'll have as a return a Python object, that IRIS interprets as  the class %SYS.

4
4 609
Question Dmitry Maslennikov · Mar 30, 2024

During the realization of some required functionality, I discovered that I need to use Deflate compression, and found, that IRIS does not offer any options, $system.Util.Compress, works one way open (GZIP/COMPRESS) totally different, even for the same algorithms, I see that what I would expect as a result for Deflate somewhere there, but Compress returns something more. Is there any way to get a correct result using just ObjectScript without a need to use external tools? Was it really so difficult to have Deflate implemented in the first place?

8
0 577
Question Daniel Raderstrong · Apr 18, 2024

Hi,

We're getting a string sent to us by a client that was compressed using a java deflater (the zlib algorithm) and when trying to use $System.Util.Decompress() I get an "illegal value" error. I gather from other community posts that this is because the raw compressed string is missing the customized wrapper Iris automatically adds. I know this has been a longstanding issue for a while...just wanted to check if there'd been any updates to this functionality, or successful workarounds for decompressing raw zlib compressed data. Thanks in advance!

10
0 444
Article Lorenzo Scalese · May 22, 2025 9m read

Introduction

MonLBL is a tool for analyzing the performance of ObjectScript code execution line by line. codemonitor.MonLBL is a wrapper based on the %Monitor.System.LineByLine package from InterSystems IRIS, designed to collect precise metrics on the execution of routines, classes, or CSP pages.

The wrapper and all examples presented in this article are available in the following GitHub repository: iris-monlbl-example

1
2 255
InterSystems Official Daniel Palevski · Jun 10, 2025

Summary

Advisory ID

Product & Versions Affected

Risk Category & Score

Explicit Requirements

DP-439649

Products:

  • InterSystems IRIS®
  • InterSystems IRISfor Health
  • HealthShare®Health Connect

Versions:

  • 2025.1.0.225.1
  • 2025.1.0.223.0
  • 2024.1.4
  • 2023.1.6
  • 2022.1.7

Operational:
4 – High Risk

System Stability:
3 – Medium Risk

This issue does not constitute a security vulnerability. It does not allow users to bypass permissions checks or access data outside their authorized namespace.

0
1 180
Question Nezla · Jun 8, 2025

Hi Guys,

How can I create Python pages instead of CSP or Zen pages, not familiar with Python and the only way I know is using embedded Python as methods as attached below?  

Thanks

1
0 104
Question Anna Golitsyna · Jun 6, 2025

Let's suppose two different routines use one and the same chunk of code. From the object-oriented POV, a good decision is to have this chunk of code in a separate class and have both routines call it. However, whenever you call code outside of the routine as opposed to calling code in the same routine, some execution speed is lost. For reports churning through millions of transactions this lost speed might be noticeable. Any advice how to optimize specifically speed?
P.S. Whenever someone is talking about the best choice for whatever, I am always tempted to ask: "What are we optimizing?".

14
0 216
Question Andrew McCrevan · Jun 5, 2025

How would you go about creating an SQL Stored Procedure that would result in the same output as "IN LIKE"?
For example...
CustomersTable

RecordId CustomerName
123 Mark Stevens
456 Betty Johnson
789 John Stevens
321 Brian Smith
654 John Markson
987 Tom Obrian
select *
from CustomersTable
where inLike('%Mark%', '%John%')

Would return:

123 Mark Stevens
456 Betty Johnson
789 John Stevens
654 John Markson
5
0 120
Article Evgeny Shvarov · Feb 15, 2020 5m read

Hi Developers!

As you know the concept of ObjectScript Package Manager consists of ZPM client - client application for IRIS which helps you to install packages from the registry. And the code which works "on the other side" is  ZPM Registry - server which hosts packages and exposes API to submit, list and install it. Now when you install the ZPM client it installs packages from community package registry, which si hosted on pm.community.intersystems.com

But what if you want your own registry? E.g. you produce different software packages for your clients and you want to distribute it via private registry?  Also, you may want to use your own registry to deploy solutions with different combinations of packages.

Is it possible? The answer is YES! You can have it if you deploy ZPM registry on your server with InterSystems IRIS.

To make it happen you would need to set up your own registry server.

How to do that?

2
1 1261
Question Evgeny Shvarov · Jun 5, 2025

Hi IRIS experts!

I have a parameter in a class that stores a global name:

Parameter GlobalName = "^AGlobal";

then I'm trying to call it as:

set gn=$name(..#GlobalName)

to use it later as:

set @gn@("index")="value"

But! I'm having syntax at set gn=$name(..#GlobalName)

What am I doing wrong?

12
1 171
Question Jean Millette · Jun 3, 2025

Hello,

I have a class with a "Unique" index (pxfactidIndex) on a %Numeric property (pxfactid) (partially-edit code snippet below):

Property pxfactid As%Library.Numeric(MAXVAL = 9223372036854775807, MINVAL = -9223372036854775808, SCALE = 0) [ SqlColumnNumber = 7 ];
Index pxfactidIndex On pxfactid [ Unique ];
Storage Default
{
<Data name="FactDefaultData">
<Value name="1">
<Value>pysubjectid</Value>
</Value>
...
<Value name="6">
<Value>pxfactid</Value>
</Value>
...
</Data>
<DataLocation>^CRMBI.FactD</DataLocation>
<DefaultData>FactDefaultData</DefaultData>
<ExtentLocation>^CR
8
0 162
Announcement Liubov Zelenskaia · Jun 5, 2025

Join our next in-person Developer Meetup in Cambridge to explore the latest trends, tools, and features for innovating on data. This time we will dive into Building and Evaluating Agentic Generative Retrieval Systems.

Talk 1
Agentic Retrieval: Techniques beyond Vector Search
Speaker: Suprateem Banerjee, Sales Engineer - AI Specialist

Talk 2
Setting up testing frameworks to quantitatively measure improvements in agentic systems
This talk with cover how open source libraries such as langfuse and deepeval can be leveraged to see how improvements to prompts, llm models and tools change an agent / RAG system's performance. We will briefly cover how these systems work before delving into how they can be combined together.
Speaker: @Jayesh Gupta, Solutions Developer, InterSystems

>> Register here

 

⏱ Day and Time: July 9, 5:30 p.m. to 7:30 p.m.
NEW VENUE ALERT:
📍Amazon Boston Office, 55 Pier 4 Blvd, Boston, MA 02210

0
1 111
Article Evgeniy Potapov · Feb 27, 2022 2m read

In the previous article, we told you about python and dashboard, and in this article I will compare them with each other.If you are just about to get started with visualization in Python, the number of libraries and solutions will definitely amaze you:

  • matplotlib
  • Seaborn
  • Plotly
  • bokeh
  • Altair
  • Folium

A visualization in some libraries, such as Matplotlib, is a simple static image, which is good for explaining concepts (in a document, on slides, or in a presentation).

1
0 926
Announcement Laurel James (GJS) · Jun 5, 2025

George James Software is excited to share a new release of Deltanji source control, version 8.1. This new release introduces a Git Location Driver along with several other functionality and usability improvements. 

Highlights of this release include: 

  • Git Location Driver, which enables Deltanji to integrate directly with Git repositories.
  • Additional signing methods for Task Server II.
  • DATA Component Driver proxy classes.
  • Add or remove from Work Lists incrementally. 
  • %ALL system definitions.
  • New Installation defaults.
0
1 129
Question Evan Gabhart · Jun 4, 2025

I have a stream that I read out until the end. I then append more content to the stream and want to read out only what has been added. How do I only read out the new contents of the stream? Essentially, I want to read a stream, record the end position, then once the stream is updated read the contents from that recorded position until at the new end. This stream needs to be kept intact for historical reference so cannot be cleared between reads.

2
0 96