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 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

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