XNAT Ingest

https://github.com/australian-imaging-service/xnat-ingest/actions/workflows/ci-cd.yml/badge.svg https://codecov.io/gh/australian-imaging-service/xnat-ingest/branch/main/graph/badge.svg?token=UIS0OGPST7 Latest Version GitHub stars

XNAT Ingest is a toolkit for capturing data from instruments and uploading it to XNAT. Files coming straight off a scanner or other instrument aren't organised the way XNAT expects, and — particularly on clinical scanners — often still carry patient-identifying information that needs stripping before they leave clinical control. XNAT Ingest handles all of this: it sorts raw files into scans/sessions, works out which XNAT project/subject/session each belongs to, links in any files that don't carry enough metadata to be sorted on their own, optionally de-identifies everything, and uploads the result. Each of these is a separate step that can be chained together and left running continuously as a service, watching for new files as they arrive.

See Quick start for a hands-on walkthrough using synthetic sample data.

Installation

The recommended way to run XNAT Ingest, particularly for a long-running node, is the published Docker image, which bundles the CLI as its entrypoint along with all of its external dependencies (e.g. dcm2niix, MRtrix3):

$ docker run ghcr.io/australian-imaging-service/xnat-ingest --help

See Deployment tips for how this fits into Docker Compose or Kubernetes.

Alternatively, XNAT Ingest can be installed for Python >=3.11 using pip:

$ python3 -m pip install xnat-ingest

License

This work is licensed under the Apache License, Version 2.0