#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 · Aug 25, 2023 4m read

Taking advantage of the Quiniela ML application and as we indicated in the previous article, we are going to explain how we can perform a JWT authentication between our frontend developed in Angular and our backend developed in InterSystems IRIS.

I remind you of the architecture of our QuinielaML project:

Usually it is a cumbersome process in web applications to develop the administration and management of user access, but in our case InterSystems IRIS simplifies the process by providing us with all the infrastructure we need.

11
2 608
Question Dmitrij Vladimirov · Sep 18, 2023

Hello community, I need to solve a complex but trivial issue.

Given:

Two tables "Comment" and "Post". Each one contains an "Author" field, which is essentially a user ID. In these tables, each user ID represents an author. The goal is to count all participants together and then group them by month, language, and other metrics.

The question is how to do this within the IRIS ecosystem. Is it even possible to take two tables, get distinct data from them and then combine into one cube?

1
0 242
Question Ashok Kumar T · Sep 29, 2023

Hello Community,

I have couple of question about the DynamicSQL.

1. The %ObjectSelectMode is working perfectly in the DynamicSQL for the object property in direct query. However this is not supported for class query. Is there any way to resolve this / Get the object value for class query result.

2. What is the reason behind for a stored query prepared using %PrepareClassQuery() you must use the %Get("fieldname") method.

Class Samples.DB.NewClass1 Extends %Persistent
{
Property Address As NewClass3;
ClassMethod TestQuery()
{ 
	set statement = ##class(%SQL.Statement).%New()
	set statement.
3
0 460
Article David Hockenbroch · Oct 4, 2023 8m read

We are back to %SYS once again! Since we covered managing users and resources in the last two articles, we can finally move on to roles. As you may have guessed, there are a lot of methods of managing them that you have already seen in our previous writings. However, we can still encounter key differences in this particular class.

Before we begin, bear in mind that this is another class that should not be manipulated through direct SQL access. In newer versions of IRIS, you will find a NoSQL trigger that will prevent you from doing that anyway.

3
5 738
Article Mihoko Iijima · Oct 12, 2023 1m read

InterSystems FAQ rubric

ObjectScript allows you to pass any number of arguments using arrays. Do it by adding ... after the argument name.

An example is as follows. In the example statement, the argument information is set in a global variable (a variable stored in the database) so that it can be easily checked after the method is executed.

Class TEST.ARGTEST1 Extends %RegisteredObject
{
ClassMethod NewMethod1(Arg... As %StringAs %Boolean
{
 kill ^a
 merge ^a = Arg
}
}

The result of running it in the terminal is as follows.

USER>DO ##class(TEST.
1
0 524
Question Yone Moreno · Oct 11, 2023

Hello,

First of all; thanks for your time reading this post, and thanks for your answers and help. I am really grateful.

We have the following need: Send a DICOM Find Document to get the complete list of a patient's studies from an Outbound System, which we simulate with the tool called "dcm4che" specifically with these two commands:

1º.Initialize a DICOM database in simulator. We will use this database to run queries using DICOM C-FIND commands:

/dcmdir -c ./shared/DICOMDIR --fs-id SAMPLEDICOMS --fs-desc ./shared/dicom/descriptor .

14
0 434
Question Robert Cemper · Oct 15, 2023

MIRROR is the best solution for almost immediate replications to a Failover Server.
The related mechanics are based on Global Journaling.

Globals hold Data and Classes and Routines and more ...
If Mirroring is in place all is in sync. With minimum delays
This is of course  rather useful for code changes in Classes, Routines, ....

To what extent is Embedded Python covered by Mirroring?
Or:
What is required to Synchronize EmbeddedPython like Mirroring. 

2
0 254
Question Robert Cemper · Oct 15, 2023

With ECP we have the option to have a collection of Frontend instances
All Frontend servers typically have a common Master in the background
Concentrating data on the Master server is the primary goal.

As a side effect, this applies also to Classes, Routines, .. anything stored in Globals.
This is probably not the most efficient setup. But rather common anyhow.

Is embedded Python code also stored in Globals?

What is the recommended solution for a similar installation?

2
0 268
Question prashanth ponugoti · Oct 13, 2023

Hi Friends ,

We have a use case to search a given word in pdf and based on the result i need to send pdf to particular outbound system.

Here we used to do with some java library help in oracle soa integrations , now we are migrating oracle soa to intersystems .

Please help me if we have any library available in objectscript cahe.

 

Thanks,

Prashanth

1
0 275
Article Eduard Lebedyuk · Oct 13, 2023 1m read

For containers in ECS files are not editable if the file size is larger than ephemeral storage free space. For example if I have 4Gb free I can't edit 8Gb file. But if I start container with 50 Gb of ephemeral storage (24Gb free) I can edit my 8Gb file just fine. Even file attributes cannot be changed: chattr -i <file> fails if the amount of free ephemeral storage is not enough (and so db can't be mounted for writing).

 

This can cause iris container failure on startup if large DB is both RW and mounted on start.

0
0 377
Question Gautam Rishi · Oct 4, 2023

Hi all,
I am trying to compile my swagger class file with swagger JSON which is a valid JSON as I created it and verified from swagger.io 2.0 spec.
But getting below error. I am not very clear with the error message. Please help me resolve the same.
ObjectScript error: <CLASS DOES NOT EXIST>removeprj+7^%occClass *SwaggerClass

> ERROR #5091: An error has occurred while removing projection SwaggerClass:Reference.

> ERROR #5030: An error occurred while compiling class 'SwaggerClass'

1
0 284
Announcement Henrique Dias · Feb 12, 2023

Attention all developers!

Get ready to revolutionize your testing process with iris-tripleSlash, the ultimate unit test solution.

Say goodbye to boring and repetitive unit testing and hello to effortless and efficient testing.

With iris-tripleSlash, you can easily generate unit test cases using the power of automatic documentation.

2
0 363
InterSystems Official Bob Kuszewski · Oct 11, 2023

InterSystems has made the decision to stop further development of the InterSystems Cloud Manager and label it as deprecated as of the InterSystems IRIS 2023.3 release.  InterSystems will continue to support existing customers using the technology, but it is no longer recommended for new deployments.

Customers in the cloud who are interested in deploying and managing an IRIS deployment with many systems are encouraged to consider Kubernetes and the InterSystems Kubernetes Operator, which has very similar functionality to ICM.

0
0 529
Question Emil Odobasic · Oct 10, 2023

Hello everyone!
I have manually created a REST-service that receives incoming HTTP-GET calls together with an URL-map. As shown below:

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

ClassMethod Handler(req As %Stream.Object) As %Status
{
set Class = ##class(Ens.Request).%New()

set status = ##class(Ens.Director).CreateBusinessService("TestService", .instance)
set status = instance.OnProcessInput(Class, .response)

if $ISOBJECT(response)
{
         write response.

6
0 494
Question Norman W. Freeman · Oct 4, 2023

I have some code that fire this kind of request very often : 

set request = ##class(%Net.HttpRequest).%New()
set request.Server = ... //always the same 
set request.Location = ... //always the same 
do request.EntityBody.Write(...) //this is different from one request to another
do request.Post() 

If it was called in a loop I could move the HttpRequest instantiation outside, unfortunately this is not the case.

3
0 334
Question Timothy Leavitt · Sep 12, 2023

It's a feature of ObjectScript (perhaps widely known, perhaps not) that if you open the same object ID multiple times, you end up with the same OREF. For example:

USER>set obj1 = ##class(Sample.Person).%OpenId(1)
 
USER>set obj2 = ##class(Sample.Person).%OpenId(1)

USER>w obj1,!,obj2
1@Sample.Person
1@Sample.Person

Generally speaking, this is an important feature - you won't end up accidentally modifying the same record via multiple paths and losing some of the changes.

10
2 514
Question Rob Tweed · Oct 10, 2023

I think there have been articles published here before but I'm struggling to find them:

I'd like to be able to create my own customised version of the official IRIS Community Edition Container, eg with Node.js and a number of modules pre-installed.  So, for example, can I create my own Dockerfile that begins with something like:

         FROM containers.intersystems.com/intersystems/iris-community-arm64:2023.2.0.227.0

and then I can add my own stuff to it?

... or is there another recommended approach?

Any info appreciated

4
0 509
Article Rizmaan Marikar · Mar 20, 2023 8m read

Introduction

Data analytics is a crucial aspect of business decision-making in today's fast-paced world. Organizations rely heavily on data analysis to make informed decisions and stay ahead of the competition. In this article, we will explore how data analytics can be performed using Pandas and Intersystems Embedded Python. We will discuss the basics of Pandas, the benefits of using Intersystems Embedded Python, and how they can be used together to perform efficient data analytics.

7
8 1688
Question Scott Roth · Oct 6, 2023

I recently started work on trying to Tighten Security in our Development Instance of IRIS that is running based on recommendations from our Audit as you might of seen from my other posts. I am currently trying to get into the Private Web Gateway Manager within IRIS as CSPSystem, but when I attempt to sign in nothing happens. 

I went through and reset the password in the CSP.ini and within IRIS for CSPSystem. I made sure it had the new GatewayRole per suggested 

https://docs.intersystems.com/healthconnect20231/csp/docbook/DocBook.UI.Page.cls?

2
0 659
Question Pietro Di Leo · Oct 8, 2023

Hello everyone,

Is there a way to prettify the JSON streams in the incoming HTTP messages so that they are more readable in Visual Trace?

The HTTP messages sent by many software aren't prettified and are displayed like this in the Visual Trace:

On the other hand, other software like Postman prettify the messages and they are displayed in this way:

I know there is a JSON Formatter class, however what I would like is an automatic setting that automatically prettifies the JSON displayed in the Visual Trace without having to go through code.

Is there anything similar? 

3
0 454
Article Claudio Devecchi · Nov 26, 2020 16m read

Introduction

We are in the age of the multiplatform economy and APIs are the "glue" in this digital scenario. Since they are so important, they are seen by developers as a service or product to be consumed. Therefore, usage experience is a crucial factor for its success.

In order to improve this experience, specification standards such as the OpenAPI Specification (OAS) are increasingly being adopted in the development of RESTFul APIs.

What is IRIS ApiPub?

4
4 1411
Question Scott Roth · Oct 6, 2023

I am trying to lock down security within our Development environment per requirements from a Security Audit that was done earlier this year. I need to try to limit access at a public level, access to cache users, and exposure.

I installed IRIS with the Lockdown method, and have configured my web applications, services, resources, etc.

When I go into my namespace, I am constantly presented with the following error when I try to start or stop an Object...

Cannot login as IRIS manager.
3
0 302
Question Evan Gabhart · Oct 5, 2023

I am currently debugging a piece of code relying heavily on macros. I am using breaks in the method to then check the values of macros and object properties as I go. However, any time I invoke a macro within a break I get an error. To get around this I am converting the macro calls into the underlying code. Some of these macros have messy translations and this is somewhat time consuming. Is there an easier way to access macros from within a break?

5
0 309
Question Scott Roth · Oct 4, 2023

We currently have a couple of Shell scripts we have written to EnableConfigItem from a Unix (Red Hat) command line, so we can control when a Service/Operation is running via the cron in Unix. We do this by calling

:>iris session xxxxx

using _system user.

During our Security audit it was mentioned that we need to lock down some of the cache users. 

  • So, has others written scripts to make IRIS calls via command line?
    • If so, what is the consensus of using a Cache user vs using say a LDAP service account?
  • Or what have you used in the past to ensure that the password is not hardcoded anywhere?
3
0 368
Article Muhammad Waseem · Nov 29, 2021 3m read

In this article I will explain how to Authenticate, Authorize and Audit by code by using CSP Web Application along with Enabling /Disabling and Authenticate/Unauthenticate any Web Application.

Application Layout
 

5
3 1588