The NIX team had a challenging task to create, and confidentially maintain, health information 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.
Medical Smart Contract
World State DB (Medical Cards, Agreements)
Report Smart Contract
World State DB (Reports)
Elementary school node
To restrict access to confidential information 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 information 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.
Parents sign an agreement with the hospital, where their child is examined.
Create admission request to elementary school
Accept admission request
A pediatrician gains access to their child’s medical records and the ability to update information on a child’s health state.
Parents apply for a place in an elementary school for a child.
Create report request
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.
Give permission to view report
To get the medical record information from another channel, one needs to make several requests to the network: to get medical information 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.
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.
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.
Hyperledger Fabric uses an X509 certificate that allows you to record any information about the owner. We record the user's UID there.
Storage of medical cards is carried out in the world state of the channel of parents and the hospital. We chose such a 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.
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.
Project Manager, Business Analyst, QA Engineer, 2 Backend Developers, Frontend Developer, Designer, Markup Developer
Hyperledger Fabric, Vue.js, Node.js, Golang