Inspiration
This project was inspired partially by Grey's Anatomy ✨👩⚕️, but mostly by stories we've heard from friends studying medicine and by the incredible amount of research recently published in this field. Despite the life-saving potential of organ transplants, we learned that the process is often plagued by issues such as lack of transparency, unfair access, susceptibility to cyberattacks, and the existence of a black market. De-UNOS is a web app project that uses a Hyperledger Fabric blockchain network to decentralize the way that UNOS currently manages organ donation and transplants in the United States in attempts to reduce system inefficiencies. We used Hyperledger Fabric because it allows for a permissioned blockchain which means not EVERYONE in the general public will have access to this data - only doctors and patients, allowing for a more secure, transparent, and equitable solution.
Background
As hospitals embrace the digital age and electronic patient healthcare records become prevalent, there is a need to manage this ever-growing amount of sensitive data, paying maximum attention to security and digital privacy. A great effort has been made by UNOS to design a transparent and fair organ allocation system with a centralized system and centralized data storage. The problem however, is that centralized database systems are far more prone to cyberattacks and hacking, like the last ransomware attack on COVID-19 vaccination registration portal in 2021 in Lazio (an Italian region). This is where blockchain has been proposed by many researchers as a solution (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9945518/pdf/ti-36-10800.pdf).
What it does
The app works as follows. When doctors login to the web app, they will have access to the entire list of transplant patients as well as donors that have recently become available. Doctors can add patients and donors onto the list by pulling from their electronic health record (EHR) and current bedside vitals using the Terra API. Patients can then view their current status on the transplant list by going to their profile. To maintain confidentiality and respect HIPAA, all patient/donor names are redacted when presented on the app and encrypted on the blockchain. When a new patient/donor or transplant goes through in the software, a new block is created on the chain and the distributed ledger is updated for everyone. This allows for guaranteed transparency, trustworthiness, and auditability by any node in the network.
How we built it
We built the frontend of our web app using Reflex, React Leaflet, and Python (yes, Python) with all our designs and wireframes prototyped in Figma. For our backend, we used Hyperledger Fabric to build out a local test network for our blockchain, Terra API to push real-time IoT patient vitals through our system, and Node.js to integrate everything with our frontend UI. To automate the UNOS donor-to-patient matching process, we developed smart contracts using Solidity based on UNOS' existing criteria (e.g., geographic proximity, blood type, human leukocyte antigen (HLA) match, medical urgency, pediatric priority, etc).
Challenges we ran into
- Setting up the blockchain framework (had multiple near breakdowns at 4am sunday)
- Wrapping Leaflet.js in Reflex which is Python frontend framework... a big shoutout to previous devs and the CEO for supporting us through on Github issues
- Dependencies being finnicky
- Sleep loss
Accomplishments that we're proud of
Super proud of all our teammates for forgoing their old, familiar tech stacks and learning something COMPLETELY new. It was all of our first times using Terra API, Reflex, and Blockchain, and we’re proud that we were able to piece it all together at the very end :))
What's next for De-UNOS
- More regional and national research to inform viability of project
- More research into blockchain so we can optimize our backend
- Improved, more nuanced matching algorithm with a wider range of medical criteria
Built With
- blockchain
- docker
- hyperledger
- leaflet.js
- node.js
- python
- react-leaflet
- reflex
- shell
- terra
- typescript



Log in or sign up for Devpost to join the conversation.