XNAT Workshop 2012 - Data Upload and Entry
Goal
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.
Video
Presentation
Resources
DicomBrowser (installed on workshop VM)
RSNA CTP (installed on workshop VM)
dcmtk (installed on workshop VM)
Topics
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 C-STORE
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.
Default project/subject/session mapping rules
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
The prearchive
A quick tour of the prearchive, demonstrating how data arrive and how to move data to the archive.
Autoarchiving
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
Assignment, deletion, conditional operations, and functions
Basic introduction to the DicomEdit language and concepts.
DicomEdit and DicomBrowser
User-defined variables
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
Standard variables
Predefined variables: project, subject, session, modalityLabel
Changing projects
DicomEdit reapplication when data are moved
DicomEdit and the upload applet
Applet-specific functions
makeSessionLabel, formatSessionDate
User-defined variable UI
How user-defined variables are presented
DICOM Anonymization
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
RSNA CTP
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:
<ExportService
name="XNAT Export"
class="org.rsna.ctp.stdstages.HttpExportService"
root="test/roots/client/https-export"
url="https://my.xnat.org/data/services/import?inbody=true&PROJECT_ID=MyXNATProject"
username="ctpUserOnXNAT"
password="abcdef"
quarantine="test/quarantines/client/https-export" />
Customizing the C-STORE SCP (a.k.a. DICOM receiver)
Writing, testing, and deploying a custom file namer
Multiple AEs: per-project AE title
Sample custom identifier
Custom project/subject/session identity extraction
Writing new custom identifiers
Uncovered topics
XNAT REST API, pyxnat