Slicer has been supporting loading, saving, replaying, editing of sequences of arbitrary nodes through Sequences extension.
Sequences extension has not been integrated into the Slicer core yet because:
- Behavior of MRML nodes is not consistent (e.g., copy operation sometimes performs deep copy - most of the cases - but sometimes just shallow copy). It is also not known what events the node emits that indicate change in the node (sometimes there are custom modified events that indicate changes in the node's data). vtkMRMLNodeSequencer class was implemented to provide these features without changing the MRML nodes but these features should be provided by each MRML class.
- Overlap with multivolume infrastructure: sequences generalize multivolume functionality (it can handle any node sequence, not just volumes). It would be better to completely replace multivolume infrastructure but that would mean that some features would need to be added to Sequences that are currently missing, and modules that use multivolume infrastructure would need to be modified.
All these somewhat backward incompatible changes could be implemented in Slicer5.
- Add Sequences extension to the Slicer package (maybe even add it to Slicer core proper?) - https://issues.slicer.org/view.php?id=4461
- Move all vtkMRMLNodeSequencer features to MRML nodes
- Deep/Shallow copy (https://issues.slicer.org/view.php?id=2608)
- Implement missing multivolume features in Sequences
- Remove multivolume (to be discussed, maybe just deprecate it and remove in a few years?)