#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 Pietro Di Leo · Sep 11, 2024

Hi, I'm working on a large extraction from a database and need to parallelize the processes during the extraction.

Here's what happens:

  1. The user starts the extraction from.
  2. Several jobs are started using the Job <Method> instruction.

At the end, the user expects to find a document containing the results of all the extractions. What I'd like to do is start a new job that checks whether the previously started jobs have finished or are still working and consequently produce the document.

After starting each job, using $ZCHILD instruction I can get the ID of the last started job.

8
0 447
Discussion Michael Lei · Oct 11, 2024

Hi Team, we are going to deliver a speech on a developer forum where most developers hv not used our tech before but using other database and integration technologies , Pls give us some key points on why they should adopt us and the benefits you can get, especially if you change your tech stack from others to IRIS. Thanks a lot!

3
0 234
Question Alessandra Carena · Oct 10, 2024

Hello everyone,

I'm working with a class generated by OpenAPI in InterSystems IRIS, specifically impl.cls. In one of the classmethods of this class, I need to switch to the %SYS namespace to access system-level functionalities and then switch back to the original namespace.

I tried using the following commands:

new $namespace
set $namespace = “%SYS”

However, these give an error when executed. Is there a proper way to change namespaces programmatically within a classmethod and gain access to the %SYS namespace? Any best practices or example code snippets would be greatly appreciated!

Thank you!

5
0 249
Article Nicole Sun · Mar 25, 2024 7m read

In the business world, every second counts, and having high-performing applications is essential for streamlining our business processes. We understand the significance of crafting efficient algorithms, measurable through the big O notation.

Nevertheless, there are numerous strategies to boost the performance of systems built on the IRIS Data Platform. These strategies are equally crucial for optimizing overall efficiency.

Let's join the journey for a sneak peek into the tips for making IRIS Data Platform work better, where every little trick will help your applications shine.

1. Using Indexes

Ind

10
4 654
Question Carl Deitrich · Oct 10, 2024

Is there a simple way to compare Stream data between two objects?

We have used $ZCRC to create a checksum and that seems to be work.
We have also read each line of the streams and compared them and that seems to work too.

We just think there has to be a simpler way than looping through all the lines of the stream.

Any suggestions would be appreciated.

7
0 279
Article Robert Cemper · Oct 9, 2024 3m read

Motivated by personal feedback by @Edilson Eberle Carvalho  and 
an excellent presentation of @Michael Braam  related to Vector Search I'd like to share
my personal approach to Vectors.
When I started and met vectors with 256, 384, and over 1200 dimensions - I felt lost.
However my example 
Vector-inside-IRIS - a simplification of iris-vector-search - worked fine.
 
In order to understand the mechanics behind it, I decided to start in small steps.
Our common 3 dimensions describe our physical world quite fine.
Even the half 4th dimension (no negatives) added by Einstein is not to hard to follow.
Cosmologic string

1
2 247
Article Luis Angel Pérez Ramos · Oct 8, 2024 4m read

You have probably heard a lot about LLMs (Large Language Models) and the associated development of RAG (Retrieval Augmented Generation) applications over the last year. Well, in this series of articles we will explain the fundamentals of each term used and see how to develop a simple RAG application.

What is an LLM?

LLM models are part of what we know as generative AI and their foundation is the vectorization of huge amounts of texts.

1
5 924
Article vp123 · Oct 31, 2022 5m read

It has been asked a few times recently, how one can make Laravel Framework work with InterSystems IRIS Data Platform. It's been a while since this post about Laravel and InterSystems Caché was published. To bring it up to date, the article gives a brief instruction set on how to setup and configure a Laravel project for use with InterSystems IRIS through ODBC.

What is Laravel?

Laravel is a PHP framework that is based on MVC architecture.Using Laravel simplifies and speeds up the backend development while building modern secure web applications.

5
2 1337
Question Philippe Ebinger · Oct 4, 2024

I have three different methods for exporting classes and projects as XML files, but each one produces slightly different output:

  1. Studio (what I currently use for exporting): I export as a project (with the 'only project' option disabled). This generates all classes and the project in a single XML file.
  2. VS Code: This method only exports the classes, and it doesn't include the project in the XML file.
  3. Console export using %SYSTEM.OBJ.Export: I used the following command to attempt the same export as Studio: do ##class(%SYSTEM.OBJ).Export("MyProject.Prj, MyProject.*.cls",
1
0 176
Article Robert Cemper · Oct 4, 2024 2m read

If one of your packages on OEX receives a review you get notified by OEX only of YOUR own package.   
The rating reflects the experience of the reviewer with the status found at the time of review.   
It is kind of a snapshot and might have changed meanwhile.   
Reviews by other members of the community are marked by * in the last column.

I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.    
Some were accepted and merged, and some were just ignored.     
So if you made a major change and expect a changed review just let me know.

1
0 165
InterSystems Official Thomas Dyar · Oct 3, 2024

We've recently made available a new version of InterSystems IRIS in the Vector Search Early Access Program, featuring a new Approximate Nearest Neighbor index based upon the Hierarchical Navigable Small World (HNSW) indexing algorithm. This addition allows for highly efficient, approximate nearest-neighbor searches over large vector datasets, dramatically improving query performance and scalability.

The HNSW algorithm is designed to optimize vector search for high-dimensional data by building a graph-based structure, making it faster to find approximate neighbors in large collections of

1
1 353
Announcement Larry Finlayson · Oct 3, 2024

Managing InterSystems Servers – In-Person  October 28-November 1, 2024

  • Configure, manage, plan, and monitor system operations of InterSystems Data Platform technology
  • This five-day course teaches system and database administrators how to install, configure and secure InterSystems server software, configure for high availability and disaster recovery, and monitor the system. Students also learn troubleshooting techniques.
  • This course is applicable to both InterSystems IRIS and Caché.
0
0 77
Article Evgeny Shvarov · Apr 22, 2024 3m read

Hi folks!

Often, when we develop commercial solutions, there is a necessity to deploy solutions without source code, e.g., in order to preserve the IP.

One of the ways how this can be achieved is to use InterSystems Package Manager.

Here I asked Midjourney to paint an intellectual property of software:

How this can be achieved with IPM?

In fact, this is very simple; just add the Deploy="true" clause in the Resource element in your module.xml manifest. Documentation.

I decided to provide the simplest possible example to illustrate how it works and also to give you a development environment template to let start building and deploying your own modules without source code. He we go!

2
2 432
Article Dmitry Maslennikov · Sep 25, 2024 1m read

We have Webterminal around for quite a while, but it was limited, not all features worked there. There was no shell support or the latest feature as embedded Python support. There are some issues with tools that require programmer mode. Basic Authorization, not as handy as simple login page, where you could have options to add own login page, in case if you would wish to change the way how to login to the application, such as using SSO.

With the original iris terminal, wrapped into a web form, using most used in the web world xterm.js, used in tools like VSCode as well, with some magic from Python, which helped with interprocess tty. We can get the the terminal in the web, in the full capacity.

iTerm

38
6 789
Article Chi Nguyen-Rettig · Sep 21, 2024 3m read

There are many applications for working with HL7 V2 messages, but the tools for working with XML in IRIS Management Portal and Cache Studio are limited. While plenty of external utilities and IDEs work with XML messages and even C-CDA documents, there is a compelling case for being able to test directly against the IRIS C-CDA framework. 

Testing within the IRIS environment provides the necessary context: 

  • XML parser configuration
  • XML namespace context
  • Facility and OID setup
  • IHE header handling
  • The HS.IHE.Util, HS.Util.XSLTTransformer, and %XML.XSLT.Transformer packages
  • Leveraging the XSL
7
4 444
Question Norman W. Freeman · Oct 2, 2024

If several application servers are connected using ECP, and one of them create many locks, so many that lock table became full :

Should we expect only that application server to be impacted ? (usually, when lock table is full the system became instable). Or, are other application servers going to be impacted the same way ? (because that lock table is synchronized and maintained in sync across all servers)

I have another question (which is related) : is this the same with remote databases ?
Let's say 2 application servers access the same remote database and one application server create many

3
0 149
Article Joel Solon · Oct 1, 2024 2m read

On 2024-08-29, the team released Language Server v2.6.0, which includes more improvements for code completion (aka intellisense). That means that #dim, while still useful, is hardly necessary anymore. That's a good thing in my opinion.

This post from last year (Intellisense and code completion in VS code objectscript) talked about using #dim for code completion for OREFs. #dim has always been useful for both Studio and VS Code.But last year, VS Code ObjectScript was slightly behind Studio in this area, and #dim helped bridge that gap.But now, VS Code has surpassed Studio.

2
3 403
Question Scott Roth · Oct 2, 2024

I have been trying to track down an issue we are seeing in our TEST environment with Memory usage.

We have Several BP's for years now that take a HL7 message, parse it apart, and make calls to a Custom EnsLib.SQL.OutboundAdapter to have it execute Insert/Select/Update/Delete stored procedures against a MS SQL Database via JDBC connection. We are using Microsoft's JDBC 12.2 driver to do this.

What we are seeing is that IRIS.WorkQueue globals are being defined for these calls but then the IRIS.WorkQueue is not being cleaned up and taking up large amounts of Memory.

I have tried ensuring the

5
0 177
Announcement John Murray · Sep 25, 2024

Please allow me to introduce you to a new way of interacting with IPM (InterSystems Package Manager), also known as ZPM,directly from inside Visual Studio Code.

First, install into VS Code the free InterSystems Package Manager extension, published to Marketplace by George James Software. A quick way is to use the search field in VS Code's Extensions view and look for 'ipm zpm' (without the quotes). Alternatively browse to https://marketplace.visualstudio.com/items?itemName=georgejames.iris-pa…

Here's a short video showing the extension in action.

If you like it please vote for it in

7
1 241
Question Bransen Smith · Sep 29, 2024

I need to execute code whenever a production component setting is updated, such as when a service port is changed and the `ens.config` table is updated. This code will handle tasks like logging these updates to a custom table for external reporting purposes.

How can I invoke custom code on these updates?

Ideally, I need to monitor all namespaces that are interoperability-enabled. Whenever a production component setting is changed in any namespace, I need to run the code.

2
0 141
Question Colin Brough · Sep 27, 2024

We are doing healthcare interface development.

Developers have Ensemble installed locally on their laptops - code will be developed locally then deployed to integration, test/UAT and ultimately production servers in due course.

One of the other applications we are developing around happens to utilise an Iris desktop client to a remote Iris server. We want to have the application available on the developers laptops alongside the local Ensemble instance.

✅ It appears that if we install their desktop client then install our local Ensemble server, things work.

❌However, if we install a local Ensemble

3
0 149
Question Jonathan Perry · Sep 25, 2024

Hello,

I'm trying to debug objectscript ClassMethods in VSCode, but nothing happens when clicking the Debug button over the ClassMethod.

This was working with previous versions - tested with IRIS 2020.

This is the server configuration:

"intersystems.servers": {

        "iris": {

            "webServer": {

                "scheme": "http",

                "host": "localhost",

                "port": 80

            },

            "username": "superuser"

        }

    },

Editing and compiling ObjectScript is working:

I checked the vscode devtools and saw an error every

1
0 203
Article Muhammad Waseem · Sep 23, 2024 4m read

image

Hi Community,
In this article, I will introduce my application iris-DataViz
iris-DataViz is an Exploratory Data Analysis and Visualization Streamlit Application that leverages the functionality of IRIS embedded python and SQLAlchemy to interact with IRIS, as well as the PyGWalker python library for data analysis and data Visualization. PyGWalker (Python Graphic Walker) is an interactive data visualization library built for Python, aiming to bring the ease and functionality of Tableau-style drag-and-drop visualization into Python environments.


Application Features 

  • Drag-and-Drop Visualization
  • Ma
3
0 309
Article Rodolfo Moreira dos Santos · Sep 25, 2024 3m read

Hi everyone,

In this article, I’m excited to introduce CodeInspector, a tool designed to simplify code validation by applying custom rules tailored to your development requirements. Whether you're managing a large codebase or working in an agile environment, CodeInspector helps ensure code quality by offering flexibility and adaptability to specific project needs.

Motivation

The idea behind CodeInspector was to build a tool that is both easy to implement and adaptable to different business contexts.

3
0 257
Announcement John Murray · Sep 29, 2024

If you are using the client-side development paradigm (i.e. editing code in local files that get imported and compiled onto the IRIS server your `objectscript.conn` settings point to) you can now use IPM in VS Code to manage the packages in your IRIS target by launching it from the Explorer view. Just make sure the extension you are using is at least version 1.0.4, then use this button:

Thanks to @Evgeny.Shvarovfor suggesting this enhancement, which is particularly useful when using Docker.

0
0 128
Article Andrii Mishchenko · Sep 22, 2024 5m read

Introduction

Managing databases and performing CRUD operations are fundamental tasks for developers building data-driven applications. While many database management systems (DBMS) exist, they can be complex and cumbersome to interact with, especially when it comes to creating databases and tables, handling constraints, and performing real-time data operations through an API.

This web-based Database Management Tool simplifies the entire process, offering an intuitive UI for managing databases and tables, alongside a powerful REST API for interacting with the data.

4
0 399
Article Robert Cemper · Sep 11, 2024 3m read

This story has followed me for more than 20 years.

In the early days of ObjectScript, the volume of $Functions was limited.
You had to write it as part of your program.
But the functionality was often implemented. It just had no name.
To use it, you had "system" calls using $ZU() functions. See Reference

Over time most $ZU() became deprecated and replaced by "official" $Functions.
But how to find then over a thousand lines of code written over decades
by an uncounted number of programmers that were gone with the wind.
Studio was something fresh and not so performant.
So I created a Search Utility to

4
1 416