The Tangle on FHIR

The full article was originally published by Sebastian Fuhrhop on Medium. Read the full article here.

A decentralized patient monitoring approach — Setting the scene for FHIR, Dweb, IOTA and MAM


The fragmented nature of healthcare (e.g. across hospitals, clinics, pharmacies, home, etc.) means that real-time access to patient information can become a challenge for the different healthcare stakeholders involved.

The purpose of this article is to demonstrate a free and decentralized approach through which patient information (e.g. blood glucose data) acquired remotely can be accessed and visualized, at any time, requiring only access to the internet.


This approach consists of four components. We will start by describing them individually followed by a description of how they work as a whole.


FHIR — Fast Healthcare Interoperability Resources — is a next generation standards framework created by HL7.

FHIR solutions are built from a set of modular components called “Resources”. These resources can easily be assembled into working systems that solve real world clinical and administrative problems at a fraction of the price of existing alternatives. FHIR is suitable for use in a wide variety of contexts — mobile phone apps, cloud communications, EHR-based data sharing, server communication in large institutional healthcare providers, and much more.

Dweb is an open source webpage that lets you share and search content on the distributed web based on IPFS. The webpage itself runs on any writable IPFS gateway. It’s one of the first distributed websites, and it’s completely running in your browser, meaning you are in control of your own data. Furthermore, the website uses the distributed ledger technology IOTA to store metadata of the publicly uploaded files. The decentralized search engine integrated into the website uses this metadata to index the uploaded content. Additionally, the transfer history based on IOTA provides a transparent logging system and allows you to claim the ownership of your data.


IOTA is a distributed ledger aiming to be a public, permission less backbone for the Internet of Things. The data structure behind IOTA is called the Tangle, which is the stream of transactions published on the IOTA network.

An advantage of IOTA is its feeless nature, allowing us to send and retrieve data in a decentralized manner, effectively enabling a decentralized backend.


Masked Authenticated Messaging is a second layer data communication protocol for IOTA which adds functionality to emit and access an encrypted data stream.

Putting the pieces together

In essence, two parties are involved in a remote patient monitoring event – a sender and a receiver. In the example of blood glucose, the data sent would normally be extracted from a continuous glucose monitoring (CGM) device. For the sake of simplicity, since that is a complex topic on its own, we will leave that out of the scope of this article. Therefore we assume that we were able to extract the needed data from a CGM.

Now that the raw data has been read, the next step is to get it onto the Tangle in some way. This is where FHIR and MAM come to play.

The idea behind using FHIR is compatibility. In healthcare, it is important for new systems to be able to integrate into existing systems. Hence we converted the raw CGM data into a FHIR JSON resource, simply by generating an observation from the date of measurement and the glucose value.

  "resourceType": "Observation",
  "meta": {
    "lastUpdated": "2019-01-24T12:45:43.7004651+00:00"
  "identifier": [
      "use": "official",
      "system": "",
      "value": "6323"
  "status": "final",
  "code": {
    "coding": [
        "system": "",
        "code": "15074-8",
        "display": "Glucose [Moles/volume] in Blood"
  "effectivePeriod": {
    "start": "2019-04-01T09:30:10+01:00"
  "issued": "2019-04-01T15:30:10+01:00",
  "valueQuantity": {
    "value": 6.3,
    "unit": "mmol/l",
    "system": "",
    "code": "mmol/L"

After the data has been converted, we were now able to push it to the Tangle. To achieve this, we created a FHIR-to-MAM adapter that allows applications to keep track of their FHIR MAM streams and takes care of all FHIR validation rules.

Receiving the glucose data can now be done by simply reading the given MAM stream and parsing the glucose JSON resources in a way the UI can work with them.

For the application, we used React in combination with Redux. Since Dweb does not only allow images, videos or music to be shared, but also gives us the possibility to share a single page website in a decentralized manner, it serves as a “host” for our application. To get a single page out of our source code, everything is simply included in one file. You can have a look at the template to create your own React & Redux application on Dweb at our Github.

The Result

Now that we have everything compiled and hosted, we can take a look at the final website.

The final monitoring application

If you are mainly focused on technical things, you can also have a look at the code behind at Github.

Read the full Article

The full article was originally published by Sebastian Fuhrhop on Medium, where people are continuing the conversation by highlighting and responding to this story.

You might also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More