Doctor view of merged family history, with two consenting participants
Patient view of their reported family history
Ethereum blockchain processing transactions through a smart contract, enabling and disabling patient's consent to personal info disclosure
Node.JS log messages illustrating consent being verified for a particular patient / doctor pairing
Healthcare information is fragmented. It’s difficult to access, impossible to share and cumbersome to validate – all of which compromises its accuracy. Inaccuracies drive expense, with the estimated cost of medical errors exceeding $17 billion. We use blockchain to tell the true story of your healthcare, and we make it accessible for you, your doctor and anyone you designate. We call our product #branch.
What it does
Branch is a blockchain solution for clinical data exchange and interoperability. We designed #branch to leverage the power of the distributed ledger to enable patients to share their family history with their physicians and other family members via smart contracts, to manage consents, and authorizations on an Ethereum blockchain.
How I built it
The application consists of three parts:
A smart contract placed on an Ethereum blockchain. The contract governs which patients have provided consent to a given doctor to allow that doctor to view personal information about themselves when viewing a combined medical history. The patient has the ability to grant or revoke consent to any particular doctor at any time.
An OpenAPI compliant REST API, written in Node.js, manages the patient and doctor information and interfaces with the Ethereum blockchain. Based on the information stored in the blockchain, it provides views into patient's family history, including a merged family history for physicians and medical researches. Said merged history provides some quantitive weighting to the data, such that anomalies can be more easily spotted.
A React Portal, which allows both patients and doctors to interface with the medical history. Patient's can also use the portal to grant or remove consent to specific doctors.
Challenges we ran into
Because the family medical history information often contains conflicting data, standard notions of a 'family tree' for displaying the information are generally not sufficient to show the data. As such, we opted to go with a more generic graph view.
Time constraints permitting, a private block chain may be more appropriate for this application than a public block chain like Ethereum. To their credit, Ethereum provides some fairly nice tooling that makes it relatively easy to build a proof of concept.
Accomplishments that we are proud of
Sanat Dixit provided excellent insight into the workflow doctors and patients have with their medical history, and we very quickly converged on a set of requirements.
Matt Jordan can still write a lot of code in a short period of time, despite being a powerpoint pusher these days.
What we learned
While Matt Jordan was superficially aware of Blockchain technology, this hackathon provided some hands on time with the technology, particularly in the realm of smart contracts.
What's next for HashGene