November 5, 2019

# Hands on experience with interoperability | Redox to FHIR – Vicert follows through

Edition: Real-world problems and solutions

For an intro we suggest to brush up on some reading from our part 1:  READ HERE

Creating a puzzle

Tuning our thinking to the granularity of resources defined in FHIR wasn’t enough. Very soon we encountered our first challenge – making them work together. This is a very important notion in FHIR since the standard considers resource combination as an integral tool in representing healthcare use-cases.

Searching through extensive documentation we identified mechanisms in place providing this function:

  • Reference data type + contained resources
  • Infrastructural resources

Every resource in FHIR has a unique identity and as such a unique URL. Utilizing the reference data type gives us a chance to combine resources by having them refer to each other’s identities. To represent these connections we used absolute/relative URL and internal fragments. Former works with independent information, while the latter deals with contained (placed in-line) resources.

The following infrastructural resources support the grouping of content:

  • Bundle
  • List
  • Group
  • Composition

Extensibility

The true power of FHIR comes from acknowledging the resources system as an informational baseline of requirements across healthcare. Recognizing this they created a vital part of the interoperability ecosystem – extensions. Now everyone is free to append new information to existing elements. But keep in mind a set of rules exists to keep the usage of extensions safe and manageable. As we found ourselves in a situation where Redox and FHIR don’t recognize the same values in their information systems, extensions came as a natural solution to us. These are the guidelines we followed:

  • search if an extension already exists in FHIR managed registry
  • to create a new extension define it using a StructureDefinition resource
  • use this definition in a resource via inherited extension element

Custom parameter search

At one point our client defined a new objective: add a new property to the Patient and make it searchable in accordance with FHIR standard. The new situation already started spelling out “trouble” when we stumbled upon a resource able to resolve it for us – SearchParameter.

The first part of the problem was taken care of using something we already learned about on our journey – an extension. That allowed us to take a deep dive into the complexity of FHIR search framework. SearchParameter defines a search parameter that may be used with REST to search or filter on a resource.

Once again a well-documented standard helped us win the battle.

Redox on FHIR

Many of the first queries done while researching returned R^FHIR – an effort done by Redox to add FHIR to a list of supported message formats. Although it helped to know someone already handled this translation situation, we could use only a few pointers since only two Data Models had appropriate translations and fate would have it that those were not the ones our client requested.

Big lessons learned from this effort:

  • under no circumstances can we allow to lose any information
  • don’t be afraid to get creative

Surprisingly – FHIR itself

FHIR is an evolving standard and it will take a few years before it shines in its brightest. Resources are still being modeled and envisioned for a palette of real-world requirements and all we can do is try and be in every dynamic picture of well-balanced health care and be ready for the world on FHIR.

Author: Dev Team
Like this article? Share it!