Display different images and models in different views

Dear Slicer community,
I am trying to build a training phantom for Interventional Cardiologists making use of tracked Ultrasound using PlusToolkit from @lassoan et al, as part of my master thesis. To give a big picture: The idea is to mimic a human torso, including a submerged 3D printed heart. The heart will be registered using PlusToolkit. The final goal is to provide a sample training phantom for students using tracked ICE catheters.

As a validation trial, I want to show to the students two windows: 1- containing only the US image, and 2- containing the US image plane (not necessarily containing US image data) oriented into the 3D model of the heart.

The idea is to be able to switch ON and OFF the second option while being able to show both windows on the same screen.
Is it possible to achieve such a thing using Slicer?

Just to be on the same page, when we Slicer developers talk about multi-volume rendering, we mean showing more than one volume in the same 3D view. Based on your description it seems that you want to show one volume in each view, but you want to show a different volume in the views. Maybe I misunderstand, in that case please clarify.

To show a different volume in the views, you can have different display nodes for each view, by assigning them to the corresponding view nodes. See these functions:

1 Like

Thank you for your answer!

To be more concise: There is only one volume to render, 3D heart model, which could be a STL file. The ICE (Intra-cardiac echocardiography) catheter is tracked. The US image-plane should be visualized within heart volume.

Note that the catheter will be spatially calibrated and the heart model with be registered to a tracking system beforehand.

So my idea was: to be able to switch ON and OFF the US plane within the heart volume?!

We need to clarify a few more things. An STL file is a model, and image data is called a volume in the Slicer nomenclature. Please consult the figure on the bottom of this page to get familiar with the data types:
https://slicer.readthedocs.io/en/latest/user_guide/data_loading_and_saving.html

Once you know what Slicer objects you have, please describe again the views you want. A figure or mockup is welcome.

The answer to this question is yes. I’m not sure if you can have a live image slice in a 3D view without having a slice view as well, so you may need to have a slice view in addition to your 3D views. The layout can be set in any way you want. From the GUI, the slice an be shown/hidden by clicking an eye button on the slice view’s controller widget (accessible by moving mouse to top left corner of view).

1 Like

Yes, the title is misleading, as by volumes we mean 3D voxel array, while you work with 2D voxel array and surface meshes. I’ll update the title accordingly.

Thank you for the title update. Unfortunately, at the moment I can not express myself more clearly. I am a beginner in the matter! I hope I could somehow explain myself better with the below diagram!

1 Like

Thank you, the image helps a lot. To get visualization like this, you need to do is load a 3D model (STL file), and set up real-time tracked ultrasound visualization as explained in SlicerIGT tutorials (for example, U-32).

To create a layout where a slice view and a 3D view are shown side-by-side, use this example script:
https://www.slicer.org/wiki/Documentation/Nightly/ScriptRepository#Customize_viewer_layout
Probably you just need to change type="vertical" to type="horizontal" for a horizontal layout.