OpenREM Release Notes version 0.8.0

Headline changes

  • This release has extensive automated testing for large parts of the codebase (for the first time)
  • Code quality is much improved, reduced duplication, better documentation, many bugs fixed
  • Imports: RDSR from a wider range of systems now import properly
  • Imports: Better distinction and control over defining RDSR studies as RF or DX
  • Imports: Code and instructions to generate and import RDSR from older Toshiba CT scanners
  • Imports: DICOM Query-Retrieve functionality has been overhauled
  • Imports: Duplicate checking improved to allow cumulative and continued study RDSRs to import properly
  • Imports: indicators that a study is not a patient can now be configured in the web interface
  • Imports, display and export: Better handling of non-ASCII characters
  • Interface: More detailed, consistent and faster rendering of the data in the web interface
  • Interface: Maps of fluoroscopy radiation exposure incident on a phantom (Siemens RDSRs only)
  • Interface: More and better charts, including scatter plots for mammography
  • Interface: Display names dialogue has been extended to allow administration of all studies from each source
  • Exports: Much faster, and more consistent
  • Documentation: Extensive user documentation improvements

Upgrading an OpenREM server with no internet access

Follow the instructions found at Upgrade an offline OpenREM installation, before returning here to update the database and configuration.

Upgrading from version 0.7.4 or previous 0.8.0 betas

Upgrade

  • Back up your database

    • For PostgreSQL on linux you can refer to Backup the database
    • For PostgreSQL on Windows you can refer to backupRestorePostgreSQL
    • For a non-production SQLite3 database, simply make a copy of the database file
  • Stop any Celery workers

  • Consider temporarily disabling your DICOM StoreSCP, or redirecting the data to be processed later

  • If you are using a virtualenv, activate it

  • Install the new version of OpenREM:

pip install openrem==0.8.0

Update the configuration

Locate and edit your local_settings file

  • Ubuntu linux: /usr/local/lib/python2.7/dist-packages/openrem/openremproject/local_settings.py
  • Other linux: /usr/lib/python2.7/site-packages/openrem/openremproject/local_settings.py
  • Linux virtualenv: vitualenvfolder/lib/python2.7/site-packages/openrem/openremproject/local_settings.py
  • Windows: C:\Python27\Lib\site-packages\openrem\openremproject\local_settings.py
  • Windows virtualenv: virtualenvfolder\Lib\site-packages\openrem\openremproject\local_settings.py

Date format

Set the date format for xlsx exports (need to check csv situation). Copy the following code into your local_settings.py file if you want to change it from dd/mm/yyy:

# Date format for exporting data to Excel xlsx files.
# Default in OpenREM is dd/mm/yyyy. Override it by uncommenting and customising below; a full list of codes is available
# at https://msdn.microsoft.com/en-us/library/ee634398.aspx.
# XLSX_DATE = 'mm/dd/yyyy'

Time zone and language

Consider setting the timezone and language in local_settings.py. See local_settings.py.example.

Add additional log file configuration

Warning

If the configuration is not added for the new openrem_extractor.log you will find it being created whereever you start the webserver from, and starting the webserver may fail.

Add the new extractor log file configuration to the local_settings.py - you can copy the ‘Logging configuration’ section from local_settings.py.example if you haven’t made many changes to this section. See the Log file settings in the install instructions.

Warning

If you are upgrading from an earlier beta with the Toshiba RDSR creation logs defined, this has changed names and must be modified in local_settings.py before the migration below. It should be changed to:

LOGGING['loggers']['remapp.extractors.ct_toshiba']['level'] = 'INFO'  # Toshiba RDSR creation extractor logs

substituting INFO for whichever level of logging is desired.

Adding legacy Toshiba CT functionality

If you need to import data from older Toshiba CT scanners into OpenREM then the following tools need to be available on the same server as OpenREM:

The paths to these must be set in local_settings.py for your system:

# Locations of various tools for DICOM RDSR creation from CT images
DCMTK_PATH = 'C:/Apps/dcmtk-3.6.0-win32-i386/bin'
DCMCONV = os.path.join(DCMTK_PATH, 'dcmconv.exe')
DCMMKDIR = os.path.join(DCMTK_PATH, 'dcmmkdir.exe')
JAVA_EXE = 'C:/Apps/doseUtility/windows/jre/bin/java.exe'
JAVA_OPTIONS = '-Xms256m -Xmx512m -Xss1m -cp'
PIXELMED_JAR = 'C:/Apps/doseUtility/pixelmed.jar'
PIXELMED_JAR_OPTIONS = '-Djava.awt.headless=true com.pixelmed.doseocr.OCR -'

The example above is for Windows. On linux, if you have installed the Offis DICOM toolkit with sudo apt install dcmtk or similar, you can find the path for the configuration above using the command which dcmconv. This will be something like /usr/bin/dcmconv, so the DCMTK_PATH would be '/usr/bin and the DCMCONV would be os.path.join(DCMTK_PATH, 'dcmconv'). Similarly for DCMMKDIR and JAVA_EXE, which might be /usr/bin/java. The pixelmed.jar file should be downloaded from the link above, and you will need to provide the path to where you have saved it.

Migrate the database

In a shell/command window, move into the openrem folder:

  • Ubuntu linux: /usr/local/lib/python2.7/dist-packages/openrem/
  • Other linux: /usr/lib/python2.7/site-packages/openrem/
  • Linux virtualenv: vitualenvfolder/lib/python2.7/site-packages/openrem/
  • Windows: C:\Python27\Lib\site-packages\openrem\
  • Windows virtualenv: virtualenvfolder\Lib\site-packages\openrem\
python manage.py makemigrations remapp
# if changes are detected (not expected between most beta versions)
python manage.py migrate remapp

Update static files

In the same shell/command window as you used above run the following command to clear the static files belonging to your previous OpenREM version and replace them with those belonging to the version you have just installed (assuming you are using a production web server…):

python manage.py collectstatic --clear

Restart all the services

Follow the guide at Start all the services.