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

Article Mihoko Iijima · Feb 23, 2024 5m read

I have challenged to create a bot application using Azure Bot that can retrieve and post data to IRIS for Health.

 

A patient's data has already been registered in the FHIR repository of IRIS for Health.

The patient's MRN is 1001. His name is Taro Yamada. (in Japanese :山田 太郎)

This bot can post new pulse oximeter readings as an observation resource linked to the patient.

2
2 544
Article Sylvain Guilbaud · Jul 8, 2024 2m read

For practical reasons, it may be desirable that after a Linux server restart, the IRIS instance is automatically started. 

Below you will find the steps to follow to automate the startup of IRIS during a reboot of the Linux server, via systemd :

1. Create an iris.service file in /etc/systemd/system/iris.service containing the following information

[Unit]
Description=InterSystems IRIS Data Platform
After=network.target

[Service]
Type=forking
User=irisusr
ExecStart=/usr/bin/iris start iris
ExecStop=/usr/bin/iris stop iris quietly
Restart=on-failure
RemainAfterExit=yes

[Install]
17
5 999
Article Hiroshi Sato · Aug 22, 2024 1m read

InterSystems FAQ rubric

The following code downloads https://www.intersystems.com/assets/intersystems-logo.png and saves the file as c:\temp\test.png.

You need to define an SSL configuration called SSLTEST before executing this code

ClassMethod download() As%Status
{
    Set sc = $$$OKSet httprequest=##class(%Net.HttpRequest).%New()
    set httprequest.Port = 443set httprequest.Https = 1set httprequest.SSLConfiguration = "SSLTEST"Set httprequest.Server="www.intersystems.com"Do httprequest.Get("/assets/intersystems-logo.png")
    Set httpresponse=httpreq
0
3 216
InterSystems Official Carmen Logue · Aug 21, 2024

InterSystems IRIS Adaptive Analytics version 2024.1.3 is now available from the InterSystems Software Distribution  page.  This release includes AtScale 2024.1.3, and an updated User Defined Aggregate Function (UDAF) file.  This release includes and the following new modeling and BI capabilities:

  • Formatting of calculation output based on on the field input rather than just the format defined on the calculation.  This is particularly useful for calculations that can't have a standard output format, such as year-over-year growth in dollars, euros, or time.
  • Support for the following MDX funct
0
0 157
Question Bertrand Cayzac · Aug 21, 2024

Hello, 
A customer whose Ensemble code contains lots of hardwired API URL calls is running into issues because of the IRIS instance name insertion in the URL path since IRIS v 2024.1.

What are the best solutions to revert to the previous URL path or automatically and dynamically rewrite this path (Apache mod_rewrite ? Proxies ?). Any examples ? 
Thanks for your help, 
Bertrand Cayzac

0
0 118
Question Daniel Goerke · Aug 19, 2024

Hello everyone,

I'm currently working on getting familiar with OAuth2, following this article. Since Part 2 involves using PKI, I decided to implement it as outlined in the article. However, I've run into an issue that I can't seem to resolve, and my searches on Google haven't yielded any useful results.

Here's a brief overview of what I've done so far:

Configuring the PKI Server:

  • Navigated to: System Administration > Security > Public Key Infrastructure > Configure Local Certificate Authority Server.
  • Filled in all the required fields and saved the configuration.

As far as I can tell

1
0 170
Question Norman W. Freeman · Aug 14, 2024

I use the following code to loop trough all globals : 

set name=""for
{
   set name=$order(^$GLOBAL(name))
   quit:name=""
   write name,!
}

However this is really slow : about 1second per node. 

I ran debugger, and it seems most of the time is spend in "%SYS.GD Visible" function. There is a comment that says : 
"Sees if globals in dataset are visible to our namespace"
This function loop on a global named ^mtemp which contains lot of records (10K or more).
I have cleared global, hoping it has been filled by another process but it's not (it seems to be filled by %SYS.GD)

Why is it so

5
0 304
Question Bradley Collins · Aug 18, 2024

Dear All,

I am currently part of a team that is developing an application using Microsoft PowerApps as the front end and IRIS as the backend.  Effectively that frontend screens, which are house and an Azure serve, call a series of REST interfaces exposed by IRIS from a physical Microsoft server.  During the development stage we have not had any security in place but now we need to secure the application using a single sign on.  PowerApps relies on Microsoft Entra for its security both LDAP and OAuth.  Has anyone in the community connected IRIS to Microsoft Entra? 

I have managed to register

2
0 344
Article Keren Skubach · Aug 19, 2024 4m read

Accessing an Azure cloud storage to upload/download blobs is quite easy using the designated %Net.Cloud.Storage.Client class API methods, or using the EnsLib.CloudStorage.* inbound/outbound adaptors.

Note that you'll need to have the %JavaServer External Language Server up and running to use the cloud storage API or adaptors, since they both use the PEX framework using the Java Server.

Here is a quick summary:

Azure Blob Storage is accessed using a connection string that looks similar to this:

DefaultEndpointsProtocol=https;AccountName=abcdefscleanisr;AccountKey=n3mWskdjgfhklsghdfjaskhgk


0
3 587
Announcement Andreas Schneider · Sep 8, 2021

Dear ladies and gentlemen, in the last month I've improved my Tool Caché Monitor... but first: the name

The name Caché Monitor was chosen to reflect the close integration of the tool with the Caché database. The established name Intersystems Caché will likely be completely replaced by InterSystems IRIS Data Platform in the foreseeable future I think. So a rebranding step became necessary. In order to be less closely tied to a product name in the future, a new name has been chosen to be more neutral: SQL Data Lens

4
1 671
Article Timothy Leavitt · Feb 21, 2024 9m read

Suppose you have an application that allows users to write posts and comment on them. (Wait... that sounds familiar...)

For a given user, you want to be able to list all of the published posts with which that user has interacted - that is, either authored or commented on. How do you make this as fast as possible?

Here's what our %Persistent class definitions might look like as a starting point (storage definitions are important, but omitted for brevity):

Class DC.Demo.Post Extends%Persistent
{

Property Title As%String(MAXLEN = 255) [ Required ];Property Body As%String(MAXLEN = "") 
3
5 558
Question Jack Liu · Aug 15, 2024

iris | [ERROR] Command "iris start IRIS quietly" exited with status 256
iris |
iris |
iris |
iris | *** Recovery started at Thu Aug 15 05:47:48 2024
iris | Current default directory: /usr/irissys/mgr
iris | Log file directory: /usr/irissys/mgr/
iris | WIJ file spec: /usr/irissys/mgr/IRIS.WIJ
iris | Recovering local (/usr/irissys/mgr/IRIS.WIJ) image journal file...
iris | Starting WIJ recovery for '/usr/irissys/mgr/IRIS.WIJ'.
iris | 0 blocks pending in this WIJ.
iris | Exiting with status 3 (Success)
iris | 08/15/24-05:47:48:778 (828) 3 [Utility.Event] Error while moving data directories ERROR #5001: Canno

2
0 240
Article Megumi Kakechi · Aug 15, 2024 3m read

InterSystems FAQ rubric

Temporary globals stored in the IRISTEMP/CACHETEMP databases are used when a process does not need to store data indefinitely, but requires the powerful performance of globals. The IRISTEMP/CACHETEMP databases are not journaled, so using temporary globals does not create journal files.

The system uses the IRISTEMP/CACHETEMP databases for temporary storage and are available to users for the same.

For more information about temporary globals and the IRISTEMP database, see the following document:
Temporary Globals and the IRISTEMP Database

The globals used as temporary








0
6 435
InterSystems Official Bob Kuszewski · Aug 15, 2024

Alert: Database Corruption with Multi-Volume Databases after Truncation

InterSystems has corrected a defect that can cause database corruption or <DISKHARD> errors with multi-volume databases under extremely rare circumstances. Only databases that have been truncated are at risk.

The defect exists in the following products and any InterSystems offerings based on them:

No HealthShare Solutions products are affected by

0
1 189
InterSystems Official Bob Kuszewski · Aug 14, 2024

The first developer preview of InterSystems IRIS 2024.3 and InterSystems IRIS for Health 2024.3 has been posted to the WRC developer preview site.  Containers can be found on our container registry and are tagged latest-preview.

This is a very early build in the release cycle and there aren’t any “highlight” worthy features that are complete.  They’ll start to arrive in future preview releases.

Initial documentation can be found at these links below.

Availability and Package Information

This release comes with classic installation pac

0
0 341
Question Hannah Sullivan · Aug 14, 2024

If anyone has experience debugging Embedded Python or has insight into why an ObjectScript method when called from a Python method would not work but would work when called directly via ObjectScript or in a Python shell, your help would be appreciated! 

We have an ObjectScript ClassMethod called GetTemplateString() which takes in a templateName of String type and uses the template name to get the template object, access the Code, and read the code into a templateString. The string version of the Code is returned.

ClassMethod GetTemplateString(templateName As%String) As%String
{
    set t
2
0 182
Discussion Eduard Lebedyuk · Aug 5, 2024

Today we have an unusual code golf: build a program (using only printable ASCII characters, tabs and newlines) that prints out exactly the characters in the printable ASCII space (characters 32 to 126) that don't appear in your program's source code (in any order, however many times you want).

As usual, the goal is to produce the shortest code to do this.

My (admittedly not very good, but does the job!) entry:

Classascii.ascii {

ClassMethodascii()
{
    setx="!#$%&'()*+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdfghijklmnopqruvwyz{|}~"
}

}

Let's say the characters i

22
0 427
Question Joshua Wigley · Jul 3, 2024

Hello,

I have a slight issue that's causing me some inconvenience when using the rule editor within Microsoft Edge (Version 126.0.2592.81).

Whenever I try to load up any ruleset, the ruleset displays an unhappy face like this:

This has only recently started, when opening up the rule editor in another browser e.g. Chrome, the problem disappears.

I've tried to remedy the situation by resetting Edge, Updating Edge Version, Clearing Cache/Cookies etc. but nothing seems to fix it.

I have other colleagues opening the same rule sets in the same version as Edge without any issue, so I do not be

5
1 355
Question Scott Roth · Aug 9, 2024

I was looking for an easier way to build the FHIR Query String, given the Record Map request that is passed into the DTL.

I built this Function, but when I run a message through it, my Query String that is passed back into the DTL is a Reference Pointer and not the String I am looking for. 

ClassMethod BuildFHIRQueryString(record As%String, Output queryString As%String) As%Status

{

    // Assuming 'record' is a string containing the record map data

    // Define the delimiters

    Set fieldDelimiter = "|"

    Set repeatDelimiter = "~"

   

    set queryString = ""
3
1 179
Article Muhammad Waseem · Aug 12, 2024 8m read

Artificial intelligence (AI) has transformative potential for driving value and insights from data. As we progress toward a world where nearly every application will be AI-driven, developers building those applications will need the right tools to create experiences from these applications. Tools like vector search are essential for enabling efficient and accurate retrieval of relevant information from massive datasets when working with large language models. By converting text and images into high-dimensional vectors, these techniques allow quick comparisons and searches, even when dealing wi




0
5 548
Article Guillaume Rongier · Jul 26, 2024 5m read

It's been a long time since I didn't write an update post on IoP.

image

So what's new since IoP command line interface was released?

Two new big features were added to IoP:

  • Rebranding: the grongier.pex module was renamed to iop to reflect the new name of the project.
  • Async support: IoP now supports async functions and coroutines.

Rebranding

The grongier.pex module was renamed to iop to reflect the new name of the project.

The grongier.pex module is still available for backward compatibility, but it will be removed in the future.

Async support

IoP supports async calls for a long time, but it was n

5
0 354
Article Ray Fucillo · Dec 1, 2023 13m read

When there's a performance issue, whether for all users on the system or a single process, the shortest path to understanding the root cause is usually to understand what the processes in question are spending their time doing.  Are they mostly using CPU to dutifully march through their algorithm (for better or worse); or are they mostly reading database blocks from disk; or mostly waiting for something else, like LOCKs, ECP or database block collisions?

Tools to help answer the questions above have always been available in various forms. You start with ^JOBEXAM or the Management Portal's Pro

1
4 552