Seeing as that Sequences are going to be the new era of browsing through multiple volumes, transforms, etc… I think it would be appropriate to integrate sequences into the core of Slicer without being an optional extension.
To do this, I think the following should be done, please let me know if I am missing something:
- qSlicerSequencesReader to work with the Core IO manager
- A sample sequence to be included in the SampleData module (one is already uploaded here by @lassoan)
- slicer.util to have a loadSequence method
- SampleData module to have a method to load a sample sequence
I think I achieved the last two here, but the first one requires C++ and I am only proficient with C programming as of yet, so I need some help on this.
While all these can be added to Slicer without any changes to the core due to plugin interfaces (you can register IO plugins, sample data etc. in extensions and they appear the same way as if they had been implemented in Slicer core). However, I agree that it is probably time to make Sequences extension included in the Slicer download package. If there will be no argument about it, I’ll do it by the end of the week.
I will second the vote that it would be valuable as part of the downloaded package.
Related to Ben Wilk’s little workaround script for DICOM->Sequences, I am going to add the OnNodeLoaded callback from the DICOMDetailsPopup widget.
Then, I’ll investigate a proper solution.
Edit: This has already been accomplished. Simply use the ioManager Qt connect mechanism to catch the nodeLoaded signal
Simply use the ioManager Qt connect mechanism to catch the nodeLoaded signal
Could you please point me to docs where I can find how to do this?
Thanks. So which file am I supposed to edit to add a SequenceImporterPlugin?
Oh!! The proper fix.
@lassoan will have to help with that. You could look for multi volume in DICOM and adapt to handle sequences as well.
What is the status ? Now we started working toward Slicer 5.x, do you think it is ready for inclusion ?
The main reason I did not follow through with the integration is that for a nice integration some backward-incompatible changes would be needed in the Slicer core. We can do those for Slicer5!
I added a labs page: https://www.slicer.org/wiki/Documentation/Labs/Sequences
By the way, 4D volumes can be loaded directly into Sequences nodes if Sequences extension is installed. You can set in Application settings to load into Sequence nodes by default (instead of multivolume nodes).