OpenTransplant
OpenTransplant copied to clipboard
Organ Procurement Transplant System for "We, The People" developed using publicly available information about Organ Transplant & cutting edge medical research.
OpenTransplant
Democratized Organ Procurement Transplant Network For The People
Project Status:
Reference implementation only; not intended for use in any pilot or production scenario.
Open Source Project Kanban View
Maintainer
@wiredsister, Government Professional Account: @ginabeena
Authors
- Devops & Backend: @yanlow
- Algorithms & Backend: @wiredsister
- Product: @MeredithStewart
Special thanks to: @ns222
Bug Reporting
Start a discussion with us about it so we can track it and create an issue for it!
Questions & Answers
Contributing
Introduce yourself and let us know what you want to work on!
Already have a PR ready? Tell us about it and get us to review it!
Don't forget to check out our resource page for specific contributing steps.
Feature Suggestion
Note: Check the open issues before you request because your feature may already be in the backlog.
Project Ethos
We believe every country and community, regardless of wealth or ability, should be able to operate an organ transplant network for its citizens. We believe this organ transplant network should be safe, auditable, free of fraud, waste, and abuse; we believe this system should benefit life and reduce death.
While this system will only ever exist as a reference implementation for United States policy, it will feature experimental algorithms to test alongside core functionality covered under public policy of the OPTN. Based upon statute the only organization in the United States that can run the Organ Network is UNOS, so this project remains hypothetical until further notice.
To read more about the project, here is a blog post about it by the maintainer.
Key Features & Road Map:
- organ decay is reduced
- patient outcomes are optimized for
- underserved populations and communities of color are measured against population for equity
- the system can measure end to end actions and the implications of policy changes quickly and easily
- the system should be near real-time with zero downtime (equivalent to a 911 system or telecom)
- the system should not require paper or human intervention for the majority of process
- the system will be modern and incorporate medical research (HLA crossmatching, organ sizing innovations, modern logistics & tracking)
- the system will have a modern user interface and user experience which incorporates the human perspectives of surgeons, patients, organ procurement organizations, and transplant coordinators
- the algorithms are versioned and tested via CI/CD
- the system integrates with tools surgeons and coordinators already use
- the system incorporates scheduling and waitlist management seamlessly and orthoganlly to the matching logic
- the system provides a cold storage for patient outcomes to be updated and long term analysis
- the system will have an easy HIPAA compliant communication solution centered around an organ
Sources & Thanks
This entire application was designed and built using publically available information from OPTN, UNOs, and HRSA found via Google as well as numerous medical papers from scholarly journals.
User Journey Diagram
- Web API Layer: Elixir Phoenix Web API Stack
- FrontEnd: JavaScript, CSS (Note: the UI is trash and will soon be replaced. We are looking for a designer & front-end expert if anybody has cycles)
- Backend Matching & Scheduling: OCaml services
Tech Road Map
- Webapp for Organ Tracking
- Webapp for Organ Referral
- Webapp for Patient account creation
- Webapp for Surgeon Organ Offer
- EHR FHIR API integration for EPIC Phoenix (there Organ Transplant module) & Cerner
- Gherkin & Cucumber Scenario tests for each organ & user health
Out of Box Functionality:
Currently, the code base combines a lot of novel ideas, but these will soon be refactored into an experimental (Living Donors being combined with Deceased Donors donations, etc) module inside of Policy. There is also experimental support for tissue types beyond OPTN policy reference, but out of box support will not include these. This implementation is merely a possibile reference implenetation for public OPTN algorithms for waitlist and matching.
Build & Run
OCaml Environment
Windows Machine
- Follow these instructions to get WSL for Debian: https://docs.microsoft.com/en-us/windows/wsl/install-win10
- apt-get install ocaml
- Proceed to Build step
Linux
- apt-get install ocaml
- Proceed to Build step
OSX
- brew install ocaml
- Proceed to Build step
Visual Studio Code Setup
Packages Used:
- OCaml and Reason IDE (@ext:freebroccolo.reasonml)
- Remote - WSL (@ext:ms-vscode-remote.remote-wsl)
- FiraCode (install is not through VSCode store, but rather follow instructions here: https://github.com/tonsky/FiraCode >> and change font-family setting in VSCode > Editor to
"Fira-Code"
) - Docker - (https://docs.docker.com/docker-for-windows/wsl/) to install
Build
Go to root directory where dune-project
is and run:
sh build.sh
sh start.sh
Clone Image
docker login
docker pull wiredsis/opentransplant:latest
Source: https://hub.docker.com/repository/docker/wiredsis/opentransplant/tags?page=1&ordering=last_updated
Deployment
Local development
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml build
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml up -d
docker exec -it <container_id> /bin/bash
Staging
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.prod.yml -f docker/docker-compose.staging.yml build
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.prod.yml -f docker/docker-compose.staging.yml up -d
Production
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.prod.yml build
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.prod.yml up -d