#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 Kate Lau · Dec 29, 2024 4m read

Git link: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client

Recently, I come up an idea in my mind that how can I put my playlist on IRIS.🧐

At the same time, I was told to pay for my Spotify subscription💸💸... ooo.. how about to get some data from the Spotify API... so I started to do study about it.

Like most of the development, let's start from Documentation of  the API https://developer.spotify.com/documentation/web-api

In order to get the data, i am required to request an access token from for the token endpoint URL.🧐

2
2 318
Article Robert Cemper · Dec 22, 2024 3m read

I recently met an ages old issue related to code maintenance:

  • You have access to your IRIS server just over ODBC/JDBC
  • no VSCode access, no Studio access
  • no (Web-)Terminal access

But you need to take a look on Classes or Routines or Globals !!
Anyhow SQL is your friend.

  • First you need a simple table as temporary text store.
CREATEGLOBALTEMPORARYTABLE  arcc.txt (line VARCHAR(32000))

Not a thrilling action.

  • Next you export your code to local file and import it to your table
7
9 397
Question Hannah Sullivan · Dec 30, 2024

I have a unique index on two properties in a class, and I want to open the instance by index key with one of the two properties is set to the empty string. Is this possible to perform?

Take the example class here

Class TestIndex
{

Property Mandatory as TestClass [Required];Property Alternate as TestClass;Property AltOrEmpty As%String [ Calculated, Required, SqlComputeCode = {Set {*} = $Case({Alternate},"":$c(0),:{Alternate})}, SqlComputed ];
Index AlternateMandatory on (Mandatory, AltOrEmpty) [ Unique ];
}

And example data as

Mandatory Alternate AltOrNUL
2    
2 3 3
2
0 149
Question Andreas Schneider · Nov 23, 2024

Hello everyone,

I hope you're doing well!

I wanted to share that a new JDBC driver version has been added to the iris-driver-distribution repository on GitHub. The filename is intersystems-jdbc-3.10.1.jar.

However, I noticed that the commit message doesn’t provide much information about the IRIS version this driver is associated with. Could anyone clarify if this is a final release? Is it production-ready? Additionally, are there details about the bugs it addresses or the new features it introduces?

5
0 328
Article Kate Lau · Dec 30, 2024 2m read

Last Chapter: Creating a REST client to get Tracks from Spotify REST API - Part2 Save and Refresh Token

Git link: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client
 

Ok, now I am pretty sure i have a valid token for making query.😀

Shall we try to query something from the API.

Again, its time to go through the API document https://developer.spotify.com/documentation/web-api/tutorials/getting-started

Search for Request artist data

the suggested code is like the following

0
0 184
Article Kate Lau · Dec 30, 2024 2m read

Last Chapter:  Creating a REST client to get Tracks from Spotify REST API - Part1 Check out token

Git link: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client

Ok... Now we can check out a token but it will be expired in 3600 seconds.

There are 2 questions come up🤔

1. How to save this token????🙄

2. How to refresh this token????🤨🤔 

Lets come back to the API document https://developer.spotify.com/documentation/web-api/tutorials/getting-started

Base on my understanding, this piece of API do not have a token called refresh_token, as a result, we can assume the logic like following

0
0 212
Question Undefined Undefined · Dec 26, 2024

***Restoring /opt/iris2024/mgr/user/ at 15:06:28
1 blocks restored in 0.0 seconds for this pass, 1 total restored.***Restoring /opt/iris2024/mgr/user/ at 15:06:28
1 blocks restored in 0.0 seconds for this pass, 2 total restored.***Restoring /opt/iris2024/mgr/user/ at 15:06:28
1 blocks restored in 0.0 seconds for this pass, 3 total restored.Mounting /opt/iris2024/mgr/user/
   /opt/iris2024/mgr/user/  ... (Mounted)[Journal not applied to any directory]
 

What does it mean that the last line after recovery shows 'Journal not applied to any directory '.

1
0 138
Question Jonathan Perry · Dec 17, 2024

I'm trying to use embedded python code that receives an Iris %Stream.GlobalBinary and uses image manipulation library PIL.

Because PIL can't work with IRIS %Stream, I need to convert the image to python bytes.

This process seems to have very bad performance compared to writing to a file and then loading it from a file in python.

Is there a better way to send a stream into python? The conversion code I'm using is below.

Thanks.

defiris_stream_to_bytes(stream):
	stream.Rewind()
	s = ""whilenot stream.AtEnd:
		r = stream.Read(1024)
		s += r
	b = bytearray()
	b.extend(map(ord, s))
	return b
5
1 294
Article Eduard Lebedyuk · Feb 7, 2024 2m read

Recently, I needed to run WebGateway on an additional port but with a twist - this port should publish only one web application.
At first, I thought about configuring Web Gateway to allow only specific web applications (~urls), but Web Gateway configuration is per Apache configuration:

LoadModule csp_module_sa "/opt/webgateway/bin/CSPa24.so"
CSPModulePath "/opt/webgateway/bin/"
CSPConfigPath "/opt/webgateway/bin/"

And while LoadModule has two allowed contexts, server config and virtual host, the csp module must be loaded once in the server context.

But we can use two VirtualHosts and here's how:

3
1 358
Announcement John Murray · Dec 16, 2024

The InterSystems platforms have always offered dynamic documentation of the packages and classes in a namespace, a feature known informally as Documatic. But what if you need to publish this class reference information on a website without requiring the site to be connected to an IRIS server containing the actual classes?

1
2 221
Article Robert Cemper · Dec 20, 2024 1m 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.

0
0 122
Question Scott Roth · Dec 9, 2024

I am attempting to create a Foreign Server/Table so I can pull some information in from MS SQL server via JDBC connection, but as soon as I create the Server/Table and logout the Foreign Server disappears.

CREATE FOREIGN SERVER Epic.Clarity 
   FOREIGN DATA WRAPPER JDBC CONNECTION 'MS-EpicClarity'

logout, then run 

the documentation - Defining Foreign Tables | Using InterSystems SQL | InterSystems IRIS Data Platform 2024.3 mentions "A user that creates a foreign server must have the %MANAGE_FOREIGN_SERVER administrative privilege" but I am not finding that security setting to give to my role.

3
0 187
Article sara aplin · Dec 20, 2024 2m read

Monitor incremental changes in the database through scheduled tasks, display change trends through charts, set alarm thresholds, and write information to messages.log

How to use it

You can install it through Docker or ZPM

Deploying with Docker Prerequisites

Make sure you have git and Docker desktop installed.

Installation

1.Clone/git pull the repo into any local directory

git clone https://github.com/Sara771dev/Database-Size-Monitoring.git

Open the terminal in this directory and run

docker-compose build

Run the IRIS container

docker-compose up -d

ZPM Package Deployment

Open the terminal to run

0
1 280
Article Yuri Marx · Dec 19, 2024 14m read

VSCode is the most used IDE in the world. It is strategic have more extensions for VSCode for InterSystems technologies to keep increasing the developer community.

My new app IRIS VSCode Global Editor is an excellent sample to learn how to create extensions to IRIS. You can check it on https://openexchange.intersystems.com/package/IRIS-Global-VSCode-Editor.

To be ready to create extensions for VSCode

From https://code.visualstudio.com/api/get-started/your-first-extension you have all steps to get ready, but I will detail here to you.

0
3 234
Question Phillip Wu · Dec 19, 2024

Has anyone tried the Ansible module for qlist in the article "Ansible modules and IRIS demo"?

There appears to be a bug in the qlist code as it assumes that the qlist output has an undocumented field.

I do not have the undocumented field in the output.when I run qlist so I keep getting the error "Unexpected IRIS qlist output format".

I assume that in most cases there is no undocumented field in the output.

0
0 87
Question Pietro Di Leo · Dec 5, 2024

I'm experiencing an issue while compiling code in Visual Studio Code with "cuk" qualifiers.

When I try to compile, the following message appears after a while:

In VSC, the "cuk" qualifiers are always used as default and the following message is shown in the Output panel of VSC when a compilation is successful:

I'm unsure if it is possible to replace the cuk qualifiers with something else.

The issue doesn't occur when compiling the same class in InterSystems Studio, where, in this case, the qualifiers "cuk /checkuptodate=expandedonly" are used as default:

8
0 308
Job Vanshika Tiwari · Dec 18, 2024

Please note- the resource should have expertise working in CCDA/FHIR implementation along with IRIS development experience.

IRIS for Health CCDA/FHIR IRIS developer 

  1. Hard Core IRIS for Health Engineers who have experience working on IRIS for Health 
  2.  CCD/FHIR and conversion services using SDA and DTL model (at least one production implementation of Conversion services to FHIR)
  3. Have Good knowledge of GCP and GKE’s (IKO’s deployed on GKE environment or any K8 cluster)
  4. Fine tune and debug IRIS Productions, assist L2 ops team when required
  5. CICD/GIT knowledge
0
0 181
Question Theo Stolker · Dec 18, 2024

Hi,

In a customer project we started enforcing the "Inactivity Limit" as defined in System-Wide Security Parameters. The customer would expect accounts to become Disabled after they have been inactive for the specified amount of days. However, that doesn't happen; it seems the Inactivity Limit is only established after logging in.

Furthermore, the account inactivity only starts being applied after the first login. Can you confirm that?

Lastly, for accounts that have been manually Disabled, and have an expired password, we see the following weird behavior:

0
0 158
Article Oliver Wilms · Dec 18, 2024 4m read

Implements Idea DPI-I-456

Idea

What The Sample Does

This sample was cloned from iris-interoperability-template. I have reconfigured the interoperability Production with an Inbound HTTP Adapter which is used by a HTTP Business Service. The configuration details for the business service are specified in System Default Settings. I configured Call Interval setting to call HTTPServer once every hour. You can change both the URL and frequency in the service's settings. Screenshot

0
0 268
Question Alin Soare · Dec 13, 2024

Hi,

My variable `check1` is a string.  It is either the empty string (for invalid/false answer) or a non-empty string for a valid/true input.  If it is valid, I want to return it.  I wrote this code:

ret:$l(check1) check1

I do not like it once because it repeats the variable, but the main reason I do not like it is that if I do not insert the check $length(string) it will return false even for non-empty strings (due to conversion to integers for string prefixes).

I would like to ask you whether is there some nicer form in mumps to check for the non-empty strings than checking their length.

3
0 369
Question Rob Tweed · May 3, 2024

It's not clear to me, when using the InterSystems Container Repository, which version is the best / most recent non-preview Community Edition version to use.

I see lots of 2023.2.x versions, a single 2023.3 and 2024.1 version, but also a latest-cd and latest-em (with no explanation as to what cd and em mean).

I assume the trick is to use one of the latest-xx ones?  If so, which?

Unfortunately I haven't been able to find any explanatory information anywhere about the nomenclature conventions used.

Many thanks

5
0 255
Question Oliver Wilms · Dec 15, 2024

I am trying to work with Epic on FHIR. Epic's documentation stated, your application makes a HTTP POST request to the authorization server's OAuth 2.0 token endpoint to obtain access token.

Set tSC = ##class(%SYS.OAuth2.Authorization).GetAccessTokenClient(pClient,pScopes,.prop,.err) returns

ERROR #9761: No key in provided JWKS for alg ES512 and kid  

I check this /csp/sys/oauth2/OAuth2.JWTServer.cls?client_name=medbank and I see this:

1
0 142