XNAT 1.8.10 Release Notes
XNAT 1.8.10 is focused primarily on offering improved reliability of upload workflows, by consolidating import methods and harmonizing the way that series import filtering works in conjunction with anonymization, rather than treating it as a separate process. There are additional improvements to Prearchive efficiency, availability of shared project data in containers and Jupyter Notebooks launched at the project level, and developer-facing improvements to the health of the code base itself.
This release is paired with new release versions of several plugins. Please see each for updated features and compatibility requirements.
Container Service 3.4.3
Dicom Query/Retrieve 1.3
JupyterHub Integration 1.1
XNAT Project Sync 1.7
Additionally, this release includes the release of DicomEdit 6.6 functionality.
Deprecate the “SI” Session Importer for DICOM in Favor of DICOM-zip
To reduce the number of supported methods, without offering a reduction in service, the original SessionImporter (SI) image importer has been deprecated in favor of the DICOM-zip importer, which uses the same underlying methods as XNAT’s C-STORE capabilities. This impacts the Compressed Upload UI in XNAT as well as the default importer when importing via the API.
For ECAT uploads, you should continue to use the SI importer for now. When we remove SI, we will include a replacement importer for ECAT ingestion.
XNAT-7653: Deprecate the SI importer and identify methods which should be replicated within DICOM-zip
XNAT-7885: Add support to DICOM-zip importer for commonly used SI import parameters
XNAT-7887: Allow users to determine how to handle unparseable-as-DICOM files in the compressed upload UI
Deprecate Series Import Filters for a new DicomEdit “Reject” Function, Run as Part of Anonymization
Series Import Filters were not being handled consistently between the SI and other importers, and they are handled in an orthogonal process outside of anonymization, which created unnecessary support complexity. With DicomEdit 6.6, the functionality to reject series instance files based on their properties has now been incorporated as a reject[]
script method. This offers the full richness of the DicomEdit language in defining which instances ought to be rejected.
Series Import Filters will be removed in a future release, and we encourage users to migrate to using DicomEdit for instance rejection.
XNAT-7642: Initial investigation that revealed significant inconsistencies in series import filter handling
DE-114: Add support for series rejection as an anonymization script function
Additional Anon Script Feature Improvements
DE-128: Add or enhance several new functions, including the ability to blank known PHI strings wherever they are found, set a max patient age of 89, improve support for anonymizing tags in sequences, and remove tags
See: DicomEdit 6.6 Release Notes for a full rundown of new development
Make Anonymization on Data In Place Configurable
This update changes a default behavior in XNAT. Site administrators should review with their project owners to determine the desired behavior.
In the past, XNAT would automatically rerun project anonymization on image data when the following changes were made to that data:
When an image session is relabeled
When a subject is relabeled
When an image session is assigned to a new subject
When an image session is moved to a new project
Per XNAT-8020, this behavior is now configurable on a site-wide basis and defaults to “disabled”. See Admin UI - Session Upload and Anonymization Settings
Even when this behavior is enabled, instance file rejection statements in project anon scripts (as mentioned in the DicomEdit 6.6 updates above) are ignored.
Improve Prearchive Efficiency & Error Reporting
For administrators managing huge data requests and transfers, small annoyances in the Prearchive’s inconsistent handling of failure states can create large headaches. The following tickets help make this process more pain-free.
XNAT-7698: Prevent failed archives from being stuck in an “Archive Pending” state
XNAT-7942: Improve prearchive efficiency with regard to number of database operations and prevent rare cases where image session records in the Prearchive have no Study Instance UID, and cannot be archived
XNAT-7947: Prevent multiple ActiveMQ entries from being submitted for a single image session
Support Scaling of Event Handling for Container Service
XNAT-7848, XNAT-7858, XNAT-7863: Address redundant processes in the AutomationEventScriptHandler and DBItemCache
Add Support for Shared Data in Container Service and Jupyter Notebooks Launched at Project Level
When mounting project data files for use in a container or notebook, data that was shared from other projects could not be included because it lives in separate archive folders. This has now been remedied for project-level launches. Future work will address shared data at all levels of the hierarchy.
Note that the solution leverages hard links or temporary file copies, depending on your system. Please review the documentation for important configuration options if your site uses data sharing and compute.
XNAT-7903: Enable shared project data in file mounts via temporary shared data folders in the archive
Additional Updates
XNAT-7195: Refactor password reset tokens to use a time window for expiration rather than a single click, so they will not be auto-expired by email security systems with URL verification technology
XNAT-7868: Restore storage mechanisms for certain experiment data custom field values
XNAT-7890: Restore ability for site admins without explicit project access to use MR search tables
XNAT-7902: Improve appearance of search column headers for values added by custom forms
XNAT-7911: Add a performance setting to the Admin UI that allows site admins to remove aggregate scan counts to improve loading speeds for image session search listings
XNAT-7912: Allow for display documents to specify custom CSV header values for downloaded listings
XNAT-7939: Added the jackson-dataformat-csv library
XNAT-7943: Remove superfluous logging when making a search query via API
XNAT-8028: Add support for a conditional case that can run only on the primary node of a multi-node system
XNAT-8030: Fix display bug preventing the submission of the project data deletion confirmation dialog