Image Download Tuning

Introduction

The delivery of images to the RadPix client is a very data intensive process. Cases with a large quantity of images and/or with lots of users accessing cases, both client and server performance can be adversely affected.

On the elient, the sheer number of images and amount of data being downloaded affects client responsiveness and client memory usage, as well as the amount of time that the browser horsepower is being diverted to downloading.

On the server, since each client is requesting multiple images, etc. the server response can be slowed as well.

Currently the case viewer is designed to load every image in the case when the case is loaded to provide an optimum experience for the end user. This usage scenario may not be valid in your situation.

Configuration

Currently RadPix has 2 configuration parameters that affect
both clients and server as explained below.

  1. SiteConfig->Settings->Case Cache Heartbeat milliseconds = 500 default
    • This is the number of milliseconds that the client waits before evaluating
      how many images are currently being downloaded, and if
      less than Case Cache Concurrent Requests, makes more image requests
      to the server to match Case Cache Concurrent Requests.
  2. SiteConfig->Settings->Case Cache Concurrent Requests = 4 default
    • This is the number of images that each client attempts to download at the same time.

Download Process

On the client, when a case is loaded,

* each image of the case is added to a pending download queue and 
    that download queue is processed until all images are loaded.

* in addition, a currently downloading queue is created with max entries
    equal to Case Cache Concurrent Requests

Scenario

Using the default values of 500 and 4, consider this scenario:

A. The client initially requests 4 images from the server.

B. The client waits for 500 milliseconds and then checks to see how many images are currently being downloaded. If it is less than 4, the client requests more images until the currently being downloaded count = 4.

C. Repeat Step B until the pending download queue is empty and all images are loaded.

In case view mode, all downloaded images are JPEGs, which are typically significantly smaller than DICOMs.

When the user enters edit mode, all JPEGs are discarded and DICOMs are downloaded using the same procedure.

The individual DICOMs can be 10X or more larger than the JPEGs, which affects download time, browser memory usage and browser responsiveness.

Tuning – Data Collection Procedure

The easiest way to visualize this process is to use F12 mode on the client browser. All modern browsers support this – We can assist if you need help.

  1. View the network tab so you can see the requests to the server as they are being made.
  2. Load the RadPix home page and Login or reload the home page.
    • Note that each case image sprite (several image thumbnails arranged in a single file) may appear to load twice, with 2 different names. The sprite is in fact only loaded once. This is a browser display artifact due to the way that images are requested.
  3. View a case with a large number of images.
    • Note that the JPG images tend to load in groups of 4 and every 1/2 second more images are requested as previous requests are satisfied.
    • Note also that the images are loading in the background and the browser is still responsive.
    • Compare browser responsiveness while images are downloading and after downloading is complete.
  4. Enter Edit Mode
    • Note that the images are re-downloaded as DICOMs and that the images are both larger and take longer for each to download.
    • Note also that JPEG decompression and display is handled natively by the browser, while DICOM decompression and display is handled by RadPix. The performance difference can be significant, especially when the browser is occupied downloading images.
    • Compare browser responsiveness while images are downloading and after downloading is complete.

Tuning – Empirical Tests

  1. Open a new browser, login as an admin user, set admin mode from main Gear menu, go to Site Configuration->Settings page. (Browser TAB-A).
  2. Open a new browser tab and load the home page. (TAB-B)
    • Press F12 to open the Developer Tools and select network tab.
  3. Perform the Data Collection Procedure to acquire baseline data as listed above.
  4. Select TAB-A – Admin Settings
    • Change one or both cache settings.
    • Click Save icon.
    • Do not close the popup or the browser tab
  5. Go back to TAB-B – Case Viewer
    • Force reload the page to update the Cache parameters by pressing Control-Shift-R.
    • Perform the Data Collection Procedure to acquire data.
  6. Repeat steps 4 & 5 to find what works best on your system.

Recommendations

  1. Limit the number of DICOM images per case to a reasonable number.
    • DICOMs tend to be on the order of ~0.5 MB each and multi-frame ultrasounds can be > 200 MB each. Less than 100 DICOM files per case is recommended.
    • 100s or 1000s of DICOMs in a case can have huge performance impacts especially when editing the case.
  2. The default settings above were meant to deliver content to case viewers as fast as reasonably possible.
    • This may not be your usage scenario, particularly when editing cases.