Request a Call
Spinner

Processing...

    • United States+1
    • United Kingdom+44
    • Afghanistan (‫افغانستان‬‎)+93
    • Albania (Shqipëri)+355
    • Algeria (‫الجزائر‬‎)+213
    • American Samoa+1
    • Andorra+376
    • Angola+244
    • Anguilla+1
    • Antigua and Barbuda+1
    • Argentina+54
    • Armenia (Հայաստան)+374
    • Aruba+297
    • Ascension Island+247
    • Australia+61
    • Austria (Österreich)+43
    • Azerbaijan (Azərbaycan)+994
    • Bahamas+1
    • Bahrain (‫البحرين‬‎)+973
    • Bangladesh (বাংলাদেশ)+880
    • Barbados+1
    • Belarus (Беларусь)+375
    • Belgium (België)+32
    • Belize+501
    • Benin (Bénin)+229
    • Bermuda+1
    • Bhutan (འབྲུག)+975
    • Bolivia+591
    • Bosnia and Herzegovina (Босна и Херцеговина)+387
    • Botswana+267
    • Brazil (Brasil)+55
    • British Indian Ocean Territory+246
    • British Virgin Islands+1
    • Brunei+673
    • Bulgaria (България)+359
    • Burkina Faso+226
    • Burundi (Uburundi)+257
    • Cambodia (កម្ពុជា)+855
    • Cameroon (Cameroun)+237
    • Canada+1
    • Cape Verde (Kabu Verdi)+238
    • Caribbean Netherlands+599
    • Cayman Islands+1
    • Central African Republic (République centrafricaine)+236
    • Chad (Tchad)+235
    • Chile+56
    • China (中国)+86
    • Christmas Island+61
    • Cocos (Keeling) Islands+61
    • Colombia+57
    • Comoros (‫جزر القمر‬‎)+269
    • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
    • Congo (Republic) (Congo-Brazzaville)+242
    • Cook Islands+682
    • Costa Rica+506
    • Côte d’Ivoire+225
    • Croatia (Hrvatska)+385
    • Cuba+53
    • Curaçao+599
    • Cyprus (Κύπρος)+357
    • Czech Republic (Česká republika)+420
    • Denmark (Danmark)+45
    • Djibouti+253
    • Dominica+1
    • Dominican Republic (República Dominicana)+1
    • Ecuador+593
    • Egypt (‫مصر‬‎)+20
    • El Salvador+503
    • Equatorial Guinea (Guinea Ecuatorial)+240
    • Eritrea+291
    • Estonia (Eesti)+372
    • Eswatini+268
    • Ethiopia+251
    • Falkland Islands (Islas Malvinas)+500
    • Faroe Islands (Føroyar)+298
    • Fiji+679
    • Finland (Suomi)+358
    • France+33
    • French Guiana (Guyane française)+594
    • French Polynesia (Polynésie française)+689
    • Gabon+241
    • Gambia+220
    • Georgia (საქართველო)+995
    • Germany (Deutschland)+49
    • Ghana (Gaana)+233
    • Gibraltar+350
    • Greece (Ελλάδα)+30
    • Greenland (Kalaallit Nunaat)+299
    • Grenada+1
    • Guadeloupe+590
    • Guam+1
    • Guatemala+502
    • Guernsey+44
    • Guinea (Guinée)+224
    • Guinea-Bissau (Guiné Bissau)+245
    • Guyana+592
    • Haiti+509
    • Honduras+504
    • Hong Kong (香港)+852
    • Hungary (Magyarország)+36
    • Iceland (Ísland)+354
    • India (भारत)+91
    • Indonesia+62
    • Iran (‫ایران‬‎)+98
    • Iraq (‫العراق‬‎)+964
    • Ireland+353
    • Isle of Man+44
    • Israel (‫ישראל‬‎)+972
    • Italy (Italia)+39
    • Jamaica+1
    • Japan (日本)+81
    • Jersey+44
    • Jordan (‫الأردن‬‎)+962
    • Kazakhstan (Казахстан)+7
    • Kenya+254
    • Kiribati+686
    • Kosovo+383
    • Kuwait (‫الكويت‬‎)+965
    • Kyrgyzstan (Кыргызстан)+996
    • Laos (ລາວ)+856
    • Latvia (Latvija)+371
    • Lebanon (‫لبنان‬‎)+961
    • Lesotho+266
    • Liberia+231
    • Libya (‫ليبيا‬‎)+218
    • Liechtenstein+423
    • Lithuania (Lietuva)+370
    • Luxembourg+352
    • Macau (澳門)+853
    • North Macedonia (Македонија)+389
    • Madagascar (Madagasikara)+261
    • Malawi+265
    • Malaysia+60
    • Maldives+960
    • Mali+223
    • Malta+356
    • Marshall Islands+692
    • Martinique+596
    • Mauritania (‫موريتانيا‬‎)+222
    • Mauritius (Moris)+230
    • Mayotte+262
    • Mexico (México)+52
    • Micronesia+691
    • Moldova (Republica Moldova)+373
    • Monaco+377
    • Mongolia (Монгол)+976
    • Montenegro (Crna Gora)+382
    • Montserrat+1
    • Morocco (‫المغرب‬‎)+212
    • Mozambique (Moçambique)+258
    • Myanmar (Burma) (မြန်မာ)+95
    • Namibia (Namibië)+264
    • Nauru+674
    • Nepal (नेपाल)+977
    • Netherlands (Nederland)+31
    • New Caledonia (Nouvelle-Calédonie)+687
    • New Zealand+64
    • Nicaragua+505
    • Niger (Nijar)+227
    • Nigeria+234
    • Niue+683
    • Norfolk Island+672
    • North Korea (조선 민주주의 인민 공화국)+850
    • Northern Mariana Islands+1
    • Norway (Norge)+47
    • Oman (‫عُمان‬‎)+968
    • Pakistan (‫پاکستان‬‎)+92
    • Palau+680
    • Palestine (‫فلسطين‬‎)+970
    • Panama (Panamá)+507
    • Papua New Guinea+675
    • Paraguay+595
    • Peru (Perú)+51
    • Philippines+63
    • Poland (Polska)+48
    • Portugal+351
    • Puerto Rico+1
    • Qatar (‫قطر‬‎)+974
    • Réunion (La Réunion)+262
    • Romania (România)+40
    • Russia - terrorist state+7
    • Rwanda+250
    • Saint Barthélemy+590
    • Saint Helena+290
    • Saint Kitts and Nevis+1
    • Saint Lucia+1
    • Saint Martin (Saint-Martin (partie française))+590
    • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
    • Saint Vincent and the Grenadines+1
    • Samoa+685
    • San Marino+378
    • São Tomé and Príncipe (São Tomé e Príncipe)+239
    • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
    • Senegal (Sénégal)+221
    • Serbia (Србија)+381
    • Seychelles+248
    • Sierra Leone+232
    • Singapore+65
    • Sint Maarten+1
    • Slovakia (Slovensko)+421
    • Slovenia (Slovenija)+386
    • Solomon Islands+677
    • Somalia (Soomaaliya)+252
    • South Africa+27
    • South Korea (대한민국)+82
    • South Sudan (‫جنوب السودان‬‎)+211
    • Spain (España)+34
    • Sri Lanka (ශ්‍රී ලංකාව)+94
    • Sudan (‫السودان‬‎)+249
    • Suriname+597
    • Svalbard and Jan Mayen+47
    • Sweden (Sverige)+46
    • Switzerland (Schweiz)+41
    • Syria (‫سوريا‬‎)+963
    • Taiwan (台灣)+886
    • Tajikistan+992
    • Tanzania+255
    • Thailand (ไทย)+66
    • Timor-Leste+670
    • Togo+228
    • Tokelau+690
    • Tonga+676
    • Trinidad and Tobago+1
    • Tunisia (‫تونس‬‎)+216
    • Turkey (Türkiye)+90
    • Turkmenistan+993
    • Turks and Caicos Islands+1
    • Tuvalu+688
    • U.S. Virgin Islands+1
    • Uganda+256
    • Ukraine (Україна)+380
    • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
    • United Kingdom+44
    • United States+1
    • Uruguay+598
    • Uzbekistan (Oʻzbekiston)+998
    • Vanuatu+678
    • Vatican City (Città del Vaticano)+39
    • Venezuela+58
    • Vietnam (Việt Nam)+84
    • Wallis and Futuna (Wallis-et-Futuna)+681
    • Western Sahara (‫الصحراء الغربية‬‎)+212
    • Yemen (‫اليمن‬‎)+967
    • Zambia+260
    • Zimbabwe+263
    • Åland Islands+358
  • Hidden

Blockchain Platform for Health Data & Medical Records

NIX created a scalable and secure blockchain platform for storing patient health information and distributing rights between different organizations using Hyperledger Fabric.

Colored laptop

Business Domain

Healthcare

Technologies

Hyperledger Fabric, Golang

Business Overview

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.

Challenge

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.

Solution

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:

Membership Service

Certificate Authority

Parents – Hospital channel

Medical Smart Contract

World State DB (Medical Cards, Agreements)

Ledger

Parent node

Hospital node

Parents

Hospital (Doctor)

Elementary school

Report channel

Report Smart Contract

World State DB (Reports)

Ledger

Parent node

Hospital node

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.

The process contains the following 5 steps:

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

Create report

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

Dive into the technical details

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.

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.

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.

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 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.

Outcome

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.

Team

Project Manager, Business Analyst, QA Engineer, 2 Backend Developers, Frontend Developer, Designer, Markup Developer

Tech Stack

Hyperledger Fabric, Vue.js, Node.js, Golang

REQUEST A CONSULTATION

Contact us   

Related Success Stories

We really care about project success. At the end of the day, happy clients watching how their application is making the end user’s experience and life better are the things that matter.

View all case studies

Online Food Delivery Service

Food & Beverages

Retail & eCommerce

Success Story Online Food Delivery Service image

Alienware Arena App—App for Gaming Portal

Entertainment

Success Story Alienware Arena App—App for Gaming Portal image

Conspectus Cloud

Architecture & Design

Construction

Success Story Conspectus Cloud image

AR-powered App for Managing Diabetes

Healthcare

Success Story AR-powered App for Managing Diabetes image
01

Contact Us

Accessibility Adjustments
Adjust Background Colors
Adjust Text Colors