This session will guide participants through the process of getting data into an XNAT. We start with the out-of-the-box methods for uploading data to XNAT, examining common problems along the way. We then consider increasingly elaborate requirements of the BOGUS project and show how XNAT can be configured, customized, and complemented with tools such as DicomBrowser and RSNA CTP to meet BOGUS's baroque needs.
DicomBrowser (installed on workshop VM)
RSNA CTP (installed on workshop VM)
dcmtk (installed on workshop VM)
Manual upload from files
Upload applet (DICOM, ECAT)
Using the upload applet to find, identify, and upload a session.
Zip uploader (DICOM, ECAT)
Using the zip uploader to upload session from an archive file.
DICOM's network services can be used to send data directly to an XNAT. We'll use DicomBrowser to demonstrate because scanners are really heavy.
DICOM C-STORE from local scanner
Basic DICOM receiver configuration
A look at the default Spring configuration; how to modify the Spring config to change the port or AE title.
Overview of the standard rules for extracting project, subject, and session identifiers and autoarchiving request from DICOM metadata. Simple extra rule configuration.
Prearchive, quarantine, and archive
A quick tour of the prearchive, demonstrating how data arrive and how to move data to the archive.
Configuring a project to autoarchive: where do the data go, and when?
When autoarchiving works (including automerging)
When autoarchiving doesn't work: name conflicts
When autoarchiving doesn't work: manual merging
Metadata conditioning with DicomEdit
Writing, testing, and installing DicomEdit scripts
Basic introduction to the DicomEdit language and concepts.
DicomEdit and DicomBrowser
Defining variables; user-defined-variable UI.
Batch operations with DicomRemap
Command-line DicomEdit applicator and C-STORE SCU
DicomEdit and XNAT
Upload metadata conditioning
How to set site and project anon scripts; when scripts are applied to data
Predefined variables: project, subject, session, modalityLabel
DicomEdit reapplication when data are moved
DicomEdit and the upload applet
User-defined variable UI
How user-defined variables are presented
To keep PHI out of your XNAT
- Decide what you must keep and what you can remove
- Don't trust DICOM tools to show you everything
- Apply anonymization automatically
- Don't apply anonymization automatically
See also DICOM Suppl. 142 (now Part 15, Annex E)
Getting data from remote sites
DICOM over HTTP(S) and anonymization, for secure, (reasonably) efficient long-haul DICOM transport
XNAT can receive DICOM data directly from CTP's HTTP export service. The relevant part of CTP's config.xml should look something like:
Customizing the C-STORE SCP (a.k.a. DICOM receiver)
Multiple AEs: per-project AE title
Sample custom identifier
Custom project/subject/session identity extraction
Writing new custom identifiers
XNAT REST API, pyxnat