XNAT Ingest¶
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.
Basic ingest workflow — group, assign and upload files to XNAT
Associate files without relevant metadata — link in files by filename pattern instead
Deidentification — strip patient-identifying data first
Deployment tips — run the pipeline continuously via Docker/Kubernetes
Command-line interface — full command-line reference
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