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

Article Erin Spencer · Jan 24, 2024 9m read

The traditional use of an IRIS production is for an inbound adapter to receive input from an external source, send that input to an IRIS service, then have that service send that input through the production.

With a custom inbound adapter though, we can make an IRIS production do more. We can use an IRIS production to process data from our own database without any external trigger.

By using an IRIS production in this way your data processing tasks now get to leverage all the built in features of an IRIS production, including:

  • Advanced tracking and monitoring
  • Multithreaded processing for
1
2 562
Question Marcel den Ouden · May 8, 2024

We are experimenting with IIS, as the PWS will be gone in newer versions.

The code which is executed, takes 15ms to run. If we execute it through PWS (REST), there is some overhead and the total execution time is 40ms, which is acceptable. However, if we go through IIS, it takes 150ms or sometimes even more.

Both PWS and IIS are running on the same server as IRIS in this case. No optimisations have been done on IIS.

Any suggestions on where to look/what to optimize on IIS?

4
2 261
Article David Hockenbroch · May 9, 2024 9m read

 In our previous article, we explored how to send emails through Microsoft 365 using the Graph API. Since then, an anonymous client reached out to me about setting up some other methods of notifications through that API. He was particularly interested in Outlook’s tasks and calendar events. 

If you still have your client ID, client secret, and application ID from the last exercise, you may continue utilizing them.We will reuse the globals we stored from before with the GetToken method.Most of the setup in Microsoft Entra will not need to be repeated.

0
1 357
Question Scott Roth · May 9, 2024

I am trying to create my first call to our Epic FHIR Repository from Health Connect using Samples-FHIRStarter now that I have OAuth2.0 connection tested/working with our Epic Interconnect URL.

When I take a patient example from our Epic environment and test it through Data.BPL.PatientRecordCollector within the Namespace, I keep getting a 404 - File or directory not found 

as it tells me it cannot find the patient. So, I know the connection is being established, I just can't see what is being sent to Epic to see if I could test it through Postman.

So, I enabled the following in the ISCLOG,

0
0 193
Article Hiroshi Sato · May 9, 2024 2m read

InterSystems FAQ rubric

If you change the system date, InterSystems Data Platform (IRIS) may not start properly.

IRIS performs a journal file deletion process when it starts, but if the system date is changed, a journal file with an incorrect date is created.During journal file deletion processing, the process proceeds by referring to the information of the previous and subsequent files recorded inside the journal file.

0
0 265
Announcement Olga Zavrazhnova · Apr 9, 2024

Hi Developers,

Join us at the upcoming Developer Roundtable on April 25th at 9 am ET | 3 pm CET. 📍
We will have 2 topics covered by the invited experts and open discussion as always.

Tech Talks:
➡ Practical Usage of Embedded Python - by Stefan Wittmann Product Manager, InterSystems

▶ Recording: 

 

1
0 238
Question Rochdi Badis · May 9, 2024

Hi Guys,

We are migrating from Ensemble 2018 to the latest IRIS, and while compiling we get many of these errors in our queries:

and this a sample of one our queries:
&sql(select CASE WHEN StarterKitName != "" THEN Kit->Name || ' - ' || StarterKitName ELSE Kit->Name END into :KitName from MSDS_Serenity.KitLabelAssoc where Label = :Label and Status = 1
I've also heard that the &sql syntax also has changed, I've download the How to Migrate to InterSystems IRIS but couldn't find changes related to the above? 

Thanks

5
0 225
Question James Rutledge · Apr 25, 2024

I'm trying to learn M programing for an Epic db class prerequisite. They said to download the IRIS Studio software to do the testing. I'm having a very difficult time finding information the language. I'm trying to run some examples that Epic has provided (like in below) but the compiler complains that it isn't valid. Of course, it doesn't tell you why it isn't valid.

r !,"Enter the hour: ",hr  
 r !,"Enter the minute: ",min 
 r !,"Enter the second: ",sec 
 s Mtime=$$ConvertToMTime(hr,min,sec)
 w !,"Equivalent M time: ",Mtime  
 q
ConvertToMTime(h,m,s)
 q (h*3600)+(m*60)+(s)

I get these errors:

ERROR:

8
0 323
InterSystems Official Bob Kuszewski · May 8, 2024

An updated developer preview of InterSystems IRIS 2024.2 and InterSystems IRIS for Health 2024.2 has been posted to the WRC developer preview site.  This release contains a few noteworthy changes:

  • Containers – we skipped containers for the previous preview, but we’re including them this time.  In a future preview, we’re planning to switch these to use the Ubuntu 24.04 base image.
  • Ubuntu 24.04 support – this preview includes support for the brand-new Ubuntu 24.04 operating system.  We will be dropping support for Ubuntu 20.04 in a later preview.
  • Windows Installer upgrades – this preview
0
0 458
Article Robert Cemper · Apr 26, 2024 2m read

Geographic use of vector search

The basic idea is to use Vectors in the mathematical sense.
I used geographic coordinates. These are of course only 2-dimensional
but much easier to follow as vectors in text analysis with >200 dimensions.

The example loads a list of worldwide capitals with their coordinates
The coordinates are interpreted as vectors from geographic point 0°N/0 W
(some very wet spot in the Gulf of Guinea, >400 km from the African Coast)
Finding common directions from that spot is a quite theoretical case.
So adjustment to your preferred starting point is implemented.
Now finding similar 

3
1 337
Question Sylvie Greverend · May 7, 2024

I have an angular UI communicating with a iris rest api. Now I need to authenticate (to federated) before accessing the UI, and for a better solution  as the users are using the healthshare clinical viewer 2023, find a way to use the clinical viewer authentication / user to go to the UI.

The angular way would be to do an angular guard and have a function 'am I authenticate to federated', but I never found a function like this and how to get my username.

At the other end, creating a csp page in my csp folder that is either
- a csp including the angular html page outside the csp folder and passing

0
0 152
Question Scott Roth · Apr 22, 2024

I am trying to setup a OAuth2.0 configuration to connect to a server within our Network using OAuth2.0. My previous attempt worked, however forgot to capture the steps before I had whipped the System so please bear with me. 

I have an SSL/TLS Client configuration setup as we use the setup for our LDAP configuration. 

When I go through the following steps within the Terminal, I am getting the following error...

%SYS>kill^ISCLOG%SYS>set scope="openid fhirUser"%SYS>set jwt = ##class(%SYS.OAuth2.Authorization).GetAccessTokenJWT("EpicFHIRPOC","1fd8f5cc-18ee-4eff-990d-4606037b932e",scope,.properti
7
0 490
Announcement Shane Nowack · May 6, 2024

Hi Community,

InterSystems Certification Program officially changed exam delivery platforms from Questionmark to Certiverse on May 6, 2024. We have made this decision in hopes of providing a better experience for our certification candidates. To take an exam on this new platform, you will be required to sign in with an InterSystems account, the same one that is used for the Developer Community, Online Learning, etc. If you do not have one, please register for an account.

Find more information about Taking InterSystems Exams on Certiverse here, and reach out to certification@intersystems.com if

0
0 157
Question Antonio Souza · Apr 1, 2024

On IRIS version 2024.1.0.262.0 I have a table that store streams as %GlobalCharacterStream.
But depeding on the blob being saved I get the error: [Error: <<MAXSTRING>]

I had that with Caché, but to solve that I'd just enable the long strings on the page System Administration > Configuration > System Configuration > Memory and Startup > Enable Long Strings.
But for Iris I can't find that configuration, I looked on every config page from the portal and couldn't find it.

Btw this blobs are stored on Caché and the system using IRIS is reading from Caché and saving on IRIS.
Where, on IRIS, can I make

15
1 795
Article Robert Cemper · May 4, 2024 3m read

Most examples I've seen so far in OEX or DC left the impression that VECTORs
are just something available with SQL with the 3 Functions especially around VECTOR_Search.
* TO_VECTOR()
* VECTOR_DOT_PRODUCT ()
* VECTOR_COSINE ()
There is a very useful summary hidden in iris-vector-search demo package.
From there you find everything you need over several links and corners.

1
2 396
Article Macey Minor · May 3, 2024 6m read

Introduction

Accessing Amazon S3 (Simple Storage Service) buckets programmatically is a common requirement for many applications. However, setting up and managing AWS accounts is daunting and expensive, especially for small-scale projects or local development environments. In this article, we'll explore how to overcome this hurdle by using Localstack to simulate AWS services. Localstack mimics most AWS services, meaning one can develop and test applications without incurring any costs or relying on an internet connection, which can be incredibly useful for rapid development and debugging. We used ObjectScript with embedded Python to communicate with Intersystems IRIS and AWS simultaneously.Before beginning, ensure you have Python and Docker installed on your system. When Localstack is set up and running, the bucket can be created and used. 

0
2 549
Article Keren Skubach · Jan 22, 2024 2m read

Did you know that you can get JSON data directly from your SQL tables?

Let me introduce you to 2 useful SQL functions that are used to retrieve JSON data from SQL queries - JSON_ARRAY and JSON_OBJECT
You can use those functions in the SELECT statement with other types of select items, and they can be specified in other locations where an SQL function can be used, such as in a WHERE clause

The JSON_ARRAY function takes a comma-separated list of expressions and returns a JSON array containing those values.

SELECT TOP 3Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State) "JSON data" 
FROM
11
4 1158
Question Anna Golitsyna · May 2, 2024

I am trying to locate a method that would allow me to differentiate between InterSystems preinstalled/system namespaces and "our own" namespaces. I am interested both in Cache and Iris answers if they are different. Yes, I can list what to disregard, like if not HSLIB or if not DOCBOOK but hoping for a more universal and elegant answer.

3
0 253
Article Luis Angel Pérez Ramos · May 3, 2024 6m read

In our previous article we presented the general concepts as well as the problem that we wanted to solve by using the task engine integrated in InterSystems IRIS, in today's article we will see how we configure an interoperability production to provide a solution.

Workflow Engine Configuration

First we are going to define the roles of the tasks that we are going to manage, in our example we are going to define two types:

  • AutomaticBloodPressureRole: to create automatic tasks that will have no intervention from the user.
  • ManualBloodPressureRole: to create those tasks that the user must manually
0
2 328
Article Alex Woodhead · Mar 24, 2024 8m read

BPL from 10,000 feet

BPL stands for Business Process Language.
This is an XML format for describing complex information orchestration interactions between systems.
InterSystems Integration engine has for two decades, provided a visual designer to build, configure, and maintain, BPL using a graphical interface.
Think of it like drawing a process flow diagram that can be compiled and deployed.

An example: Make a cup of tea

BPL components are added to Integration productions like any other built-in or custom business component.

Test example input and output

There can be a mixed reception to using BPL

4
0 555
Article Tomoko Furuzono · May 2, 2024 1m read

InterSystems FAQ rubric

After upgrading your system, you may receive the error below when you try to open the Management Portal:

ERROR #5001: Server version of object does not match version sent from the client: %ZEN.Component.vgroup

This error is caused by outdated information remaining in your browser's cache.

You can resolve the error by clearing your browser's cache.

1
0 333
Article Eyal Levin · Apr 9, 2024 1m read

Hi, I hope this post helps.

The bottom line: MAXLEN is relevant mostly for odbc/jdbc connections and you need to specify an appropriate value within your  tables (classes), otherwise the data might be truncated when you query it, or even fail when you try to insert data.

Long story:

the sql GUI in the portal is very lenient in reference to the MAXLEN  , for example you can insert data into a table where there is data longer then the size of a column, if you're using fhir sql the columns in the tables are mostly MAXLEN =50 even if there is much larger data, additionally if you create a table from

7
0 501
Question David Greer · Apr 30, 2024

I'm trying to configure an SSL/TSL configuration in our test environment so we can send ADT messages to an external server. I've verified connectivity/firewall to the external server.

type is set to Client, Server certificate verification is set to Require.

I have received a certificate from the external supplier and linked that in the "File containing trusted Certificate Authjority certificate" field. (I've also imported it into the cert store and tried using %OSCertificateStore).

My client certificate is in PEM format, the decrypted key was extracted using SSLOpen.

2
1 489
InterSystems Official Bob Kuszewski · Apr 30, 2024

Alert: SQL Query using “NOT %INLIST” fails to return results

InterSystems has corrected an issue that can cause a small number of SQL queries to return incorrect results.  See below for the specifics on impacted queries.

This issue exists in the listed versions of the following products:

  • InterSystems IRIS® data platform
  • InterSystems IRIS for Health
  • HealthShare® Health Connect

As well as:

  • Other InterSystems products based on the above products.

Impacted versions:

  • 2021.1.3, 2021.1.4
  • 2022.1.3, 2022.1.4
  • 2023.1.0, 2023.1.1, 2023.1.2, 2023.1.3
  • 2024.1.0

Only queries with the following

0
1 240
Article Rob Tweed · Apr 30, 2024 3m read

A few weeks ago I posted an announcement about a JavaScript-based interface for our mg_web WebServer interfacing addon module.  mg_web isn't just restricted to use by JavaScript developers though.  Many readers will be ObjectScript developers who are more used to using CSP as their web gateway.  Some may even have much older legacy WebLink-based applications (and be wondering how to support them given that IRIS does not support WebLink).

This article aims to provide some more information on mg_web and to explain why it's worth a look for ObjectScript developers.

The first thing to understand is

0
2 401
Question Feng Wang · Apr 24, 2024

hi there,

I recently created a shell script to run the integrity check.

I used this as reference - Introduction | InterSystems IRIS Data Platform 2023.3

I found the example from above url having a line - "

kill ^IRIS.TempIntegrityOutput(+$job)

it isn't working when I used in a script. it returns the pid of my iris session instead.

I had to simplify the example to run following lines instead - 

Do CheckList^Integrity(,,,,5)
do Display^Integrity(,1,)
 

script runs fine and can see integrity check results as expected.

however, the output seems cumulative, and output includes all historical run results as

5
0 301