Wiki

Clone wiki

Radiomics Enabler / Home

Radiomics Enabler® V1.5 Installation and Configuration Document

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

Introduction

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 :
Upgrade instructions.

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 :
Administration Documentation

You can ask your questions or propose some improvements on the user group :
Go to the users group.

Technical requirements

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.

Django Settings

The following settings concern Django. They are documented at https://docs.djangoproject.com/en/2.1/ref/settings/ .

  • Debug

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']

Data Directories

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'

CTP Configuration

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>

Note : need to edit the associated scripts for DicomFilter and DicomPixelAnonymizer.

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.

Installed package

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

PostgreSQL installation

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.

Python installation

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 /opt/RadEnab/extras directory.

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.

DCMTK Installation

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 /opt/RadEnab/extras/storescp/storescp.

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

  • WORKDIR=/opt/RadEnab/work/INCOMING

    By default the directory where storescp stores incoming DICOM files is defined here.

  • USER=radenab

    The default user is radenab

Apache2 configuration

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 /opt/RadEnab.

<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

Listen 8000

to the file /etc/apache2/ports.conf

Updated