mau_igna_06
(Mauro I. Dominguez)
May 16, 2021, 12:46pm
1
BoneReconstructionPlanner is a 3D Slicer extension for virtual surgical planning of mandibular reconstruction with vascularized fibula free flap and generation of patient-specific surgical guides.
BoneReconstructionPlanner is now available in the Extensions Manager for Slicer latest preview release.
Here is a preview video:
And the link to the project:
7 Likes
mau_igna_06
(Mauro I. Dominguez)
May 25, 2021, 4:25pm
2
This extension wasn’t working due to an issue with the CMakeLists file.
The problem has been solved. Please reinstall the extension since tomorrow and it will work
mau_igna_06
(Mauro I. Dominguez)
September 29, 2021, 10:33pm
3
There was a bug that made BoneReconstructionPlanner not work on the preview release. Now it has been solved. So it works well in both stable and preview releases of Slicer.
A videotutorial of use is available here:
This video shows how to get started with the Bone Reconstruction planner, an 3D Slicer extension for virtual surgical planning of mandibular reconstruction with vascularized fibula-free flap and generation of patient-specific surgical guides.
[Mandible reconstruction | 3D Slicer Tutorial]
3 Likes
mau_igna_06
(Mauro I. Dominguez)
May 28, 2022, 6:50pm
4
There was a hard to replicate bug that caused Slicer to crash while doing some BoneReconstructionPlanner processing.
This faulty behavior has been fixed by the latest commit to the main branch.
Thanks for using BRP
mau_igna_06
(Mauro I. Dominguez)
June 18, 2022, 5:07pm
5
The bug that some times made BRP crash while creating miterBoxes and holesCylinders was solved.
Probably it had something to do with that Polydata was created and then transformed very fast and some how it produced an exception.
See details here:
committed 04:59PM - 18 Jun 22 UTC
2 Likes
mau_igna_06
(Mauro I. Dominguez)
July 21, 2022, 5:29pm
6
Finally we tracked down the real reason of the bug that made Slicer crash sometimes while creating cylinders or miterBoxes…
opened 02:41PM - 18 Jul 22 UTC
closed 11:52PM - 19 Jul 22 UTC
type:bug
## Summary
BoneReconstructionPlanner crashes 70% of the time while using vtkTub… eFilter (in the latter part of the workflow).
Previously these kind of messages have appeared:
```
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AC40A620)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AC40A520) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2ACBE2960)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2ACBE5060) has 0 connections but is not optional.
[ERROR][VTK] 17.07.2022 19:48:27 [vtkCompositeDataPipeline (000001F2AB3176F0)] (D:\D\P\S-0-build\VTK\Common\ExecutionModel\vtkDemandDrivenPipeline.cxx:668) - Input port 0 of algorithm vtkTubeFilter(000001F2AB3170F0) has 0 connections but is not optional.
```
The number of different memory directions matches the quantity of mandiblePlanes that are being observed. The error appears to print one per 3D view render. If you set the plane locked, that plane doesn't produce this error any more.
## Steps to reproduce
1. Follow BoneReconstructionPlanner tutorial till you have a mandible reconstruction simulation achieved. (Takes 15minutes or 5minutes if you already did the segmentations)
2. Look at the error log (those error will be there)
3. If you go on with the workflow, later when you have to use some cylinders (vtkTubes) Slicer has 70% probability of crashing. Losing all the surgical planning that wasn't saved.
## Expected behavior
Slicer does not crash
## Related
https://discourse.slicer.org/t/error-vtk-input-port-0-of-algorithm-vtktubefilter-has-0-connections-but-is-not-optional/22153/3
## Environment
- Slicer version: Slicer built today with current source (5.1.0 2022/07/08)
- Operating system: Windows 10
## Proposed reason
https://github.com/Slicer/Slicer/blob/57a9ad15f4948bda3698c9b57d56aa7abe07e97e/Modules/Loadable/Markups/VTKWidgets/vtkSlicerPlaneRepresentation3D.h#L92
https://github.com/Slicer/Slicer/blob/57a9ad15f4948bda3698c9b57d56aa7abe07e97e/Modules/Loadable/Markups/VTKWidgets/vtkSlicerPlaneRepresentation3D.cxx#L248-L251
Inside other function of the class:
https://github.com/Slicer/Slicer/blob/57a9ad15f4948bda3698c9b57d56aa7abe07e97e/Modules/Loadable/Markups/VTKWidgets/vtkSlicerPlaneRepresentation3D.cxx#L494
## Solution
https://github.com/Slicer/Slicer/pull/6468
## Additional info
I couldn't do backtrace analisys with Slicer in "debug mode" or in "release mode with debug info" on Visual Studio 2019. Slicer wouldn't launch saying there is some CTK .dll missing
I’m sure users will be glad to know this is now really fixed
2 Likes
mau_igna_06
(Mauro I. Dominguez)
October 9, 2022, 9:21pm
7
There was another bug on Slicer (tracked here ) that made the crash happen and it will be solved soon since we found a way to make it reproducible.
The BRP team
1 Like
mau_igna_06
(Mauro I. Dominguez)
December 3, 2022, 12:21am
8
On the next weekends, since I do this ad-honorem, I’ll be creating BoneReconstructionPlanner self-tests that will allow other developers to maintain and improve this extension.
2 Likes
mau_igna_06
(Mauro I. Dominguez)
December 15, 2022, 7:21pm
9
The tests development for BoneReconstructionPlanner is moving forward.
Here is video of a Virtual Surgical Planning workflow for mandible reconstruction:
Soon, probably, there will be tests for anatomical surgical guide creation also.
Best wishes,
MScEng Mauro I. Dominguez
2 Likes
Hi!! I have problem with this plug in. I tried with different PCs but 3D slicer crashes when I use the plug-in. Any ideas? It would be very useful to be able to use it. Thanks.
mau_igna_06
(Mauro I. Dominguez)
November 17, 2023, 1:13pm
11
Hi.
I just made a Virtual Surgical Plan and could create the reconstructed neomandible and the fibula surgical guide yesterday. Be sure to be using “Slicer 5.2.2 Stable” release.
I’ll finish my planning today making the mandible surgical guide but I’m not expecting to find any problems. I did not experience any crash.
Please follow this instructions and report where you get the crash or you get stuck. Then I can help further.
mau_igna_06
(Mauro I. Dominguez)
November 18, 2023, 1:34pm
12
I could finish the mandible surgical guide yesterday without problems
Hi!! I uninstalled and reinstalled version 5.2.2 and it worked without any problems! Thank you very much for helping!!
mau_igna_06
(Mauro I. Dominguez)
November 20, 2023, 3:16pm
14
Hi
Do you mean you could finish the virtual surgical planning and export the neomandible and personalized surgical guides by following the instructions by yourself?
EDIT: @francesca_flore liked this comment so most probably she got it working
1 Like
Right! But it doesn’t work with subsequent versions… I have tried with 5.4.0 and 5.5.0
mau_igna_06
(Mauro I. Dominguez)
November 20, 2023, 3:37pm
16
Good to know. Thanks
This would be solved in future
mau_igna_06
(Mauro I. Dominguez)
January 5, 2024, 8:59pm
17
Since the commit below all appears working for me now on Slicer 5.6.1
committed 08:34PM - 27 Dec 23 UTC
BUG: increase point density of surgical guide objects to decrease chance of fail… ing boolean operations;
BUG: correct very unrealistic shading of surgical guide boxes
Please report if not
Mauro
I’ve been using this extension on 5.6.1 and it seems to crash every time I perform the boolean operation. I’ve tried deleting and re-installing, same problem.
mau_igna_06
(Mauro I. Dominguez)
March 4, 2024, 4:46pm
19
If you can provide a video showing what happens and zipped file with a Slicer scene to reproduce the problem I’ll be able to fix it
Thank you for the timely response!
I can send a video but it does not show much, I’ve been following the tutorial in the README and have done everything up to the boolean operation for the fibula guide base. Slicer stops responding as soon as I click it. I have gotten it to run on slicer 5.2.2, but the boolean operation fails instead of crashing the program. I have a link to my zipped file
Nolan Bennett Cutting Guide Test.zip
1 Like