#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 Luis Angel Pérez Ramos · Jun 2, 2023 10m read

As a former JAVA developer it has always been a challenge to decide which database was the most suitable for the project we were going to develop, one of the main criteria I used was their performance, as well as their HA configuration capabilities ( high availability). Well, now is the time to put IRIS to the test with respect to some of the most commonly used databases, so I've decided to create a small Java project based on SpringBoot that connects via JDBC with a MySQL database, another of PostgreSQL and finally with IRIS.

As a former JAVA developer it has always been a challenge to decide which database was the most suitable for the project we were going to develop, one of the main criteria I used was their performance, as well as their HA configuration capabilities ( high availability).

5
0 724
Question Scott Roth · May 15, 2023

Ran into an issue with our upgrade from HealthShare Health Connect 2018.1.3 to IRIS HealthShare Health Connect 2022.1, that I thought I would reach out about, I already have a ticket open with WRC and started a chat on Discord. We have a couple of MS SQL tables that I have setup as Linked Tables within Cache to query NPI, Patient Account Information, Visit information, etc... When we upgraded last week we found that within a day or even a half a day that we were having problems with our JDBC connections.

Ran into an issue with our upgrade from HealthShare Health Connect 2018.1.3 to IRIS HealthShare Health Connect 2022.1, that I thought I would reach out about, I already have a ticket open with WRC and started a chat on Discord. We have a couple of MS SQL tables that I have setup as Linked Tables within Cache to query NPI, Patient Account Information, Visit information, etc...

19
0 947
Article David Hockenbroch · Jun 2, 2023 5m read

We are looking at what we need to do to migrate from our current usage of Zen reports to InterSystems Reports. One of the hurdles for us is figuring out ways to interact with InterSystems reports programmatically from ObjectScript routines. There is a Java API for it, but it is possible to generate a report from InterSystems reports to a stream object in ObjectScript without diving into Java by using a %Net.HttpRequest. Here is a code example, followed by an explanation:

#include %cspIncludeGetStream(catalog="",report="",type="2",paramnames,paramvalues,str) public{
     try{
        set We are looking at what we need to do to migrate from our current usage of Zen reports to InterSystems Reports. One of the hurdles for us is figuring out ways to interact with InterSystems reports programmatically from ObjectScript routines. There is a Java API for it, but it is possible to generate a report from InterSystems reports to a stream object in ObjectScript without diving into Java by using a %Net.HttpRequest.
0
0 278
Question Dmitry Maslennikov · Apr 30, 2020

Okay, we've got a quite useful way to very easily Import and export our objects as JSON, similar to what we already had before for XML.

So, It's a %JSON.Adaptor. But the issue here I faced with, working with Stream properties. 

I have an example, when I generate an object, with stream binary stream properties. Export and Import the same, but getting the different resulting objects, depends on the original size of streams.

Okay, we've got a quite useful way to very easily Import and export our objects as JSON, similar to what we already had before for XML.So, It's a %JSON.Adaptor. But the issue here I faced with, working with Stream properties. I have an example, when I generate an object, with stream binary stream properties.
6
1 1635
Question Kurro Lopez · Jun 1, 2023

Hi all,

I'm wondering if is possible to call to a BO from a HL7 Route according to a parameter of the HL7 Message

I mean,

According to the identify of the laboratory, I want to call to other TCP process to retrieve information about blood tests.

We are creating the BO using this partern.

LAB.BO.TCP. + name of the laboratory.

The name of the laboratory is stoted in the lookup table T_LABORATORIOS

I've tried to assign the name into a variable and put it in the "send" instruction, but it doesn't work.

is it possible to call to a BO by a text variable instead of seleccting the BO from the production?

Hi all,I'm wondering if is possible to call to a BO from a HL7 Route according to a parameter of the HL7 MessageI mean,According to the identify of the laboratory, I want to call to other TCP process to retrieve information about blood tests.We are creating the BO using this partern.LAB.BO.TCP.

3
0 327
Question David.Satorres6134 · May 31, 2023

Hello,

Do you know if there is any way to disable the automatic tuning IRIS is doing every time a class is altered? It just takes too long in our case and is holding the system, so I'd like to tune the tables when I decide it (again).

I've seen in the documentation that for 2023 version there is an option present in the backend. But not for 2022, so I assume a flag is needed somewhere.

Many thanks!

3
1 310
InterSystems Official Fabiano Sanches · May 24, 2023

InterSystems announces its second preview, as part of the developer preview program for the 2023.2 release.  This release will include InterSystems IRIS and InterSystems IRIS for Health.

Highlights

Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables. Note that some of these features or improvements may not be available in this current developer preview.

InterSystems announces its second preview, as part of the developer preview program for the 2023.2 release.  This release will include InterSystems IRIS and InterSystems IRIS for Health.HighlightsMany updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables.

2
0 349
Question John Klahn · May 22, 2023

My employer set up a web-based HL7 interface monitor dashboard that will display all Ensemble components (Service/Process/Operation) in a Production, their status, and the support information embedded in each interfaces listing on the Monitor.  Please see 3 screenshots.  

This is part of the URL that we go to when accessing this Web based Monitor:  ......57772/csp/healthshare/monitor/Rush.Monitor.Web.Home.cls

My employer set up a web-based HL7 interface monitor dashboard that will display all Ensemble components (Service/Process/Operation) in a Production, their status, and the support information embedded in each interfaces listing on the Monitor.  Please see 3 screenshots.

3
0 287
Announcement Larry Finlayson · May 30, 2023

Please let your clients and others on your ISC team know that currently there are spots available for the following June courses which currently have a low registration:

Self-registration link for Clients may take advantage of a 33% discount off the price of virtual courses.In person courses provide a more personalized educational experience.Please review the important prerequisite requirements for this class prior to registering.

0
0 129
Question Yone Moreno · May 24, 2023

Hello,

We currently have the following scenario: We have a bussiness SOAP Operation, where we get a SAML String and we convert it into a %SAML.Assertion object correctly.

👩‍💻👨‍💻 We would need to send the SAML Assertion inside the SOAP Header to the Target System.

First of all thanks for reading, and thanks for answering.

We currently have opened Log Soap and we do not observe it being added to the SOAP Header, as you would observe in the following Log Soap:

05/24/2023 08:53:37 *********************
Output from Web client with SOAP action = urn:ihe:iti:2007:CrossGatewayQuery
Hello,We currently have the following scenario: We have a bussiness SOAP Operation, where we get a SAML String and we convert it into a %SAML.Assertion object correctly.👩‍💻👨‍💻 We would need to send the SAML Assertion inside the SOAP Header to the Target System.First of all thanks for reading, and thanks for answering.We currently have opened Log Soap and we do not observe it being added to the SOAP Header, as you would observe in the following Log Soap:05/24/2023 08:53:37 *********************
Output from Web client with SOAP action = urn:ihe:iti:2007:CrossGatewayQuery
<?xml version="1.0"
1
0 294
Article Yuri Marx · May 29, 2023 7m read

Sometimes we need to know for sure if the current environment has sufficient cores, memory, and bandwidth to support the planned number of users and such SLAs as latency, response time, and availability. This is true for databases and backends. This is why it is mandatory for critical applications and databases to simulate the users simultaneous/concurrent requests and collect metrics about performance and availability.

Sometimes we need to know for sure if the current environment has sufficient cores, memory, and bandwidth to support the planned number of users and such SLAs as latency, response time, and availability. This is true for databases and backends. This is why it is mandatory for critical applications and databases to simulate the users simultaneous/concurrent requests and collect metrics about performance and availability.The most popular tool to do load and performance tests is called JMeter.

0
2 737
Question Phillip Wu · May 25, 2023

Hi,

I have refreshed my TEST system database from my DR box.

TEST consists of 2 linux servers TEST_NODE1 & TEST_NODE2 which are mirrored as PRIMARY failover and BACKUP failover

This is what I've done:

1. Remove TEST_NODE2 as Backup member using do ^MIRROR

2. Remove TEST_NODE1 mirror configuration using SMP (System Management Portal) GUI

3. Stop IRIS on TEST_NODE1 & TEST_NODE2

4. Copy files IRIS.DAT  from DR to TEST_NODE1

5. Start IRIS on TEST_NODE1

6. Turn off mirror flags on DB files on TEST_NODE1 using do ^MIRROR ('Remove one or more mirrored databases')

Hi,I have refreshed my TEST system database from my DR box.TEST consists of 2 linux servers TEST_NODE1 & TEST_NODE2 which are mirrored as PRIMARY failover and BACKUP failoverThis is what I've done:1. Remove TEST_NODE2 as Backup member using do ^MIRROR2. Remove TEST_NODE1 mirror configuration using SMP (System Management Portal) GUI3. Stop IRIS on TEST_NODE1 & TEST_NODE24. Copy files IRIS.DAT  from DR to TEST_NODE15. Start IRIS on TEST_NODE16. Turn off mirror flags on DB files on TEST_NODE1 using do ^MIRROR ('Remove one or more mirrored databases')7.

4
0 312
Article Yuri Marx · May 22, 2023 6m read

Nowadays, most applications are deployed on public cloud services. It brings many advantages including savings in human and material resources, the ability to grow quickly and cheaply, greater availability, reliability, elastic scalability, and options to improve the protection of digital assets. One of the most popular options is AWS. It allows us to deploy our applications usings virtual machines (EC2 service), Docker containers (ECS service), or Kubernetes (EKS service).

11
3 1238
Article Cristiano Silva · May 27, 2023 6m read

How many times do we find ourselves rebuilding, copy-pasting, adapting, Business Operations that make calls to REST services, and only adapting one or another part of the final code. This is annoying a lot. To resolve this our inconvenience, I present to you Interopway REST, a set of classes (a micro framework) that allows us to just add Business Operation to Production and use it.

The project is hosted on github, https://github.com/cristianojs/interopway_rest, it is open and we are accepting collaborations.

Let's understand how this works.

Transport Objects

How many times do we find ourselves rebuilding, copy-pasting, adapting, Business Operations that make calls to REST services, and only adapting one or another part of the final code. This is annoying a lot.

0
1 394
Article Murray Oldfield · May 25, 2023 12m read

I am often asked to review customers' IRIS application performance data to understand if system resources are under or over-provisioned.

This recent example is interesting because it involves an application that has done a "lift and shift" migration of a large IRIS database application to the Cloud. AWS, in this case.

A key takeaway is that once you move to the Cloud, resources can be right-sized over time as needed. You do not have to buy and provision on-premises infrastructure for many years in the future that you expect to grow into.

Continuous monitoring is required. Your application transaction rate will change as your business changes, the application use or the application itself changes. This will change the system resource requirements. Planners should also consider seasonal peaks in activity. Of course, an advantage of the Cloud is resources can be scaled up or down as needed.

For more background information, there are several in-depth posts on AWS and IRIS in the community. A search for "AWS reference" is an excellent place to start. I have also added some helpful links at the end of this post.

AWS services are like Lego blocks, different sizes and shapes can be combined. I have ignored networking, security, and standing up a VPC for this post. I have focused on two of the Lego block components;

  • Compute requirements.
  • Storage requirements.
1
3 1227
Article Iryna Mykhailova · Mar 15, 2023 7m read

In this tutorial, I’d like to talk about Class Queries. To be more precise, about the Queries based on user-written code:

In this tutorial, I’d like to talk about Class Queries. To be more precise, about the Queries based on user-written code:A lot of people disregard this type of query just because they aren’t very comfortable with writing lots of ObjectScript code for the methods or they don’t see how they can use it in their relational apps. But to be honest, for me – it’s one of the coolest inventions for the relational model in IRIS! It lets you expose whatever information you want (not limited to tables of your database) as a relational resultset for a client.

10
2 1002
Question Thomas Kotze · May 25, 2023

Hi, 

I am trying to get the API Manager up and running. 

I have enabled the application and IAM user and changed password.

when we run the iam_setup.sh I get the following.

Getting IAM license using your inputs...
Internal server error when testing inputs

I have check on Iris management portal , but could see no errors.

On the cspgateway I see
HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache
Date: Thu, 25 May 2023 11:03:05 GMT
Expires: Thu, 29 Oct 1998 17:04:19 GMT
Pragma: no-cache
Content-Length: 202 {
"errors":[ {
"code":6220,
"domain":"%ObjectErrors",

5
0 381
Question Alexey Maslov · May 25, 2023

In elder versions of IRIS/Cache numeric overflow was detected during the syntax check: 

USER>w$p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"zwritesw !,$compile(s,0,e),!! zwrite e
2021.1.1

s(0)=1s(1)=" if (-123.45E6789)"W$P($P($ZV,") ",2)," ("),!! S txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"ZW
RITE sW$COMPILE(s,0,e),!! ZWRITE e
       ^
<MAXNUMBER>

while in IRIS 2022.1 it is not:

USER>w$p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")"zwritesw !,$compile(s,0,e),!! zwrite e
2022.1.3
 
s(0)=1s(1)=In elder versions of IRIS/Cache numeric overflow was detected during the syntax check: USER>w $p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")" zwrite s w !,$compile(s,0,e),!!W $P($P($ZV,") ",2)," ("),!!RITE s W $COMPILE(s,0,e),!!while in IRIS 2022.1 it is not:USER>w $p($p($zv,") ",2)," ("),!! s txt="-123.45E6789",s(0)=1,s(1)=" if ("_txt_")" zwrite s w !,$compile(s,0,e),!!
5
0 264
Article Heloisa Paiva · May 3, 2023 10m read

Programming and languages

Being a programmer nowadays is basically the geek version of being a polyglot. Of course, most of us here, in the InterSystems Community, “speak ObjectScript”. Howeever, I believe this wasn’t the first language for many people. For instance, I had never heard about it prior to getting the appropriate training at Innovatium.

Programming and languagesBeing a programmer nowadays is basically the geek version of being a polyglot. Of course, most of us here, in the InterSystems Community, “speak ObjectScript”. Howeever, I believe this wasn’t the first language for many people.

8
3 969
Article Joel Solon · May 23, 2023 5m read

Methods written in ObjectScript can use pass-by-reference arguments to return information to the caller. Python doesn’t support pass-by-reference arguments, so Embedded Python in IRIS doesn’t support them either. That's it, that's the end of the post, hope you liked it. 😉 But wait, what about the Classic Rock & Roll?

Methods written in ObjectScript can use pass-by-reference arguments to return information to the caller. Python doesn’t support pass-by-reference arguments, so Embedded Python in IRIS doesn’t support them either. That's it, that's the end of the post, hope you liked it. 😉 But wait, what about the Classic Rock & Roll?Actually, since returning values in method arguments can be useful, this post demonstrates several ways to do this, between ObjectScript and Embedded Python.

1
1 636