https://www.slicer.org/w/index.php?title=Slicer3:Architecture/Features&feed=atom&action=historySlicer3:Architecture/Features - Revision history2024-03-29T09:42:40ZRevision history for this page on the wikiMediaWiki 1.33.0https://www.slicer.org/w/index.php?title=Slicer3:Architecture/Features&diff=4238&oldid=prevMarianna: /* Architecture */2008-05-15T20:36:13Z<p><span dir="auto"><span class="autocomment">Architecture</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 20:36, 15 May 2008</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l17" >Line 17:</td>
<td colspan="2" class="diff-lineno">Line 17:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>At a high level, these goals are to be implemented through:</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>At a high level, these goals are to be implemented through:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* A data-centric approach in which the [<del class="diffchange diffchange-inline">http://wiki.na-mic.org/Wiki/index.php/</del>Slicer3:Data_Model '''Data Model''' ] (implemented as a follow on to the MRML Tree) is implemented independent of the visualization and algorithmic components of the system</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* A data-centric approach in which the [<ins class="diffchange diffchange-inline">[</ins>Slicer3:Data_Model <ins class="diffchange diffchange-inline">|</ins>'''Data Model''' <ins class="diffchange diffchange-inline">]</ins>] (implemented as a follow on to the MRML Tree) is implemented independent of the visualization and algorithmic components of the system</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** The Data Model API allows adding, deleting, reading, and modifying medical image data types (Volumes, Models, Transforms, Fiducials, etc).</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** The Data Model API allows adding, deleting, reading, and modifying medical image data types (Volumes, Models, Transforms, Fiducials, etc).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** The Data Model provides functionality to serialize and deserialize the contents in an XML structure</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** The Data Model provides functionality to serialize and deserialize the contents in an XML structure</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l23" >Line 23:</td>
<td colspan="2" class="diff-lineno">Line 23:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** A set of Adaptor Classes will be provided to allow access to the Data Model API through ITK Image Readers/Writers, VTK Image Readers/Writers, and command line utility commands. These adaptors will support access to the data by programs that have not specifically been written to support the slicer Data Model.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** A set of Adaptor Classes will be provided to allow access to the Data Model API through ITK Image Readers/Writers, VTK Image Readers/Writers, and command line utility commands. These adaptors will support access to the data by programs that have not specifically been written to support the slicer Data Model.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* An [<del class="diffchange diffchange-inline">http://www.na-mic.org/Wiki/index.php/</del>Slicer3:Execution_Model_Documentation#Introduction '''Execution Model'''] in which algorithmic functionality is encapsulated such that they can be used in one of several modes:</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* An [<ins class="diffchange diffchange-inline">[</ins>Slicer3:Execution_Model_Documentation#Introduction <ins class="diffchange diffchange-inline">|</ins>'''Execution Model'''<ins class="diffchange diffchange-inline">]</ins>] in which algorithmic functionality is encapsulated such that they can be used in one of several modes:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** as stand-alone command line executables (for use in testing or to be called from batch scripts; these executables are also important to enable grid/distributed computing)</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** as stand-alone command line executables (for use in testing or to be called from batch scripts; these executables are also important to enable grid/distributed computing)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** as shared libraries linked into a parent application (i.e. brought into the slicer application address space where the classes can be instantiated and methods invoked with data passed as pointers)</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>** as shared libraries linked into a parent application (i.e. brought into the slicer application address space where the classes can be instantiated and methods invoked with data passed as pointers)</div></td></tr>
</table>Mariannahttps://www.slicer.org/w/index.php?title=Slicer3:Architecture/Features&diff=3791&oldid=prevMarianna: 1 revision2008-05-15T17:57:59Z<p>1 revision</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">Revision as of 17:57, 15 May 2008</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Mariannahttps://www.slicer.org/w/index.php?title=Slicer3:Architecture/Features&diff=3790&oldid=prevSpujol at 19:50, 16 October 20072007-10-16T19:50:35Z<p></p>
<p><b>New page</b></p><div>== Presentations ==<br />
<br />
Presentations:<br />
<br />
* [[Media:Slicer_3-alpha-2006-04-03.ppt|Slicer 3 Architecture Presentation 2006-04-03]]<br />
<br />
== Goals ==<br />
<br />
The main goals of the slicer3 re-work are:<br />
<br />
* Provide a clean, well-defined, flexible and functional application structure for medical image computing developers and users<br />
* Learn from user and developer feedback about earlier versions of slicer as well as other packages with similar goals<br />
* Maximize the re-use of code by making it easy use pieces of slicer in other environments and to plug diverse pieces of code into the slicer model<br />
<br />
== Architecture ==<br />
<br />
At a high level, these goals are to be implemented through:<br />
<br />
* A data-centric approach in which the [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Data_Model '''Data Model''' ] (implemented as a follow on to the MRML Tree) is implemented independent of the visualization and algorithmic components of the system<br />
** The Data Model API allows adding, deleting, reading, and modifying medical image data types (Volumes, Models, Transforms, Fiducials, etc).<br />
** The Data Model provides functionality to serialize and deserialize the contents in an XML structure<br />
** The Data Model API is structured to allow the either direct access (in the same process space with the algorithms) or through a client/server connection.<br />
** A set of Adaptor Classes will be provided to allow access to the Data Model API through ITK Image Readers/Writers, VTK Image Readers/Writers, and command line utility commands. These adaptors will support access to the data by programs that have not specifically been written to support the slicer Data Model.<br />
<br />
* An [http://www.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Documentation#Introduction '''Execution Model'''] in which algorithmic functionality is encapsulated such that they can be used in one of several modes:<br />
** as stand-alone command line executables (for use in testing or to be called from batch scripts; these executables are also important to enable grid/distributed computing)<br />
** as shared libraries linked into a parent application (i.e. brought into the slicer application address space where the classes can be instantiated and methods invoked with data passed as pointers)<br />
** a framework to enable algorithm developers to efficiently code these execution modules will be provided using ITK<br />
<br />
* A '''UI''' application interface that<br />
** presents a consistent and modern look and feel to end users<br />
** a 'thin' application layer that is independent of the data and execution implementation<br />
** a UI description language (XML) so that execution modules can be 'self describing' in terms of their parameters so that, for example, the UI elements can be provided through a --xml-help command line argument<br />
** a class hierarchy of reusable UI Widgets that enforce consistent look and feel and can be used in multiple modules<br />
** UI widgets that are 'aware' of the Data Model, UI, and other slicer3 elements to support high level operations (e.g. a coordinate system browser, a volume properties editor, a view controller, etc).<br />
** A 'trace' capability in the UI to support scripted tests and demos (possibly also user macros).<br />
<br />
* A '''Visualization''' Environment customized for medical image processing (VTK based)<br />
** A framework for representing and displaying elements of the Data Model with sub-voxel accurate rendering<br />
** Ability to represent and display composite scenes with volumes, models, landmarks, and fiducials<br />
** Ability for modules to add transient display elements (e.g. glyphs and widgets) to support interaction<br />
** Cross platform high performance rendering infrastructure<br />
** a framework to support module development<br />
<br />
* Other global features and requirements<br />
** Cross platform to at least: Windows, Linux, Mac. Solaris, SGI, AIX desirable but not critical.<br />
** As much code coverage as possible in nightly testing<br />
** Integrated with CPack for distribution and installation.<br />
<br />
== Features & capabilities "wish-list" ==<br />
<br />
See [[Slicer3:FeatureRequests|Feature and Resource Requests ]] to make a new Slicer 3 feature or resource request or to browse existing ones.</div>Spujol