Skip to main content

🏥 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.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
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcl.infirmary-1.0.0.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

mcl.infirmary-1.0.0-py3-none-any.whl (14.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page