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

Finally and with a little delay, we conclude this series of articles about our Workflow Engine by showing an example of the connection that we could make from a mobile application.

In the previous article we showed the example that we were going to discuss, an application that allows detailed control of a chronic pathology such as hypertension for both the patient and their associated doctor. In this example, the patient will have access from their mobile phone to a web application (basically, a web page designed to be responsive with the device) in which they will receive notifications based

4
1 382
Question Andy Stobirski · Jun 6, 2024

Hi

I have a question about terminal, when I run a class from it that contains an error I get a report of error as I would expect, and then an apparently random three letter code is appended to the namespace name in the prompt, as shown below.

GMMHTIE>do ##class(temp.Nothing).What()
 
 w !, tParisAnswer
      ^
<UNDEFINED>zWhat+23^temp.Nothing.1 *tParisAnswer
GMMHTIE 2d1>

Then, when I try to enter a command I get an error

GMMHTIE 2d1>do ##class(temp.Nothing).What()
 
DO ##class(temp.Nothing).What()
^
<COMMAND>^temp.Nothing.1
GMMHTIE 2d1>

Whilst the terminal is in this state, it is apparently unu

4
0 198
Article Theo Stolker · Feb 2, 2024 9m read

In a customer project I was asked how you can keep track of database changes: Who changed what at which date and time. Goal was to track insert, update and delete for both SQL and object access.

This is the table that I created to keep the Change Log:

/// Changelog, keep track of changes to any table
Class ChangeLog.DB.ChangeLog Extends (%Persistent, %JSON.Adaptor)
{

/// Action 
Property Action As %String(%JSONFIELDNAME = "action", DISPLAYLIST = ",Create,Update,Delete", MAXLEN = 1, VALUELIST = ",0,1,2");

/// Classname of the %Persistent class
Property ClassName As %String(%JSONFIELDNAME = "t
5
4 601
Article Nicholai Mitchko · Apr 12, 2022 2m read

Background

In InterSystems IRIS versions >=2021.2 we can use the accompanying irispython binary to directly write python code on top of our IRIS instances. This lets us use python packages, call methods, make SQL queries, and do nearly anything in Objectscript but pythonic.

For example, below I check if a namespace is present:

#!/usr/irissys/bin/irispython
import iris
# call arbitrary class methods
result = iris.cls('%SYS.Namespace').Exists('USER')
if result == 1:
    print(f"Namespace USER is present")

But, what if my method in IRIS has special parameters such as Output and ByRef parameters

image

6
5 1009
Announcement Shane Nowack · Jun 6, 2024

Hello Everyone,

The Certification Team of InterSystems Learning Services is developing an InterSystems ObjectScript Specialist certification exam, and we are reaching out to our community for feedback that will help us evaluate and establish the contents of this exam.  Please note that this is one of two exams being developed to replace our InterSystems IRIS Core Solutions Developer exam. You can find more details about our InterSystems IRIS Developer Professional exam here.

How do I provide my input? Complete our Job Task Analysis (JTA) survey! We will present you with a list of job tasks,

0
1 241
InterSystems Official Raj Singh · Jun 5, 2024

Note: this was originally posted on June 5, 2024 but presented as being posted on May 9, 2024 so this re-post fixes the date. 

Recent updates to the Intersystems Language Server introduce many significant enhancements aimed at improving developer experience and productivity. I'll talk about some of the key ones here, while the complete list, including numerous bug fixes, can be found in the Language Server's CHANGELOG.

Detailed descriptions for syntax errors

In the past, all syntax errors were reported simply as "Syntax error." Now, the syntax error reported in VS Code's PROBLEMS pane has t

1
0 274
Article Yuri Marx · Oct 13, 2022 2m read

If you want to get the initial and last day of a month, I have a ClassMethod to you (version 2, fixed an error found by Eduard):

ClassMethod GetMonthPeriods(InitialYear As%Integer, EndYear As%Integer) As%Status
{
    set sc = $$$OKset result = []
    For CurrentYear = InitialYear:1:EndYear {
        For CurrentMonth = 1:1:12 {
            set item = {}
            If CurrentMonth < 10 {
                Set CurrentMonthStr = "0"_CurrentMonth
            } Else {
                Set CurrentMonthStr = ""_CurrentMonth
            }
            Set item.StartDate = CurrentYear_
5
2 611
Announcement Shane Nowack · Apr 22, 2024

Hello IRIS Community,

InterSystems Certification is developing a certification exam for InterSystems IRIS SQL specialists, 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 9 - 12, 2024 at InterSystems Global Summit 2024, but only for Summit registrants (visit this page to learn more about Certification at GS24). Beta testing will open for all other interested beta testers on June 24, 2024. However, interested beta testers should sign up now by emailing certification@intersystems.com (please let us know if you will be beta testing at Global Summit or in our online proctored environment). The beta testing must be completed by August 2, 2024.

5
7 1492
Announcement Brenna Quirk · Jun 4, 2024

Looking to get started with generative AI? Try two brand-new learning paths. In Getting Started with Generative AI (2h 45m), learn the basics of interacting with GenAI. Then, try Developing Generative AI Applications (2h) to start developing your own GenAI application. Plus, earn badges for completing each path!

0
0 228
Question Krzysztof Skiba · Jun 2, 2023

Hi,

We are developing a .NET6 application using Iris database. We would like to use ORM for easier code maintenance. 

I saw a doc about Entity Framework: https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=BNET_eframe, but even it's newest Iris version, the Entity Framework is very old .NET Framework (2013) and not supported by Microsoft anymore. Are there any plans to support Entity Framework Core?

2
0 371
Question Virat Sharma · May 29, 2024

Hi All,

I am working on SQL based KPI in IRIS BI. I want to remove below highlighted search text box in "auto" filter type.

We cannot use other type like only dropdown etc. Is there a way we can do this ? 

One way I can see is writing own control instead of using default control but I am not aware how to do this. I didn't find any sample code for this. 

Is there any sample code available for writing custom control which I can refer.

Please assist

1
0 201
Question A J · May 27, 2024

Hi everybody, I am trying to connect with an IRIS database where to retrieve data and import them to SQL server but the access gets denied. I would appreciate your help, Thank you, Jeb

I have following information:

Data Source Name --> I use it as the server name

Host(IP Address)

Port

Namespace --> I could use it in my script

import pyodbc

connection_string = ( "DRIVER={InterSystems IRIS ODBC35};" "SERVER=;" "PORT=;" "DATABASE=________;" "TrustServerCertificate=yes;" )

try: conn = pyodbc.connect(connection_string) print("Connection successful") except pyodbc.Error as ex: sqlstate = ex.ar

5
0 295
Article Ariel Glikman · Jun 3, 2024 4m read

Data Analysis

This is the sequel to Data Collection. If you have not had a chance to go through and install that you should first do that.

What is provided here is the analysis for the collection of that data that was collected earlier.

In much the same way as was done in that repository you will need to import the xml that makes up this repository.

Starting at the topmost level there is a task:

InvestigateInfoTask

This task will allow us to set parameters that we will be monitoring. They are as follows:

GrowthPercentageWarning: What percentage growth is 'acceptable' for a global to grow.

Per

image

0
1 235
Article Ariel Glikman · Jun 3, 2024 7m read

Graphical Display of Tables

Here we will document how you can get the results of your Data Collection to be displayed graphically. The output of your project will look like this:

Note that I am working on a local machine. If you are doing this on a server then be aware to use the correct IP address.

First, we will import the three classes from the that we are going to need (note that we will edit them later):

You can take the xml and import it to your system.

The spec will actually create the dispatch class and implementation template. If you're interested in learning more about this process

image

0
2 312
Article Ariel Glikman · Jun 3, 2024 6m read

Data Collection

This is a step-by-step instruction guide for creating a task to collect data about the InterSystems database and globals therein (as seen in the associated Open Exchange App - find all the associated code there)

UPDATE (Aug 1 2024): Recently I've been asked about the differences between this and the History Monitor functionality. In short, the data collection monitor builds on the history monitor by adding the ability to track growth of individual globals.

Disclaimer: This software is merely for TEST/DEMO purposes. This code is not supported by InterSystems as part of any relea

Recording_2023-05-23_at_2_03_45_PM_AdobeExpress

0
5 421
Question Alin Soare · May 30, 2024

Hi, 

I almost managed to connect myself from nodejs to IRIS via intersystems-iris-native, but the connection failed. 

> const irisnative = require('./intersystems-iris-native')
> irisnative
{
  createConnection: [Function (anonymous)],
  Connection: [Function: Connection],
  Iris: [Function: Iris],
  Iterator: [Function: Iterator],
  IRISList: [Function: IRISList]
}
.....
>     var connection = irisnative.createConnection({
...     host: ip,
...     port: port,
...     ns: namespace,
...     user: username,
...     pwd: password
...     })
Uncaught Error: 8-bit servers are not supported [ERROR_8BIT_SERVER

1
0 201
Article Iryna Mykhailova · Jun 1, 2024 3m read

Columnar storage is one of the newer offers provided by InterSystems IRIS. Unlike traditional row-based storage, it optimizes query processing by storing data in columns rather than rows, enabling faster access and retrieval of relevant information.

A couple of articles have been written on when it should be used to give a system the biggest boost, how to create tables like that using SQL

CREATETABLEtable (column1 type1, column2 type2, column3 type3) WITH STORAGETYPE = COLUMNAR  -- ex 1CREATETABLEtable (column1 type1, column2 type2, column3 type3 WITH STORAGETYPE = COLUMNAR)  -- ex 2

and even the performance tests.

As we all know, InterSystems IRIS is a multi-model DBMS and it gives seamless access to the same data using relational and object access. So the former is covered in other articles, but what about the latter?

0
2 423
Article Robert Cemper · Jun 1, 2024 2m read

Translated from the Spanish Community Article Contest.

Following the latest programming contest on OEX I had some surprising observation.
There were almost exclusive applications based on AI in combination with pre-cooked Py modules.
But digging deeper, all examples used the same technical pieces of IRIS.

Seen from point of view of IRIS it was pretty much the same whether searching for text
or searching for images or other pattern.  It ended in almost exchangeable methods.

This reminds me my private situation at home. My wife and my daughter maintain an
(to me) incredible huge collection of ski

0
1 317
Question Andreas Schneider · Jun 1, 2024

Hi all! 

How can I get the ODBC drivers for IRIS 2024.1 if I am only using IRIS 2024.1 Community Edition? 
This page gives you the information: "The official location for customers to download the latest released and fully supported InterSystems IRIS driver packages is the WRC download site." My first thought on this is: Why does Intersystems make it so difficult for users to use their database? Why is the ‘official’ driver package hidden behind a login wall? Shouldn't Intersystems be happy if someone wants to work with their database, wants to connect?

Any Way: Community Edition users are di

4
0 743
Question Alin Soare · May 31, 2024

Hi there,

I am interested to execute ObjectScript commands from external language.  I saw that IRIS provides the irisnative library for this.

I am using Windows and 8-bit IRIS server (due to compatibility with old software I need to use 8-bit instead of Unicode).

I tried to execute irisnative for Javascript and for python, without success, as I explained in my previous questions.

I would like to ask you whether Intersystems provides an API to execute commands from external scripts (the same as Visual Studio Code does when I execute commands like "Import and Compile", etc.).

Is there a lan

0
0 119
Article Muhammad Waseem · Jul 2, 2023 4m read

image

Hi Community
In this article, I will introduce my application irisChatGPT which is built on LangChain Framework.
First of all, let us have a brief overview of the framework.

The entire world is talking about ChatGPT and how Large Language Models(LLMs) have become so powerful and has been performing beyond expectations, giving human-like conversations. This is just the beginning of how this can be applied to every enterprise and every domain! 

13
7 2312
InterSystems Official Fabiano Sanches · May 30, 2024

Beginning with the release of InterSystems IRIS® data platform 2022.3, InterSystems corrected the license enforcement mechanism to include REST and SOAP requests. Due to this change, environments with non-core-based licenses that use REST or SOAP may experience greater license utilization after upgrading. To determine if this advisory applies to your InterSystems license, follow the instructions in the FAQ linked below.

This table summarizes the enforcement:

Product

REST & SOAP requests included in license enforcement?

InterSystems Caché®

Yes

InterSystems En

0
0 441
Article Hiroshi Sato · May 30, 2024 1m read

InterSystems FAQ rubric

To disable the timeout, set the query timeout to disabled in the DSN settings:

Windows Control Panel > Administrative Tools > Data Sources (ODBC) > System DSN configuration

If you check Disable query timeout, the timeout will be disabled.

If you want to change it on the application side, you can set it at the ODBC API level.

Set the SQL_ATTR_QUERY_TIMEOUT attribute when calling the ODBC SQLSetStmtAttr function before connecting to the data source.

0
0 399
Question Alin Soare · May 30, 2024

Hi,

I am using Windows 10 and I cannot find an installation source for the irisnative python library.  I tried to install the wheel file provided by intersystems on github (https://github.com/intersystems/quickstarts-python/).

c:\wc\quickstarts-python\Solutions\nativeAPI_wheel>pip install irisnative-1.0.0-cp34.cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl
ERROR: irisnative-1.0.0-cp34.cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl is not a supported wheel on this platform.

 

Is irisnative supported on Windows 10 ?  The purpose is to execute ObjectScript command from external python code.

Kind r

0
0 158
Discussion Eduard Lebedyuk · May 24, 2024

It's Friday and a long weekend is upon us, so let's have a round of code golf!

Nowadays, it's rare to find a text message without at least one emoji. 😃😄😎🙂😊😀😁😆😂 But back in the day, people had to be creative to express their emotions in text. They would use emoticons, which are symbols made up of keyboard characters :^)=])B). Our challenge for today is to create a function that receives a string as argument and returns the total number of smiling faces or happy faces. Each smiley face must have one smiling mouth, which should be marked with ), ], }, D or >. A smiley face can have a pair of eyes but it does not have to. Valid characters for eyes are :, ;, 8, B or =. A nose is optional, and can be represented these characters: -, ^, c, o and ~.

Valid smiley face examples:

    :) :D ;-D :~) :‑) :-] =)    
    :] :-> :> 8-) :D 8‑D )
    8) :-} :} :o) :c) :^) =]
    :‑D 8D =D B^D

Input

"count how many smiley faces are here :)"

Output

1
15
1 329
Question Alin Soare · May 28, 2024

Hi,

In my Iris Installation I cannot use python. When I try to install external libraries I get no OPENSSL_Applink:

$ pwd
/cygdrive/c/InterSystems/IRIS2/bin
$ ./irispip install --target ../Mgr/python/ pandas
OPENSSL_Uplink(00007FFBEC2F7068,08): no OPENSSL_Applink

I get the same error when I try to install a wheel file:

$ ../../bin/irispip install ./intersystems_irispython-3.2.0-py3-none-any.whl
Processing c:\intersystems\iris2\dev\python\intersystems_irispython-3.2.0-py3-none-any.whl
Installing collected packages: intersystems-irispython
Successfully installed intersystems-irispython-3.2.0
O
5
0 340
Question Scott Roth · May 28, 2024

I am attempting to make a FHIR call against the Epic Repository through Intersystems. I have setup a Service client per Create FHIR REST Client | InterSystems Developer Community | Business

but I have set it up using OAuth and HTTPS.

I have verified that the OAuth works by executing it manually via a Terminal to verify I get a response. Of course, when I do it is writing to the ISCLOG

I am trying to now test making the FHIR call by initiating the test of HS.FHIRServer.Interop.HTTPOperation, however I keep getting mixed results with first a 404 not found error, and now a 401 unauthorized

0
0 0