[ ] set the setting once, since you'd not be changing you parameter soon, be able to export parameters to a json file
[ ] check if my code has SOLID principles
[x] #121
[ ] #122
[ ] Slicer should ask the user if he wants to "simplify" the interface
[ ] Change the update text to "Render reconstruction"
[ ] thickness of the saw 0.5 mm to 1.25 mm, or 2mm. Combobox or spinbox?
[ ] have different "miterboxes" templates for different saw "types"
[ ] delete all stale branches as they introduce unnedeed complexity
[ ] union all "miterboxes" before doing the difference to make things faster
[ ] fibula screws cylinders should intersect the fibula line
[ ] intermidiate surgical objects which are not used to judge the planning or surgical resections should be hidden by default (from the views and from the subjectHierarchyeMenu)
[ ] allow different tolerance for screw holes and saw
[ ] allow use collision detection for adapted and normal miterboxes
[ ] add cylinders to the sides of the miterboxes (and biggerMiterBoxes) so they are not sharp
[ ] predictive holes
[ ] text annotations on the guide (e.g. identify distal and proximal)
[ ] autosave dialog? maybe when user changes from planner to guidemaker?
[x] #118
[ ] automake guidebases. Using a shader technique? faceculling?
[ ] Use SlicerDentalTools to draw the sawBoxes or even the mandibleCurve
[ ] user should be able to select miterbox orientation relative to the fibula with fiducials (over Anterior, Anterio-lateral or lateral fibula surface)
[ ] autoposition the surgical guide so bone-touching-surface is upwards. Maybe by PCA? or a concavity metric?
[ ] #157
[ ] explore joint smoothing fibula and guidebase, is fit better or easier?
[x] remove ugly equation of tolerance calculation from the documentation. Put it on other document
[ ] have a show any object selector that transforms from fibulaToMandible and from mandibleToFibula
[ ] use the automaticPlanninBranch code to tidy things up
[ ] the error of no orthogonal line in the miterBox creator happens too often. Must be addressed.
[ ] somehow autoselect the correct transform (there is one per fibula segment) to allow visualization of relative anatomy (e.g. where the pedicle vessel will end up on the patient's neck)
[ ] somehow autocalculate the miterboxes orientation with respect to the fibula. Maybe using the fibula plane normals?
[ ] have clear documentation about tolerancing and fitting
[ ] refactor the code to be more friendly for this extension to support other surgeries
[ ] have a definition or glossary of all object's in a virtual surgical plan
[ ] project the bottom of the miterBoxes to the guidebase should be possible with some orthogonal, camera perspective operation? or vtkSmoothPolydata with the second input variable on?
[ ] reconsider boolean difference of the fibula as last boolean operation to fix any non-compliant geometry?
[ ] allow reconstruction without wrapsolidying?
[ ] simplify the GUI of the module (lelft panel) by removing least changing parameter to a settings dialog
[ ] consider supporting placement guides (to join the fibula segments and the remaining mandible)
[ ] #74 (i.e mandible surgical guide with just one guidebase, one sawBox and no bridge on the plan)
[ ] make new video of 10, 20 seconds condensed usage for twitter. Tag Slicer when publishing, use the first 250ms of video for a thumbnail
[ ] biggerMitexBoxes should never be visible
[ ] give useful error messages for algorithms that can fail but do not throw exceptions (e.g. polydata algorithms)
[ ] use automatic landmark to try to create an automatic plan
[ ] have a button to switch fibulaLine direction so the reconstruction can go from clockwise to counter-clockwise using the fibula pieces and viceversa
[ ] the strategy to win userbase should be to give priority to features that are the biggest time savers to surgeons and the easiest to implement to engineers. Eg: Automate the segmentations, automate the planning so GUI use is minimized, automate guidebase creation, autodocument the case with a pdf report
[ ] autotransform the leg CT and fibula segmentation according to the fibulaLine so the Inferio-superior direction is replaced by the distal-to-proximal fibula centerline direction
[x] again test the workflow instructions completely on Slicer stable 5.2.2
[ ] in the future, after the VSP is finished once, the surgical guides (or at least the fibula one) updating the VSP parameters (mandible planes, fibula line, etc) or the boxes parameters should trigger an automatic recalculation, also of the mandible reconstruction
[ ] allow loading the dental prosthesis
[ ] append (because they do not collide) unjoined boxes, or union boxes, and union biggerBoxes (with a markupsToModel node) before their difference
[ ] allow curved planar reformat (i.e. orthopantomogram) after all plan ends to generate and check teeth planned position occlusally
[ ] make exportable configuration profiles (doctor names)
[ ] make u.i. configurable (parameters that are shown or hidden for modification during VSP and boxes creation)
[ ] allow to turn of interactive handles of sawboxes and mandibleplanes more easily
[x] #112
[x] #131
[ ] export pdf report of the case
[ ] transform the fibula CT to be oriented like the fibula line
[ ] autoselect created screw cylinders
[ ] add a neomandible assembly surgical guide
[ ] solve folder contracts after plan updates
[ ] hide unneeded folders from the hierarchieView
[ ] test if parameterNode saves everything needed
[ ] replace radius by diameter everywhere
[ ] switching between segment editor and BRP sometimes causes the background CT to change
[ ] interactive planes should restore their state after switching back to BRP module
[ ] move "create bone models from segmentations" to the right of the segmentations selection
[ ] considering both mandible and fibula are well segmented, would it be possible to automatically create the mandible curve (e.g. using AI) and fibula line (e.g. using Singular Value Decomposition)
[ ] allow safety distance distal and proximal fibulaLines to be automatically created
[ ] allow trim closing wedge protuberance (e.g. the sharp angle where fibula pieces meet) removal on the neomandible (i.e. using a PlaneCut and hidden the interaction of everything else)
[ ] "AutoResize" feature so you can set a minimum fibula segment size (e.g. 20mm) and have an enlarge segments policy by keeping only one mandible plane fixed and the remaining mandible plane positions recalculated
[x] background volume gets recentered after selecting the miterBoxes direction line. Solved in d66f1e042503b47f3dac27bacb14f0d5a9290955
[ ] add documentation to inverse mandible reconstruction
[ ] add documentation to dental implants and custom plate
[ ] add tolerance to all guiding objects
[ ] check box to lock sawBoxes and miterBoxes parameters (e.g. automatic createMiterBoxesFromFibulaPlanesButton).
[ ] Save them on BRP settings (i.e. 'qt.QSettings()')
[ ] I think we need a BRP parameter for the boxes, screwCylinders and dental implants
[ ] add function to select the implant model (e.g. hollow screw, etc)
[ ] all dental cylinders centerlines need to cross the neomandible centerline at creation
[ ] add measurements folder with angles between fibula segments
[ ] Button to hide dental implant planes (and cylinders?)
[x] delete SLICER_CHANGE_OF_API_REVISION
[ ] Show maximum angular error between dental implants (if more than 2)
[ ] add a miterBoxes configuration dialog with settings, since this parameters should not change with different patients because the workflow is already established
[ ] make miterBoxes nicer with rounded edges and preview without the biggerMiterBoxes (larger ones)
[ ] try to make boolean operations faster by appending non-touching boxes and doing boolean union of touching boxes before the final boolean union to the guidebase
[ ] Also to make the boolean operations faster the main boolean difference can be done after doing a boolean union of the biggerMiterBoxes and a external rod
[ ] switch mandibularplanes names to "MP_i" where i is the number
[ ] allow a quick skin volume rendering view without planes or boxes just to see the bone models
New Issues: