# Is it better to integrate settings from Module B into Module A for improved user workflow (or user convenience)?

**URL:** <https://discourse.slicer.org/t/is-it-better-to-integrate-settings-from-module-b-into-module-a-for-improved-user-workflow-or-user-convenience/41189>\
**Category:** Development\
**Created:** [January 21, 2025, 11:34am UTC](https://discourse.slicer.org/t/is-it-better-to-integrate-settings-from-module-b-into-module-a-for-improved-user-workflow-or-user-convenience/41189 "2025-01-21T11:34:07Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![shahrokh](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/shahrokh/32/1499_2.png) [@shahrokh](https://discourse.slicer.org/u/shahrokh)\
**Post date:** [February 18, 2025, 11:10am UTC](https://discourse.slicer.org/t/is-it-better-to-integrate-settings-from-module-b-into-module-a-for-improved-user-workflow-or-user-convenience/41189/7 "2025-02-18T11:10:29Z")

</div>

Excuse me…  
I was able to move one more step forward. Instead of using the command

```auto
myIsodoseSurface = slicer.vtkSlicerIsodoseModuleLogic().CreateIsodoseSurfaces(object_vtkMRMLIsodoseNode)

```

I executed the following command (as mentioned in the guidance provided in question of [Call SlicerRT Isodose (or create isodoses) from python](https://discourse.slicer.org/t/call-slicerrt-isodose-or-create-isodoses-from-python/4506/7)):

```auto
myIsodoseSurface = slicer.modules.isodose.logic().CreateIsodoseSurfaces(object_vtkMRMLIsodoseNode)

```

Therefore, the full commands executed are as follows:

```auto
doseVolumeNode = slicer.util.getFirstNodeByClassByName('vtkMRMLScalarVolumeNode', '2: RTDOSE: DOSIsoft:RTDOSE:Phase #1 Dosi Dosi 1: Beam setup 1 (GY) [11]: Beam setup 1')
object_vtkMRMLIsodoseNode = slicer.vtkMRMLIsodoseNode().CreateNodeInstance()
object_vtkMRMLIsodoseNode.SetScene(doseVolumeNode.GetScene())
object_vtkMRMLIsodoseNode.SetReferenceDoseValue(47)
object_vtkMRMLIsodoseNode.SetDoseUnits(slicer.vtkMRMLIsodoseNode.Gy)
object_vtkMRMLIsodoseNode.SetAndObserveDoseVolumeNode(doseVolumeNode)
#myIsodoseSurface = slicer.vtkSlicerIsodoseModuleLogic().CreateIsodoseSurfaces(object_vtkMRMLIsodoseNode)
myIsodoseSurface = slicer.modules.isodose.logic().CreateIsodoseSurfaces(object_vtkMRMLIsodoseNode)

```

As you can see in the image below,

 ![Screenshot from 2025-02-18 14-27-29](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/4/5/453addf9589426cf63cc73ecc726d138afd0bb3e.png)

similar to the `Isodose` module execution, which produces a model output placed in a folder, when running the command of:

```auto
myIsodoseSurface = slicer.modules.isodose.logic().CreateIsodoseSurfaces(object_vtkMRMLIsodoseNode)

```

this folder is also created, but it is empty, and the 3DSlicer environment completely freezes, to the point where none of the icons in the red, yellow, or green windows are selectable. In the end, I have to close 3DSlicer.

I think I am getting closer to my answer.  
Please guide me.  
Best regards.  
Shahrokh.

---

_[View the full topic](https://discourse.slicer.org/t/is-it-better-to-integrate-settings-from-module-b-into-module-a-for-improved-user-workflow-or-user-convenience/41189)._
