XNAT Docs Index

Related Pages

 Click here to expand...
Skip to end of metadata
Go to start of metadata

Updated: The latest stable released version of XNAT is 1.6.3.

Changes for 1.6.3

The XNAT 1.6.3 release is a maintenance release with almost 300 issues fixed and resolved. You can find details about many of these issues in the 1.6.3 Resolved and Closed Issues spreadsheet.

Series Import Filters

Series import filters allow side-wide and project-specific whitelists and blacklist filtering of DICOM series. Applied at:

  • Upload applet
  • DICOM receiver and importer
  • Session archiving

Prearchive Improvements

Better management of file handling in prearchive:

  • Lock files during import to prevent overwrite on session building (!)
  • Detect non-DICOM files in prearchive (test for corrupted files)
  • Admins can rebuild prearchive sessions in intermediate statuses
  • Improved migration of prearchive tables from previous versions
  • Improved prearchive UI function, including fixes to sorting

Administrative Tasks

There are lots of changes to the administrative functionality:

  • Easy administration of site description
  • Added optional landing page for user login display separate from default
  • More security features controllable through admin UI
  • Ability to disable site-wide anonymization script
  • Password expiration by interval or date settable in UI
  • Debug extension points flag settable in UI
  • Improved administrative email formatting for better readability
  • Refactored subject page to allow for easier customization and enhancement in module code

User Account and Security Management

  • Unencrypted password storage completely removed, currently unsecured passwords are automatically encrypted on application startup
  • Salted encryption added to password storage, new passwords automatically salted, admin setting to require users to change unsalted passwords
  • Provides roadmap to elimination of all non-SHA’ed passwords by 1.7
  • Improved email verification process and fixed bugs
  • Added user admin functions to clear failed logins and email resends
  • User-directed account reactivation
  • Improvements to account handling to prevent expiration of LDAP accounts
  • Closed off change password page to anonymous users
  • Fixed sharing issues that exposed data to users without access to projects

Archiving and Anonymization Improvements

  • Locking added to protect against concurrent file writes
  • Fixes to merging issues when scans are resent to XNAT
  • View DICOM headers for scans directly from MR report

Performance Improvements

  • ehcache query caching added to application configuration entity managers
  • Database connection pooling added
  • Moved I/O- and CPU-intensive tasks to use processing queue


  • The Show Counts function is displayed only when file count and weight data is not available in the metadata storage. Cached database counts are used where available. The Show Counts link only shows for older sessions and persists the resulting count.
  • Direct support for newer PET-MR modality
  • Support for multiple extensions to Zip files (supports 3D Slicer MRB files), retrieving Zip manifests
  • Improved functionality for managing PIs on project pages
  • Converted most alert dialogs to use xModal inline dialogs

Changes for

Security Features

Many new security features were introduced in XNAT 1.6. See the services.properties configuration wiki page for more information about how to configure your site's security. Some of the features are turned off by default, so make sure to turn them on if you want to use them.  In particular, LDAP authentication has been moved from authentication.properties to services.properties.

Scan Time Parameters Replaced by Start Time Property

The scan level field parameters/scanTime, previously defined in the individual scan modality types (e.g., mrScanData/parameters/scanTimectScanData/parameters/scanTime) has been replaced by imageScanData/startTime. Any customized files that use scan times will need to be modified accordingly.

XNATDev Team: The data will also need to be modified. I've been doing this by rerunning pullDataFromHeaders() on each session. It would probably be better to provide an SQL script that moves the values and removes the old table.


The methods of this class now require an event parameter to facilitate an audit trail.

LDAP Authentication

If you had this set up in 1.5 you'll have to tweak it a bit for 1.6; more info here.

Known Issues

Errors Logged on Clean XNAT Installations

When you install a new XNAT from the 1.6 release and start Tomcat, before logging in and initializing the system, you may see a number of errors in the xdat.log and sql.log files. These are caused by delayed initialization of some of the dependent tables and will stop occurring once you've logged in and initialized the system settings. These errors take a couple of different forms, as shown below.


In xdat.log, you may see a couple of different messages relating to prearchive tables and meta-data.

ArcSpecManager NullPointerException

2012-03-29 14:41:20,885 [http-8080-2] ERROR org.nrg.xnat.turbine.utils.ArcSpecManager - 
	at org.nrg.xnat.helpers.prearchive.PrearcDatabase.getPrearcPath(PrearcDatabase.java:115)
	at org.nrg.xnat.helpers.prearchive.PrearcDatabase.initDatabase(PrearcDatabase.java:94)
	at org.nrg.xnat.turbine.utils.ArcSpecManager.GetInstance(ArcSpecManager.java:219)
	at org.nrg.xnat.turbine.utils.ArcSpecManager.GetInstance(ArcSpecManager.java:53)
	at org.nrg.xnat.turbine.modules.screens.Configuration.doBuildTemplate(Configuration.java:14)
	at org.nrg.xdat.turbine.modules.screens.SecureScreen.doBuildTemplate(SecureScreen.java:84)

PrearcTableBuilder PSQLException

2012-03-29 14:41:18,764 [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2] ERROR org.nrg.xnat.helpers.prearchive.PrearcTableBuilder - 
org.postgresql.util.PSQLException: ERROR: relation "xdat_search.prearchive" does not exist
  Position: 15

DBAction PSQLException

2012-03-29 14:42:07,225 [http-8080-6] ERROR org.nrg.xft.db.DBAction - org.postgresql.util.PSQLException: ERROR: relation "xdat_meta_element_meta_data" does not exist
  Where: PL/pgSQL function "update_ls_xdat_meta_element" line 6 at FOR over SELECT rows


The message that may appear in sql.log relates to the meta-data table initialization. It doesn't appear as an error, but may be repeated enough to cause concern and looks similar to this:

2012-03-29 14:42:19,886 - SELECT update_ls_xdat_meta_element(573,NULL)
  • No labels