Hi Developers!
Here are the technology bonuses for the InterSystems FHIR and Digital Health Interoperability Contest 2025 that will give you extra points in the voting:
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 Developers!
Here are the technology bonuses for the InterSystems FHIR and Digital Health Interoperability Contest 2025 that will give you extra points in the voting:
Introducing Smart Clinical Sidechick — the intelligent, no-drama partner your EHR wishes it could be. She reads FHIR data in real time, interprets lab results without ghosting, and explains clinical alerts like she actually cares. Built with GPT-4 brains and YAML sass, she’s not here to replace your main EHR—just to make it look bad. Tired of irrelevant alerts and cryptic warnings? Sidechick serves up real, explainable insights, not vague “elevated risk” vibes. And when your backend crashes, she doesn’t panic—she self-heals. Secure, responsive, and (unlike your last vendor) emotionally
Hey Community!
We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:
⏯ How Project BEST Transforms FDA Adverse Event Reporting with FHIR
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.
For example, the patient resources might look like this:
Hi developers!
This will be a very short article as in April 2025 with Lovable and other Prompt-to-UI tools it becomes possible to build the frontend with prompting. Even to the folks like me who is not familiar with modern UI techics at all.
Well, I know at least the words javascript, typescript and ReactJS, so in this very short article we will be building the ReactJS UI to InterSystems FHIR server with Lovable.ai.

Let's go!
Hello Developers,
I have MacBook Pro M3 and I'm new to the IRIS for Health setup / installation with all pre-requisite / requirements so someone could please help me with detailed instructions on how to setup IRIS for Health (HL7 & FHIR) from scratch along with SQL Server? I have Windows 11 installed in parallel desktop if that's required and complete installation / setup is not possible on MacBook.
Thank you in advance.
Rushi
I know that people who are completely new to VS Code, Git, Docker, FHIR, and other tools can sometimes struggle with setting up the environment. So I decided to write an article that walks through the entire setup process step by step to make it easier to get started.
I’d really appreciate it if you could leave a comment at the end - let me know if the instructions were clear, if anything was missing, or if there’s anything else you'd find helpful.
The setup includes:
✅ VS Code – Code editor
✅ Git – Version control system
✅ Docker – Runs an instance of IRIS for Health Community
✅ VS Code REST Client Extension – For running FHIR API queries
✅ Python – For writing FHIR-based scripts
✅ Jupyter Notebooks – For AI and FHIR assignments
Before you begin: Ensure you have administrator privileges on your system.
In addition to reading the guide, you can also follow the steps in the videos:
For Windows
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi Community,
Check out this new video that shows how to build the UI for InterSystems FHIR server from scratch using AI with no previous frontend experience:
📺 Building and Deploying React Frontend for the InterSystems FHIR server in 20 minutes with Lovable AI
🗣 Presenter: @Evgeny Shvarov, Senior Manager of Developer and Startup Programs, InterSystems
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
The FHIR standard establishes a powerful but flexible data model that can smoothly adapt to the complexities of operational healthcare data management. This flexibility comes at the cost of a data model with many tables and relationships, even for simple data such as the patient's record of telephone numbers, addresses, and emails. It would easily require querying 4 different tables. However, FHIR SQL Builder eliminates this problem, allowing you to create visual projections (mappings) in web wizards. It lets you consolidate data from 4 or more tables into just 1 and gives you the advantage of
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi guys,
I am looking for a way to search for FHIR Encounter resources from an InterSystems FHIR server where there period.start is before or after a certain time. I can´t get my head around which would be a correct way to do this since docs and FHIR spec is not clear to me which fields can be used for searching with wich prefixes.
Hey Community,
We're excited to invite you to the next InterSystems UKI Tech Talk webinar:
Join this webinar to dive into the world of HealthShare Health Connect Cloud with our upcoming session on Cloud Health: FHIR Server.
⏱ Date & Time: Thursday, March 20, 2025 2:30 PM GMT
👨🏫 Speaker: @Regilo Regilio Guedes de Souza, Director of Cloud Delivery, InterSystems
Hi colleagues!
Often, while developing a frontend app or any other communication vs REST API, it is worth having a Swagger UI - a test UI for the REST API that follows Open API 2.0 spec. Usually, it is quite a handful as it lets have quick manual tests vs REST API and its responses and the data inside.
Recently I've introduced the Swagger support to the InterSystems IRIS FHIR template for FHIR R4 API:

How to get it working.
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)."
}
}
]
}
Is this a limitiation of IRIS for Health community edition or what?
Hello,
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.
System Architecture
The Health Agent in x-rAI is built on a modular architecture that integrates multiple components:
Data Ingestion Layer: Fetches real-time health data from wearable devices using the Terra API.
Data Storage Layer: Utilizes InterSystems IRIS for storing and managing structured health data.
Analytics Engine: Leverages InterSystems IRIS's vector search capabilities for similarity analysis and insights generation.
Caching Layer: Implements distributed caching via InterSystems IRIS Enterprise Cache Protocol (ECP) to enhance scalability.
Interoperability Layer: Uses FHIR standards to integrate with external healthcare systems like EHRs.
Below is a high-level architecture diagram:
[Wearable Devices] --> [Terra API] --> [Data Ingestion] --> [InterSystems IRIS] --> [Analytics Engine]
------[Caching Layer]------
----[FHIR Integration]-----
Technical Implementation
1. Real-Time Data Integration Using Dynamic SQL
The Health Agent ingests real-time health metrics (e.g., heart rate, steps, sleep hours) from wearable devices via the Terra API. This data is stored in InterSystems IRIS using dynamic SQL for flexibility in query generation.
Dynamic SQL Implementation
Dynamic SQL allows the system to adaptively construct queries based on incoming data structures.
def index_health_data_to_iris(data):
conn = iris_connect()
if conn is None:
raise ConnectionError("Failed to connect to InterSystems IRIS.")
try:
with conn.cursor() as cursor:
query = """
INSERT INTO HealthData (user_id, heart_rate, steps, sleep_hours)
VALUES (?, ?, ?, ?)
"""
cursor.execute(query, (
data['user_id'],
data['heart_rate'],
data['steps'],
data['sleep_hours']
))
conn.commit()
print("Data successfully indexed into IRIS.")
except Exception as e:
print(f"Error indexing health data: {e}")
finally:
conn.close()
Benefits of Dynamic SQL
Enables flexible query construction based on incoming data schemas.
Reduces development overhead by avoiding hardcoded queries.
Supports seamless integration of new health metrics without modifying the database schema.
2. Advanced Analytics with Vector Search
InterSystems IRIS’s native vector datatype and similarity functions were utilized to perform vector search on health data. This allowed the system to identify historical records similar to a user’s current health metrics.
Vector Search Workflow
Convert health metrics (e.g., heart rate, steps, sleep hours) into a vector representation.
Store vectors in a dedicated column in the HealthData table.
Perform similarity searches using VECTOR_SIMILARITY().
SQL Query for Vector Search
SELECT TOP 3 user_id, heart_rate, steps, sleep_hours,
VECTOR_SIMILARITY(vec_data, ?) AS similarity
FROM HealthData
ORDER BY similarity DESC;
Python Integration
def iris_vector_search(query_vector):
conn = iris_connect()
if conn is None:
raise ConnectionError("Failed to connect to InterSystems IRIS.")
try:
with conn.cursor() as cursor:
query_vector_str = ",".join(map(str, query_vector))
sql = """
SELECT TOP 3 user_id, heart_rate, steps, sleep_hours,
VECTOR_SIMILARITY(vec_data, ?) AS similarity
FROM HealthData
ORDER BY similarity DESC;
"""
cursor.execute(sql, (query_vector_str,))
results = cursor.fetchall()
return results
except Exception as e:
print(f"Error performing vector search: {e}")
return []
finally:
conn.close()
Benefits of Vector Search
Enables personalized recommendations by identifying historical patterns.
Enhances explainability by linking current metrics to similar past cases.
Optimized for high-speed analytics through SIMD (Single Instruction Multiple Data) operations.
3. Distributed Caching for Scalability
To handle increasing volumes of health data efficiently, the Health Agent leverages InterSystems IRIS’s Enterprise Cache Protocol (ECP). This distributed caching mechanism reduces latency and enhances scalability.
Key Features of ECP
Local caching on application servers minimizes central database queries.
Automatic synchronization ensures consistency across all cache nodes.
Horizontal scaling enables dynamic addition of application servers.
Caching Workflow
Frequently accessed health records are cached locally on application servers.
Subsequent queries for the same records are served directly from the cache.
Updates to cached records trigger automatic synchronization with the central database.
Benefits of Caching
Reduces query response times by serving requests from local caches.
Improves system scalability by distributing workload across multiple nodes.
Minimizes infrastructure costs by reducing central server load.
4. FHIR Integration for Interoperability
InterSystems IRIS’s support for FHIR (Fast Healthcare Interoperability Resources) ensured seamless integration with external healthcare systems like EHRs.
FHIR Workflow Wearable device data is transformed into FHIR-compatible resources (e.g., Observation, Patient).
These resources are stored in InterSystems IRIS and made accessible via RESTful APIs.
External systems can query or update these resources using standard FHIR endpoints.
Benefits of FHIR Integration
Ensures compliance with healthcare interoperability standards.
Facilitates secure exchange of health data between systems.
Enables integration with existing healthcare workflows and applications.
Explainable AI Through Real-Time Insights
By combining InterSystems IRIS’s analytics capabilities with x-rAI’s multi-agentic reasoning framework, the Health Agent generates actionable and explainable insights. For example:
"User 123 had similar metrics (Heart Rate: 70 bpm; Steps: 9,800; Sleep: 7 hrs). Based on historical trends, maintaining your current activity levels is recommended."
This transparency builds trust in AI-driven healthcare applications by providing clear reasoning behind recommendations.
Conclusion The integration of InterSystems IRIS into x-rAI’s Health Agent showcases its potential as a robust platform for building intelligent and explainable AI systems in healthcare. By leveraging features like dynamic SQL, vector search, distributed caching, and FHIR interoperability, this project delivers real-time insights that are both actionable and transparent—paving the way for more reliable AI applications in critical domains like healthcare.
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).FromJSON(stream,"vR4")
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?
I understand that InterSystems provides functions to facilitate transactions between FHIR and HL7 via the SDA segment. My question is:
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.git
Docker
docker-compose up --build -d
POST http://localhost:32783/api/hl7/fhir
Input
MSH|^~\&||^^NPI|||20211105165829+0000||ADT^A01|66053,61109.396628|P|2.5.1|||AL|AL|||||PH_SS-Ack^SS Sender^2.16.840.1.114222.4.10.3^ISO
EVN||202111051658|||||^^NPI
PID|1||060a6bd5-5146-4b08-a916-009858997bd3^^^https://github.com/synthetichealth/synthea^~060a6bd5-5146-4b08-a916-009858997bd3^^^http://hospital.smarthealthit.org^MR~999-97-4582^^^&^SS~S99986284^^^&^DL~X84330364X^^^&^PPN||Masson^Livia^^^Mrs.^^||19920820|F|Simon^Livia^^||615 Avenue Lemaire^^Lyon^Auvergne-Rhone-Alpes^63000||^PRN^PH^^^555^286|||||||||||||||||||||
PV1|1|O||424441002|||||||||||||||1^^^&&^VN|||||||||||||||||||||||||200812312325|20090101044004
PV2|||72892002^Grossesse normale^SCT
OBX|1||8302-2^Taille du corps^LN||20101014002504^^|cm^^UCUM|||||F|||20101014
OBX|2||72514-3^Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee^LN||20101014002504^^|{score}^^UCUM|||||F|||20101014
OBX|3||29463-7^Poids corporel^LN||20101014002504^^|kg^^UCUM|||||F|||20101014
OBX|4||39156-5^Indice de masse corporelle^LN||20101014002504^^|kg/m2^^UCUM|||||F|||20101014
OBX|5||72166-2^Statut du tabagisme^LN||20171026002504^Ancien fumeur^SCT^^^^^^Ancien fumeur||||||F|||20171026
Output
{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"request": {
"method": "POST",
"url": "Organization"
},
"fullUrl": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Organization",
"identifier": [
{
"value": "https://github.com/synthetichealth/synthea"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Organization"
},
"fullUrl": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Organization",
"identifier": [
{
"value": "http://hospital.smarthealthit.org"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Patient"
},
"fullUrl": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Patient",
"address": [
{
"city": "Lyon",
"line": [
"615 Avenue Lemaire"
],
"postalCode": "63000",
"state": "Auvergne-Rhone-Alpes"
}
],
"birthDate": "1992-08-20",
"gender": "female",
"identifier": [
{
"assigner": {
"reference": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002"
},
"system": "https://github.com/synthetichealth/synthea",
"value": "060a6bd5-5146-4b08-a916-009858997bd3"
},
{
"assigner": {
"reference": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002"
},
"system": "http://hospital.smarthealthit.org",
"type": {
"coding": [
{
"code": "MR",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "MRN"
},
"value": "060a6bd5-5146-4b08-a916-009858997bd3"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "SS"
}
],
"text": "SS"
},
"value": "999-97-4582"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "DL",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "DL"
},
"value": "S99986284"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "PPN",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "PPN"
},
"value": "X84330364X"
}
],
"name": [
{
"family": "Simon",
"given": [
"Livia"
],
"text": "Livia Simon"
},
{
"family": "Masson",
"given": [
"Livia"
],
"prefix": [
"Mrs."
],
"text": "Mrs. Livia Masson",
"use": "official"
}
],
"telecom": [
{
"system": "phone",
"use": "home",
"value": "(555) 286"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Encounter"
},
"fullUrl": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Encounter",
"class": {
"code": "AMB",
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-encounter-type",
"valueString": "O"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-entered-on",
"valueDateTime": "2008-12-31T23:25:00+00:00"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-to-time",
"valueDateTime": "2009-01-01T04:40:04+00:00"
}
],
"identifier": [
{
"type": {
"text": "EncounterNumber"
},
"use": "official",
"value": "1"
}
],
"period": {
"start": "2008-12-31T23:25:00+00:00"
},
"reasonCode": [
{
"coding": [
{
"code": "72892002",
"display": "Grossesse normale",
"system": "http://snomed.info/sct"
}
]
}
],
"status": "unknown",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"type": [
{
"coding": [
{
"code": "424441002"
}
]
}
]
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3a13745e-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "72166-2",
"display": "Statut du tabagisme",
"system": "http://loinc.org"
}
]
},
"effectiveDateTime": "2017-10-26T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-observation-coded-value",
"valueCodeableConcept": {
"coding": [
{
"code": "20171026002504",
"display": "Ancien fumeur",
"system": "http://snomed.info/sct"
}
],
"text": "Ancien fumeur"
}
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueString": "Ancien fumeur"
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3b6212fc-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"category": [
{
"coding": [
{
"code": "vital-signs",
"display": "Vital Signs",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}
],
"text": "Vital Signs"
}
],
"code": {
"coding": [
{
"code": "8302-2",
"display": "Taille du corps",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "cm",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3c8aba30-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "72514-3",
"display": "Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "{score}",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3de455d0-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"category": [
{
"coding": [
{
"code": "vital-signs",
"display": "Vital Signs",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}
],
"text": "Vital Signs"
}
],
"code": {
"coding": [
{
"code": "29463-7",
"display": "Poids corporel",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "kg",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3f501418-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "39156-5",
"display": "Indice de masse corporelle",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "kg/m2",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
}
]
}
POST http://localhost:32783/api/fhir/hl7/adt
{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"request": {
"method": "POST",
"url": "Organization"
},
"fullUrl": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Organization",
"identifier": [
{
"value": "https://github.com/synthetichealth/synthea"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Organization"
},
"fullUrl": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Organization",
"identifier": [
{
"value": "http://hospital.smarthealthit.org"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Patient"
},
"fullUrl": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Patient",
"address": [
{
"city": "Lyon",
"line": [
"615 Avenue Lemaire"
],
"postalCode": "63000",
"state": "Auvergne-Rhone-Alpes"
}
],
"birthDate": "1992-08-20",
"gender": "female",
"identifier": [
{
"assigner": {
"reference": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002"
},
"system": "https://github.com/synthetichealth/synthea",
"value": "060a6bd5-5146-4b08-a916-009858997bd3"
},
{
"assigner": {
"reference": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002"
},
"system": "http://hospital.smarthealthit.org",
"type": {
"coding": [
{
"code": "MR",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "MRN"
},
"value": "060a6bd5-5146-4b08-a916-009858997bd3"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "SS"
}
],
"text": "SS"
},
"value": "999-97-4582"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "DL",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "DL"
},
"value": "S99986284"
},
{
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
"valueString": "&"
}
],
"type": {
"coding": [
{
"code": "PPN",
"system": "http://terminology.hl7.org/CodeSystem/v2-0203"
}
],
"text": "PPN"
},
"value": "X84330364X"
}
],
"name": [
{
"family": "Simon",
"given": [
"Livia"
],
"text": "Livia Simon"
},
{
"family": "Masson",
"given": [
"Livia"
],
"prefix": [
"Mrs."
],
"text": "Mrs. Livia Masson",
"use": "official"
}
],
"telecom": [
{
"system": "phone",
"use": "home",
"value": "(555) 286"
}
]
}
},
{
"request": {
"method": "POST",
"url": "Encounter"
},
"fullUrl": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Encounter",
"class": {
"code": "AMB",
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-encounter-type",
"valueString": "O"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-entered-on",
"valueDateTime": "2008-12-31T23:25:00+00:00"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-to-time",
"valueDateTime": "2009-01-01T04:40:04+00:00"
}
],
"identifier": [
{
"type": {
"text": "EncounterNumber"
},
"use": "official",
"value": "1"
}
],
"period": {
"start": "2008-12-31T23:25:00+00:00"
},
"reasonCode": [
{
"coding": [
{
"code": "72892002",
"display": "Grossesse normale",
"system": "http://snomed.info/sct"
}
]
}
],
"status": "unknown",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"type": [
{
"coding": [
{
"code": "424441002"
}
]
}
]
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3a13745e-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "72166-2",
"display": "Statut du tabagisme",
"system": "http://loinc.org"
}
]
},
"effectiveDateTime": "2017-10-26T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
},
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-observation-coded-value",
"valueCodeableConcept": {
"coding": [
{
"code": "20171026002504",
"display": "Ancien fumeur",
"system": "http://snomed.info/sct"
}
],
"text": "Ancien fumeur"
}
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueString": "Ancien fumeur"
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3b6212fc-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"category": [
{
"coding": [
{
"code": "vital-signs",
"display": "Vital Signs",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}
],
"text": "Vital Signs"
}
],
"code": {
"coding": [
{
"code": "8302-2",
"display": "Taille du corps",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "cm",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3c8aba30-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "72514-3",
"display": "Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "{score}",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3de455d0-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"category": [
{
"coding": [
{
"code": "vital-signs",
"display": "Vital Signs",
"system": "http://terminology.hl7.org/CodeSystem/observation-category"
}
],
"text": "Vital Signs"
}
],
"code": {
"coding": [
{
"code": "29463-7",
"display": "Poids corporel",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "kg",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
},
{
"request": {
"method": "POST",
"url": "Observation"
},
"fullUrl": "urn:uuid:3f501418-e7fa-11ec-9601-0242ac1a0002",
"resource": {
"resourceType": "Observation",
"code": {
"coding": [
{
"code": "39156-5",
"display": "Indice de masse corporelle",
"system": "http://loinc.org"
}
],
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
"valueCodeableConcept": {
"coding": [
{
"code": "kg/m2",
"system": "http://unitsofmeasure.org"
}
]
}
}
]
},
"effectiveDateTime": "2010-10-14T00:00:00+00:00",
"encounter": {
"reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
},
"extension": [
{
"url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
"valueString": "1"
}
],
"status": "final",
"subject": {
"reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
},
"valueCodeableConcept": {
"coding": [
{
"code": "20101014002504"
}
]
}
}
}
]
}
MSH|^~\&||^^NPI|||20220609134903+0000||^|66269,49743.388133779|P|2.5.1|||AL|AL|||||PH_SS-Ack^SS Sender^2.16.840.1.114222.4.10.3^ISO
EVN||202206091349|||||^^NPI
PID|1||060a6bd5-5146-4b08-a916-009858997bd3^^^https://github.com/s&&ISO^~060a6bd5-5146-4b08-a916-009858997bd3^^^http://hospital.smar&&ISO^MR~999-97-4582^^^&^SS~S99986284^^^&^DL~X84330364X^^^&^PPN||Masson^Livia^^^Mrs.^^||19920820|F|Simon^Livia^^||615 Avenue Lemaire^^^^||^PRN^PH^^^555^286|||||||||||||||||||||
PV1|1|O||424441002|||||||||||||||1^^^&&^VN|||||||||||||||||||||||||200812312325|
PV2|||72892002^Grossesse normale^SCT
OBX|1||72166-2^Statut du tabagisme^LN||^^||||||F|||20171026
OBX|2||8302-2^Taille du corps^LN||^^||||||F|||20101014
OBX|3||72514-3^Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee^LN||^^||||||F|||20101014
OBX|4||29463-7^Poids corporel^LN||^^||||||F|||20101014
OBX|5||39156-5^Indice de masse corporelle^LN||^^||||||F|||20101014
POST http://localhost:32783/api/fhir/hl7/oru
POST http://localhost:32783/api/fhir/hl7/vxu
POST http://localhost:32783/api/cda/fhir
GET http://localhost:32783/api/fhir/metadata
ADT_A01, ADT_A02, ADT_A03, ADT_A04, ADT_A05, ADT_A06, ADT_A07, ADT_A08, ADT_A09, ADT_A10, ADT_A11, ADT_A12, ADT_A13, ADT_A17, ADT_A18, ADT_A23, ADT_A25, ADT_A27, ADT_A28, ADT_A29, ADT_A30, ADT_A31, ADT_A34, ADT_A36, ADT_A39, ADT_A40, ADT_A41, ADT_A45, ADT_A47, ADT_A49, ADT_A50, ADT_A51, ADT_A60
BAR_P12
MDM_T02, MDM_T04, MDM_T08, MDM_T11
OMP_O09
ORM_O01
ORU_R01
PPR_PC1, PPR_PC2, PPR_PC3
RDE_O11
SIU_S12, SIU_S13, SIU_S14, SIU_S15, SIU_S16, SIU_S17, SIU_S26
VXU_V04
This project works with the pivot diagram: SDA.
The SDA (Summary Document Architecture) is the InterSystems Clinical Data Format.
The SDA <-> FHIR correspondences can be consulted here, and those of the CDA -> SDA here.

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:
Response:
It might be something related to request path but not really sure.
And this is the HTTP service I'm using
I tried this with Postman and it's working as expected
Am I missing something ?