Page tree
Skip to end of metadata
Go to start of metadata

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

Data_Upload_and_Entry.pptx

Resources

DicomEdit language reference

DicomBrowser (installed on workshop VM)

RSNA CTP (installed on workshop VM)

dcmtk (installed on workshop VM)

DICOM standard

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

  1. Decide what you must keep and what you can remove
  2. Don't trust DICOM tools to show you everything
  3. Apply anonymization automatically
  4. 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