Radiomics Enabler® V1.5 Installation and Configuration Document
- Radiomics Enabler® V1.5 Installation and Configuration Document
- Overview of Installation
About Radiomics Enabler
Radiomics Enabler is a software that allows for interactive search and recuperation of medical images stored in Picture Archive and Communications Systems (PACS). It is deployed as a web server that manages the PACS queries and data retrievals.
Radiomics Enabler® is a registered trademark. General information, video and installation package can be found at www.medexprim.com/radiomics-enabler.
The software is made freely available to the imaging community under AGPLv3.
Copyright (c) 2017-2019 - Medexprim
This document contains the installation instructions for the software for a Linux based system. The instructions assume that none of the required software packages are installed on the target system. If there is an existing infrastructure that covers some of the requirements, the administrator may need to adapt these instructions accordingly. Finally, the instructions target an Ubuntu or a Debian distribution. You may need to adapt these instructions according to your operating system.
Some links :
If you are upgrading your system from a previous version of Radiomics Enabler :
If you are upgrading from v1.3 to v1.4+, the instructions are longer because there is a change in the major version of python which needs to be taken into account.
v1.3 to v1.4+ instructions.
More information about the functional uses and the technical requirements can be found on this page :
Functional and technical description
An administration documentation is available to help you to take over Radiomics Enabler :
You can ask your questions or propose some improvements on the user group :
Go to the users group.
Radiomics Enabler® and the Clinical Trials Processor are web applications running on a Linux virtual machine (Debian 9 or Ubuntu 16) with 2 vCPUs, 16 GB of RAM, two disk partitions with:
- / :
A partition of about 100 GB for the application and processing pipelines,
- /data/ :
A partition with sufficient disk space to temporarily store studies/series from research projects. Disk space should be scalable to allow for increased activity. We propose to start with a 1TB disk space. This disk space may be provided on an external NAS, accessible to users through shared directories (using Samba share for instance).
The server must have Internet access. If a proxy server is used, we will need to receive credentials on the Proxy server and adapt the install script. This is required at least at time of installation to fetch different packages from the Internet.
Radiomics Enabler® and the RSNA CTP run on Internet Explorer v11 and higher, Firefox, and Chrome. It uses the following ports: 8000, 8080, 808x, which must be accessible to the users and to remote support. Radiomics Enabler® is known to be incompatible with IE7 or lower.
The hospital must provide DICOM Query/Retrieve SCP parameters of the PACS.
The PACS must be set to allow DICOM c-find and c-move requests from Radiomics Enabler, based on DICOM parameters we will provide at time of installation.
Download the Radiomics Enabler Package
The installation package is a compressed tar file called RadiomicsEnabler_vYY.XX.tar.gz.
It can be downloaded from Medexprim's web site at https://www.medexprim.com/radiomics-enabler/. The package must be saved on the server afterwards.
Next, you must uncompressed the file :
tar zxf RadiomicsEnabler_vYY.XX.tar.gz
This command will uncompressed the archive in your current directory (such as your source directory).
Run the installation script
The installation needs up-do-date packages.
sudo apt-get update
Move into the RadEnab directory (decompressed in the previous step) and run the script install.sh
cd RadEnab/ sudo bash install.sh
Then follow instructions when user actions are required.
Configure Radiomics Enabler
Configuring Radiomics Enabler consists of parameterizing certain elements of the application and creating two directories used for storing search results and data separately. The settings correspond to the Radiomics Enabler application as well as distinct elements of Django . The parameters to configure are in the /opt/RadEnab/site/sitebase/settings.py file. The default values are set to access a test server at www.dicomserver.co.uk.
You can add site specific settings to the file site_settings.py (use the same variable names as in the settings.py). The default values in the settings.py file will be overwritten. Careful : keep in mind to restart apache2, celeryd and storescp services when the file site_settings.py is modified
After the settings are created, the initial database will be created and the first superuser via the administration application.
The following settings concern Django. They are documented at https://docs.djangoproject.com/en/2.1/ref/settings/ .
The DEBUG value should be false in the deployed version:
# SECURITY WARNING: don't run with debug turned on in production! DEBUG = False
- Allowed Hosts
This is the list of the hosts that can query the Radiomics Enabler application. It might be necessary to add the local subdomain so that all local users can use the application. See the Django documentation for more information.
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
The Radiomics Enabler application uses the following directories at runtime:
# the directory where all of the downloaded (CMOVE) data is stored RAD_ENAB_DATA_DIR = '/data/RadEnab/' # the temporary working directory where the temporary data is stored. RAD_ENAB_WORK_DIR = '/data/RadEnab/work/' # the subdirectory in RAD_ENAB_WORK_DIR where the storescp process # places temporary incoming data RAD_ENAB_INCOMING_DIR = "INCOMING" # MEDIA ROOT for uploaded files MEDIA_ROOT = '/opt/RadEnab/mediaRoot'
DICOM Server Configuration
The DICOM server is configured by default for a test server that can be used to verify the installation of the Radiomics Enabler application.
# PACS DICOM Server as data source PACS_DICOM_SERVER = 'Your_server_ip_or_server_name' # PACS Retrieve SCP Port where we direct our c-move requests PACS_MOVE_SCP_PORT = 'Your_pacs_move_scp_port' # PACS Query SCP port where we direct our c-find requests PACS_FIND_SCP_PORT = '11112' # The AE title of Radiomics Enabler RAD_ENAB_AE_TITLE = 'RADENAB' # PACS Retrieve SCP AET. PACS_CMOVE_AE_TITLE = 'Your_pacs_cmove_aet' # PACS Query SCP AET. PACS_CFIND_AE_TITLE = 'Your_pacs_cfind_aet'
DICOM Search & Retrieval Commands
The application uses two DCMTK programs directly to interrogate the DICOM server. They need to be specified here :
# The movescu command RAD_ENAB_MOVE_SCU = '/usr/bin/movescu' # The findscu command RAD_ENAB_FIND_SCU = '/usr/bin/findscu'
The Clinical Trials Processor (CTP) may be used in tandem with Radiomics Enabler to provide anonymization services. The following values are used to control the integration as well as the configuration of a Samba share with the anonymized output files. If the variable CTP_DO_PIPELINE is False, the automatic configuration of CTP and the Samba share are not performed.
# Do CTP integration ? CTP_DO_PIPELINE = True # the directory where all of the anonymized (CTP) data is stored CTP_DATA_DIR = '/data/CTP/' # the directory where the CTP is installed CTP_HOME = '/opt/CTP/' # the name of the CTP daemon CTP_DAEMON_NAME = 'ctpService' # We can automatically configure the project output directory CTP_DO_SAMBA_CONFIG = True # the name of the SAMBA daemon CTP_SAMBA_DAEMON = 'smbd' # the location of the samba configuration file CTP_SAMBA_CONFIG_FILE = '/etc/samba/smb.conf'
You can comment/uncomment CTP_STAGES_LIST to change your default pipeline.
# list of stages in the CTP pipeline # # This is a list of string identifiers that are used to construct a pipeline in CTP # The correspondance between pipeline stages and offerings are # # CTP_DIS -> DirectoryImportService # CTP_DFILT -> DicomFilter # CTP_IDM -> IDMap # CTP_ANON -> DicomAnonymizer # CTP_PIX_ANON -> DicomPixelAnonymizer # CTP_DSTOR -> DirectoryStorageService # CTP_DES -> DicomExportService # from RadiomicsEnabler.ctp_utils import CTP_PIX_ANON, CTP_DSTOR ,CTP_ANON,CTP_IDM,CTP_DFILT ,CTP_DIS, CTP_DES # Default stages list CTP_STAGES_LIST = [CTP_DIS, CTP_IDM, CTP_ANON,CTP_DSTOR]
Other stages list examples :
# Slightly more complicated list of stages for a project that includes filtering of the DICOM data as well # as pixel anonymisation. # CTP_STAGES_LIST = [CTP_DIS,CTP_DFILT,CTP_IDM, CTP_ANON, CTP_PIX_ANON, CTP_DSTOR] #Another example that includes the DicomExportService # #CTP_STAGES_LIST = [CTP_DIS, CTP_DFILT, CTP_IDM, CTP_ANON, CTP_PIX_ANON, CTP_DSTOR, CTP_DES] # Details of DICOM destination if using DicomExportService (CTP_DES) CTP_DES_DICOM_AEC = <PACS_DICOM_AET> CTP_DES_DICOM_PORT = <PACS_PORT> CTP_DES_DICOM_DEST = <PACS_IP>
Testing & Troubleshooting
Try http://localhost:8000/admin and login as the administrative user. If you can do this, this means that Django is correctly installed in the Apache web server. You can create test users at this point.
Next, try http://localhost:8000/RadiomicsEnabler/login and login as the administrative user. Try to create a test project and a test batch. If you are using the www.dicomserver.co.uk for testing you can try a search using the patient name « Bowen » to verify that all is installed correctly.
Overview of Installation
Copy source to /opt/Radenab
All sources code are copied into /opt/Radenab.
- site: a directory containing the web site coded in python using the Django framework,
- static: a directory containing the static files that will be served by the web server. For large web sites, it is customary to delegate static file serving to a dedicated machine,
- extras: a directory containing default setup files for different software required for the Radiomics Enabler application,
- mediaRoot: a directory to be used to import csv files,
- work: a temporary working directory where the temporary data is stored.
Some packages are required : sudo postgresql postgresql-contrib python3 python3-venv apache2-dev libpq-dev python3-dev rabbitmq-server dcmtk apache2 libapache2-mod-wsgi-py3 ...
NB : This list may change along the version of Radiomics Enabler.
Create radenab user
The radenab user account is associated with the Radiomics Enabler application, particularly for the database configuration.
Creating the required directories
Radiomics Enabler need some data directories :
- /data/radenab : the directory where all of the downloaded (CMOVE) data is stored
- /data/CTP: the directory where exams are stored after anonymization processing
By default, the installation will create the /data directory. We advise users to mount this directory on a partition with enough space
Normally a version of PostgreSQL will be installed by default in the Linux system. We need to add the database and user for the Radiomics Enabler application and to add the CREATEDB role so that the radenab user can create test databases.
Normally python 3.5 will be installed by default in Ubuntu distributions
CTP & Samba configuration
The RSNA CTP and Samba server are part of Radiomics Enabler. The script check if both are installed or not.
The RSNA CTP is installed from a Medexprim package to tackle the problem of no Graphical User Interface.
NB : This part can be easily skipped by commenting the appropriate part
Database Initialisation and SuperUser Creation
The install.sh script initialise the database.
source /opt/Venv/RadEnabVenv/bin/activate python3 manage.py makemigrations python3 manage.py migrate python3 manage.py createsuperuser python3 manage.py collectstatic deactivate
The first two python commands create the initial site database. The third python command creates the administrative user for the Radiomics Enabler site. The final command copies the static file to the static file directory that can be served directly by the web server.
Celery demon installation
Celery is the program that handles the recovery of identified studies and series. It runs as a demon and is invoked for each dataset that is to be recovered. The installation depends on the type of operating system. For Ubuntu 14.04 LTS, demons are set up using init.d. Another option is the systmd approach. The files that need to be installed are available in the /
See http://docs.celeryproject.org/en/latest/userguide/daemonizing.html for details about configuring the demon process.
Celery needs a message queue to function, we use RabbitMQ by default (see http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html). It can be installed using
Because we use celery only on the local host, the RabbitMQ guest user is sufficient. No specific configuration is needed.
The Radiomics Enabler application uses the findcsu and storescp applications distributed with the Dicom Toolkit (DCMTK) package
The storescp program is used as a demon to always be ready to receive storage demands from DICOM servers. The next subsection details the installation process.
The daemon definition is stored in
The contents of this file may need to be changed according to the installation/configuration of the Radiomics Enabler application. In particular the following elements should be checked:
DAEMON_ARGS="-aet RADENAB -su RE --fork --log-config /etc/default/storescplog.cfg 11112"
The aet title argument may need to be changed to be coherent with the Radiomics Enabler configuration in settings.py
By default the directory where storescp stores incoming DICOM files is defined here.
The default user is radenab
Radiomics Enabler application is installed as a web server.
The script edit /etc/apache2/apache2.conf and allows access to the Radiomics Enabler application installed in
<Directory /opt/RadEnab/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
The script add radiomics-enabler.conf to specifies the web server for the Radiomics Enabler application. It specifies the address, the port and available data directories of the application. It is important that the port defined in the first line of the virtual server be enabled in the ports.conf file, then the script adds the line
to the file