#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 Alberto Fuentes · Apr 5, 2022 2m read

You have read about OAuth2 / OpenID Connect but you don't know how to use it? Have you ever needed to implement Single Sign-On (SSO) or secure web services based on tokens? Did you have to add authentication / authorization to your web applications or services and you didn't know how to start?

What about a step by step example where you can set up an authorization server, a client and a resource server? Here you can find an example where you will configure InterSystems IRIS instances to act as each one of these OAuth2 roles.

A brief introduction

Authentication is the process of verifying that

1
7 1510
Question Sean Connelly · May 23, 2022

I want to embed the DTL editor in a third party web application.

If I open up the DTL editor then the full management portal banner is displayed.

http://localhost:52773/csp/healthshare/user/EnsPortal.DTLEditor.zen?DT=Foo.NewDTL1.dtl

If I open the same DTL in studio then I get just the editor, the banner is not displayed.

The DTLEditor page has the property studioMode that controls the banner display, but its not obvious how this is set.

Q. Is there a way to control that property without extending and shimming the page?

Q. Could there be a URL parameter or header that controls that value?

Q. If I

1
2 270
Announcement Shane Nowack · May 23, 2022

Hello IRIS Community,

InterSystems Certification is developing a certification exam for IRIS system administrators and, if you match the exam candidate description given below, we would like you to beta test the exam. The exam will be available for beta testing on June 20-23, 2022 at InterSystems Global Summit 2022, but only for Summit registrants (visit this page to learn more about Certification at GS22) . Beta testing will open for all other interested beta testers on July 18, 2022. However, interested beta testers should sign up now by emailing certification@intersystems.com (see below for

0
4 1497
Announcement Shane Nowack · May 23, 2022

Free certification exam attempt for all registered attendees of Global Summit 2022!

InterSystems is proud to offer free InterSystems Certification exam attempts ($150 value) to all registered attendees of InterSystems Global Summit 2022. The free exam attempt will be made available for any of the 7 live-proctored sessions during the Summit.

Session Times

Date Early Late
Monday, June 20                   1:30 - 3:30 pm         3:45 - 5:45 pm
Tuesday, June 21 7 - 9 am 3:30 - 5:30 pm
Wednesday, June 22 7 - 9 am 3:30 - 5:30 pm
Thursday, June 23 7 - 9 am  
1
0 427
Article Evgeniy Potapov · May 20, 2022 5m read

Colleagues, hello!

In this article, I will tell you how we reduced the report generation time from 28 minutes to 1 minute. Let me tell you how we achieved this.

I hope that if necessary you will be able to reproduce the same results for yourself. Useful links will be inside this post, so read to the end.

Let's start.

Report

We are reporting for a company using Adaptive Analytics and InterSystems Reports Server.Previously, this report was generated in the form of screenshots from DeepSee.In general, it was not bad, but it took a lot of time and did not look very readable.

4
0 600
Discussion Eduard Lebedyuk · Nov 17, 2021

We need to send some coordinates to a spaceship through a laser beam. To do that we have to encode it, and beam it out into space. Your mission is to implement the encoder with a compression standard. As usual shortest solution wins.

Task

You will receive a string of comma-separated integers and you will return a new string of comma-separated integers and sequence descriptors.

Input

"0,2,4,5,5,5,5,5,3,4,5"

Output

"0-4/2,5*5,3-5"

Note

  • Compression happens left to right
  • A sequence of 2 or more identical numbers is shortened as number*count
    • example: "5,5,5" is compressed to "5*3"
  • A sequence of 3 or
8
2 703
Question David Little · May 17, 2022

So it appears that this feature is still missing in 2022.1 (https://docs.intersystems.com/iris20221/csp/docbook/DocBook.UI.Page.cls…).

Does anyone have any thoughts or ideas on how to create Namespace Package Mappings on deployment in a 'neat' way during automated deployment?

  I really like the ability to use merge cpf on deployment of our servers, but this one missing action is kind of holding me back.  Appreciate if anyone else has encountered this and how they approached it.

Cheers.

5
0 408
Article Robert Cemper · Mar 24, 2022 3m read

This package offers a utility to export an XLarge Global into a JSON object file and to show
or import it again. In a previous example, this all was processed in memory. But if this is a
large Global you may either experience <MAXSTRING> or an <STORE>  error
if the generated JSON structure exceeds available memory.
 


Academic refers to the structure created.

  • each node of the Global including the top node is represented as a JSON object
  • {"node":<node name>,"val":<value stored>,"sub":[<JSON array of subscript objects>]}
  • value and subscript are optional but one of them always exists for a valid
1
0 450
Question Michael Davidovich · May 18, 2022

Continuing on the journey of implementing %UnitTest, @Timothy Leavitt's Test Coverage package, and automated testing with Jenkins.

My question today: why do we utilize a unit test root directory?  

I've been defining packages and classes to write unit tests as I've been developing and I run the tests on the command line or using a routine file that is setup as a debug target which has been working great.  I use DebugRunTestCase() to do this (so the classes aren't deleted).  

As I am playing with automating this on Jenkins, I'm not understanding exactly why we just don't keep and run them on the

4
1 606
Announcement Michael Pine · May 18, 2022

Prospects, Customers, and Employees can now download IRIS and IRIS for Health both Community and Enterprise editions on https://evaluation.intersystems.com 

This will allow for new features not yet released to be tested by prospective customers and current customers to sample the latest and greatest that is in the works.

How to View:

For Prospects simply selecting an option with "(Preview)" in the Name will allow for download of preview software

For Customers and InterSystems Employees - simply toggle the Preview Checkbox and this will include preview software in the menu dropdown for available

5
0 447
Question Andy Stobirski · May 19, 2022

Hi

I have a few Zen pages, one of which is implementation of %CSP.StreamServer which I'm using to download a PDF file, however, any file downloaded is 5Kb smaller than the original. This is the code I'm using:

Class GMECC.DocmanConnect.Pages.downloadGPNotOnHub Extends (%ZEN.Component.page, %CSP.StreamServer)
{
    ClassMethod GetId()
    {
        Quit$Get(%request.Data("filepath",1))
    }

    ClassMethod OnPreHTTP() As%Boolean
    {
        set filepath = %request.Get("filepath")
        
        set tFs=##class(%Stream.FileCharacter).%New()
        set tFs.Filename=filepath
1
0 349
Article Timothy Leavitt · Mar 17, 2021 3m read

I ran into an interesting ObjectScript use case today with a general solution that I wanted to share.

Use case:

I have a JSON array (specifically, in my case, an array of issues from Jira) that I want to aggregate over a few fields - say, category, priority, and issue type. I then want to flatten the aggregates into a simple list with the total for each of the groups. Of course, for the aggregation, it makes sense to use a local array in the form:

agg(category, priority, type) = total

Such that for each record in the input array I can just:

Do $increment(agg(category, priority, type))

But once I've

10
4 1213
InterSystems Official Thomas Dyar · Jan 24, 2022

The Data Platforms team is very pleased to announce the 2021.2 release of InterSystems IRIS Data Platform, InterSystems IRIS for Health and HealthShare Health Connect, which are now Generally Available (GA) to our customers and partners.

Release Highlights

InterSystems IRIS Data Platform 2021.2 makes it even easier to develop, deploy and manage augmented applications and business processes that bridge data and application silos. It has many new capabilities including:

Enhancements for application and interface developers, including:

  • Embedded Python 
  • Interoperability Productions in Python
  • Upda
17
1 1621
Article Bob Schat · Feb 10, 2022 7m read

The InterSystems Iris Fhirserver running on a Raspberry Pi Raspberry running as a FHIRserver

Raspberry running as FHIRserver

About a year ago I wrote some articles about the installation of the HAPI FHIRserver on a  Raspberry Pi. At that time, I only knew the basics of the FHIR standard, little about the technology behind FHIR-servers and not much more about the Raspberry. By trying, failing, giving up and trying again I learned a lot.

7
4 1079
Discussion Eduard Lebedyuk · May 3, 2022

An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. For example, the word anagram itself can be rearranged into nag a ram, also the word binary into brainy and the word adobe into abode. Wikipedia

You will receive two strings returning true if the two arguments given are anagrams of each other. As usual shortest solution wins.

##Input "Listen", "Silent"

##Output 1

##Note

  • Both arguments are case insensitive, only a-z, A-Z, no special characters except whitespace
  • The arguments could contain
33
0 760
Question Michael Davidovich · May 13, 2022

We are experience this with our own web app and even the demo/template here: intersystems-community/iris-fullstack-template: This template shows you how to build, test and deploy a simple full-stack application using InterSystems IRIS REST API (github.com)

When changes are made to CSS or HTML files, we can see the changes are saved to file in the Docker container by visiting the command line.  However, after refreshing, clearing cache, etc. the changes don't appear on the web application in the browser.  Viewing the source css in the browser, we see it's the old file.  

Had a minor success

7
0 322
Announcement Steven Hobbs · May 12, 2022

Format Change in the ^mtemp and ^ERRORS Globals

InterSystems has several routines, methods and utilities that can create stack dumps. Stack dumps are created in the ^mtemp(index) global by the %SYS.ProcessQuery:ExamStackByPid(...) classmethod as well as by some undocumented legacy entry points of the ^%STACK utility. Stack dumps can also be created in the ^ERRORS(date,index) global by the ^%ETN trap routine, including additional entry points BACK^%ETN, LOG^%ETN, ^%ET and the Log() method of exception objects.  These stack dumps can also include the values of active local variables.

0
3 372
Question Ivan Wang · May 10, 2022

From  IRIS log, I found lots of following content

05/05/22-01:05:11:375 (16166) 0 [Generic.Event] ECP: Mirror Connection request from 'SM25SDLMIIRROR:LOCALHOST.LOCALDOMAIN:IRIS' (10.xxx.xxx.27:33040)

05/05/22-01:05:11:376 (16166) 1 [Generic.Event] ECP: Active server not defined, cannot redirect mirror connection

Could any one explain a little bit for me?

4
0 424