wiredsister / OpenTransplant

Organ Procurement Transplant System for "We, The People" developed using publicly available information about Organ Transplant & cutting edge medical research.
Apache License 2.0
41 stars 1 forks source link

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

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

Q&A Discussion

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

Ideas Discussion

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:

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

Image of Idealized User Flow in Reference Prototype

Tech Road Map

  1. Webapp for Organ Tracking
  2. Webapp for Organ Referral
  3. Webapp for Patient account creation
  4. Webapp for Surgeon Organ Offer
  5. EHR FHIR API integration for EPIC Phoenix (there Organ Transplant module) & Cerner
  6. 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

  1. Follow these instructions to get WSL for Debian: https://docs.microsoft.com/en-us/windows/wsl/install-win10
  2. apt-get install ocaml
  3. Proceed to Build step

Linux

  1. apt-get install ocaml
  2. Proceed to Build step

OSX

  1. brew install ocaml
  2. Proceed to Build step

Visual Studio Code Setup

Packages Used:

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