October 2025 Cycle

Published 24 Oct. 2025

Continuation of full DICOM support

As described in our earlier post, we are working towards full DICOM support. This cycle we have worked on the following aspects of this major feature:

🛡️ DICOM De-Identification of DICOM-WSI

The public profile library describes our policy for de-identifying DICOM. For each supported IOD, a new profile is created. This cycle the list of supported IOD's was extended with the DICOM WSI IOD.


⬆️ Upload widget and socket kind

Uploading DICOM required the development of a new widget, since handling and storing DICOM works differently from the way we handle other data. Users also need to indicate when DICOM is the preferred storage type, which is facilitated through a new Image kind called DICOM Image Set.


🤖 Provision Algorithms with DICOM files

When an algorithm job is created with DICOM as input, these input files need to be retrieved from AWS HealthImaging, in stead of the S3 location where our other data is stored. By using the DICOM Web endpoint of Health Imaging we could implement the asynchronous retrieval of all the files associated with a DICOM volume. This asynchronous retrieval has been implemented for all data types, making the provisioning of algorithms faster overall.


🩻 View radiology DICOM in CIRRUS

Viewing DICOM radiology images in our viewer required a completely new way of retrieving data. Rather than downloading an entire image in a single thread, DICOM allows downloading an image slice-by-slice. This enables asynchronous downloading, which should result in faster image loading.

⏳ Going live

Although implementation of DICOM support through AWS HealthImaging is well on its way, these features are not available on Grand Challenge just yet. Going live with AWS HealthImaging will be announced in an upcoming blogpost, so stay tuned!


🪲 Fixed bugs in the Mask reader study feature

CIRRUS previously suffered from a few bugs related to Mask-type questions. The first issue concerned the Cancel option when editing a mask. This function did not work as expected and caused all edits to be saved, even when the user chose to cancel. The second issue involved the Mask-growing feature in the Mask editor. When this feature was activated, the existing mask became invisible, making it difficult to work with. The updated behavior now displays the existing mask with a level of transparency, allowing users to see and distinguish it clearly from their current edits.


📃 Updated documentation of the Grand Challenge API client

The documentation for the Grand Challenge API client used to be part of the Grand Challenge documentation that can be found here. We updated and moved this documentation to the client's repository. This way, it is easy to find, closer to the source code, and we will be able to test the examples in the documentation, to ensure they work as expected.


Cover photo by HUDSON | @regele on Unsplash