🏥 Infirmary: an API for Clinical Data for the Consortium for Molecular and Cellular Characterization of Screen-Detected Lesions
Project description
🏥 Infirmary
Welcome to "Infirmary", the ReST-based application programming interface for the Clinical Data component of the the Consortium for Molecular and Cellular Characterization of Screen-Detected Lesions. This project, along with Sickbay form a database for discovering clinical data.
⚙️ Endpoints
Once deployed, this package provides the following ReST API endpoints:
Endpoint | Auth | Purpose |
---|---|---|
/ping |
Test if the server is working | |
/hello/{greeting} |
🔐 | Test if authentication is working |
/clinicalCores |
🔐 | Return all Clinical Cores in the database, fully serialized |
/clinicalCores/{participant_ID} |
🔐 | Return the single Clinical Core for the named participant_ID |
/organs |
🔐 | Return all organs in the database |
/organs/{identifier} |
🔐 | Return the single organ with the numeric identifier |
/specimens |
🔐 | Return all biospecimens in the database |
/specimens/{specimen_ID} |
🔐 | Return the single biospecimen with the given specimen_ID |
/genomics |
🔐 | Return all genomics in the database |
/genomics/{specimen_ID} |
🔐 | Return the genomics information with the given specimens_ID |
/images |
🔐 | Return all imaging information in the database |
/images/{identifier} |
🔐 | Return the imaging information with the numeric identifier |
For those endpoints where the "Auth" column is dispays 🔐, you must provide an HTTP Basic Authentication header with a username and password of a member of the Consortium for Molecular and Cellular Characterization of Screen-Detected Lesions. All of the endpoints return a JSON payload.
🔧 Development
To develop locally with a local Postgres database:
python3 bootstrap.py
bin/buildout
bin/infirmary --debug
To create and register the image:
docker image build --tag mcl-infirmary:latest .
docker image tag mcl-infirmary:latest nutjob4life/mcl-infirmary:latest
docker login
docker image push nutjob4life/mcl-infirmary:latest
To explore the image:
docker container run --rm --interactive --tty --entrypoint /bin/sh mcl-infirmary:latest
📜 Changelog
Here we track the changes from release to release.
1.0.2
This release updates Sickbay to 1.0.2.
1.0.1
This release updates Sickbay to 1.0.1 and is used in the v2 API endpoint.
1.0.0
This release adds a handler for /
which apparently is required for JPL to complete its security scan.
0.0.6
This release upgrades Sickbay to 1.0.0.
0.0.5
This release upgrades Sickbay to 0.0.10.
0.0.4
This release upgrades Sickbay to 0.0.9.
0.0.3
This release upgrades Sickbay to 0.0.7; see issue https://github.com/MCLConsortium/mcl.infirmary/issues/2.
0.0.2
- Issue 1
- Adds version (and Sickbay version) to the
/ping
endpoint - Add
--version
command-line option - Announces the version to the
info
log at start-up
- Adds version (and Sickbay version) to the
- Updates mcl.sickbay dependency to 0.0.6
- Takes advantage of new consortium and protocol ID data
0.0.1
In this release, we added the changelog! 🤯
We also pin to version mcl.sickbay-0.0.5
. For some reason, we can't do a python3 setup.py install
without it pinned inside the Docker image creation 🤷♀️
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.