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

Question Kris Roberts · Dec 10, 2023

Working on a project where we have a web browser that we have to determine a pickup date/time for a pharmacy in a different time zones.

We store the different time zones with their Daylight and Standard offsets.

We have a object script method that figures out the the pickup date/time for a particular pharmacy in their local time zone but the data is being returned in the $H format.   

We now need to return it in a UTC format.  I see different methods but don't see a method that will change the $H into a UTC for a different timezone otherwise than the local timezone.  

I know I can figure a way

16
0 628
Article Yuri Marx · Dec 12, 2023 7m read

In part I of this article, we have already learned more about HL7, its messages, structure, segments, and fields. In this part II, we will show you how to transform proprietary/custom data into HL7 using IRIS for Health. For our sample, we used the data generated by the SYNTHEA bulk data generation project (https://synthea.mitre.org/downloads). So, we will show you how to convert 1000 patients from a CSV file to HL7 v2, using the Interoperability features of IRIS for Health.

Article support application – custom2hl7

You can install the sample application that will be used in this article by

0
0 728
Question Lewis Houlden · Dec 11, 2023

Hi all

I'm having trouble defining the mapping needed to take the very large base64 string in OBX:5.5, and map it to an XML virtual document property that supports Stream.GlobalCharacter. I know from within the DTL you have to use custom code to manage the segment due to its size. 

do target.StoreFieldStreamRaw(.stream,"LetterAttachment(1).Base64EncodedFile(1)", .rem)
 set tObx14Value = $piece(rem,"|",10)
 set convertedDate = ##class(Phu.Shared.Util.DateTime).ConvertHl7DateTimeToXmlDateTime(tObx14Value)
 do target.SetValueAt(convertedDate,"DocumentDetails(1).AuthoredDate(1)")
 do target.SetValueAt(

4
0 438
Article Yuri Marx · Nov 20, 2023 3m read

In the world of Big Data, selecting the right file format is crucial for efficient data storage, processing, and analysis.With the massive amount of data generated every day, choosing the appropriate format can greatly impact the speed, cost, and accuracy of data processing tasks.There are several file formats available, each with its own set of advantages and disadvantages, making the decision of which one to use complex.Some of the popular Big Data file formats include CSV, JSON, Avro, ORC, and Parquet.

2
1 764
Discussion Enrico Parisi · Jan 30, 2023

The new $system.external interface (aka "InterSystems External Servers") is used to call/integrate with external language code/libraries, it replace the old gateways (for example Java gateway) that required the import of proxy objects.

Note that the documentation for the old gateways has been removed from IRIS, so only the new $system.external interface is somewhat (i.e. insufficiently) documented.

Regarding the migration from old gateway to new  $system.external interface the documentation says:

External servers use an enhanced and simplified form of the older Dynamic Object Gateway technology.

14
2 1039
Announcement Olga Zavrazhnova · Dec 9, 2023

Hi Developers, 

We'd like to highlight some outstanding projects created during the European Healthcare Hackathon 2023 in Prague. 
Participants were presented with nine real-world healthcare challenges by IKEM and AstraZeneca.  
InterSystems introduced to the participants an opportunity to use the FHIR repository and perform FHIR availability into their solutions by providing FHIR cloud services on AWS.

Meet the winners of our challenge:

1st place Čarodějové (PathoSync)

"The PathoSync software is a solid base for complex pathologist platforms. With the use of custom mapping, any laboratory can project their data into FHIR7 standard, which soon will be mandatory worldwide. This makes the digitalization process smoother. The connection with InterSystems assures quality and implements many healthcare features. Furthermore, the GDPR norms are strictly followed using the FHIR server based in Europe, so the usage of software follows the European standards."

0
0 274
Article Megumi Kakechi · Dec 7, 2023 2m read

InterSystems FAQ rubric

To resolve the error <PROTECT>, remove the read-only attribute of the system-wide library database (IRISLIB for InterSystems IRIS, CACHELIB for Caché/Ensemble/HealthShare (Caché-based))

Once you have finished importing the routine, remember to change it back to read-only.
 

[Version 2013.1 and above]
[Management Portal] > [System Administration] > [Configuration] > [System Configuration] > [Local Database] Uncheck "Mount read-only" from the database name link.

[Version 2011.1 - Version 2012.2]
[Management Portal] > [System Administration] > [Configuration] > [System

3
0 578
Article Lorenzo Scalese · Aug 16, 2023 11m read

Hi developers!

Today I would like to address a subject that has given me a hard time. I am sure this must have been the case for quite a number of you already (so-called “the bottleneck”). Since this is a broad topic, this article will only focus on identifying incoming HTTP requests that could be causing slowness issues. I will also provide you with a small tool I have developed to help identify them.

Our software is becoming more and more complex, processing a large number of requests from different sources, be it front-end or third-party back-end applications. To ensure optimal performance, it is essential to have a logging system capable of taking a few key measurements, such as the response time, the number of global references and the number of lines of code executed for each HTTP response. As part of my work, I get involved in the development of EMR software as well as incident analysis.  Since user load comes mostly from HTTP requests (REST API or CSP application), the need to have this type of measurement when generalized slowness issues occur has become obvious.

5
9 1457
Question Michael Wood · Dec 7, 2023

I have a message class define. But sometimes the RelatedItems fields is not returned. 

Parameter %JSONIGNOREINVALIDFIELD As BOOLEAN = 1;

Property RequestedTerm As AH.AHLIB.Custom.Symedical.Message.PostRelationResponse.termsRequested;

Property RelatedItems As list Of AH.AHLIB.Custom.Symedical.Message.PostRelationResponse.RelatedItems;
 

Respnse normally will return someting like this,

on ocassion the RelatedItems are not returned

have response context variable defined as the custom message type

How do I check in a BPL if there is no RelatedItems  in the response?
 

2
0 270
Article Mark OReilly · Dec 8, 2023 2m read
Scenario

IRIS has the likes of SQL inbound adapters for use with SQL gateways such as EnsLib.SQL.InboundAdapter to repeatedly query SQL Gateway connections. A scenario appeared as that we wanted to query an Internal database for some data but did not see an out of the box service for this. 

Desired Approach

Have a Generic service that can poll internal SQL to work with downstream components.

How

What was not clear was "How do I send a result set downstream". It was not very clear as a resultset itself is not a peristent class and the object cannot be "Swizzled" an error like so 

 <METHOD DOES NOT
0
0 386
Article Kurro Lopez · Dec 8, 2023 8m read

 

Artificial intelligence is not limited only to generating images through text with instructions or creating narratives with simple directions.

You can also make variations of a picture or include a special background to an already existing one.

Additionally, you can obtain the transcription of audio regardless of its language and the speed of the speaker.

So, let's analyze how the file management works.

2
1 562
Article Carlos Sepulveda Mancilla · Dec 8, 2023 3m read

Windows Subsystem for Linux (WSL) is a feature of Windows that allows you to run a Linux environment on your Windows machine, without the need for a separate virtual machine or dual booting. 

WSL is designed to provide a seamless and productive experience for developers who want to use both Windows and Linux at the same time**.

WSL 2 is the default distro type when installing a Linux distribution.WSL 2 uses virtualization technology to run a Linux kernel inside of a lightweight utility virtual machine (VM).Linux distributions run as isolated containers inside of the WSL 2 managed VM.

0
1 484
Question Fabio Care · Dec 5, 2023

When trying to create a ML Model I ran into the problem, that AutoML apparantly isn't available on my IRIS instance.

I was able to use the following command successfully: CREATE MODEL ECLASSPREDICT PREDICTING (eClass) FROM SQLUSER.CRMSHOPARTIKEL

Then when trying to use TRAIN MODEL ECLASSPREDICT, I get the error from the image:

 

Roughly translates to : "-186: Modelprovider not available on this instance. #2822 %ML provider 'AutoML' is not available on this instance"

In my ML Configurations there are 3 standard configurations called %AutoML, %H20 and %PMML which I haven't changed.

I have tried the

10
0 449
Question Denys Kondratiuk · Dec 7, 2023

I want to call the REST endpoint and return the list of objects. I`ve created the method but it displays an error: 
<METHOD DOES NOT EXIST>GetAllPersons+10^Lab3.RestClient.1 *Count,%ZEN.proxyObject

ClassMethod GetAllPersons() As%Status
{
    Set request = ##class(%Net.HttpRequest).%New()
    Set sc = request.Get("http://localhost:52773/csp/crud/persons") 
    Quit:$System.Status.IsError(sc) sc

    Set responseStream = ##class(%Stream.GlobalBinary).%New()
    Set response = request.HttpResponse.Data.Read()
    
    Write"Response from Server:", !, response, !

    Set pl = ##class(%
2
0 637
Article Anton Umnikov · Dec 4, 2020 7m read

IRIS External Table is an InterSystems Community Open Source Project, that allows you to use files, stored in the local file system and cloud object storage such as AWS S3 as SQL Tables. IRIS External Table

It can be found on Github https://github.com/intersystems-community/IRIS-ExternalTable Open Exchange https://openexchange.intersystems.com/package/IRIS-External-Table and is included in InterSystems Package Manager ZPM.

To instal External Table from GitHub use:

git clone https://github.com/antonum/IRIS-ExternalTable.git
iris session iris
USER>set sc =
4
2 1311
Question Anup Thakkar · Nov 29, 2023

Hello,

I have created a service in Node.js which interacts with IRIS using APIs. The current implementation uses basic auth. I want to implement OAuth 2, to make the communication between the node.js service and IRIS secure. I want my service to act as client and IRIS as Authorization and Resource server. I don't know how to do that. Anyone who has implemented OAuth using IRIS can you help me out or point me in the right direction on about how to implement it? 

Thank you for your help :)

6
0 406
Question Mary George · Dec 6, 2023

Hi Community, 

We are trying to filter message created using custom xml class in a business rule.  

HL7 ORU Result messages are converted to custom xml messages with a list properties .Result ORU converted to OrderResultMsg , which contains property Orders as list of Order which contains ResultStatus .  Please see below the class extract.  We are trying to access the ResultStatus property to filter non-final results via business rule. 

Class CDM.OrderResultMsg Extends Ens.Request
{

Property MSHSendApplication As %String;

Property MSHSendFacility As %String; 
<<Code truncated>>

Property Orders As

5
0 371
Article Murray Oldfield · Jun 6, 2017 20m read

I am often asked by customers, vendors or internal teams to explain CPU capacity planning for large production databases running on VMware vSphere.


This post was originally written in 2017, I am updating the post in February 2026.For context I have kept the original post, but highlighted changes.This post was originally written for ESXi 6.0.The core principles remain valid for vSphere 7.x and 8.x, though there have been improvements to vNUMA handling, CPU scheduling (particularly for AMD EPYC), and CPU Hot Add compatibility with vNUMA in vSphere 8.

7
0 6721
Question Alexey Nechaev · Dec 4, 2023

Hi folks, 

I made a solution (https://openexchange.intersystems.com/package/iris-pretty-gpt-1) and want to use it like 

CREATEFUNCTION ChatGpt(INpromptVARCHAR)
RETURNSVARCHARPROCEDURELANGUAGE OBJECTSCRIPT
{
    return ##class(dc.irisprettygpt.main).prompt(prompt)
}


CREATETABLE people (
nameVARCHAR(255),
city VARCHAR(255),
age INT(11)
)


INSERTINTO people ChatGpt("Make a json file with 100 lines of structure [{'name':'%name%', 'age':'%age%', 'city':'%city%'}]")

I know that a FUNCTION can only return one result.

6
0 452
Question Sapan Parikh · Dec 5, 2023

What changes are to be made while customizing a FHIR server package when adding a new field. As provided in the documentation, we have a sample JSON package of favorite color and it is added in the table, but when we are adding a new field 'Insurance', it does not imports the package and says package already exists. We have three files of JSON 

1) Package.JSON

2) SearchParameter.JSON

3) StructureDefination.JSON 

What should we have to change for adding new field.

2
0 260
Question Denys Kondratiuk · Dec 5, 2023

I need to create a simple REST application.
I`ve created an app:

Also here is a dispatcher class:
 

Class Lab3.helloWorld Extends%CSP.REST
{

Parameter Authentication = 0;Parameter HandleCorsRequest = 0;
XData UrlMap [ XMLNamespace = "https://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/hello" Method="GET" Call="Hello" />
</Routes>
}

ClassMethod Hello() As%Status
{
	Do##class(%REST.Impl).%SetContentType("application/json")
    If '##class(%REST.Impl).%CheckAccepts("application/json") Do##class(%REST.Impl).%ReportRESTError(..#HTTP406NOTACCEPTABLE,$$$ERROR($$$RESTB
2
0 619
Article Luis Angel Pérez Ramos · May 22, 2023 6m read

Here we are again with an article related to the Mirror!

In the previous article we saw how we could configure a Mirror between two IRIS instances, one acting as an active node and the other as a passive one. This mirroring system works on the transfer of a journal file that keeps the instance that works as a passive node continuously updated, but what happens if due to some communication failure or permissions of the journal file it is not transferred correctly?

The most common is that in this situation our Mirror remains unconfigured, in such a way that the passive node does not receive the

4
1 770
Article Luis Angel Pérez Ramos · Dec 5, 2023 3m read

Welcome everybody!

In this short article I would like to present an example of use that surely many of you who work with IRIS as the backend for your web applications have faced on more than one occasion and it is how to send a file to your server from the frontend.

Generally the simplest way I have found to perform this task is to transform the file from the frontend to the Base64 format and make a POST call to our server attaching the Base64 obtained to a JSON message in which I indicate in a parameter the name of the file and in another the encoded data. Something similar to this:

{
    "file
2
0 737
Article Mihoko Iijima · Nov 30, 2023 3m read

InterSystems FAQ rubric

Class definitions created by users are stored in class definition classes. They can be used to obtain a list of class definitions from a program.

Note: Class definition classes refer to all classes contained in the %Dictionary package.

In the sample code below, a list of class definitions is obtained using the query Summary of the class %Dictionary.ClassDefinitionQuery.

Class ISJ.Utils
{
ClassMethod ClassInfo()
{
    #dim ex As %Exception.AbstractException
    try {
        set currentNS=$NAMESPACE
        while (1) {
            read "Please specify namespace: ",x
2
0 621
Question Anna Diak · Dec 2, 2023

Hello all,

I am trying to start java gateway and constantly getting an error in terminal:
"%RemoteService+3^%Net.Remote.Gateway.1 *%Exception.StatusException ERROR #5023: Remote Gateway Error: TCP error on port '55555', ensure there is an Object Gateway running on this port". I've checked jvm and it is running properly, telnet also is able to connect to the port.

Has anyone encountered this issue before?

2
1 471