#Interoperability

7 Followers · 574 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.

Announcement David hay · Jan 14, 2024

clinFHIR is a web application that has been developed pretty much over the same time as FHIR has. 

Originally developed to help clinicians visualize FHIR (hence the ‘clin’ in the name) it has become more widely used by the FHIR community for learning FHIR and assisting with design. It is maintained by David Hay - one of the FHIR Management Group co-chairs with support from InterSystems, which is much appreciated!

There are 4 modules that may be of interest to participants in the upcoming Interoperability contest.

  • The Patient viewer for looking at an individual patients records
  • Server Query which makes RESTful API calls against a FHIR server displaying the result in different formats
  • Bundle Visualizer which will display the contents of a bundle
  • Graph Builder which allows you to build graphs of interconnected resources.

I’ve created a longer post on google docs that goes into a little more details of these modules, with links to other resources such as my blog and the R4 Specification and R5 FHIR specification. I’ll be enhancing that over time - feel free to comment.

A note with regard to FHIR versions. The latest version is R5 (release 5), though many in the community still use R4. In most cases, if you're not sure then use R4. If you're not sure which version a FHIR Server supports, examine its CapabilityStatement which you can get from the server endpoint [host]/metadata

I should also point out that clinFHIR doesn’t currently use SSL. It is on the roadmap, but there are a few issues to work through. The consequence of this is that if you enter ‘clinfhir.com' into the browser, it may not find it. You sometimes have to specify http://clinfhir.com/

If you need further assistance, I would alway recommend using the FHIR chat, and if your question / comment / suggestion is related to clinFHIR then there’s a specific stream there.

0
0 436
Article Sylvain Guilbaud · Jan 8, 2024 3m read

Hello Community,

When using an SQL type Business Service, it may happen that we need to replay certain rows from the source table.

Let's take as an example the Business Service "from customer SQL" using the generic class EnsLib.SQL.Service.GenericService

 

Different cases arise, depending on the settings used on this Business Service.

First case :

If the Business Service only uses a KeyFieldName

In this case, to reprocess IDs 123, 456 and 789, it will be enough to delete them from the global ^Ens.AppData for the Business Service concerned on the "adaptor.sqlrow" reference:

kill ^Ens.
0
1 456
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 = ##class(%SYSTEM.OBJ).
4
2 1319
Article Davi Massaru Teixeira Muta · Nov 26, 2023 8m read

Introduction

This article aims to explore how the FHIR-PEX system operates and was developed, leveraging the capabilities of InterSystems IRIS.

Streamlining the identification and processing of medical examinations in clinical diagnostic centers, our system aims to enhance the efficiency and accuracy of healthcare workflows. By integrating FHIR standards with InterSystems IRIS database Java-PEX, the system help healthcare professionals with validation and routing capabilities, ultimately contributing to improved decision-making and patient care.

3
0 489
Article Zacchaeus Chok · Nov 26, 2023 2m read

Motivation

The motivation behind the InterLang project is rooted in the innovative integration of LangChain chatbot agents with the Fast Healthcare Interoperability Resources (FHIR) framework to revolutionize conversational social prescriptions in healthcare. This project aims to leverage the rich and standardized data available through FHIR, an emerging standard in healthcare data exchange, to inform and empower these advanced chatbot agents.

FHIR provides a robust structure for health data, encompassing clinical, administrative, and financial information.

5
0 419
Question Andy Khemraj · Dec 1, 2023

I am trying to replace OBX.2 value of ED to PDF

Here is what I have in the funcion wizard

..ReplaceStr(source.{OBRgrp().OBXgrp().OBX():ValueType},"ED","PDF")

Inbound Message

OBX|5|ED|PDFReport^PDFReport||PDF^Image^PDF^Base64^JVBERi0xLjMNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL1BhZ2VzIDQgMCBSDQovT3V0bGluZXMgMiAwIFI

Desired Outbound Message

OBX|5|PDF|PDFReport^PDFReport||PDF^Image^PDF^Base64^JVBERi0xLjMNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL1BhZ2VzIDQgMCBSDQovT3V0bGluZXMgMiAwIFI

1
0 326
Question Kevin Kindschuh · Nov 28, 2023

I have a case where the Active Directory Service Account passwords will be changed periodically every 3 months and the changes are shared via the LastPass application which requires logging into the app to retrieve the new password and manually entering it into the Interoperability Credentials configuratrion, or the Service Registry.

> Is there a way to retrieve the password automatically?

In this case the organization plans to use gMSA (Group Managed Service Account) and BeyondTrust for setting up new password in the future.

How have people delt with this?

0
0 278
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 395
Announcement Shane Nowack · Nov 1, 2023

Hello Community,

The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems HL7® Interface Specialist Recertification Project If you hold the InterSystems HL7 Interface Specialist certification AND your certification's expiration date is within 6 months of today's date, you can get recertified by successfully completing the recertification project. Completing an InterSystems recertification project is one of two options a certification candidate can choose to get recertified (the other option is to take the new version of the exam).

0
0 330
Question Tey Kitthajaroenchai · Sep 26, 2019

Hi community, 

I created a business operation class using the FTP Outbound Adapter, and it works when configured for SFTP but when I try to use it for FTPS, it does not work as expected.  The connection is established, it creates the file on the destination server but then is disconnected in the middle of the transfer and the PutStream returns 0 and never seems to finish the write of the file.  Anyone have any idea of what's happening or any steps I can try to troubleshoot?  

Thanks in advance.

2
0 799
Question Ashok Kumar T · Oct 17, 2023

Hello Community,

I've created my FHIR patient profile and POST into FHIR endpoint in Intersystems FHIR Server.  

http:localhost:52773/fhirr4/StructureDefinition

 I use the profile url into my Patient resource without the meet the profile requirements.

http:localhost:52773/fhirr4/Paient

The resource is stored successfully in the FHIR Server instead of a FHIR exception.

Why the resource doesn't validate with the mentioned profile?

Is this profile validation is really a intersystems FHIR server job or the validation implementation is available now  ?

8
0 329
Question Ashok Kumar T · Sep 24, 2023

I have created a FHIR endpoint and send the FHIR resource to FHIR Interoperability production class which is HS.FHIRServer.Interop.Service through the the created endpoint(/r4). I can able to see/get the HS.SDA3.QuickStream(It use CacheTemp.HS.Stream temporary globalon the fly(In between the process). I'm unable to get the FHIR resource from the QuickStream once the process completed. Is this HS.SDA3.QuickStream is wiped out from the system once process completed?

Executed the below code. Even tried with zwrite of  ^CacheTemp.HS.Stream is also empty. Tried with IRSITMEP database as well.

1
0 452
Question Alan Macdonald · Sep 21, 2023

I'm at a loss with configuring the IRIS ODBC driver (v02.10) on my Amazon Linux machine, connecting to a REMOTE IRIS backend.  It should be simplified by not requiring a DSN (the app uses a DSN-less connection and generates the connection string).  I have

2
0 1000
Discussion Evgeny Shvarov · Sep 18, 2023

Hi Interoperability experts!

Recently noticed an interesting conceptual discussion in our Interoperability Discord channel to which I want to give more exposure.

All we know that typical InterSystems Interoperability production consists of the following chain:

Inbound adapter->Business Service->Business Process->Business Operation->Outbound adapter.

And Business Process (BO) here is always considered as a passive "listener" either on port/folder/rest API for an incoming data.

4
0 381
Article Alex Woodhead · Sep 5, 2023 8m read

Overview

The online documentation contains a reference Defining and Using Class Queries -

Customizing Stored Procedures with ObjectScript directly has been useful to access NoSQL storage and external messaging via integration, to present output in tabular format.

For example: An application that already uses 90% SQL interaction from a front end, can then also extend this access to the other 10% of required platform functionality, via the same SQL access.

The purpose of this article is to explore how to achieve the same effect via Embedded Python methods.

0
0 479
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 275
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 265
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 579
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 338
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 ...

In IRIS, the caption names of business host and production properties are stored in

4
3 471
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 591