Home Applications IRIS Interop DevTools

IRIS Interop DevTools

InterSystems does not provide technical support for this project. Please contact its developer for the technical assistance.
5
3 reviews
1
Awards
363
Views
0
IPM installs
3
4
Details
Releases (3)
Reviews (3)
Awards (1)
Issues
Videos (1)
Articles (2)
A dashboard for testing CCDA, FHIR, and SDA transforms in IRIS.

What's new in this version

A dashboard for testing out-of-the-box CCDA and FHIR transformations in IRIS. Supports CCD to SDA, FHIR to SDA, and SDA to FHIR testing.

Version 2.0 includes:

  • Improved UI dashboard
  • Support for FHIR to SDA/SDA to FHIR transformation testing

IRIS Interoperability DevTools (iris-ccd-devtools)

One of the biggest challenges for health data integration and interoperability is orchestrating between different message formats and standards, most notably the Big Three: HL7, CCDA, and FHIR.

The InterSystems IRIS product suite provides a robust toolset including templates and a pre-build code base for handling all three of these standards, but the challenge for developers is accessing the code base in a quick and reliable way without having to dig deep into configuration or code.

The IRIS Interoperability DevTools (formerly IRIS CCD DevTools) allows developers to test CCD and FHIR messages against the code base in the backend of an IRIS for Health instance, while providing visbility and user-friendly tools. With these development tools, health data implementers, developers, and analysts can rapidly inspect and test messages, increasing the speed of IRIS adoption and health data mastery.

Platform: This application is installed IRIS for Health, but the dashboard is compatible with IRIS for Health or HealthShare/UCR. The front-end is built on NextJS. The build instantiates both IRIS for Health Community and a React environment running on Node 18-alpine to run the UI

Version 2.0 Updates

This current version has these additional features:

  • Improved Dashboard with additional user instruction
  • Additional FHIR to SDA and SDA to FHIR testing tools on dashboard
  • Two additional endpoints and APIs on the service to support FHIR testing
  • Added “SDA to CCDA” testing API on service

Contributors

Chi Nguyen-Rettig (LEAD North)

Nathan Holt (LEAD North)

Shawntelle Madison-Coker (LEAD North)

Inspiration

To create a user-friendly front-end to organize several testing utilities and methods used to accelerate FHIR and CCD analysis transformation development.

What it does

  1. Backend: A /csp/visualizer/service web application in IRIS with endpoints for XPath evaluation, XSLT, CCD to SDA, FHIR to SDA, and SDA to FHIR transformation testing.
  2. Frontend: A graphical Development Tools portal built in NextJS React makes it easy to load data from files or copy/paste data for testing.

Getting Started

ZPM/IPM Installation

The code for the backend APIs and web application can be installed through IPM. This will install the CSP Application, the IRISAPP Production, and the APIs used by toolkit.

The NextJS/React front-end application is not included in the ZPM package. For local installs, the Dashboard would need to be installed using npm.

The application is built to run on Docker on an IRIS for Health community image, however the solution only requires a Foundation namespace and is compatible with HealthConnect, IRIS for Health, or HealthShare UCR.

  1. The backend IRIS web application and REST APIs is available for installation via IPM.

From IRIS terminal:

zpm "install iris-ccd-devtools"
  1. The front-end application can be installed locally by changing directories to the “frontend/CCD-Tools-Frontend” folder and then running the following commands:
npm install

After installation is complete, then run:

npm rundev

Installation with Docker

Prerequisites

Make sure you have git and Docker desktop installed.

Clone/git pull the repo into any local directory e.g. like it is shown below:

$ git clone git@github.com:LEADNorthLLC/iris-ccd-devtools.git/

Open the terminal in this directory and run on Windows:

$ docker-compose up -d --build

The docker-compose command will install the front-end application and the backend APIs.

Note: For Apple Silicon/ARM64 architecture machines, the React container might fail to build. Try

$ docker compose build --build-arg DOCKERFILE=Dockerfile.mac

Interoperability DevTools Dashboard:

The UI is served from a second container and is available after docker startup at:

CCD DevTools URL

CCD DevTools UI

IRIS Management portal:

The management portal is available at:
Management portal

Login: _system/SYS

The API is available on http://localhost:62773/csp/visusalier/service

REST APIs - TESTING

Sample Data
Sample C-CDAs from the SyntheaMass open-source data set have been included in the testing/sample data/CCDA folder for unit testing. Also sample FHIR data from SyntheaMass has been included in the testing/sample data/FHIR folder for unit testing.

*Postman export
An export for a Postman Collection to test the available APIs is located in the testing folder of this project.
Import interop-devtools-ccd-fhir.postman_collection.json in Postman to run tests.

Data set up in the Postman import is from a combination of Synthea or the HL7 FHIR R4 Specification.

XPath Evaluation Test

When evaluating CCDs and building transforms, developers need to test an XPATH to see if it’s pointing to the expected location. This XPath evaluation uses the same mechanism as the utilities and transformations within IRIS to locate the XPath so a developer can test that the syntax of the XPath is correct.

URL

Request-type: POST
Content-type: multipart-form
CONTENT1: {"XPathForEval": "/hl7:ClinicalDocument/hl7:recordTarget/hl7:patientRole/hl7:id[1]/@root"}
CONTENT2: 

Notes: Quoted values in the XPath must use single quotes in order to not mess with JSON parsing
CONTENT2 should contain the entire XML document, no escaping required.

CCD to SDA Transform

A CCD can be passed to a standard CCDA to SDA transform to see the results from the IRIS transformation.

[URL](http://localhost:62773/csp/visualizer/service/transform/) 
Request-type: POST
Content-type: multipart-form
CONTENT1: {"TransformName": "SDA3/CCDAv21-to-SDA.xsl"}
CONTENT2: 

Note: CONTENT2 should contain the entire CCD document, no escaping required.
Possible values for TransformName:

SDA3/CCDA-to-SDA.xsl
SDA3/CCDAv21-to-SDA.xsl
SDA3/CDA-toSDA.xsl
SDA3/AU-CDA-to-SDA.xsl

XSL Template Test

Test an isolated XSL template. The contents of the XSL template window will be inserted into an XSL stylesheet that contains the identity template.

[URL](http://localhost:62773/csp/visualizer/service/xslt/) 
Request-type: POST
Content-type: multipart-form
CONTENT1: 
CONTENT2: 

Note: CONTENT1 contains the entire XSL template, no escaping or single quotes required. CONTENT2 should contain the entire CCD document, no escaping required.

Challenges we ran into

The DevTools UI is developed using React. We initially tried to serve the DevTools UI through a web application in IRIS, but it appeared incompatible with Next.js.

While testing, we had to deal with CORS issues due to the cross-origin request. In order to get through the pre-flight request, we have the web application set to Unauthenticated and added %ALL to the Role.

Due to the use of two docker containers, we were unable to package the solution with ZPM.

Built with

Using VSCode and ObjectScript plugin, IRIS for Health Community Edition in Docker, IRIS openapi API, NextJs and React.

Collaboration

Any collaboration is very welcome! Fork and send Pull requests!

Made with
Install
zpm install iris-ccd-devtools download archive
Version
2.0.131 May, 2025
Category
Developer Environment
Works with
InterSystems IRISInterSystems IRIS for HealthHealthShare
First published
20 Sep, 2024
Last edited
01 Jun, 2025
Last checked by moderator
31 Jan, 2025Doesn't work