December 2025 Cycle Report

Published 5 Jan. 2026

🚀 Faster viewer start-up¶

Whenever a user views images—whether in a reader study, an algorithm result, or an archive item—they are assigned a container that hosts the MeVisLab-based viewer. This assignment process includes several mandatory steps: user verification, selection of the nearest AWS region, container startup, and initialization of the MeVisLab application. These steps must be completed before any image viewing can begin, regardless of whether rendering occurs server-side or client-side, and they contribute significantly to the initial startup latency.

This process can be optimised by maintaining a pool of pre-initialised containers that are ready for immediate use and assigning them to users on demand.

In this cycle, we made the first steps for this optimisation by removing the user-specific configuration in our viewer containers. This will allow us to assign these containers to a user after initialisation.

⬆️ Reworking the image upload functionality¶

The introduction of DICOM as a supported image type necessitated a critical review of the existing image upload implementation. Over time, this codebase has grown into a state that is difficult to maintain and does not fully leverage the Django models and abstractions on which it is built. Refactoring this component will improve maintainability and extensibility, and will simplify the introduction of new features, such as the ability to reuse existing DICOM data. Initial work on this refactor was undertaken during the current cycle and will be completed in the next cycle.

🪲 DICOM issues¶

The DICOM functionality had a few bugs that have been fixed in this cycle:

  • The client-side de-identification library prevented users from uploading DICOM with multiple files, for example in archives or reader studies.
  • Viewing DICOM-WSI suffered from a scaling issue, causing overlays and annotations to be displayed incorrectly.
  • We have added examples of DICOM image loading and writing to the templates of both algorithms and the starter kits of challenges. We've only provided minor examples, as reading and writing DICOM images are non-trivial problems! Though, we hope the new example will help you get started.

📏 Toggle scalebar visibility in viewitems¶

You can now toggle the scalebar in viewitems. To hide the scalebar for a specific viewitem, set its scalebar_visible property in your custom hanging protocol. See the hanging protocol docs for details: https://grand-challenge.org/documentation/viewer-layout/#hanging-protocol


Cover photo by Aaron Burden on Unsplash