Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Fast Healthcare Interoperability Resources (FHIR, pronounced "fire") is a draft standard describing data formats and elements (known as "resources") and an application programming interface (API) for exchanging electronic health records
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi all, it's me again for sharing what I am studying recently.😓
Recently, I am studying how to setup OAuth2 authentication for the InterSystems FHIR repository. And I found the following articles are very good and easy to follow.😁
SMART on FHIR EHR Launch with IRIS for Health
For me, as a user who do not have much knowledge about OAuth2.0. I think it quite difficult to understand how to setup the whole OAuth2.0 environment before knowing how's it look like (what is it?
I have been struggling sometime with trying to take a FHIR Bundle Response, extract the "entry.resourceType", extract the MRN and Name from the Patient FHIR Response...
Going through learning.intersystems.com, it suggested that I try using fhirPathAPI to parse and search my response for certain values, however I am not sure my syntax is correct. Using the AI code, it suggested to set my tree = "Bundle.entry.resource.resourceType"
ClassMethod Transform(source As HS.FHIRServer.Interop.Response, target As osuwmc.Epic.FHIR.DataStructures.I was wondering if anyone had a way to automate creating the Query String for a FHIR Request?
Using HS.FHIRServer.Interop.Request in my development I have to specify the following...
.png)
I was wondering.... if my source had variable number of fields if there was a way to automate the build for the QueryString when doing a Patient Search?
I am trying to replicate a way to use FHIR as a way to query the EMR instead of using a MS SQL Stored Procedure that is populated via HL7 ADT to query.
I'm new to HealthShare. I've installed a demo using the HS.Util.Installer helper, now I'm playing with its FHIR Gateway (which is the HSFHIR namespace). When I try to create a new resource of type Patient using HTTP POST, HealthShare responses with
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "not-supported",
"diagnostics": "<HSFHIRErr>InteractionNotSupported",
"details": {
"text": "Interaction 'create' is not supported for resource type 'Patient'.I built a BP, that every time that a message is received from a BS, it executes
set isAuth=##class(%SYS.OAuth2.AccessToken).IsAuthorized("EpicFHIRPOC",,,.accessToken,.idtoken,.responseProperties,.error)
if 'isAuth {
set tSC=##class(%SYS.OAuth2.Authorization).GetAccessTokenClient("EpicFHIRPOC", "*",, .error)
set isAuth=##class(%SYS.OAuth2.AccessToken).IsAuthorized("EpicFHIRPOC",,,.accessToken,.idtoken,.responseProperties,.error)
}To save time, I was thinking of just creating a BS that goes out and gets the Authorization Token every hour.
As I am iterating through the FHIR JSON Response from a Patient Search, I am running into an issue where the extracted values are not being popualted into the Response object that I have created. If I do a $$$LOGINFO on them they will show up in the Object log, however if I try the following for example I get an error.
set target.MRN = identifier.value
|
Here is my Ens.DataTransform
Class osuwmc.Epic.FHIR.DTL.I am trying to centralize our FHIR queries into a single BP object that would send the FHIR query to the EMR, interpret the response into a %Persistent structure that could be sent back to the requestor. In theory it seemed like it would work but I am running into an issue..
"Warning on Message body 5@osuwmc.Epic.FHIR.DataStructures.PatientSearch.Record'
/ 229 because Status 'ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>Transform+3 ^osuwmc.Scott.FHIR.DemoOutboundHL7Message.1 *DocType,osuwmc.Epic.FHIR.DataStructures.PatientSearch.Record -- logged as '-'
Hi,
Our production FHIR server is populated by several processes from several sources,
some of those sources send test data or wrong data (by mistake or as part of an integration test),
the data is consumed by our BI every 15 minutes.
when I mark a resource as test (using meta security) BI knows to update it on their system.
everything is fine up to here (except that there is test data in Prod)
my problem is that if someone send the same patient again it will recreate the patient without the security tag.
any thoughts?
InterSystems API Manager (IAM) is a core component of the InterSystems IRIS Data Platform, offering centralized API management with a strong emphasis on security. IAM simplifies the entire API lifecycle, from creation to retirement, and provides a developer portal for easy API discovery and integration. Access control features allow administrators to define precise permissions, and IAM seamlessly integrates with the IRIS Data Platform, enhancing data management and integration capabilities.
Features of IAM include:
You send an HTTP request and get back an HTTP error but with an HTML error page which you didn't expect... what's happening?... 🤔
Specifically for example, perhaps you tried to READ a FHIR Resource (e.g. /Patient/123) and you get back a 404 error page, even though with other Patient IDs, you get back the Resource payload, so "the page" definitely does exist... why should you be getting a 404 error page? 🙄
Also in previous versions you could define your FHIR Server to accept requests via OAuth 2.0 (e.g. for a SMART on FHIR client) but nowadays with v2024.3, which was released a while ago, there is a new feature, that enables doing this more easily - the OAuth FHIR Client QuickStart.
.png)
.png)
An extension “extends” or enhances a FHIR resource or a data element in a custom way. The extension can be added to the root of a resource, such as “Patient.ethnicity” in US Core profile, and they can be added to individual elements such as HumanName, Address or Identifier.
Did you know that you can also add an extension to a primitive data type?
Primitives usually store a single item and are the most basic element in FHIR. For example: "Keren", false, 1234, 12/08/2024 etc.
Hi,
Does IRIS have any support for paginating FHIR searches other than the standard next/prev links as defined in the FHIR spec? For instance, some servers support an _offset or _skip parameter to allow for jumping to specific pages in a result set.
I was discussing the interoperability side of FHIR as part of a discussion about the best resource/s that should be used in order to represent Antibiotic resilience, and although we've reached an agreement, that got me thinking of two thing, and I'd love to know your thoughts on those matters.
1.
Overview
Fast Healthcare Interoperability Resources (FHIR) is a standardized framework developed by HL7 International to facilitate the exchange of healthcare data in a flexible, developer-friendly, and modern way. It leverages contemporary web technologies to ensure seamless integration and communication across healthcare systems.
Key FHIR Technologies
In today’s healthcare data landscape, FHIR has become the standard for structured clinical data exchange. However, while FHIR excels at interoperability, its JSON format makes analytics challenging—including FHIR QuestionnaireResponse.
This project demonstrates how to transform FHIR QuestionnaireResponse data from nested JSON into relational SQL tables and vector embeddings. By integrating the InterSystems IRIS FHIR SQL Builder and Vector Search, we unlock the semantic meaning behind patient answers.
.png)
While working with the FHIR to OMOP Service, I've seen good FHIR synthetic data being created using commercial LLM's etc, custom tailored for ConditionOnset with the typical amazement on return, but witnessed some questionable trust first hand on a call. This approach also falls short generating gigantic payloads so I can go back to my interests on the backend and ensure smooth data transition.
Hey Community,
We're happy to invite you to a LinkedIn Live session in Dutch
🎤 Data exchange in healthcare according to the FHIR standard with Python 🎤
Event details:
📅 Date: Thursday, November 27th
🕓 Time: 1:30-2:15 PM EST

Hi,
I'm using the iris for health community edition and I cannot seem to get the FHIR server configuration UI to show up. I was able to create a FHIR server programaticlly but none of the user interface features that the installation guide talks about are available. Once I was created the server I was able to see a Bulk FHIR Coordinator in the management portal, ut that's it. Are the UI features not available in the community edition or do they need to be enabled somehow?
This is the guide that I am using https://docs.intersystems.com/irisforhealth20251/csp/docbook/DocBook.UI.Page.cls?
I have a quite complex FHIR Implementation Guide (IG) which is based on several other FHIR IGs. It's likely the versions of IGs conflict with each other.
From what I understand, I would need to load in all the other FHIR IG's first?
I don't actually need FHIR profiles to be in our FHIR Repository - I'm just after terminology and the examples for our test system.
Is it possible to load a FHIR IG just as data? (I think I mean here, ignore the FHIR profiles and dependencies between them)
You may have noticed that to configure a mirror for InterSystems IRIS for Health™ and HealthShare® Health Connect there is a special requirement. I wanted to go through it step by step in this article.
This assumes you have already configured the second failover member and confirmed a successful failover member status in the mirror monitor:
.png)
Step 1: Enable HS_Services user (on backup and primary) .png)
Step 2: Switch to Namespace HSSYS and go to Interoperability > Configure > Credentials.
What is XML?
XML(eXtensible Markup Language) is a flexible, text-based, andplatform-independentformat used to store and transport data in a well-structured way that is both human- and machine-readable. XML permits users to define custom tags to describe the meaning and organization of their data. For example: <book><title>The Hitchhiker's Guide</title></book>.
An XML document is self-descriptive and structured as a hierarchical tree of elements. Every document has a single root element that encapsulates all other content.
When we create a FHIR repository in IRIS, we have an endpoint to access information, create new resources, etc. But there are some resources in FHIR that probably we wont have in our repository, for example, Binary resource (this resource returns a document, like PDF for example).
I have created an example that when a Binary resource is requested, FHIR endpoint returns a response, like it exists in the repository.
First of all, we need a Namespace and a FHIR endpoint. After this, we need to configure an Interoperability production that will be connected to the FHIR endpoint.
Hi all,
Let's do some more work about the testing data generation and export the result by REST API.😁
Here, I would like to reuse the datagen.restservice class which built in the pervious article Writing a REST api service for exporting the generated patient data in .csv
This time, we are planning to generate a FHIR bundle include multiple resources for testing the FHIR repository.
Here is some reference for you, if you want to know mare about FHIR The Concept of FHIR: A Healthcare Data Standard Designed for the Future
OK... Let's start😆
1. Create a new utility class datagen.utli.
Hi,
We have some concerns on how to implement FHIR, do we do facade?, how do we get resources?, what is a resource?, is a resource "Patient" or an instance of a patient?, How can we have a FHIR repository AND send the patient details to healthshare MPI?
Has anyone correctly created a FHIR server that has custom methods?, handles "normal" methods and forwards onto Healthshare MPI , processing the response and creates a accurate FHIR response back to the calling system.
.png)
.png)
This part of the OMOP Journey, we reflect before attempting to challenge Scylla on how fortunate we are that InterSystems OMOP transform is built on the Bulk FHIR Export as the source payload. This opens up hands off interoperability with the InterSystems OMOP transform across several FHIR® vendors, this time with the Google Cloud Healthcare API.
The 2025.1.2 and 2024.1.5 maintenance releases of InterSystems IRIS® data platform,InterSystems IRIS® for HealthTM, and HealthShare® Health Connect are now Generally Available (GA).
Hi all,
It's me again 😁. In the pervious article Writing a REST api service for exporting the generated FHIR bundle in JSON, we actually generated a resource DocumentReference, with the content data encoded in Base64
.png)
Question!! Is it possible to write a REST service for decoding it? Because I am very curious what is the message data talking about🤔🤔🤔
OK, Let's start!
1. Create a new utility class datagen.utli.decodefhirjson.cls for decoding the data inside the DocumentReference
Class datagen.utli.decodefhirjson Extends %RegisteredObject
{
}2. Write a Python function decodebase64docref to
In my previous article, I introduced the FHIR Data Explorer, a proof-of-concept application that connects InterSystems IRIS, Python, and Ollama to enable semantic search and visualization over healthcare data in FHIR format, a project currently participating in the InterSystems External Language Contest.
In this follow-up, we’ll see how I integrated Ollama for generating patient history summaries directly from structured FHIR data stored in IRIS, using lightweight local language models (LLMs) such as Llama 3.2:1B or Gemma 2:2B.
The goal was to build a completely local AI pipeline that can extract, format, and narrate patient histories while keeping data private and under full control.
All patient data used in this demo comes from FHIR bundles, which were parsed and loaded into IRIS via the IRIStool module. This approach makes it straightforward to query, transform, and vectorize healthcare data using familiar pandas operations in Python. If you’re curious about how I built this integration, check out my previous article Building a FHIR Vector Repository with InterSystems IRIS and Python through the IRIStool module.
Both IRIStool and FHIR Data Explorer are available on the InterSystems Open Exchange — and part of my contest submissions. If you find them useful, please consider voting for them!