Health Info Management and Medical Records Requestsuccess stories
Business Domain: Healthcare
Project Type: Private Permissioned Blockchain Platform
The NIX team had a challenging task to create, and confidentially maintain, health info about a patient when there are several independent participants in the process.
In our project, there are 3 key participants: Hospital (Pediatrician) — Parents — Elementary School.
The NIX team had to isolate multiple organizations from each other through channels thus organizations without access to the channel cannot see the information in it.
How it works
Using Hyperledger Fabric we created a network, distributing rights between different organizations in it.
For writing smart contracts, we chose the Go programming language because of two reasons:
- Go allows developers to write a chain code conveniently and quickly.
- IBM used Go developing Fabric itself.
Here is our network structure:
The process contains the following 5 steps:
Parents sign an agreement with the hospital, where their child is examined.
A pediatrician gains access to their child’s medical records and the ability to update info on a child’s health state.
Parents apply for a place in an elementary school for a child.
If a child is appealed, an elementary school sends a request to the pediatrician for a report on a child’s health state.
A doctor creates a report, then the parents have to give permission to a particular elementary school/s to check the report.
To restrict access to confidential info about children’s medical records, a different channel was created, accessible only to parents and the hospital. Thus, the elementary school will be not able to store any child’s medical records info on its node. Here is a parents’ advantage — confidential transactions only. Also, our team created one more channel for reports on a child’s health state with access to all peers.
Dive into the technical details
A two-party channel for both a hospital and parents. A pediatrician and parents sign an agreement with each other. This information is stored in the world state of the channel. The pediatrician updates the information in the medical records if required.
A channel for a health report. This channel is for the applying process to an elementary school. First, the report goes to the blockchain when a doctor made it. The report has a “ready” status and contains information from the medical record. An elementary school will be able to receive the report only after the status will be changed to “approved” by a parent.
Identity determination. Hyperledger Fabric uses an X509 certificate that allows you to record any information about the owner. We record the user’s UID there.
Confidentiality and Security. Storage of medical cards is carried out in the world state of the channel of parents and the hospital. We chose such storage because, in case of storing information in private storage, we will not be able to see information about changes in medical records in the ledger
To get the medical record info from another channel, one needs to make several requests to the network: to get medical info and record it into another channel. Since we implemented the cards’ access control with the help of smart contracts, it is not possible for third parties – if it’s neither parents nor a pediatrician – to obtain medical records.
Overcome the challenge, now we are able to drive the solution where everyone is working together while ensuring confidentiality, scalability, and security.
Not only healthcare but various industries needed the same pattern — anywhere you need to manage confidential obligations without passing everything through a central authority.
Tech Stack: Hyperledger Fabric, VeuJS, NodeJS, Golang
Team: 5 people (2 Backend developers, 1 Frontend Developer, 1 Part-time Designer, 1 Part-time Markup developer)