From 77e57ca2665e3b4611efcbf8f3b911caf4384895 Mon Sep 17 00:00:00 2001 From: Tamas Ungi <ungi.tamas@gmail.com> Date: Mon, 13 Sep 2021 14:47:55 -0400 Subject: [PATCH] Re #46: Added ultrasound 2D and 3D view --- LumpNav2/LumpNav2.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/LumpNav2/LumpNav2.py b/LumpNav2/LumpNav2.py index 6f59481..54bf200 100644 --- a/LumpNav2/LumpNav2.py +++ b/LumpNav2/LumpNav2.py @@ -826,6 +826,31 @@ def setup(self): self.setupTransformHierarchy() + # Show ultrasound in 2D view + + layoutManager = slicer.app.layoutManager() + # Show ultrasound in red view. + redSlice = layoutManager.sliceWidget('Red') + controller = redSlice.sliceController() + controller.setSliceVisible(True) + redSliceLogic = redSlice.sliceLogic() + image_Image = parameterNode.GetNodeReference(self.IMAGE_IMAGE) + redSliceLogic.GetSliceCompositeNode().SetBackgroundVolumeID(image_Image.GetID()) + # Set up volume reslice driver. + resliceLogic = slicer.modules.volumereslicedriver.logic() + if resliceLogic: + redNode = slicer.mrmlScene.GetNodeByID('vtkMRMLSliceNodeRed') + # Typically the image is zoomed in, therefore it is faster if the original resolution is used + # on the 3D slice (and also we can show the full image and not the shape and size of the 2D view) + redNode.SetSliceResolutionMode(slicer.vtkMRMLSliceNode.SliceResolutionMatchVolumes) + resliceLogic.SetDriverForSlice(image_Image.GetID(), redNode) + resliceLogic.SetModeForSlice(6, redNode) # Transverse mode, default for PLUS ultrasound. + resliceLogic.SetFlipForSlice(False, redNode) + resliceLogic.SetRotationForSlice(180, redNode) + redSliceLogic.FitSliceToAll() + else: + logging.warning('Logic not found for Volume Reslice Driver') + # Create models createModelsLogic = slicer.modules.createmodels.logic() @@ -947,6 +972,7 @@ def setupTransformHierarchy(self): imageImage.CreateDefaultDisplayNodes() imageArray = np.zeros((512, 512, 1), dtype="uint8") slicer.util.updateVolumeFromArray(imageImage, imageArray) + parameterNode.SetNodeReferenceID(self.IMAGE_IMAGE, imageImage.GetID()) imageImage.SetAndObserveTransformNodeID(imageToTransd.GetID()) def updateImageToTransdFromDepth(self, depthMm):