Edit this page

NA-MIC Project Weeks

Back to Projects List

Cast interface module for 3D Slicer: Service Providers, Image Display client and Hub.

Key Investigators

Project Description

Cast interface Module for 3D Slicer: Service Providers, Image Display client and Hub.

Service Providers: Service providers subscribe to all user topics for dicom events and send back results to the user. Each service provider has its own onMessage script. The script handles producing the results from the DICOM files received and publishes a dicom-send event back to the user topic.

Image Display Client: The image display client provide a PACS client type interface to the 3D slicer viewer. Supported events should be ImagingStudy-open, Imaging-Study-close, dicom-send and request for sceneview.

Hub: The hub is the server that distributes the messages and handles the data transfer requests over the websocket connection to each client.

Objective

Approach and Plan

Progress and Next Steps

Online example: https://examples-vtkjs.d2pxx3mhr69djy.amplifyapp.com/examples/CastClient.html

Illustrations

VolView using a segmentation service provider:

Cast Interface Module:

image

Cast hub:

image

Background and References

What is Cast? Cast is an offshoot of FHIRcast (https://fhircast.hl7.org/). FHIRcast is the standard replacing Epic’s file drop interface for integration with PACS and reporting systems. It provides a secure messaging infrastructure using a hub with websocket subscriptions.

Cast differs to FHIRcast in the following way:

Mission: Cast is focused on desktop integration of healthcare applications. It is not restricted to a specific data format. Cast is also not restricted to a specific authentication mechanism; it expects that apps will authenticate with the customer’s system. Cast aims to provide a general framework that can support all use cases by adding data types with verbs (events), for example, nifti-send.

Features: In addition to FHIRcast events, the cast hub allows the following:

For testing and development, the hub provides a test mock auth endpoint that assigns a user when none is provided. A “single-user” mode is available for stand-alone applications that do not use authentication. The hub mock auth endpoints are the same as keycloak to facilitate integration.

Hub availability and complexity are possibly the main obstacle to the deployment of this technology; therefore the hub is kept as simple as possible and only handles message handling. The cast_api.py script used for Volview server and 3D slicer is @2000 lines and the admin.html portal as well.

The cast hub does not support context management. That strategy was tried 30 years ago with CCOW ( https://en.wikipedia.org/wiki/CCOW ) and failed. Context is to be retrieved from the relevant applications directly through the request mechanism.

https://projectweek.na-mic.org/PW44_2026_GranCanaria/Projects/CastAStandardForRealTimeFrontEndIntegrationOfHealthcareApplication/

VolView cast interface:

Image

VTK-JS worklist cast client example:

Wasserthal J., Meyer M., , Hanns-Christian Breit H.C., Cyriac J., Shan Y., Segeroth, M.: TotalSegmentator: robust segmentation of 104 anatomical structures in CT images. https://arxiv.org/abs/2208.05868