Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Customizing the InterSystems FHIR Transformation Service @ Global Summit 2024
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
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Customizing the InterSystems FHIR Transformation Service @ Global Summit 2024
I'm experimenting with FHIR bulk data load using NDJSONs, so far the import is running smoothly, but when I'm trying to perform a request of kind /Patient or /Procedure I'm getting back the following error:
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "too-costly",
"diagnostics": "<HSFHIRErr>SearchTooCostly",
"details": {
"text": "Search selects more than maximum allowed number of results (1000).Hello,
I'm trying to POST a Location resource to a FHIR Server, but I get this error:
{
"errors": [
{
"code": 5002,
"domain": "%ObjectErrors",
"error": "ERRORE #5002: Errore di Cach�: <PROTECT>zNewInteractionsInstance+1^HS.FHIRServer.Storage.Json.InteractionsStrategy.1",
"id": "ObjectScriptError",
"params": [
"<PROTECT>zNewInteractionsInstance+1^HS.FHIRServer.Storage.Json.InteractionsStrategy.1"
]
}
],
"summary": "ERRORE #5002: Errore di Cach�: <PROTECT>zNewInteractionsInstance+1^HS.
Introduction
To achieve optimized AI performance, robust explainability, adaptability, and efficiency in healthcare solutions, InterSystems IRIS serves as the core foundation for a project within the x-rAI multi-agentic framework. This article provides an in-depth look at how InterSystems IRIS empowers the development of a real-time health data analytics platform, enabling advanced analytics and actionable insights. The solution leverages the strengths of InterSystems IRIS, including dynamic SQL, native vector search capabilities, distributed caching (ECP), and FHIR interoperability. This innovative approach directly aligns with the contest themes of "Using Dynamic SQL & Embedded SQL," "GenAI, Vector Search," and "FHIR, EHR," showcasing a practical application of InterSystems IRIS in a critical healthcare context.
Hi, Community!
Are you working with clinical data in a research setting? See how InterSystems OMOP streamlines data integration and analysis.
I'm working on FHIR project and using this code to convert an incoming request to FHIR
Method OnRequest(request As HS.FHIRServer.Interop.Request, Output response As HS.FHIRServer.Interop.Response) As %Status
{
#dim tSC As %Status = $$$OK
Try {
// Process incoming request
set stream = ##class(HS.SDA3.QuickStream).%OpenId(request.QuickStreamId)
set bundle = ##class(HS.FHIR.DTL.vR4.Model.Resource.Bundle).
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
FHIR repositories, applications and servers typically serve clinical data in small quantities, whether to return data about a patient, their medications, vaccines, allergies, among other information. However, it is common for a large amount of data in FHIR/JSON format to be requested to be used to load into Data Lakes, identifying study cohorts, population health, or transferring data from one EHR to another. To meet these business scenarios that require large extractions and loads of data, it is recommended to use the FHIR Bulk Data Access feature provided by HL7 institution.
I have a scenario where I send a GET request to a broker and receive a FHIR response. When I attempted to use the built-in InterSystems functions to convert this FHIR response into SDA, the transformation failed—likely because it is not a standard FHIR request.
How should I handle this situation? Is there a recommended approach to processing FHIR responses in this context?
Additionally, if I manage to convert the FHIR response into a request format, I noticed that the broker sends a Task resource.
I understand that InterSystems provides functions to facilitate transactions between FHIR and HL7 via the SDA segment. My question is:
What would be the best approach in this scenario?
Hi,
I found an issue while fetching records from FHIR DB, I am getting below error thou FHIR repository have the records with the corresponding id
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "not-found",
"diagnostics": "<HSFHIRErr>ResourceNotFound",
"details": {
"text": "No resource with type 'Appointment' and id '21'"
}
}
]
}
My main goal of this article was to prove the use of InterSystems IRIS for Health for REST FHIR interoperability between multiple applications. In this use case, some initiating application makes a REST call to IRIS for Health (which is merely a passthrough for REST calls) to retrieve FHIR data from an Oracle Health R4 FHIR repository. Ideally, it simplifies the syntax for calling the Oracle Health APIs.
Easy to use HL7v2 to FHIR, CDA to FHIR, FHIR to HL7v2 as a Service.
The aim of this project is to provide an REST API that can convert easily various health formats. Post the desire format in the REST body, get the answer in the new format.
:fire: Official Version : https://aws.amazon.com/marketplace/pp/prodview-q7ryewpz75cq2 :fire:
:tv: Video : https://youtu.be/lr2B7zSFkds :tv:
Clone this repository
git clone https://github.com/grongierisc/iris-healthtoolkit-service.Everytime I try to send a POST FHIR bundle I'm getting the following response: 404 Not Found. I'm not really sure why, although it works fine with a GET!
This is an example:
.png)
Response:
.png)
It might be something related to request path but not really sure.
And this is the HTTP service I'm using
.png)
I tried this with Postman and it's working as expected
Am I missing something ?
While working with GET request I encountered this situation where FHIR Server return a responseStatusHTTP "HTTP/1.1 200 200" instead of "HTTP/1.1 200 OK" (as highlighted in the attached screenshot).
Although the response code seems valid, these bundles have a total value of 0.
Could anyone clarify what "200 200" signifies in this context? Is there an issue with my setup, or does this indicate a specific condition related to the empty bundle search?

Thank you in advance for your help!
I'm attempting to build a fairly complicated object graph, with nested objects and collections, in order to create a FHIR bundle.
In its most basic form there is a <bundle></bundle> element that represents the root, and there can be a number of nested <entry></entry> child elements.
I'm attempting to represent this as such:
class Bundle (%RegisteredObject, %XML.Adaptor)
{
Property Entries As List Of Entry;
}The problem is when this is projected it nests each Entry object within an Entries container, which makes sense but I don't want this.
Hello,
I'm trying to customize error handling in the overriden HS.FHIRServer.Storage.JsonAdvSQL.Interactions::Search method. It is clear how to add to the resultset a valid FHIR resource (pseudocode):
Method Search(pResourceType As %String, pCompartment As %String, pCompartmentId As %String, pParameters As HS.FHIRServer.API.Data.QueryParameters = "", ByRef pSortKeys = "") As HS.FHIRServer.Util.SearchResult
{
#Dim resultSet as HS.FHIRServer.Util.SearchResult
Set resultSet = ##class(HS.FHIRServer.Util.SearchResult).I have started working on utilizing Epic on FHIR about a month ago.
mkdir /home/ec2-user/path_to_key
openssl genrsa -out ./path_to_key/privatekey.pem 2048
For backend apps, you can export the public key to a base64 encoded X.509 certificate named publickey509.pem using this command...
openssl req -new -x509 -key ./path_to_key/privatekey.pem -out ./path_to_key/publickey509.pem -subj '/CN=medbank'
I am trying to work with Epic on FHIR. Epic's documentation stated, your application makes a HTTP POST request to the authorization server's OAuth 2.0 token endpoint to obtain access token.
Set tSC = ##class(%SYS.OAuth2.Authorization).GetAccessTokenClient(pClient,pScopes,.prop,.err) returns
ERROR #9761: No key in provided JWKS for alg ES512 and kid
I check this /csp/sys/oauth2/OAuth2.JWTServer.cls?
My IRIS instance is connected to a Postgres database using SQL Gateway and linked tables. One of these tables is projected to the Patient class. I want to select a record from this table by ID and convert it to a FHIR resource using the %ExistsId and %OpenId methods. I noticed that if I call these two methods from the console, the record is always found. But, if I do the same from the FHIR Facade layer, the %OpenId method returns NULL.
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
I'm attempting to import all the FHIR XSD files provided by http://hl7.org/fhir but get the immediate and unhelpful error message:
.png)
I've tried different versions of EOLs to no avail. Any idea what this error could mean?
Here's the XSD I'm trying to import:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2011+, HL7, Inc
All rights reserved.
I finally figured out how to get JWT token using set x = ##class(%SYS.OAuth2.Authorization).GetAccessTokenClient("medbank","openid fhirUser",.prop,.err).
I also found iris-fhir-client app on Open Exchange. I registered Epic sandbox server, but I cannot list resources. I suspect I need to integrate authorization / authentication. How do I do this with irisfhirclient py?
Working on a project where I'm needing to make FHIR calls from my HealthConnect Interop production to Epic.
My issue is I'm not able to construct a valid JWT for the OAuth token retrieval that Epic will accept. I have the below code where I'm able to create a valid header and payload that I'm base64URL encoding and then trying to sign with my .pem private key file. However, Epic is not liking the signature portion of my JWT.
As such, I wanted to present my code to see if I'm performing the signature steps correctly? I've seen some posts where the %Net.
I need to create a JWT to connect to EPIC FHIRserver sandbox.
https://fhir.epic.com/Documentation?docId=oauth2§ion=BackendOAuth2G…
You will generate a one-time use JSON Web Token (JWT) to authenticate your app to the authorization server and obtain an access token that can be used to authenticate your app's web service calls. There are several libraries for creating JWTs. See jwt.io for some examples.
The header and payload are then base64 URL encoded, combined with a period separating them, and cryptographically signed using the private key to generate a signature.
When building a bundle from legacy data, I (and others) wanted to be able to control whether or not the resources were generated with a FHIR Request Method of PUT instead of the hard coded POST. I have extended the two classes responsible for transforming SDA to FHIR in an Interoperability Production to accomodate a setting that lets the user control the Request Method.
First is the Busines Process class. This includes a new parameter exposed to the "Settings" tab in Interoperability called FHIRRequestMethod.
I'm playing with some anayltic queries against FHIR server tables. The HSFHIR_X0002_S_Patient.addressCity table contains a lot of cities which names contain german charachers such as ä, ö and ü.
The following query works fine:
select value from HSFHIR_X0002_S_Patient.addressCity
But this one converts city names to uppercase, and characters with umlauts are lost, so instead of "Köln" or "München" I see KOLN and MUNCHEN:
select ac.value, count(ac.value) as cnt
from HSFHIR_X0002_S_Patient.addressCity ac
group by ac.value
order by 2 desc
I'm using DBeaver with IRIS official JDBC driver.
The InterSystems IRIS for Health v2024.3 is already available as a Developer Preview for some time, and I wanted to highlight new support related to FHIR Search that was introduced.