Slicer3:Slicer3 Requirements
From NAMIC Wiki
Home < Slicer3:Slicer3 Requirements
Contents
High level requirements discussed at the February 2006 meetings in Clifton Park
General Requirements
- User interface will be single threaded
- Cross session state
- Tracing
- Algorithms can be multi-threaded
- Undo/Redo
- Guaranteed performance
- Exceptions vs events vs error messages
- Events are more robust
- MRML
- Independent of vtk/itk
- Is it a Slicer project or for a larger community
- Handling of meta data
- Mixture of vtk/itk + mrml
- Mrml only
Requirements - Languages
- Scripting language
- Not in Slicer base
- But should be wrappable
- Modules can use whatever
- C++ preferred
- Tcl, python, shell scripts allowed
- Programming language – C++
- Data model – MRML
- Module description language – JSON XML ??
Requirements - Toolkits
- UI toolkit – kwwidgets
- System toolkit – kwsys
- May need enhancements
- Sockets, pipes …
- Logging
- ??
- Imaging/Segmentation/Registration toolkit – itk2.x
- Visualization toolkit – vtk5.x
- Structured Image I/O – itk IO factory
- Headerless – nrrd, meta
- DICOM
- gdcm
- DICOM Query/Retrieve
- dcmtk
- Other dataset I/O – vtk
- Containers - Standard template library
- Level of exposure
- Command line parser
- Candidates
- Tclap
- meta
- Kwsys
- Cli
- Candidates
Requirements - Software Engineering
- System build – CMake
- System test – Dart 2/CTest
- System packaging - CPack
- Style
- Kwstyle
- Each toolkit will use its own style
- Slicer
- Vtk/itk
- Documentation
- Object Classes with doxygen style
- Word/Powerpoint
- Courseware
- Powerpoint/html
- Future Issuse
- Process
- Backward compatibility
- Software Review process