#InterSystems IRIS for Health

0 Followers · 2.3K 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.

Article Luis Angel Pérez Ramos · Feb 14, 2024 4m read

Introduction

I recently participated in a fantastically organized hands-on by @Patrick Jamieson in which an Angular application was configured together with an IRIS FHIR server following the protocols defined by SMART On FHIR and I found it really interesting, so I decided to develop my own Angular application and thus take advantage of what I learned to publish it in the Community.

SMART On FHIR

Let's see what Google tells us about SMART On FHIR:

0
1 702
Question Armin Gayl · Feb 9, 2024

Hello,

I have a problem with a FHIR Interop scenario that the HTTP Header Value content-type between IRIS and client changes in case of an error (HTTP 422). If I set the status in the response to 200 OK as the last step in the service class, the return transmission works.

Within my operation class, the error code is taken from the source system and entered in the HS.FHIRServer.Interop.Response message. 

Within the CSP gateway I am also shown that the content type is 422 application/fhir+xml and is returned.

3
0 385
Article Luis Angel Pérez Ramos · Oct 16, 2023 10m read

We resume our series of articles on the FHIR Adapter tool available to HealthShare HealthConnect and InterSystems IRIS users.

In the previous articles we have presented the small application on which we set up our workshop and showed the architecture deployed in our IRIS instance after installing the FHIR Adapter. In today's article we will see an example of how we can perform one of the most common CRUD (Create - Read - Update - Delete) operations, the reading operation, and we will do it by recovering a Resource.

What is a Resource?

3
5 627
Article Hiroshi Sato · Feb 8, 2024 1m read

InterSystems FAQ rubric

On Linux, use the following steps to delete an instance of InterSystems IRIS (hereinafter referred to as IRIS).

(1) Stop the IRIS instance you want to uninstall using iris stop 

# iris stop <instance name>

(2) Delete the instance information using the following command 

# iris delete <instance name>

(3) Delete the IRIS installation directory using the rm -r command 

# rm -r <install directory>

In addition to the installation directory, IRIS also uses (a) and (b) below.

0
1 612
Question Scott Roth · Dec 14, 2023

I am trying to troubleshoot an issue with LDAP and a specific user. Besides what is in the Audit Database is there another way to look to see the LDAP functionality that is being called and the response, like there is with OAuth and the ISCLOG? The Audit Log is returning a failure (Unexpected - /api/atelier login failure | InterSystems Developer Community) for this particular user, and I want to get proof that it might be something with the LDAP and not IRIS.

Thanks

Scott

6
0 497
Article Sylvain Guilbaud · Feb 1, 2024 5m read

Hello Community,

SQL language remains the most practical way to retrieve information stored in a database.

The JSON format is very often used in data exchange.

It is therefore common to seek to obtain data in JSON format from SQL queries.

Below you will find simple examples that can help you meet this need using ObjectScript and Python code.

ObjectScript : using Dynamic SQL with %SQL.StatementJSON structures with %DynamicObject and %DynamicArray

1
4 518
Article Muhammad Waseem · Oct 15, 2021 2m read

In this article I will demonstrate the following :

  • Update ReferencesRange(OBX:7) against ObservationIdentifier(OBX:3.1)[TestCode] from database by using custom utility function
  • Update Abnormal Flag(OBX:8) against ObservationIdentifier(OBX:3.1)[TestCode]  and ObservationValue(OBX:5)[Result] from database utility function
  • Route Message based on Abnormal Flag(OBX:8)

Below is the primary and transformed HL7 2.5 ORU_R01 message:
 

6
0 952
Article Henrique Dias · Feb 1, 2024 5m read

In a world where healthcare technology is rapidly evolving, the importance of efficient, reliable, and interoperable healthcare applications has never been greater. 

This is where FHIR (Fast Healthcare Interoperability Resources) comes in, a standard that has revolutionized data exchange in healthcare. 

The introduction above is an example generated by AI, and as you can see, AI is around us everywhere, accessible to everyone… 

Why IRIS-FHIRfy? 

We need to learn more about using AI to our advantage, making life easier in every aspect.

1
0 247
Article José Pereira · Jan 30, 2024 5m read

Background

In 2021, I participated as an InterSystems mentor in a hackathon, where a newcomer to FHIR asked me if there was a tool to transform generic JSON data containing basic patient information into FHIR format. I informed her that I didn't know anything like that, unfortunately.

But that idea stays in my mind...

Several months later, in 2022, I came up with an idea to experiment: to train a named entity recognition (NER) to identify FHIR elements into generic texts. The training involved synthetic FHIR data generated by Synthea and the spaCy Python library.

While I achieved good initial results in recognizing basic patient FHIR elements, such as names and location information, I encountered a challenge in structuring these elements into a valid JSON format. Consequently, I decided to put the project on hold.

However, a significant development occurred in late 2022: the popularity of Language Model Models (LLMs) pioneered by OpenAI, notably Chat GPT.

New possibilities with LLMs

LLMs have demonstrated impressive capabilities in emulating the way people generate text, including computer programs. Today, there are several programming assistants like GitHub Copilot and Codium.

A few months ago, me and my colleagues @Henrique Dias and @Henry Pereira conducted experiments using OpenAI LLM services to attempt to answer analytical questions by generating Python code that utilizes the IRIS FHIR REST API. You can find more details about these experiments in this post.

Now, we have decided to revisit the paused project of converting generic healthcare data into FHIR format, this time harnessing the power of LLMs. This was the birth of the IRIS-FHIRfy project.

How IRIS-FHIRfy works?

IRIS-FHIRfy employs prompt engineering techniques on LLMs, such as role-playing and prompt chaining. The project is divided into three prompts, each aimed at breaking down the problem into less complex steps. These prompts build upon the output of the previous one, are supposed to enhance reasoning and provide a clear path to implementation.

Let's details each of them:

  1. Technical Report Generation

The first prompt starts by generating a technical report from samples of data that need to be exchanged. This report serves as a foundational step for understanding the data and its requirements.

  1. Implementation Suggestions

The second prompt takes the technical report as input and provides high-level implementation suggestions. It outlines how to go about converting the raw data into the FHIR standard.

  1. Code Implementation in Python

The final prompt takes the implementation suggestions and provides a code implementation in Python. This code serves as a starting point for developers and can be refined further to suit specific project needs. It enables the conversion of the original raw data into the FHIR standard.

The user is provided with the response to each of the prompts.

Here's a visual representation of the entire process:

IRIS-FHIRfy

You can check out the prompts in the following classes: RawDataAnalyzer, SolutionSuggestion and SolutionModuleGenerator.

Currently, we are using the LLM models gpt-3.5-turbo from OpenAI, and gemini-pro from Google Gemini. The user chooses which one to use.

In contrast to the initial LLM project, where the generated Python code was expected to be flawless, this project adopts a more relaxed approach. Here, the generated code is not expected to be perfect but rather serves as a valuable starting point for developers who work with the FHIR standard for healthcare data exchange.

You can check out here the entire process of using IRIS-FHIRfy to analyze, suggest, and implement a solution for transforming simple CSV data into FHIR format using a sample dataset. Additionally, you can follow the process of refining the code generated by the LLM and leveraging it to convert the original raw data into FHIR, subsequently persisting it into IRIS.

How to use IRIS-FHIRfy

You have three different ways to utilize the IRIS-FHIRfy project:

Example of use with IRIS Interoperability

You can check out a sample of converting a simple CSV to FHIR running in an IRIS Interoperability here.

The following is a record of it:

Limitations

This project is currently in an experimental phase, and as such, it is expected to produce incorrect or unusual results. Our primary objective at this stage is to test the fundamental concept of harnessing the capabilities of LLMs to assist developers in converting generic healthcare data into the FHIR standard.

It's worth noting that we have only worked with very basic and straightforward structured data thus far.

While expecting code to convert unstructured generic healthcare data, such as clinical notes, may be a challenging endeavor, the technical analysis report provided by the tool can still be valuable for developers seeking to understand the data they are working with.

Furthermore, it's important to emphasize that certain critical topics, such as data privacy and security, are not addressed within the scope of this project. These areas must be addressed in future research and development.

Closing Thoughts

We hope you found the concept of this project intriguing, and we encourage you to give it a try with your own data.

If you encounter any results that you believe could be improved, we would greatly appreciate your valuable feedback. Your input will help us refine our models and improve the project's outcomes.

Thank you for taking the time to read this article. Your interest is greatly appreciated!

2
0 457
Article Yuri Marx · Feb 1, 2024 2m read

According Wikipedia a mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those major ideas. Mind maps can also be drawn by hand, either as "notes" during a lecture, meeting or planning session, for example, or as higher quality pictures when

6
0 356
Article Oliver Wilms · Feb 3, 2024 2m read

The architect of the JSON schema (MS) asked if IRIS could  perform schema validation. I asked on Discord objectscript channel how we could validate a Dynamic Object against a JSON schema. Dmitry Maslennikov replied that probably the easiest way would be to use python, but it would require converting ObjectScript JSON to Python dict.

I refer to this as my first real use case for Embedded Python, because previous examples I had tried I could have implemented in ObjectScript just as easily as in Python.

0
1 269
Article Muhammad Waseem · Feb 2, 2024 3m read

Sometimes we need to convert FHIR message to HL7 V2, e.g. to register a patient to the PACS system.
In this article, I will explain the steps to achieve the desired by using IRIS FHIR Server production.

Below are the steps we need to follow:

  1. Make sure FHIRServer production is started.
  2. Register Business Service with FHIRServer endpoint.
  3. Define Business Processes to convert FHIR message to SDA and then Convert SDA to HL7 v2.
  4. Post JSON resource to FHIRServer endpoint and get HL7 V2 response.

Let's review the steps in detail.
 

Step 1. Make sure FHIRServer production is started

Open the production page and make sure Production is started. In the next step, we need to make sure business service HS.FHIRServer.Interop.Service is registered with FHIRServer

0
0 681
Article Luis Angel Pérez Ramos · Oct 11, 2023 3m read

We return with our example of using the FHIR Adapter, in this article we are going to review how we can configure it in our IRIS instances and what the result of the installation is.

The steps taken to configure the project are the same as indicated in the official documentation, you can review them directly here. Well, let's get to work!

Installation

1
1 483
Article shan yue · Feb 2, 2024 2m read

Hi Community

This document mainly enriches the content of the previous article and introduces the use of the application.

Perhaps you have already read the previous article, but I still want to say,
After completing the initialization operation (including model creation and training), the Fhir HepatitisC Predict application then predicts HepatitisC

First

You need to input some information on the application, of course, only the results of some checks, not including privacy data.

SHOW

0
0 182
Question Eyal Levin · Jan 28, 2024

Hi, I was wondering if anyone already dealt with this issue:
"System has been suspended for over X seconds, exceeding the maximum duration specified. Allowing system activity to resume. Any ongoing backup has presumably failed. Next InterSystems IRIS backup must be a full one"

our backup system "Commvault" is automatic, how do you tell it once you get this message that the next backup should be full?

thanks,

Eyal

11
0 295
InterSystems Official Timothy Leavitt · Nov 29, 2023

We are excited to announce a new part of InterSystems documentation that makes it easier to upgrade InterSystems IRIS® data platform, InterSystems IRIS® for Health™, or HealthShare® Health Connect. The Upgrade Impact Checklist at https://docs.intersystems.com/upgrade shows you all the things you need to consider – and only the things you need to consider – in an upgrade between any two versions. This takes all the content from our "Incompatibility History" and adds convenient filters, higher-level categories, and the ability to export the list as a CSV file so you can use it as a true

8
3 695
Article Rob Ellis · Jan 31, 2024 2m read

Do you ever spend an age entering criteria in the message viewer page, trying to find a message just to realise you're in the wrong instance of IRIS? 

Or get lost in a sea of message tabs struggling to spot that Visual Trace page your were JUST looking at?

Well, have you tried the IRIS WHIZ browser extension and its suite of tools designed to help you avoid such unpleasantness?

1
2 280
Question Nicki Vallentgoed · Jan 24, 2024

I receive JSON from a webservice and parse it to an object:

Set wout=0set stream=##class(%Stream.TmpCharacter).%New()
For {
	Quit:(httprequest.HttpResponse.Data.AtEnd || wout)
	d stream.Write(httprequest.HttpResponse.Data.Read(32000,.tSC))
}
Set jsonob={}.%FromJSON(stream)

jsonob contains a sub entity "pdf" which is a base64 string and %GetTypeOf() tells me it is a string.
However I am unable to read the nested jsonob.pdf into a stream or anything else as any attempt to use it result in a MAXLEN error.

9
1 616
Question Scott Roth · Jan 29, 2024

Lately my group has been seeing issues when signing in through the Management Portal or VS Code we are getting "Service Unavailable" errors returned to us. We recently migrated away from using the PWS to using Apache/InterSystems Web Gateway and using LDAP instead of Delegated Authentication. 

I have been on the hunt to find out where the problem might lie. When I run the "Test LDAP Authentication" from within the Management Portal, eventually I receive a response after getting a couple of timeouts while waiting for the response.

1
0 423
Article Oliver Wilms · Jan 31, 2024 2m read

An App that converts HL7 messages to JSON objects. About a year ago I started a GitHub repo for collecting stuff related to HL7. Recently my team added an HL7 interface to our Interoperability Production and we were asked to persist HL7 messages. We created a Kafka topic to receive HL7 messages. We use Kafka Bridges to send messages to Kafka topics. Kafka messages are sent to the Kafka Bridge in JSON format.

0
0 232
Question Kurro Lopez · Jan 31, 2024

Hi community,

We have a developed a new version of a production, all the code is new and has changed BP. This application load information for some brands and stored in database.

The customer wants to implement the changes only for some brands because he wants to check for small brands before to implement for all brands.

My proposal is create a new namespace, with the new code, and disabled all load of brands except the brand that he wants to check.

I'm wondering what is the best way to clone the namespace.

2
0 390