#Interoperability

7 Followers · 583 Posts

In healthcare, interoperability is the ability of different information technology systems and software applications to communicate, exchange data, and use the information that has been exchanged.

Article Rizmaan Marikar · Aug 30, 2023 5m read

Wanted to share something I learned recently while working on a problem. We needed to add and change some Business Hosts in one of our edge productions.

In the past, we simply added the production class to CCR and then spreading it around. But there was a problem because different developers were working on different things, and we only wanted to include only the relevent production changes onto the CCR. 

Here's a little piece of code that can help add new things to an existing production:

class HSEDGE1PKG.
0
2 277
Question Menno Voerman · Aug 4, 2023

Hi All,

If I remember it correctly there is a functionality in IRIS to make this possible.

I've got two incoming Business Services of files from different sources.

BS1: An Ens.StreamContainer with some info and metadata which point to a specific file. Ens.StreamContainer will be send to a BP.

BS2: The files where the metadata points to. It's in the Ens.StreamContainer

But dependent on the flow the file could be later available on BS2. So I want the BPL to wait for the file to arrive at BS2. 

Then in the BPL I want to do some merging stuff with the 2 Ens.

4
0 267
Question Menno Voerman · Jul 13, 2023

Hi All,

We're doing our first babysteps with embedded Python and IRIS with an interoperability solution. We want to convert a CSV file to an Excel xlt file.

As service we've got a EnsLib.File.PassthroughService which picks up a csv file

As operation we've got a EnsLib.File.PassthroughOperation which writes the Excel file.

In the middle:

We've created an Business Process with an %Stream.GlobalCharacter in the Request and a %Stream.GlobalCharacter  in the Response.

But how do we get the %Stream.GlobalCharacter in the Python ClassMethod?

3
0 582
Question Ties Voskamp · Aug 3, 2023

Hi,

Using Interoperability, I can't figure out how to create separate XML's files from a CSV-file using the GUI-features Record Maps/Complex Record Mapper -> Data Transformations. I'm familiar with reading/writing the files using File Service/Operation, but don't understand the processing-steps. The preferred method by my colleagues is to do this without any Objectscript or Embedded Python coding, but if this can only be done by some coding that's fine as well.

See example below. Any help is appreciated!

2
0 344
Article Jeffrey Drumm · Jul 24, 2023 2m read

When creating custom Business Hosts, it's often necessary to add properties to the class for additional settings that will be used in the initialization or operation of the host. The property name itself isn't always very descriptive, so it's an advantage to have a custom caption display with the field.

In Caché, it was fairly straightforward:

TEST> Set ^CacheMsg("EnsColumns","en-us","<property name>") = "<caption>"

But It involves a bit more effort in IRIS ...

4
3 473
Question Jon Astle · Jul 20, 2023

Hi

We've been asked to develop a HL7 interface, but the end system has very different needs than any we've ever interfaced with before. We need assistance to determine if these needs are things HealthShare can support that we're just not aware of, or whether we'll need to develop some custom code to accomplish this.

This end system wants us to send HL7 messages completely asynchronously, one after the other without waiting for any form of ACK or NAK.

4
0 602
Question Eduard Lebedyuk · Jul 20, 2023

I have the following setup: REST broker calls inProc BO via BS. As BO initialization is time-consuming, I want to reuse the same BO during the CSP process lifetime.

I have tried the following approaches:

  1. Set %session.Preserve to 1 (I would prefer not to use it as the BO object is not linked to a specific client)
  2. Set $$$EnsInProcPersist to 1 (looked relevant)
  3. Cached BS between calls

However, every time I call my REST endpoint, I get a new BO. Is there a way to cache inProc BOs in the CSP context?

To run the sample, import it into any interoperability-enabled namespace, start in.

0
0 178
Question Michael Davidovich · Jul 18, 2023

I am hoping someone can let me know if I've gone down a dark path or not:

  • I'm using the record mapper to create a business service that waits for a .txt file and sets pipe delimited data to the mapper's record class
  • That record (essentially the raw data) is sent to a business process 
    • OnRequest() is implemented where it opens or creates an instance of the target object and validates and transforms and sets the data to the target object as needed; the response is that target object.
3
0 535
Article Alex Woodhead · Jul 17, 2023 1m read

In response to a community question asking to view Request and Response message types in Production settings..

A community helper class was implemented should people need this. ( alwo.EnsHelper.HostRequestResponseInfo )

Install

zpm install alwo-enshelper

The code may serve as an example, to project bespoke configuration into Production settings.

Usage

Business Service

Class myService extends (Ens.BusinessService, alwo.EnsHelper.HostRequestResponseInfo)
{
  ...
}

Business Process

Class myBusinessProcess extends (Ens.BusinessProcess, alwo.EnsHelper.
1
3 317
Discussion Michael Lei · Jul 13, 2023

With rapid evolution of Generative AI,  to embrace it and help us improve productivity is a must. Let's discuss and embrace the ideas of how we can leverage Generative AI to improve our routine work. 

0
1 223
Question Evgeny Shvarov · Jun 9, 2023

Hi folks!

How can I change the production setting programmatically?

I have a production that is a solution that uses some api-keys, which are the parameters of Business Operations but of course cannot be hard-coded into the source code.

E.g. here is the example of such a production that runs a connection of Telegram and ChatGPT.

And it can be installed as:

zpm "install telegram-gpt"

But now one needs to setup the key manually before using the production, having the following setting:

I'd like to set up it programmatically so one could install it as:

zpm "install telegram-gpt -D Token=sometoken"

How can I make it work?

18
0 1059
Article Ikram Shah · Jul 6, 2023 6m read

Idea sourced from InterSystems Ideas Portal

Previous Posts:

Using AI to Simplify Clinical Documents Storage, Retrieval, and Search

Doctor-Patient Conversations: AI-Powered Transcription and Summarization

Introduction

The healthcare industry is continuously evolving, and the need for efficient document management and patient data management is more critical than ever. In this article, we will focus on the specific aspects of integrating Google Docs and Google Sheets with FHIR data in the context of healthcare data interoperability.

0
1 259
Article Ikram Shah · Jul 4, 2023 3m read

Problem

In a fast-paced clinical environment, where quick decision-making is crucial, the lack of streamlined document storage and access systems poses several obstacles. While storage solutions for documents exist (e.g, FHIR), accessing and effectively searching for specific patient data within those documents meaningfully can be a significant challenge.

Motivation

AI has made document search remarkably powerful. Question and answering over docs has never been easier with open-source tools like Chroma and Langchain to store and use vector embeddings to query across Generative AI APIs.

0
2 749
Question William Glover · Jun 26, 2023

I have a pResponse output in my onrequest method, in here I build an ACK and set the pResponse variable to it,  and return a status object afterwards.

The pResponse doesn't show up in the trace or message viewer, yet if I move the interface to another more established namespace it works fine, what settings or config could be preventing the ACKS going back?

4
0 295
Article Daniel Aguilar · Jun 26, 2023 10m read

Hi Community!

Have you ever had to connect IRIS to an SAP system?

I had to face the challenge of connecting InterSystems IRIS with SAP, and once again I was able to verify the grant work made by Intersystems related to adding the possibility of executing native Python code inside IRIS.

This feature made the integration very easy thanks to the library pyrfc.

With this library, I was able to make calls to a SAP RFC (Remote Function Call) from an IRIS class and receive data from the SAP’s database. 

Yet, What is a RFC?

RFC is a communication protocol used by SAP.

0
3 797
Question Evgeny Shvarov · Jun 23, 2023

Hi, Developers!

I wonder if it is possible to use class parameters in DTL XData?

E.g. in an example below of the DTL I'd prefer to setup ChatGPT prompts in parameters (GPTPrompt1) of DTL rather than quotes inside the XData XML:

If possible, how can I refer to a class parameter from XData?

Thanks in advance!

2
1 390
Question Evgeny Shvarov · Jun 20, 2023

Hi folks!

I have an example where I want to write a string into a file.

I have a message with string and I want to write the string down into a file.

I took EnsLib.FilePathThrough.Operation which expects Ens.StreamContainer message.

So I perform a data transformation where I need to transfer string to a stream. Here is the DataTransformation:

4
0 985
Article Nikolay Solovyev · Jun 21, 2023 3m read

The Telegram Adapter for InterSystems IRIS serves as a bridge between the popular Telegram messaging platform and InterSystems IRIS, facilitating seamless communication and data exchange. By leveraging the capabilities of the Telegram API, the adapter allows developers to build robust chatbots, automate tasks, and integrate Telegram with InterSystems IRIS applications.

The most common scenarios where the Telegram Adapter can be used include:

  1. Real-Time System Notifications: Sending immediate notifications about specific events occurring in the system.
0
2 463
Article Evgeny Shvarov · Jun 8, 2023 2m read

Hi Community!

Just want to share with you an exercise I made to create "my own" chat with GPT in Telegram.

It became possible because of two components on Open Exchange: Telegram Adapter by @Nikolay Solovyev and IRIS Open-AI by  @Kurro Lopez

So with this example you can setup your own chat with ChatGPT in Telegram. 

Let's see how to make it work!

8
1 752
Article Eduard Lebedyuk · Jun 7, 2023 7m read

Recently I needed to restore a version of a production class, which was overwritten by compilation and running UpdateProduction. As the correct version was unavailable in the source control, I used journals to restore the data. Journals store a plethora of information about what's happening in the system and are quite a powerful tool. This article explains how to work with journals to extract the data you require.

0
1 370
Question Sebastian Thiele · May 31, 2023

Hi all,

I am looking for a way to serialize fhir content received via interoperability adapter into it´s corresponding ISC model class (e.g. HS.FHIR.DTL.vR4.Model.Resource.DiagnosticReport) for later use. In my opinion the outline to accomplish this would be something like

1) Receive the FHIR data
2) Get quick stream containing the JSON data
3) Examine if bundle or single ressource
4) For resource serialize to coressponding model class (HS.FHIR.DTL.vR4.Model.Resource.*)
5) further use of newly created object of type HS.FHIR.DTL.vR4.Model.Resource.*

Of course something like set tObj = {}.

3
0 328