Hi there, Is there any way/possibility that I can use slicer viewer in web-dashboard as well as import/call some of the extension into the dashboard without needing to install and import whole slicer app into the dashboard? Thank you.
There have been many posts about deployment of Slicer in the cloud, please do a search here on the forum.
I think lately the two options that people find most interesting are SlicerTrame and RDP-based streaming.
Hi, Thank you very much for your help. I moved forward with SlicerTrame and tested the examples which looks the way I want to employ slicer. Just wondering if you that it is possible to employ the slicer modules and extensions selectively? I started to do so and tested this for RT extension or Track lesion extension but I wasn’t successful yet. I appreciate if you have any idea to share how to employ them. Best,
Hi @Fatima.k,
SlicerTrame doesn’t support most extensions yet as the framework is quite young.
Since it doesn’t use Qt for its UI, some work is required to make the extensions available:
- Isolate the module’s logic relying on Qt from the rest of the code
- Instantiate the logic in your SlicerTrame application context
- Hook the logic to the SlicerTrame UI or add in the trame UI for the specific module
The effort required for the migration is very dependent on the extension’s implementation.
Depending on your use-case, it may be worthwhile to cherry pick the logic to integrate in your application.
Best,
Thibault
Hello @Thibault_Pelletier ,
Thank you very much for your help. I’ve been working on MultiVolume viewer to add into my application. following is the map of the work:
trame-slicer-main/
├── Dash-SlicerTrame.py
└── examples/
├── multi_volume_viewer_app.py
├── segmentation_app.py
└── viewer_lib/
I deployed the MultiVolume viewer in the dashboard by following your advice to separate the extension’s Qt-dependent UI from the reusable logic, then re-expose the needed MultiVolumeExplorer behavior through a web-compatible Panel/trame interface. Instead of trying to embed the original Slicer Qt module directly, the dashboard launches a dedicated trame/Slicer viewer process from Dash-SlicerTrame.py, initializes the Slicer-style viewer logic inside that process, and embeds the running viewer back into the Panel dashboard through an iframe. The dashboard-side Panel controls act as the replacement for the original Qt module panel: it let the user start/stop the viewer, load local DICOM or volume folders, assign background and foreground volumes, adjust opacity and window/level, and select comparison layouts. A small file-based bridge connects the Panel dashboard and the trame viewer, so commands from the dashboard are passed to the viewer while the viewer publishes its loaded-volume state back to Panel. In this way, I did not fully port the original Qt MultiVolumeExplorer widget; I reimplemented its practical workflow for the dashboard by isolating the visualization logic, launching it in a Slicer/trame context, and controlling it from custom web UI components. with all being said, this multivolume module still doesn’t work properly as the same way in slicer. I’d appreciate any thought on this that how can I make changes to make it works?
Thanks,
Fatemeh
Hi @Fatima.k,
Thx for the update, glad to hear that you are moving forward with this!
To help you further, could you clarify what kind of problems you are currently facing (difference between the Slicer behavior and the trame behavior) and what doesn’t currently work?
At some point, it may also be necessary to have a look at your code.
If you have pushed your work in progress somewhere (for instance on github), then I can further help.
Best,
Thibault