Bontempogianpaolo1 / oncodash

Clinical oncology tumor board decision support system made by the Decider project.

Home Page:https://oncodash.github.io/oncodash/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Oncodash

Oncodash is decision support system that help tumour boards to come to the best decision for their patients. Oncodash is currently developed within the DECIDER project and targets high-grade serous ovarian cancer. For more information, see the public website.

The following instructions are for developers willing to contribute (see also how to contibute and how to install).

To build and run Oncodash, you have two options:

  • use docker-compose and run from a container,
  • run from your own local configuration.

How to build and run with docker-compose for development

build and run the backend and frontend webservers and an nginx proxy server that passes requests to these servers.

Requirements

Installation

  1. Build the back-end, front-end and nginx docker-images:
docker-compose build
  1. Create a development SQLlite database inside the container and add tables to it:
docker-compose run --rm backend sh -c "python manage.py makemigrations"
docker-compose run --rm backend sh -c "python manage.py migrate"
  1. Populate a test database with network data (Explainer-app)
docker-compose run --rm backend sh -c "python manage.py populate -p /opt/app/path/to/indf.csv"

Note: /opt/app/ points by default to wherever is oncodash/backend/ on your system.

Development

  1. Run the images in containers:
docker-compose up
  1. Open up the browser at localhost.
  2. Browsable API endpoints at localhost/api/explainer/networks/.

Testing

docker-compose run --rm backend sh -c "python manage.py test && flake8"
docker-compose run --rm nodeserver sh -c "npm test"

How to build and run locally for development

Requirements

  • nodejs
  • typescript npm install -g typescript
  • Python >= 3.7

Installation

Back-end

  1. Clone the repository & move to the backend directory:
git clone https://github.com/oncodash/oncodash.git
cd oncodash/backend/
  1. Create a virtual environment. You have two options: Python's virtual environments or conda:
python3 -m venv backendEnv
source backendEnv/bin/activate
pip install -U pip

OR

conda create --name backendEnv python=3.7
conda activate backendEnv
  1. Install python dependencies:
pip install -r requirements.txt
  1. Create a development SQLlite database and add tables to it:
python manage.py makemigrations
python manage.py migrate
  1. Populate a test database with network data (Explainer-app)
python manage.py populate -p /path/to/indication_table.csv

Front-end

  1. Move to the oncodash-app directory:
cd oncodash/oncodash-app/
  1. Install node dependencies:
npm install

Development

  1. Run the back-end development server:
python manage.py runserver 0.0.0.0:8888
  1. Run the front-end development server:
npm start
  1. Open up the browser at localhost:8000/.
  2. Browsable API endpoints at localhost:8888/api/explainer/networks/.

Testing

Backend:

python manage.py test && flake8

Frontend:

npm test

About

Clinical oncology tumor board decision support system made by the Decider project.

https://oncodash.github.io/oncodash/


Languages

Language:Python 63.8%Language:TypeScript 21.7%Language:JavaScript 4.6%Language:CSS 4.3%Language:Dockerfile 2.4%Language:Batchfile 1.4%Language:Makefile 1.1%Language:HTML 0.8%