Skip to main content

Admin CLI for managing medical imaging datasets in S3/MinIO for DataSHIELD

Project description

dsimaging-admin

Admin CLI for creating and operating dsimaging-store deployments and the medical imaging datasets stored in them.

Install

pip install dsimaging-admin

Create a store

dsimaging-admin store init writes a Docker Compose project for MinIO plus the dsimaging-store controller.

dsimaging-admin store init ./study-store \
  --controller-image davidsarratgonzalez/dsimaging-store:latest
dsimaging-admin store up ./study-store
dsimaging-admin store doctor ./study-store

For local controller development, build from a checked-out dsimaging-store repo instead of using an image:

dsimaging-admin store init ./study-store \
  --store-source /path/to/dsimaging-store
dsimaging-admin store up ./study-store

Use the generated connection details as a reusable CLI profile:

dsimaging-admin init \
  --endpoint http://127.0.0.1:9000 \
  --controller-url http://127.0.0.1:8080 \
  --bucket imaging-data

Dataset operations

# Publish with staging, publish lock, skip-if-hash-matches and DICOM checks.
dsimaging-admin publish \
  --dataset-id study_ct_v1 \
  --source /data/study_ct \
  --metadata /data/study_ct/clinical.csv \
  --modality ct

# Inspect and verify.
dsimaging-admin list
dsimaging-admin status study_ct_v1
dsimaging-admin verify study_ct_v1
dsimaging-admin doctor

# Rebuild artifacts from S3, copy, download or delete.
dsimaging-admin rescan study_ct_v1
dsimaging-admin copy study_ct_v1 study_ct_v2 --yes
dsimaging-admin download study_ct_v1 ./debug/study_ct_v1
dsimaging-admin delete study_ct_v1 --yes --purge-versions

All reporting commands that are useful for automation support JSON output:

dsimaging-admin list --output json
dsimaging-admin status study_ct_v1 --output json
dsimaging-admin verify study_ct_v1 --output json
dsimaging-admin doctor --output json

What publish does

  1. Scans your local image directory and optional masks under source/masks/, masks/, source/labels/, or labels/.
  2. Runs basic DICOM sanity checks for series UID, modality and instance order.
  3. Computes SHA-256 content hashes.
  4. Skips uploads that already match the current dataset hash indexes.
  5. Uploads through datasets/<id>/.staging-* and a .publish-lock, then copies into datasets/<id>/source/....
  6. Generates and uploads:
    • manifest.yaml
    • indexes/content_hash_index.parquet
    • indexes/masks_content_hash_index.parquet when masks exist
    • metadata/sample_manifests.parquet
    • metadata/samples.parquet

Use --dry-run to scan and show the upload plan without S3 writes, --no-skip to force uploads, or --no-atomic to disable staging.

Configuration

~/.dsimaging.yaml supports multiple profiles:

default_profile: default
profiles:
  default:
    endpoint: http://127.0.0.1:9000
    controller_url: http://127.0.0.1:8080
    bucket: imaging-data
    access_key: minioadmin
    secret_key: minioadmin123
    region: ""

Environment variables override profile values:

Variable Default Description
DSIMAGING_PROFILE default Config profile
DSIMAGING_ENDPOINT http://127.0.0.1:9000 S3/MinIO endpoint
DSIMAGING_CONTROLLER_URL (empty) dsimaging-store controller URL
DSIMAGING_ACCESS_KEY minioadmin S3 access key
DSIMAGING_SECRET_KEY minioadmin123 S3 secret key
DSIMAGING_BUCKET imaging-data Bucket name
DSIMAGING_REGION (empty) S3 region

Dataset layout in S3

s3://<bucket>/datasets/<dataset_id>/
  manifest.yaml
  metadata/
    samples.parquet
    sample_manifests.parquet
  indexes/
    content_hash_index.parquet
    masks_content_hash_index.parquet
  source/
    images/
    masks/
  derived/
  qc/

Store creation and dataset management only target dsimaging-store deployments.

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

dsimaging_admin-0.3.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsimaging_admin-0.3.0-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file dsimaging_admin-0.3.0.tar.gz.

File metadata

  • Download URL: dsimaging_admin-0.3.0.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for dsimaging_admin-0.3.0.tar.gz
Algorithm Hash digest
SHA256 69afe9caf49e5d97684da377231e7eb0f598a4f7485afef34595fcc97dd70ac8
MD5 061abdda0afec93c3ae8f58a8bc5f5b8
BLAKE2b-256 0cf3a0d71d2999e7da5ddd2cf96a6aa2e27e1f28458f782d2063dff61489ee15

See more details on using hashes here.

File details

Details for the file dsimaging_admin-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dsimaging_admin-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3c03aaaa80cb18c4a6bef6a0cf41d29c10b8c98396dfa8190795dc0c6c7400e
MD5 91e15c31cda382b0cb81d456d5194d2f
BLAKE2b-256 fc7c0b5c79c331ed4ee0796eeeeb99350b847b12f08e46e6d0dfd562f91366ec

See more details on using hashes here.

Supported by

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