logo fhir
logo lafe

SurPass Integration

In this presentation series, we will cover the integration of the Survivorship Passport in our hospital.

FHIR logo FHIR logo

Overview

We will cover:

  • Integration Strategies
  • Challenges
  • System Architecture
  • Demo
  • Lessons Learned

Integration Strategies

To give a little context, we will briefly review some integration concepts that we took into account and examine them in different ways.

Connection Architectures

  • Point-to-Point: Direct links between systems. Simple at first, but scales poorly.
  • Integration Platform: Centralized middleware (ESB/iPaaS) manages routing, transformation, and protocol bridging.
  • Hybrid: Mix of point-to-point, platform, and legacy strategies depending on the use case and system maturity.

Data Exchange Mechanisms

  • API-based: RESTful FHIR APIs expose clinical and administrative data using standardized resources.
  • Polling: Clients periodically query the FHIR server to check for new or updated data.
  • Event-driven: Systems react to specific actions in other systems (e.g., a new Observation), using notifications or messaging queues.
  • Subscription-based: Clients subscribe to changes on resources. The FHIR server pushes updates via channels like REST hooks or WebSockets.

Context-aware Clinical Integration

  • CDS Hooks: Integrates clinical decision support services into EHR workflows.

Our Integration Model

  • Custom Middleware App: Acts as a bridge between our internal EHR and the external FHIR server.
  • API-based Access: All data exchange follows the RESTful FHIR standard.
  • Manual Trigger: The request to check for data is typically initiated when the physician opens the app.

Challenges

The integration faced some challenges that were solved with more or less successful results.

  1. Learning the standard, services, tools, and libraries to work with FHIR.
  2. Managing codification systems to comply with the SurPass IG.
  3. Managing pseudo-anonymization and re-identification.
  4. Securing the system.
  5. Testing the system properly.

Dealing with FHIR

Dealing with FHIR wasn't the biggest challenge. Nowadays, there are many resources available online, and the official documentation is quite good.

Codification Systems

We addressed this problem using a mixed approach. On the one hand, we added some necessary codifications directly within the Genes system. On the other hand, we mapped Genes' internal keys to standard codification systems using our application.

The application checks these codes and essentially acts as a conversion table.

Pseudo-anonymization and Re-identification

To handle this, our middleware is responsible for encrypting and hashing certain internal business identifiers.

Securing Everything

We adopted a security-by-design and multi-layered approach for developing the application. This includes data logging encryption, UI-API communication encryption, HTTPS, and a reverse proxy for external data transmission, following the instructions of the workpackage 3.4, privacy Impact Assessments (“PIAs”) and GDPR compliance.

Testing Everything

We initially used JUnit and later transitioned to JSON schemas for validating FHIR resources. We also developed a custom testing framework to test the FHIR API using synthetic data.

System Architecture

The planning of the project was done trying to accomplish some specifications.

  1. Must transfer the maximum number of variables possible to elaborate the SurPass.
  2. Must be easy to develop.
  3. Must use the Genes app infrastructure.

Project Schemas

Now we are going to see some schemas following the C4 model by Simon Brown.

These kinds of schemas are flexible and let us show you the general architecture.

Here you have a general Diagram.

Here are some insights into the system.

Demo

Now, we'll see a demonstration of the application.

Video

This video provides a walkthrough of the application in action.

Detailed explanation

Here are some screenshots showcasing the application's interface.

Application State

At this point the application is capable of sending data and retrieving the care plan in addition to the Survival passport.

Some actions:

Import data from the db

Display the data for review

Send the data to the Cineca platform

Retrieve Passport and Care plan

GENES

The legacy application, where we can find our data.

PATIENT DATA IN HULAFE LOCAL SYSTEM

Patient Data Flow

FHIRBILINA

The middleware, extract data, transform and interact with FHIR SurPass Server.

LOG IN TO WEB APLICATION

Patient Data Flow

Extract patient data from the system

Patient Data Flow

SELECT AND SEND DATA TO CINECA

Patient Data Flow

SELECT PATIEN TUMOR DATA

Patient Data Flow

DATA RETRIEVE FROM CINECA

PASSPORT AVAILABLE IN CINECA

Patient Data Flow

PDF VISUALIZATION, REIDENTIFICATION AND OPTION TO SEND TO PATIENT EMAIL

Patient Data Flow

BUTTON TO SAVE IN LOCAL SYSTEM

/* THE BUTTON IS AT THE END OF THE TABLE SOWN IN PREVIOUS SLIDES */

Patient Data Flow

FOLLOW UP RECOMENDATIONS SAVED CORRECTLY IN LOCAL SYSTEM

Patient Data Flow

Lessons Learned

  • It is easy to work with FHIR.
  • The final middleware is tightly coupled to the Genes system, perhaps too much.
  • It is not easy to scale or transfer to other systems, so we will explore other solutions for future projects.
  • Managing codification systems and testing is challenging.
  • We are not particularly proficient in the agile working style and need to improve.

Fin!

Next, we'll see the application stack!

logo lafe

Members of the IT Team

    Marisa, Antonio, Vicente, Jose, Celia, Paco, Lucas