Skip to content

Install Tested Platforms System Requirements and Other Considerations

Marc Modat edited this page Nov 20, 2020 · 1 revision

Home | Installation Guide | User Guide | Admin Guide | User Tests


DASHER is a platform to store, organise and anonymise imaging data for research and transfer data from hospitals to remote research repositories. It uses Docker to run two imaging database servers (XNAT), one for non-anonymised data and the other anonymised data. It can be used locally to organise and store data, and also to transfer to remote repositories.

It is very much advised to work in collaboration with your IT department when installing DASHER, as it requires installing servers with access to outside the hospital network.

Tested Platforms:

  • Ubuntu 18.04, Xeon/32GB
  • Ubuntu 20.04, Inteli7/16GB
  • Ubuntu 18.04, Inteli7/16GB
  • Windows 10 Professional, Xeon/32GB
  • Docker CE for Linux, Docker Desktop for Windows CE v2.0.0.3
  • Openstack Ubuntu 18.04 VM, 16GB, 8vcpus
  • Openstack Ubuntu 18.04 VM, 8GB, 4vcpus

System requirements:

  • Windows 10 Pro or Enterprise (Not a VM), Linux (Preferred OS)
  • Docker CE (latest version)
  • Minimum Hardware: 8GB ram, 4 cpu cores. When using minimum specs, the PC/server must be a dedicated for DASHER. For higher specs (>12GB), adjustments can be made to the Postgresql and Tomcat settings to improve performance before installing. See Performance Improvements
  • An administrator account.
  • DASHER installs two servers running within docker containers therefore a static IP address is required.
  • Ports 80 and 8082 (non-SSL) or ports 443 and 444 (SSL) need to be open to allow users to log into the XNAT web-servers DASHER creates and to synchronise data to the remote repositories. Port 8104 is required to receive DICOM data over the network.
  • During the installation, DASHER will need to download dependencies from Dockerhub and ubuntu Linux repositories. Please check with your IT dept to ensure these are accessible.
  • The amount of storage required is dependent on how much data will be stored. The Uploader keeps two copies of every imaging session - one non-anonymised, the other anonymised. If each session is 1GB, then if 100 sessions are uploaded, then DASHER will require at least 200GB of storage. It is possible to delete just the dicom files while keeping a full record of the session in DASHER. It is also possible to automate this. Details of how to do this are on the Maintenance page.

Other Considerations:

  • This creates a server and therefore requires a url. The host network IP address can be used, giving xnat_host=http:// [ip address] in the xnat.cfg configuration file. Without an IP address or url, it will not be accessible from outside the host computer and data cannot be pushed to it from PACS. If unsure of your IP Address, please contact your IT team.
  • Backup – in case of data loss, it is important to have a secure data backup protocol in place. A script, save_and_restore.sh, may help you backup DASHER; please read the Maintenance page
  • Network - To access DASHER from other than the host, the network/firewall would have to be configured to allow access via ports 80 and 8082 (non-SSL) or ports 443 and 444 (SSL). In addition the DICOM port 8104 needs to be open to receive data via DICOM push.
  • DASHER can be used to anonymise and store data locally.
  • DASHER uses XNAT. Full XNAT documentation can be found at https://www.xnat.org/
  • IMPORTANT: DASHER is a server and stopping the server must be done elegantly - ensure no data is being imported/processed when shutting down

Technical details:

  • XNAT is a Tomcat web application which uses a PostgreSQL database. Nginx is used as a proxy front-end web server.

  • DASHER uses Docker to run the XNAT servers within a virtual machine on the local computer. DASHER uses a configuration file, xnat.cfg, to create the Docker images. A shell (or PowerShell on Windows) build script reads the configuration file and customises files required by the installation. It then builds the Docker images and then runs the containers on the host computer.

  • The service consists of 5 Docker containers – 2 PostgreSQL containers, 2 XNAT (Apache Tomcat web application) and one Nginx container. As they are web based, the 80 ports are mapped to different ports of the host computer and are, by default, accessible using:

             Non-Anonymised XNAT: http://[xnat_host] OR WITH SSL https://[xnat_host]
             Anonymised XNAT:  http://[xnat_host]:8082/anon/ OR WITH SSL https://[xnat_host]:444/anon/
    
  • DASHER is based upon XNAT, however it has been designed to simplify the installation and maintenance considerably and to minimise the possibility to transfer non-anonymised data. The build of XNAT has reduced functionality and the settings are set during the build process - therefore you should ahve no need to adjust the Administration site XNAT settings. This is especially true of the dicom receiver and site settings - changing these will affect the Uplaoder functionality.

  • Only the non-anonymise XNAT has port 8104 open, allowing data to be uploaded to it via DICOM push. The DICOM receiver in XNAT is running on Port 8105. This is not open to outside the docker container. Another DICOM Receiver is running on port 8104 inside the container and directs incoming data to the import folder. A script cleans and checks data and pushes to XNAT on port 8105.

  • Only the anonymised XNAT has XSYNC plugin for XNAT installed, allowing data to be sent from XNAT.

  • A QUARANTINE project exists. A protocol can be set to restrict the modalities and/or data from scanners that can be imported into DASHER. Anything that does not conform to the protocol will go into the QUARANTINE project. This is useful if certain modalities or data from certain scanners may contain burnt-in patient data. Only the XNAT administrator can move data from the QUARANTINE project to the Hospital project.

  • The containers have volumes shared with the host. All the mounted volumes are found within the storage_path set in the xnat.cfg configuration file. The volumes mounted are as follows:

This is where the SSL certificates and Log files are for the Nginx server.

         [storage_path]certificates:/etc/ssl
         [storage_path]nginx_logs:/var/log/nginx 

This is where the DICOM data is stored for the non-annoymised (1) and anonmyised (2) XNAT server.

         [storage_path]archive1:/data/xnat/archive  
         [storage_path]archive2:/data/xnat/archive 

This is where the PostgreSQL database is for the non-annoymised (1) and anonmyised (2) XNAT server.

         [storage_path]postgres-data1:/var/lib/postgresql/data  
         [storage_path]postgres-data2:/var/lib/postgresql/data  

*The location for protocol files, pipelines and clinical trial information:

         [storage_path]scripts1:/data/xnat/scripts  
         [storage_path]scripts2:/data/xnat/scripts  

Log files for Tomcat:

         [storage_path]tomcat_logs1:/data/xnat/home/logs 
         [storage_path]tomcat_logs2:/data/xnat/home/logs 

Known Issues:

  • Name and Label does not appear for pseudonmyised session reports on session pages.
Clone this wiki locally