#InterSystems IRIS for Health

10 Followers · 2.4K Posts

InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.

Question Michael Wood · Nov 28, 2023

I getting the response back to my method fine,

but it is not returning to my BPL.

What am I missing to get the response back to the BPL?

// Execute REST Call
set tHttpResponse=##class(%Net.HttpResponse).%New()
set tSC = ..Adapter.SendFormDataArray(.tHttpResponse,"POST",tHttpRequest,"","",tURL)
set tStatusCode = tHttpResponse.StatusCode
$$$TRACE("Status Code: ["_tStatusCode_"]")
do ..logJSON(tHttpResponse.Data.Read(),"Post Relation Response")

// On HTTP 200 - OK
if tStatusCode = 200 {
     do tHttpResponse.Data.Rewind()
     do pResponse.%JSONImport(tHttpResponse.Data.Read())
     quit $$$OK
else {
     q

8
0 368
Question Michael Wood · Nov 28, 2023

I am creating a custom message class. How do I define @name and #text fields?

this?  Property name As %String (%JSONFIELDNAME = "@name");

                "AttributesXML": {
                        "Attributes": {
                            "Attribute": [
                                {
                                    "@name": "city",
                                    "#text": "Kyle"
                                },
                                {
                                    "@name": "gmbCode",
                                    "#text": "TXAUSKLY0020G"
                             

1
0 194
Article Zacchaeus Chok · Nov 28, 2023 3m read

Overview

In our previous post, we discussed the motivation for developing a chatbot agent with access to FHIR resources. In this post, we will dive into the high-level design aspects of integrating a Streamlit-based chat interface with a Java SpringBoot backend, and enabling a LangChain agent with access to FHIR (Fast Healthcare Interoperability Resources) via APIs.


1
0 391
Article Yuri Marx · Nov 27, 2023 3m read

According to Databricks Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval.It provides efficient data compression and encoding schemes with enhanced performance to handle complex data in bulk.Apache Parquet is designed to be a common interchange format for both batch and interactive workloads.It is similar to other columnar-storage file formats available in Hadoop, namely RCFile and ORC.(source: https://www.databricks.com/glossary/what-is-parquet).

0
1 457
Article Yuri Marx · Nov 27, 2023 2m read

Currently, many digital artists use generative AI technology as a support to accelerate the delivery of their work. Nowadays it is possible to generate a corresponding image from a text sentence. There are several market solutions for this, including some available to be used through APIs. See some at this link: https://www.analyticsvidhya.com/blog/2023/08/ai-image-generators/.

I created a new application to use in IRIS taking advantage of one of these APIs.I chose the Imagine API.

5
2 403
Article Niels Genne · Nov 24, 2023 4m read

How can IRIS productions be deployed more quickly and with greater peace of mind?

The aim of interoperability productions is to enable you to connect systems in order to transform and route messages between them. To connect systems, you develop, configure, deploy and manage productions that integrate several software systems.

That’s what the InterSystems documentation on its reference website tells us, but what do you actually have to do to deploy a production ?

Go for it !

Productions can be composed to connect external systems to the IRIS Data Platform.

1
0 344
Question Nay Chi Lynn · Nov 23, 2023

I'm currently facing an issue with a Python script in my IRISHealth environment and would appreciate your insights.

I've written a class method, `getTokenCount`, in Python, which uses the `tiktoken` module. However, when I run the script in the terminal using `do ##class(python.openaiUtils).getTokenCount("")`, I encounter the following error:

```
<THROW> *%Exception.PythonException <THROW> 230 ^^0^DO ##CLASS(python.openaiUtils).Test() <class 'ModuleNotFoundError'>: No module named 'tiktoken.core' -
```

I have already installed `tiktoken` in the correct directory

3
0 479
Question Thom de Groot · Nov 15, 2023

Hello,

For a particular problem we were trying to parse a relatively large *.csv file with a recordmap. We are doing this from a BPL where we start with a REST call to acquire the file. This file needs a slight transformation which we tried in a DTL. However DTL's seem to be incapable of parsing larger files. 

We see two different alternatives: The first one to write custom code to parse the file.And the second option to write SQL queries and to write the output to a csv file.

7
0 571
InterSystems Official Bob Kuszewski · Nov 22, 2023

It’s hard to believe that this wraps up our first year of quarterly platform updates.  Thank you for making this a great first year.  Today’s update talks about the planned Minimum Supported CPU list, OpenSSL 3.0 for AIX reaching GA, and a bit more.  We’ll be back for 2024!

This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap. 

With that said, on to the update…

InterSystems IRIS Production Operating Systems and CPU Architectures

 

Minimum Supported CPU

0
1 555
Article Robert Cemper · Nov 19, 2023 1m read

Based on the successful solution for my 2nd contribution to the Contest 
I used an adapted version for this package. And have some findings I'd like to share.

Multiple communication steps over CPIPE may take time.
You won't recognize it on a fast machine. But a slower box with
Windows + Docker Desktop + your browser (and more) is neither
"Speedy Gonzales" nor a "Road Runner". 🙂

First observation you launch your OS command and see NO result
On the console, you just sit there and expect a reply.
Establishing the Connection to IRIS is a typical case.
Jour redirected Output is just empty.  

This happens

1
0 259
Question Cyril Grosjean · Nov 15, 2023

Hello,

In response to the infrastructure needs of our company's service, I've created a small API that sends SNMP queries to InterSystems to visualize relevant data for retrieval when the infrastructure implements monitoring.

However, I'm experiencing a timeout issue when attempting to collect information using an SNMP walk. Here is the code for my API's SNMP service:

import snmp from"net-snmp";

const options = {
    port: 161,
    retries: 4,
    timeout: 3000,
    transport: "udp4", // Uniquement udp4 et udp6 possible
    trapPort: 162
};

const oids = [ "1.3.6.1.4.1.16563.4.1.15.1.
1
0 408
Article Robert Cemper · Nov 19, 2023 2m read

There are situations when your only access to a server is using a web browser,
and there is just no chance of a Terminal or Console access.
The Online Demo Server is such a case.

So you have WebTerminal. That's fine for ObjectScript and Embedded Python.

But my demo is straight Java. And is interactive.
$ZF(-100...) is some aproach. But it's rater batch-oriented and not interactive.
@Enrico Parisi  presented a nice extension to WebTerminal recently.
It's close to my own packageWebCommand that I presented a year ago.

They all act in the same way. It is always a single-shot approach:
Launch a command to

0
0 234
Article Megumi Kakechi · Oct 19, 2023 2m read

InterSystems FAQ rubric

A tool (^GLOBUFF utility) is available to check the database cache usage for each global variable.

You can run the utility directly or programmatically in the %SYS namespace.

Here's how to run the utility directly:

USER>zn "%SYS"
 
%SYS>do ^GLOBUFF
 
Find which globals are using the most buffers.
 
Display the top <25>:     → Press Enter  // Default is to display top 25 globals
 
Total buffers: 102400     Buffers in use: 6926     PPG buffers: 77 (1.112%)   // Global name, database name, percentage occupied by the buffer
 
Item  Global                             Database
5
1 936
Article Tomoko Furuzono · Jun 1, 2023 1m read

InterSystems FAQ rubric

You can set the maximum size of the IRISTemp database at IRIS startup by setting a configuration parameter called MaxIRISTempSizeAtStart.

After setting, the system will truncate IRISTemp to the set value (MB) at the next IRIS startup. If the current size is less than the specified MaxIRISTempSizeAtStart, no truncation will occur. Also, if 0 is specified, truncation will not be performed, so the size will start without changing. (Default) Settings are made from the menu below.

Management Portal
[System Administration] > [Configuration] > [Additional Settings] > [Start] >

1
0 757
Article Robert Cemper · Nov 10, 2023 2m read

In my previous articles, I described my Command Line Extension to NativeAPI.
Of course, this is also available for any other NativeAPI package.
So I created this example as a demo for the actual Java Contest.
<--break->
The package contains also an IRIS server in Docker for the demo
It is evident that it also works with any remote IRIS server.
You just have to provide it with my NativeAPI CommandLine Extension.

I think this demo is easy to follow and shows the essential features.

  • First, you install the package and start the container
  • then you start the demo
    docker-compose exec iris java rcc
  • Next, you
2
0 325
Article Robert Cemper · Nov 15, 2023 2m read

This is the related article to the package in Java Contest. 
I decided to present a CRUD++ Global Editor based on IRIS Native API for Java.
++ because it’s a little bit more than just Create, Read, Update, Delete
Visualization of a global is always important to review results immediately.

  • For this purpose, I have extended the API with a Tree Viewer that mimics  ZWrite and allows also the examination of subtrees.
  • A $Query Style Navigator Forward and Reverse operating for easy finding the Global node of interest.
  • Finally, an option to ZKill to delete the content of a Global Node without
2
0 453
Article Mihoko Iijima · Nov 9, 2023 1m read

InterSystems FAQ rubric

To create a user-defined error you need to prepare the XML that describes the error code and corresponding message that you want to use as a user-defined error.

Please set the error code as a negative integer.

<?xml version="1.0" encoding="UTF-8"?> 
<MsgFileLanguage="en"><MsgDomainDomain="UserErrors"><MessageId="-111"Name="MyError">An error has occured</Message> 
    <MessageId="-222"Name="MyError2">An error has occured 2</Message> 
  </MsgDomain></MsgFile>

Once the XML file is created, load it into the namespace you want to use.

setx=##class(%Messag
2
2 719
InterSystems Official Fabiano Sanches · Nov 15, 2023

The 2023.3 releases of InterSystems IRIS Data PlatformInterSystems IRIS for Health, and InterSystems IRIS Studio are now Generally Available (GA).

RELEASE HIGHLIGHTS

2023.3 is a Continuous Delivery (CD) release. Many updates and enhancements have been added in this release:

Enhancing Cloud and Operations

Journal Archiving: Starting with this release, system administrators can now configure an archive location for completed journal files. When configured, after a journal file switch, the completed journal file will first be compressed (using the Journal Compression feature) and then

0
0 379
Announcement Larry Finlayson · Nov 15, 2023

Managing InterSystems Servers – In Person  December 11-15, 2023

  • This five-day course teaches system and database administrators how to install, configure and secure InterSystems server software, configure for high availability and disaster recovery, and monitor the system. Students also learn troubleshooting techniques.
  • This course is applicable to both InterSystems IRIS and Caché. Although the course is mostly platform independent, students can complete the exercises using either Windows or Ubuntu.
  • Self-Register Here
0
0 157
Announcement Larry Finlayson · Nov 15, 2023

Developing with InterSystems Objects and SQL – IN PERSON December 4-8, 2023   9:00am-5:00pm US-Eastern Time (EST)

  • This 5-day course teaches programmers how to use the tools and techniques within the InterSystems development environment to build high-performance transactional applications. Learners build a complex application using an IDE, object-oriented design, SQL and unit testing.
  • This course is applicable for users of InterSystems IRIS Data Platform and Caché.
  • Many benefits are offered by being physically in the classroom with our instructors for a more personalized educational
0
0 157
Question Adam Raszkiewicz · Nov 14, 2023

Which process notify Web Gateway when to switch to secondary/mirror IRIS? I'm trying to debug a case when the web gateway doesn't know about primary IRIS failure and is trying to send request to that instance which is causing 500 error. Also, no clue why at the same time I see that GET request to /csp/bin/mirror_status.cxw will return 200 OK.

Our setup is 2 web gateways, primary IRIS, secondary/mirror IRIS and an arbiter.
 

2
0 252
Question Michael Davidovich · Jul 27, 2022

After some trials, I am comfortably on my way developing spec first REST APIs using /api/mgmt/, OpenAPI 2.0, testing with Postman.

My question is related to scaling up.

Assume these things:

- Our software is CSP web app and it's web application is '/csp/application'

- I created a new REST enabled web app called '/csp/application/v1' and for my first API I created a spec that defines an endpoint /getTeapots so the endpoint is localhost/csp/application/v1/getTeapots

- Using the /api/mgmt/ endpoint, I loaded the spec into API.TeapotLibrary

- The dispatch class in '/csp/application/v1' thus is

6
0 563
Announcement Benjamin De Boe · Nov 14, 2023

We recently published a new White Paper on the use of reporting nodes ("asynchronous reporting mirror members" in full) in a mirrored environment. More and more customers are looking into this mechanism as a quick and easy way to set up a copy of their production data that stays current, yet can be used for analytical querying or heavy-duty reporting workloads without impacting the source system. Read the White Paper here.

As always, we're curious to hear your own feedback on how you've used this mirroring option in your organization, and whether you have ideas on how we can make it even more

0
1 222
Announcement Anastasia Dyubaylo · Nov 10, 2023

Hi Community,

Watch this video to learn how to use the GitUI plugin in the HealthShare Health Connect Cloud user interface to make changes to your interfaces in the Management Portal and commit them directly to your source control workflow.

⏯ Using UI Based Source Control for Health Connect Cloud

0
1 213