The Lo-Code Challenge

Imagine the scene. You are working happily at Widgets Direct, the internet's premier retailer of Widgets and Widget Accessories. Your boss has some devastating news, some customers might not be fully happy with their widgets, and we need a helpdesk application to track these complaints. To makes things interesting, he wants this with a very small code footprint and challenges you to deliver an application in less than 150 lines of code using InterSystems IRIS. Is this even possible?

19 8
6 556

One of the pain points for maintaining HL7 interfaces is the need to run a reliable regression test upon deployment to new environments and after upgrades. The %UnitTest class allows unit tests to be created and packaged alongside interface code. Test data can also be maintained within the unit test class, allowing for quick and easily repeatable smoke-testing and regression testing.

Resources:

  • Standard %UnitTest class

11 0
0 84

I have challenged to create a bot application using Azure Bot that can retrieve and post data to IRIS for Health.

A patient's data has already been registered in the FHIR repository of IRIS for Health.

The patient's MRN is 1001. His name is Taro Yamada. (in Japanese :山田 太郎)

This bot can post new pulse oximeter readings as an observation resource linked to the patient.

11 1
1 236

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:

8 4
3 266

Introduction

Not so long ago, I came across the idea of using Python Class Definition Syntax to create IRIS classes on the InterSystems Ideas Portal. It caught my attention since integrating as many syntaxes as possible gives visibility to InterSystems’s products for programmers with experience in many languages.

8 3
0 332

The objective of the article is to provide the reader with the following informations:

  • Configure and use the FHIR server
  • Create an OAuth2 Authorization Server
  • Bind the FHIR server to the OAuth2 Authorization Server for support of SMART on FHIR
  • Use the interoperability capabilities of IRIS for Health to filter FHIR resources
  • Create a custom operation on the FHIR server

Schema of the article:

Schema

8 3
6 221

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.

7 0
2 370

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.

6 1
2 215

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!

6 8
1 348

I have been walking through this with a few team members and as such I thought there might be others out there who could use it, especially if you work with HL7 & Ensemble/HealthConnect/HealthShare and never venture out past the Interoperability section.

5 0
0 98

I'm proud to announce the new release of iris-pex-embedded-python (v2.3.1) with a new command line interface.

This command line is called iop for Interoperability On Python.

First I would like to present in few words the project the main changes since the version 1.

A breif history of the project

Version 1.0 was a proof of concept to show how the interoperability framework of IRIS can be used with a python first approach while remaining compatible with any existing ObjectScript code.

What does it mean? It means that any python developer can use the IRIS interoperability framework without any knowledge of ObjectScript.

Example :

from grongier.pex import BusinessOperation

class MyBusinessOperation(BusinessOperation):

    def on_message(self, request):
        self.log.info("Received request")

Great, isn't it?

5 3
0 210

Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.
Today, we continue talking about Interoperability, specifically monitoring your Interoperability deployments. If you haven't yet, set up Alerting for all your Interoperability productions to get alerts about errors and production state in general.

Inactivity Timeout is a setting common to all Interoperability Business Hosts. A business host has an Inactive status after it has not received any messages within the number of seconds specified by the Inactivity Timeout field. The production Monitor Service periodically reviews the status of business services and business operations within the production and marks the item as Inactive if it has not done anything within the Inactivity Timeout period.
The default value is 0 (zero). If this setting is 0, the business host will never be marked Inactive, no matter how long it stands idle.

This is an extremely useful setting since it generates alerts, which, together with configured alerting, allows for real-time notifications about production issues. Business Host being idle means there might be some issues with production, integrations, or network connectivity worth looking into.
However, Business Host can have only one constant Inactivity Timeout setting, which might generate unnecessary alerts during known periods of low traffic: nights, weekends, holidays, etc.
In this article, I will outline several approaches towards dynamic Inactivity Timeout implementation. While I do provide a working example (currently running in production for one of our customers), this article is more of a guideline for building your own dynamic Inactivity Timeout implementation, so don't consider the proposed solution as the only alternative.

5 0
0 1K

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.

5 0
1 174

In the context of HL7 FHIR (Fast Healthcare Interoperability Resources), the terms "id" and "identifier" refer to specific elements used for identifying resources within the FHIR data model. For a newbie, these terms can be confusingly similar, but they serve distinct purposes.

Look at the below Patient resource for August T. Faulkner:

The resource has an id of “1” — generated by the FHIR server when the resource was created.
Patient August T. Faulkner also has a identifier (Medical Record Number) — possibly provided by the hospital — of 78510398960

4 0
0 141

I recently had the need to monitor from HealthConnect the records present in a NoSQL database in the Cloud, more specifically Cloud Firestore, deployed in Firebase. With a quick glance I could see how easy it would be to create an ad-hoc Adapter to make the connection taking advantage of the capabilities of Embedded Python, so I got to work.

4 2
1 280

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.

4 5
0 220

InterSystems FAQ rubric

Record maps are used to efficiently map files containing delimited records or fixed-width records to message classes used by the interoperability function, and to map files from interoperability function message classes to text files.

Record map mapping definitions can be created using the Management Portal, and we also provide a CSV record wizard that allows you to define while reading a CSV file.

3 0
1 151

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:

3 0
2 140

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?

3 1
2 111
Article
· May 23, 2023 1m read
Production settings

When developing interoperability productions, it might be useful to have settings outside of a Business Host. The primary reason is when you need a setting to affect several different Business Hosts and want to guarantee that the value is the same. While System Default Settings can be used to propagate settings for Business Hosts, they can be changed by overriding the value on a BH level (although the advantage of Business Host settings set via SDS is that they don't need custom code which our current approach requires).
Another reason is when you need to affect non-setting parts of the Business Host configuration (PoolSize, Enabled, etc.)

We will be adding an env setting to a production.

3 1
0 215