Skip to content Skip to navigation

ePad java Release Notes

Release Notes

3.3 2/18/2019 New functionalities:
  • Support to use an existing annotation to create a new annotation with another template. Select the annotation and change the template. ePAD will ask the user whether you want to create a copy of the annotation or update it. The questionnaire will be displayed and when the user clicks save, it will save the annotation either as a new annotation with the same ROI or update the existing annotation.
  • Added support to enable disable DSO statistics calculation via a configuration parameter. In ~/DicomProxy/etc/, add saveDSOStats = true to the encd of the file to enable statistics calcultation. The DSO statistics include min, max, mean and standard deviation of the pixel values in the Volume of Interest and the volume. The calculated statistics are written to the AIM file.

Improvements and bug fixes:

  • The segmentation saving is improved with notification popups to resolve Dicom Segmentation Object saving bug on very large segmentations.
  • Support for patient id with spaces
  • DicomRT processing improved to handle DicomRTs with missing information and irregular cases. During this process we modified the MAASTRO’s dicom file interface code ( with following improvements:
    • modified the dimension check to handle series with repetitive scans (for ex.: MRIs with multiple phases)
    • fixed xAxis, yAxis type to support non square images
    • defaulted isClosedInY method to 0 to avoid failure over missing values
    • modified the gathering of this.referencedSopInstanceUid and this.referencedSopClassUid in ContourSlice to check if the data is given in ContourImageSequence
    • modified ROI references to use name instead of depending on ROI number
  • Updated the statistics in to report maximum number of plugins and templates instead of cumulating them as they are mostly repetitive.
  • Fixed window/level calculation when it is not specified in the header
3.2 9/14/2018
3.1 5/14/2018 New functionalities:
  • Added a new UI Tool, longitudinal ADLA report, which calculates response rate in a similar manner to RECIST but filters line annotations only and uses standard deviation
  • Implemented DART integration. ePAD can be used as an image annotator tool with an encrypted short live URL. It pushes the created AIMs back to DART
  • Added two new backend APIs for fixing the old segmentations (see dsoresave endpoints in REST API documentation)
  • Added tiff upload support. It asks for the required information and creates a DICOM series with the uploaded tiff files
  • Added searching functionality to annotations window. It allows user to define searching criterieas, such as; annotation name, patient name, template and a range of dates of annotation creation date.

Improvements and bug fixes:

  • Fixed the DSO reference tag bug caused by copying the referenced series from the source image
  • Changed the RECIST report title to Tumor Burden Report
  • Fixed bug on response rate from minimum
  • Improved the search view loading performance
  • Creates a nonassigned project for putting series pushed from pacs
  • Improved the download patient/study/series to work faster by streaming directly
  • Fixed the lesion lookup bug
  • Extended the histogram chart to work as ADLA histogram if a line is selected
  • Fixed the longitudinal response rate calculation error on patients with multiple scans on the same day
3.0 3/2/2018 Major changes:
  • Switched the Aim version to 4.2 - Supplement 200 for Aim to/from DicomSR conversion.
    You need to update your file to have
    xsdFileV4 = AIM_v4.2_rv2_XML.xsd.
    for more detailed change logs.
    In effect, the changes in ePad are:
    • Added trackingUniqueIdentifier to track longitudinal annotations (activated when annotator
      selects a baseline annotation using the UI)
    • Added studyInstanceUid and seriesInstanceUid to DicomSegmentationEntity
    • Added CalculationEntityReferences(Segmentation/Markup)EntityStatement
    • Added Calculations to have info about the units in UCUM string and if the calculation is
      in Attenuation Coefficient of SUVbw
    • Perpendicular lines tool saves two lines
    • Fixed the calculations and if possible added CalculationEntityReferences(Segmentation/Markup)
      EntityStatement to old aims
      when downloaded or updated
  • As a first step to update templates to use valid controlled terminology, ePAD core templates are updated.
    • We have a ePAD ontology named 99EPAD. In version 3.0 all ePAD base templates in system
      will be checked and the private terminologies
      will be converted to 99EPAD while preserving the codeValue (codingSchemeDegisnator will be changed)
    • The templates that will be modified are SEG Only, ROI Only, vanderbilt, sampleplugin, riesz, lesionseg, tedseg, jjvector,
      Tumor assessment (RECIST and RECIST_v2). The change will be in epad start and no further action required.
    • The aims that are using these templates will be updated with download or update (no action required).
  • AIMAPI is modified to use the AIMAPI.log in the DicomProxy/resources/schema path

New functionalities:

  • Enhanced the Aim Editor:
    • added the functionality to save comment for the annotation.
    • added the functionality to select the baseline annotation and auto fill the location and the lesion type for RECIST and
      RECIST_v2 templates. User should click the button next to the lesion name
      to open a list of all RECIST or RECIST_v2 annotation created for that patient in that specific project.

Improvements and bug fixes:

  • Fixed the long text visualization in multi­select dropdown bug by wrapping the text
2.9 12/12/2017

New functionalities:

  • Added longitudinal reporting. Report supports filtering with geometric shape and template, can use any measurement saved in the aim file and supports exporting the resulting report in word format.
  • Added export word document functionality to RECIST report.
  • Added delete shape toolbar icon and tool to delete one of the shapes if the annotation has multiple shapes (works with both unsaved and saved annotations).

Improvements and bug fixes:

  • Improved the aim saving to work with multiframe images for geometric shapes.
  • Improved shortcuts. Fixed Windows OS bugs, added reset (zoom and pan) functionality and mouse button click drag functionalities (See Shortcut Cheatsheet from the information menu)
  • Improved image viewer to show slice location.
  • Improved image viewer to show exam type
  • Improved RECIST table with functionality of clicking on the lesion name to display all longitudinal annotations of that lesion.
  • Added new window/level preset for CT Liver.
  • Added common toolbar and grid view to the new viewer.
  • Improved Waterfall to give an option for which report to use for best response evaluation (RECIST or ADLA).
  • Fixed the bug on batch processing of DicomRT extraction.
  • Word wrapped series description to be able to visualize the full text
  • Fixed bug on selecting the last used template on annotation creation
2.8 10/22/2017

New functionalities:

  • Added notification to the user when the uploaded study already exists in epad.
  • Added log notification when there is no imaging data for the patient.
  • Added min, max, mean and standard deviation calculations for the uploaded Dicom Segmentation Object (DSO). Pixelmed is used to get the pixel values of the dicom images.
  • Added a new background task to delete old audit log files. The default time to keep the audit log is for 30 days. The setting can be changed by adding/updating logOlderThan_Days in the
    If you have changed the mysql user settings for arrdb, you need to define arrDatabaseURL, arrDatabaseUsername and arrDatabasePassword in to be able to use this feature.
  • Added support for building just the opensource version by mvn clean install -Popensource

Improvements and bug fixes:

  • Added notification to the user when there is no dicom or aim file in the download.
  • Dcm4chee watcher is updated to ignore the patients with id Anonymous and Anon
  • Modified the UI DSO creation to use backend calculations (uses pixelmed for pixel values).
  • Added more calculation aggregations for the orthogonal shape (min, max, mean and standard deviation for each axis)
  • Calculation unitOfMeasure is updated to use UCUM values for the units.
  • Disabled the xnat synchronization when there is no user.
  • User deletion bug caused by user being a member or collaborator of a project is fixed

Changes in the UI:

  • Saving orthogonal lines is modified to save a longaxis and a shortaxis instead of two length calculations.
  • Orthogonal lines label updated to show the longaxis and shortaxis measurements
  • Added the ability to move labels (resets when any shape is selected)
  • AIM Editor window has dropdown selection when there are more than five options.
  • Added date time for Series in "Search" view
2.7.1 09/1/2017 Firefox browser crash is observed during ePad tests for Firefox versions 55.0.X (64 bit) .
Improvements and bug fixes:
  • Dicom Rt slide-annotation synchronization is fixed when it is opened from annotation or search tab.
  • Vanderbilt plugin is fixed.
2.7 08/21/2017 Firefox browser crash is observed during ePad tests for Firefox versions 55.0.X (64 bit) .
New functionalities:
  • Created a new template for RECIST with a wider list of organs and more specialized questions ( Click to Download Recist template)
  • New and improved recist table:
    • Creates two separate tables for measurable and non-measurable lesions. New lesions, non-target and non-cancer lesions are shown in the non-measurable table.
    • When orthogonal lines are used to measure the lesion, the new RECIST table uses the short axis if the organ is lymph node, uses long axis otherwise
    • Ignores the measurements of the resolved lesions during response rate calculations
  • New waterfall graph of a set of patients:
    • It works when multiple patients are selected in search view and worklist view. It can also be triggered by selecting the project and clicking the Waterfall item under Tools.
    • Uses the response rates calculated by the recist table and plots as a waterfall graph
    • User can open a specific recist table for the patient by clicking the column in the graph
  • Aimapi extended to be able to store String type calculations
  • Ability to modify the name of a segmentation annotation is added
  • Accession number is added to the aim file as a tag under ImageStudy xml tag, PLEASE MAKE SURE THAT YOU ARE USING THE NEW XSD FOR THE AIM FILES! (You should change the xsdFileV4 in your file to Aim_v4_XMLStanford.xsd)
  • Ability to import records from mint.
  • Changes in the UI:
    • Recist table in Aim Editor window is removed. It can be accessed from the Tools menu in all views when a patient is selected or the series is open. The Recist table toolbar icon still remains in the Display view.
  • Plugin Store added
    • It is added under the gear menu which is on the top right hand side corner
    • Plugin store manages the default local plugins and remote plugins developed by ePad Team or third parties.
    • Plugin store manages installing or uninstalling plugins
    • Third parties plugins which are listed under plugin store are verified and published under ePad Team's management and verification
      • If plugin description states tomcat related explanation you need to add the property below into file
        • you will find the config file under /home/epad/DicomProxy/etc
        • tomcatLocation = your tomcat location
        • tomcatLocation=/user/share/yourtomcatpath
        • yourtomcatpath needs to contain bin folder
        • Example :

        • tomcatLocation = /usr/share/tomcat71/apache-tomcat-7.0.70/
  • Integrated a new viewer using AMI.js and Three.js to display and annotate DICOM series
    • Open up a new series, after selecting "New Viewer" -> click on "Axial View" button on the toolbar
  • Added ability to open up more than one series in the new viewer. The maximum number of images can be opened in a 3 x 2 grid view.
    • Select a different series from "Search View". As each one is opened in Display view, click "New Viewer" -> "Axial View" to get a new series in the grid.
  • Added drawing functionality on images opened in the new viewer.
    • Drawing tools include : line, rectangle, circle, polygon, spline and pencil
    • Select the tool from the controls panel in a series' window box.
  • Annotations can be saved using ePAD's AIM editor window and AIM files can be created from the annotations created in the new viewer.
    • As a shape is completed, the AIM editor window will prompt the user to save the annotation.
  • Integrated a MPR viewer using AMI.js to display the MPR view of an active series that's selected by the user.
    • Open/select a series from Search view and view in Display view. Select "New Viewer" -> click on "MPR View" button on the toolbar

Improvements and bug fixes:

  • Saving orthogonal lines is modified to save a longaxis and a shortaxis instead of two length calculations.
  • Label showing bug for orthogonal lines is fixed
  • A status notification is added to notify when there are no dicom files in the upload.
  • Backend functionality to flag an image is added, the UI functionality will be added in future releases.
  • Color dicom image display support is added.
  • Aim upload is extended to fill in the missing entities in the aim file when the series referred by the Aim file is present in the repository at the time of the upload.
  • Updated the file upload to not depend on the extension while checking whether the file is dicom or not.
2.6 05/28/2017 New functionalities:
  • All the plugins are migrated to Matlab r2016b. You need to install MCR for 2016b and update your
    • Install mcr2016 by following the instructions in Installing
    • Make a backup of your (in ~/DicomProxy/bin/)
    • Open your and update your export LD_LIBRARY_PATH line as export LD_LIBRARY_PATH=/home/epad/DicomProxy/etc/scripts\ /so:/opt/MATLAB/MATLAB_Compiler_Runtime/v91/runtime/\ glnxa64:/opt/MATLAB/MATLAB_Compiler_Runtime/v91/bin/\ glnxa64:/opt/MATLAB/MATLAB_Compiler_Runtime/v91/sys/\ os/glnxa64:/opt/MATLAB/MATLAB_Compiler_Runtime/v91/\ sys/java/jre/glnxa64/jre/lib/amd64/native_threads:\ /opt/MATLAB/MATLAB_Compiler_Runtime/v91/sys/java/\ jre/glnxa64/jre/lib/amd64/server:/opt/MATLAB/MATLAB\ _Compiler_Runtime/v91/sys/java/jre/glnxa64/jre/lib\ /amd64:$LD_LIBRARY_PATH And export XAPPLRESDIR line as export XAPPLRESDIR=/opt/MATLAB/MATLAB_Compiler_\ Runtime/v91/X11/app-defaults
    • Restart epad twice
  • Support for handling animal dicoms which use the same patient id for different animals. (We create a combination id using id and name -as id_name, removing whitespace and replacind / with -) The annotations created for these patients has an additional field originalId which contains the non-altered id. A new version of the Aim Schema is created for this (AIM_v4_XMLStanford.xsd). It will be copied to your DicomProxy/resources/schema/ folder. You should change the xsdFileV4 in your file to point to this file if you want to use this functionality.
  • Empty study description filled with protocol name
  • Vanderbilt plugin is added. It calculated the T1 Map on Philips MR images and overlays a color/heat map over the images. Contact ePAD team to install the plugin in your ePAD instance.
  • The frames api endpoint is enhanced to include the recommended color of the segmentation
  • • User can disable ROI calculations. To disable calculations, click on the info icon on the top right corner, click on Settings and uncheck the “Enable ROI calculations” checkbox.

Improvements and bug fixes:

  • DicomRT migration code updated and improved with MAASTRO’s dicom file interface code ( and segmentation objects writing in matlab. When a DicomRT object is uploaded ePAD will create Dicom Segmentation Objects for each ROI.
  • Tedseg is improved with segmentation object writing code in matlab to increase the speed.
  • Aim upload is enhanced with the ability to fill in missing data in the aim file if the series exists in the ePAD instance’s repository
  • Authentication mechanism is enhanced to accept SessionID in the parameter to overcome the CORS obstacles when using the ePAD API from javascript. This needs setting up an application key in the proxy-config file and sending it.
  • ePAD is enhanced to recognize the missing pngs and trigger regenerating them on the image open
  • Bug on visualizing segmentations on multiframe images is fixed
  • Bug on downloading template that exists in multiple projects is fixed
  • Bug with worklists display is fixed. The user can open and close a study in worklist mode.
  • Annotation ROI calculations are saved correctly in AIM file depending if ROI calculation is disabled or enabled.

Important Note For Docker Users

  • People who are actively using docker version of epad needs to follow these steps to move to MCR r2016b

    NOTE: If your host machine is a mac, you will lose your log data.

    You can go inside the container to make a backup of /root/DicomProxy/log

    NOTE: If your host machine is a mac, you will lose your template files.

    Download your templates before updating ePad

    First step, remove old epad_web
  • docker stop epad_web
  • docker rm epad_web
  • Second step,install latest epad_web
  • run to install the latest version of epad_web
  • Third step, restart epad_web after the starting process is finished, you need to restart epad_web again by using the commands:
  • docker stop epad_web
  • docker start epad_web
2.5 02/18/2017 New functionalities:
  • A new user interface is added for admin to reset users’ passwords.
  • A new MPR view which uses AMI is added to ePad. Currently it supports only displaying a series.
  • Started to collect cumulative monthly statistics
  • Osirix ROI Export XML upload support is added. Creates separate annotation for each ROI using the ROI Only template

Improvements and bug fixes:

  • Line lengths are added for orthogonal lines
  • Recist ADLA is improved to store the calculated standard deviation in the Aim file.
  • Template upload as a zip file bug is fixed
  • Aimapi is modified to generate dicom compliant UUIDs. The UUID's are generated using a class created for GWT by Robert Kieffer and converted to decimal using a modified version of Pixelmed library's UUIDBasedOID and BigInteger data type.
  • Aim count bug in the search view is fixed
  • Frames endpoint is extended to contain category type id, name and color for segmentation objects
  • User delete bug for users with existing worklists is fixed
  • Annotation deletion and storing is improved to handle multiple annotations for the same segmentation object (to improve DicomSR support)
  • Image reading routine modified to handle instance numbers that are too large
  • Updated the script check in startup to copy missing scripts
  • Startup code enhanced to get the correct delete scripts for docker instances
  • Delete endpoints are extended to respond to the OPTIONS call to facilitate api use from javascript
  • Study creation date showing bug in search view is fixed.
  • Separate Real World Value Map file is created for PET files during DicomSR creation (when downloading annotations with Dicom checkbox checked)
  • RDF statements are removed from the aim files
  • The segmentation saving bug when no category/type is selected is fixed
  • The bug causing the image to go back to original display if user hovers over projects panel when an image is zoomed and panned is fixed
  • Unassigned list is enhanced to handle unassigned studies where the subject already exists in the system
  • Resetting password is improved to handle mail server failures
  • A statistics chart is constructed and published in epad website

2.4 11/26/2016 New functionalities:
  • AIM to DicomSR, DicomSR to AIM conversion is implemented. If you choose Dicom when you are downloading an annotation, the system will automatically convert the aim to DicomSR if it can and download it with SR abbreviation added to the name. If you upload a DicomSR object, it will be automatically converted to an aim and added to the project. DCMQI library is used as a mediator for conversion to and from DicomSR, thus it does not support question/answers or geometric ROIs yet.
  • Support for reading and viewing parametric maps is added.
  • RWVMs for PET images are created during the AIM to DicomSR conversion.
  • Started collecting template statistics
  • Multiframe support is added

Improvements and bug fixes:

  • Updated the pixelmed library to version dated 20160907
  • Min, max, mean and standard deviation calculations for segmentations
  • File endpoint zip upload bug is fixed
  • All of the header information is populated by the images endpoint for better handling of ultrasound images.
2.3.2 10/16/2016 New functionalities:
  • Multiframe support is added
  • Semantic annotation interface for segmantations is added. The list is based on Slicer’s Generic Anatomy list.
  • Recist ADLA shows histogram for lines
  • Added Connection synchronization between ePad and Dcm4chee . This requires JmxUserName and JmxUserPassword under the file if you are using different credentials for Jmx

    • Example credentials for file.
    • jmxUserName = admin
    • jmxUserPassword = admin

  • Connection synchronization adds automatically CDRECORD in your connection list.

Improvements and bug fixes:

  • The bug related to deleting from non-assigned project and deleting from all project in case the subject is not in any other project is fixed
  • Perpendicular line tool bug is fixed
  • Missing study id in editing dso is fixed
2.3.1 10/24/2016 Version number fixed
2.3 10/24/2016 New functionalities:
  • Added diplaying series which has images with different sizes
  • Creating segmentations on a series which have different size images
  • Ability to setting a project as private or public , including “all” project
  • Local Plugin Manager: is a new script which works with ePad and should be used to install a local plugin to your ePad server and/or editing your existing plugin parameters on your server.

This script analyses the input files and creates a plugin, uploads the template and the parameter files if exists and copies the jar to plugins directory. Parameters used for the script :

  • -j Jar file full path
  • -mj Matlab Jar file full path
  • -t Template file full path
  • -p Parameter file full path
  • -c Class name (including the package name, case sensitive). If you do not specify we try extracting from the jar file
  • -m Does the plugin process multiple aims at once? Default is false.
  • -n Name of the plugin. Should be same with the name in the handler class. If you do not give a name the name in the class is used
  • -o Overwrite
  • -h Display help

Sample usages

  • Creating plugin
  • ./ -j ~/myplugin-1.1.jar -t /root/myplugin/myplugin-template.xml : extracts all information from the files
  • -./ -j ~/myplugin-1.1.jar -t /root/myplugin/myplugin-template.xml -c edu.stanford.epad.plugins.myplugin.MyPluginHandler -m false -n myplugin : more detailed parameters, manager checks if they match
  • -./ -j ~/myplugin-1.1.jar -mj ~/myplugin-matlab-1.1.jar -t /root/myplugin/myplugin-template.xml -o : overwrite the plugin with new information extracted from the files
  • Adding parameters
  • ../ -p /root/myplugin/myplugin-parameters.xml -n myplugin -o : adds the parameters in the file to the plugin, deletes all existing and adds from scratch

Improvements and bug fixes:

  • Checking if the template with the same code exists in the system to avoid the duplication for templates
  • Verifying if the latest version of the aim files are downloaded when downloading a project
  • CORS improvements for connecting ePad with client-side javascript.
2.2 9/01/2016 Notes:
  • File system templates are not supported anymore. If you are still using them, please retrieve them from your machine (~/DicomProxy/resources/templates/) and upload them using templates window. If you get syntax error when uploading please update your xsd file in ~/DicomProxy/resources/schema with the one you download from this link
  • If you had any kind of template other than image, please download your template file, add templateType in the Template tag between Template and uid (Unfortunately ATB does not support this)