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

InterSystems Official Fabiano Sanches · Mar 7, 2023

InterSystems announces its third developer preview, as part of the developer preview program for the 2023.1 release. Many updates and enhancements have been added in 2023.1 and there are also brand-new capabilities, such as production-ready support for Columnar Storage, ability to use Bulk FHIR, and support to MacOS 13 Ventura. Some of these features or improvements may not be available in this current developer preview.

Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can

7
0 427
Article Heloisa Paiva · Mar 10, 2023 3m read

Introduction

This article is intended to be a simple tutorial on how to create ODBC connections and working with them, since I found starting with them a little bit confused, but I had amazing people to take my hand and walk me through it, and I think everyone deserves that kind of help too.
I'm going to divide each little part in sections, so feel free to jump to the one you feel the need to, although I recommend reading everything.
I'm going to use the sample data created in a previous article, Quick sample database tutorial: Samples.PersistentData, with the properties Name and Age.

Creating

0
2 1097
InterSystems Official Fabiano Sanches · Jan 31, 2023

InterSystems is pleased to announce the 2022.3 release of InterSystems IRIS Data Platform, InterSystems IRIS for Health, HealthShare Health Connect, and InterSystems IRIS Studio are now Generally Available (GA).

2022.3 is a Continuous Delivery (CD) release. Many updates and enhancements have been added in 2022.3, in SQL management, cloud integration, Kafka and JMS adapters, the SQL Loader, and other areas. The new FHIR SQL Builder and enhancements to Columnar Storage are included, but both are still experimental features (not for production, with an active Early Access Program in place).  

Rele

3
0 468
Question Norman W. Freeman · Mar 9, 2023

I use the following query to get a list of all classes : 

select * from %Dictionary.ClassDefinition 
whereSystem=0and Hidden=0 

It works, but AFAIK it return all classes from all namespaces, including the ones defined in %SYS (usually classes they starts with % like %CSP).

I would like to get only classes of current namespace. I have checked all the columns returned by the query and none allow to filter on a given namespace.

The solution I am looking for does not need to be a query, the query I posted above is called from code.

1
1 966
Question Scott Roth · Mar 7, 2023

I am working on setting up our Failover techniques as we move to a Mirror Environment with a Arbiter, 2 Failover Nodes, and a Async (DR) Node. There are some system commands that I would like to call when the Mirror moves, and I am working on a ZMIRROR routine for that, but I also wanted to create an additional step if we wanted to manually shutdown and for the Mirror to move. So I was looking at using ZSTOP to call a couple of different items while shutting down, while the documentation has an example a couple of questions come to mind about using ZSTOP.

  • If we use ZSTOP do I need to account
3
0 392
Article Elliott Grey · Mar 7, 2023 10m read

Foreword

InterSystems IRIS versions 2022.2 and newer feature a redesigned functionality for JSON web tokens (JWTs). Once housed under the %OAuth2 class package, the JWT class, along with other JSON web classes (JWCs), now live under %Net.JSON. This migration occured in order to modularize the JWCs. Before, they were closely intertwined with the implementation for the OAuth 2.0 framework. Now, they can be maintained and used separately from OAuth2.

Note: For backwards compatibility, the classes still exist under %OAuth2 package, but the codebase now uses %Net.JSON.

The goal of this article is to

0
1 742
Article Harry Tong · Feb 21, 2023 2m read

InterSystems IRIS 2022.2 has Native SDK for Python (https://docs.intersystems.com/iris20222/csp/docbook/Doc.View.cls?KEY=PA…).

We know how to traverse a global data structure using IRIS Object Script $Order function.

SET key=""FOR  {
     SET key=$ORDER(^myglobal(key)) 
     QUIT:key=""WRITE !,^myglobal(key)
   }

How to do the same from Python using IRIS Native SDK for Python? Here is a code example:

import iris

args = {'hostname':'127.0.0.1', 'port':51772,
    'namespace':'USER', 'username':'_SYSTEM', 'password':'SYS'
    }

conn = iris.connect(**args)

#
2
0 579
Question Elijah Cotterrell · Mar 6, 2023

I'm curious about how embedded Python is handled by %CSP classes, particularly in the case of defining REST endpoints on IRIS.
Here is a simple dispatch class for the endpoint /api/pythonapp on my local IRIS instance (2022.3):

Class Python.App.Dispatch Extends%CSP.REST
{

XData UrlMap [ XMLNamespace = "https://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/test" Method="GET" Call="Hello" />
</Routes>
}

ClassMethod Hello() As%Status [ Language = python ]
{
    import iris

    print('Hello World!')
    return True
}

}

Making a GET request to

4
0 342
Question Michael Davidovich · Feb 28, 2023

Any ideas on why my %session.Data array would be wiped out after setting %response.Redirect in OnPreHTTP()?

Context: trying to implement a SSO patter for authorization code flow. I mention this because it's all I can really pinpoint as to what's changing. Typically a user logs in by providing their username/password and we validate in our database and set the %session.Data property with the user info.

8
0 1679
Question Kurt Hofman · Feb 10, 2023

Hello,

I'm starting testing embedded python and external libraries.

When I try to use the win32api-library I get the following error :

<THROW> *%Exception.PythonException  230 ^^0^ <class 'ModuleNotFoundError'>: No module named 'win32api' -

This is my code :

ClassMethod CreateDocument(path As %String) [ Language = python ]
{
import win32api

...
}
 

The librarie is visible in C:\InterSystems\IRIS\mgr\python\win32.

Am I doing something wrong ?

Regards,

Kurt Hofman,

ASCI nv.

7
0 704
Question prashanth ponugoti · Mar 3, 2023

Hi Friends ,

We have requirement to load data into chache tables from external database (ref data). This process will take 1 min to complete all data load.

Currently I have created Business Service  to trigger Business Operation with out bound db adapter to load data into cache tables.

process will be trigger when i restarted business service.

But requirement  is  , this business service should be triggered from outside ensemble environment i.e , this should expose as REST endpoint and share with the external team.

How to expose Business service as REST endpoint? I need help for this regard.

Thank

1
0 262
Question Phillip Wu · Feb 13, 2023

Hi,

I have a IRIS mirror set

. all running on SUSE Linux

. each on a separate server

consisting of

Primary

Backup

Arbiter

My arbiter is the ISCagent.

Question

=======

Is there a Linux command showing me the status of the ISCagent as arbiter?

The systemctl service command below shows if the service is running but not if it is acting correctly as an arbiter.

I'm looking for a command like iris list which you can run on the Primary or Backup

===

systemctl list-units --type=service|grep -i isc
ISCAgent.service                                                                          loaded active running

11
2 740
Announcement Olga Zavrazhnova · Feb 14, 2023

Hi Community, 

We are gathering again for the next Community Roundtable. Many of you asked for a roundtable about AL / ML, and we are delighted to bring such a roundtable to you!

Our invited expert from InterSystems: @Thomas Dyar Product Specialist - Machine Learning.

Join our 60-min discussion, prepare your questions, and use cases! There will be a short demo as well.

UPDATE: the recording is available here.

5
0 408
Question Scott Roth · Feb 21, 2023

I am new to setting up a mirror environment....

We will have a Arbiter, Two Failover members (A,B), and a Async (DR) member (C). I have the two failover members in sync and are configured for Arbiter Control.

My question is about the Async member, when I initially set it up I pointed it to the mirror on the primary node A.

Is that correct?

What happens to the Async member (C) if we fail over the mirror to the secondary member B?Does there need to be a VIP just for the mirror outside of the VIP we have for our systems to connect too?

8
0 435
Article Heloisa Paiva · Mar 2, 2023 3m read

Introduction

This is a simple tutorial on the quickest way I found to create a sample database for any purposes such as testing, making samples for tutorials, etc.

Creating a namespace

  1. Open the terminal
  2. Write the command "D $SYSTEM.SQL.Shell()"
  3. Write "CREATE DATABASE " and the name you want for your namespace.

Now you have a new namespace in a faster way than creating it from the Management Portal - which of course offers way more configuration options.

To select it, quit the SQL Shell writing "q" and then typing 'zn "namespaceName"'.

5
1 531
Discussion Mark Niman · Mar 1, 2023

Hello everyone,

As someone who is new to the world of InterSystems technology, I have been looking for the best resources to learn more about it.

I have heard great things about InterSystems technology, particularly its speed and scalability, and I want to make sure I have a solid understanding of it before diving in further. From what I understand, the official InterSystems courses cover a wide range of topics and are taught by experts in the field.

I would appreciate any recommendations on which courses to take, particularly if there are any that provide a good foundation for beginners.

3
1 270
Question Akshay Pandey · Mar 2, 2023

ZV = IRIS for UNIX (Red Hat Enterprise Linux for x86-64) 2021.1 (Build 215_0_21260U) Tue Nov 9 2021 19:32:21 EST

I have pdf documents stored in repo edge HS.IHE.XDSb.Repository.Documents. Is it possible that this can further compress this type of binary stream?

below is the code I can see but Is this applied on 2021.1?

Property Document As %Stream.GlobalBinary;

Class %Stream.GlobalCharacter Extends TmpCharacter [ System = 2 ]
{Parameter COMPRESS = 1;}

1
0 327
Question Paul Riker · Nov 7, 2022

Does anyone have insight into how the Stream Global Compression works in 2022? I'm particularly interested in the XDSb repository on the Edges. As I understand it anything new will be compressed. Is there a compression method that is used that can be utilized by other code? How are the retrievals aware that the contents are compressed in order to de-compress them? 

8
0 771
InterSystems Official Fabiano Sanches · Feb 28, 2023

InterSystems is pleased to announce that the extended maintenance release of InterSystems IRIS, InterSystems IRIS for Health, and HealthShare Health Connect 2021.1.3 is now available. This release provides a few selected features and bug fixes for the previous 2021.1.x releases.

You can find additional information about what has changed on these pages:

Please share your feedback through the Developer Community so we can build a better product together.

 

How to get the software

The software is available as both classic

2
0 246
Announcement Anastasia Dyubaylo · Feb 8, 2023

Community webinars are back!

And we're thrilled to invite you to the webinar of George James Software, partners of InterSystems:

👉 "Demo of Deltanji: source control tailored for InterSystems IRIS" 👈

Join this webinar to learn how the Deltanji source control can seamlessly integrate into your development lifecycle and see a demonstration.

🗓️ Date & Time: Thursday, February 23, 4 pm GMT | 5 pm CET | 11 am ET

5
0 469
Article Alberto Fuentes · Feb 28, 2023 2m read

Hi all!

I'm sharing a tool for data ingestion that we have used in some projects.

DataPipe is an interoperability framework for data ingestion in InterSystems IRIS in a flexible way. It allows you to receive data from external sources, normalize and validate the information and finally perform whatever operation you need with your data.

Model

In first place, you need to define a model. A model is simply a class that extends from DataPipe.Model where you need to implement some methods:

In the model you specify how are you going to serialize / deserialize the data, how you normalize and validate it

0
1 767
Article Benjamin Thorne · Jul 17, 2018 1m read

The following code snippet uses GZIP to compress/decompress a file. Choose a file by specifying a file path in the "filename" variable.


Class objectscript.GZIP Extends %RegisteredObject
{
	classmethod test() {
		//Export Global(s) uncompressed
		set filename="C:\Temp\myglobal.xml"
		do $System.OBJ.Export("^oddEXTR.gbl",filename)
		//Open exported Globals
		set uncompressed = ##class(%FileBinaryStream).%New()
		set uncompressed.Filename=filename
		Set compressed = "C:\temp\mycomglobal.xml"
		//Open File Device over Gzip and Copy Uncompressed information to it
		Open
6
1 2391
Article Vivian Lee · Feb 27, 2023 4m read

Setting the Scene

Suppose you have the following 2 persistent classes that are both JSON-enabled (i.e. extends %JSON.Adaptor or %pkg.isc.rest.model.adaptor)

Class Test.Employee Extends (%Persistent, %pkg.isc.rest.model.adaptor) { 
  Parameter RESOURCENAME = "employee";
  Parameter firstName As %String;
  Parameter lastName As %String; 
  Relationship projects As Test.Project [ Cardinality = many, Inverse = employee) ];
}

Class Test.Project Extends (%Persistent, %pkg.isc.rest.model.adaptor) {
  Parameter RESOURCENAME = "project"; 
  Parameter name As %String; 
  Relationship employee
0
1 359