New Extension SegmentComparison - #2340
Conversation
|
This looks cool, thanks for submitting it 👍 I didn't look at the code closely, but one thing we do often iterate on is the name of the extension so that users can get a quick idea what it's for. In this case I think SegmentComparison or something like that would get the idea across better. |
added schema, switch to LF
Uploaded to keep LFs
|
Sure, agreed that's more descriptive! I've updated now |
|
Hi @sjh26, I've updated the name on this and then had to make some changes to the CMake file (it wasn't happy with a name with spaces despite being in quotes) but should be good to go now. Am I just waiting for the workflow to run or have I done something stupid? |
|
Sorry just seeinhg the conversation about the name. We have a SegmentComparison module in SlicerRT that implements the more typical Dice and Hausdorff segment comparison metrics. This new extension (if I saw correctly) adds two different methods. Its name could suggest that it is THE extension containing segment comparison tools, when in reality it provides additional ones. I don't have any great suggestions, but based on how we do this with the segment editor effects (basic ones in Segment Editor module and additional ones in SegmentEditorExtraEffects), it could be SegmentComparisonExtra or SegmentComparisonAddon, something like this. |
|
For users (and probably in the long term for the maintainers, too), the simplest would be to have one SegmentComparison extension. @fbrewster would you consider adding your modules to the existing SegmentComparison extension? |
|
@lassoan There is an existing SegmentComparison extension? Or are you thinking of the SegmentationReview extension (https://github.com/zapaishchykova/SegmentationReview)? It would seem reasonable to pull the SegmentComparison module out of SlicerRT into its own extension for general use and reuse by various AI workflows since it isn’t RT specific. |
|
Sorry, I did not remember correctly - as Csaba wrote as well, SegmentComparison is just a module, not a separate extension. I agree with @jamesobutler suggestion - What do you all think about creating a |
There is a very practical reason for not having done this yet, although we thought it useful a long time ago. The Dice and Hausdorff metrics are implemented (and well tested, validated) in Plastimatch, which is a really bulky dependency of SlicerRT, also used for a bunch of other things (DICOM-RT support, proton dose computation, gamma dose comparison, etc.). It has always seemed a huge task leaving Plastimatch behind, but maybe we can start approaching now that we have the powerful AI tools. The most unique feature, which is the proton calculation, is somewhat unstable (crashes more than not when run on larger CTs), and is foreseeable to be replaced by the engine in pyRadPlan (already integrated into SlicerRT). I can collect the list of functions to replace and then re-implement in VTK using Claude for example. We already have tests for the majority of the Plastimatch provided functions, but probably we'll need to add more automated tests before making the change, and we'll need to make sure the new implementations are bullet proof. What do you think? |
New extension
Tier 1
Any extension that is listed in the Extensions Catalog must fulfill these requirements.
Slicer(unless it explicitly provides a bridge between Slicer and a tool or library), because it would make it more difficult to find extensions if the name of many started with the same word.3d-slicer-extensionGitHub topic so that it is listed here. To edit topics, click the settings icon in the right side of "About" section header and enter3d-slicer-extensionin "Topics" and click "Save changes". To learn more about topics, read https://help.github.com/en/articles/about-topicsSettingsand in repository settings uncheckWiki,Projects, andDiscussions(if they are currently not used).Aboutin the top-right corner of the repository main page and uncheckReleasesandPackages(if they are currently not used)Tier 3
Community-supported extensions.
Tier 5
Critically important extensions, supported by Slicer core developers. New Slicer Stable Release is released only if all Tier 5 extension packages are successfully created on all supported platforms.