XNAT Ingest¶
XNAT Ingest is a toolkit for capturing data from instruments and uploading them to an XNAT instance.
Data 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 contains tools for each step of this process:
Grouping DICOM and non-DICOM files into sessions, scans and resources
Determining which XNAT project each belongs to and assigning appropriate subject and session labels
De-identifying files using flexible, file-format-specific methods
Uploading the sorted data into the specified XNAT instance.
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 or go through the different sections in more detail using the links below
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
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