<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer%2FFeatures%2FModules</id>
	<title>Slicer/Features/Modules - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer%2FFeatures%2FModules"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;action=history"/>
	<updated>2026-05-19T14:06:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4279&amp;oldid=prev</id>
		<title>Marianna: /* Links */</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4279&amp;oldid=prev"/>
		<updated>2008-05-19T16:19:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Links&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 16:19, 19 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l147&quot; &gt;Line 147:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 147:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;=Links=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;=Links=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;* [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;2007_December_Slicer_IGT_Programming#Plug-in_mechanism&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;* [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://www.na-mic.org/Wiki/index.php/&lt;/ins&gt;2007_December_Slicer_IGT_Programming#Plug-in_mechanism &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2007 December Slicer IGT Programming&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4043&amp;oldid=prev</id>
		<title>Marianna: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4043&amp;oldid=prev"/>
		<updated>2008-05-15T18:17:29Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:17, 15 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4042&amp;oldid=prev</id>
		<title>Csoma at 20:42, 13 December 2007</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer/Features/Modules&amp;diff=4042&amp;oldid=prev"/>
		<updated>2007-12-13T20:42:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;&amp;lt; [[Slicer/Features]]&lt;br /&gt;
&lt;br /&gt;
=Title=&lt;br /&gt;
Slicer modules: base and plugins&lt;br /&gt;
&lt;br /&gt;
=Names=&lt;br /&gt;
*session leader&lt;br /&gt;
&lt;br /&gt;
*participants&lt;br /&gt;
&lt;br /&gt;
=Technology/Function description=&lt;br /&gt;
&lt;br /&gt;
=Discussion=&lt;br /&gt;
== December 13, 2007 ==&lt;br /&gt;
* David Gobbi: Option to turn off modules for OR&lt;br /&gt;
* Steve Pieper: Needs refactoring so it will be as flexible as Slicer 2 (runtime). Slicer 3 is cMake based (pre-compilation). I would prefer run-time dynamic. This would allow distributing modules independent of the base.&lt;br /&gt;
* Louis Ibanez: The benefit would be a standard Slicer for everybody. How about testing?&lt;br /&gt;
* Peter Kazanzides: It's the user's responsibility to make it sure it was tested before going to OR&lt;br /&gt;
* David: and turn off the loading of modules at startup.&lt;br /&gt;
* Louis: Versioning?&lt;br /&gt;
* Stephen Aylward: It's useful to have this versioning, for ex. VTK/ITK.&lt;br /&gt;
* Steve P.: The nightly build should build the modules also, and test them together.&lt;br /&gt;
* Csaba Csoma: So we all agree that dynamic modules is a good thing. Question: what is module, what is basic functionality?&lt;br /&gt;
* Steve P: Base Features vs. Modules. Csaba's right, we should make for ex. Diffusion Imaging modular, because it's pretty specific.&lt;br /&gt;
* Noby Hata: There are classes that can go only to base, like tracker?&lt;br /&gt;
* Steve P: Theoretically we can make it generic enough. Should the concept of tracker be a base, or just the transform?&lt;br /&gt;
* Steve A: Can a module bring in any library?&lt;br /&gt;
* Steve P: Yes. The base can't depend on Matlab, but a module can.&lt;br /&gt;
* Steve P: Static modules are restrictive, because you can't extend for ex. for full VTK/ITK library if you have a limited one compiled in.&lt;br /&gt;
* Sebastien Barre: Start up time?&lt;br /&gt;
* Steve P: Might not be affected.&lt;br /&gt;
* Liver RF 2D point of view (see next section): the functionality is in VTK, needs work to be exposed by Slicer&lt;br /&gt;
* Steve P / Noby H.: Tracked view point (each slice or for the 3slice view)&lt;br /&gt;
* Steve A: Record pre-selected views and bring it up easily when needed&lt;br /&gt;
* Noby: make sure the base does not rely on any module&lt;br /&gt;
* (Non trivial case: Dynamic MRML node, dynamic based on representation in the space - geometry changes as you move it through the space)&lt;br /&gt;
* Peter: we use different size of cutters&lt;br /&gt;
* Steve P: that can be on module level&lt;br /&gt;
* David: how easy can a module use other modules&lt;br /&gt;
* Steve P: dependency can be handled. The library dependency build process should be sequenced.&lt;br /&gt;
* Csaba: make sure we talk about libraries, GUI is just a type of library/module&lt;br /&gt;
* Steve P: Load Data is generic enough to be a module?&lt;br /&gt;
* David: Not necessarily. A module can do it, so you don't necessarily had to have a generic one.&lt;br /&gt;
* Noby: How about invisible Modules or even Base elements?&lt;br /&gt;
* All: Yes, it's an important thing to do&lt;br /&gt;
* Steve P: recording / playback / logging of procedure sounds like base function&lt;br /&gt;
* Steve P: required by IGT: login - can go to the base&lt;br /&gt;
&lt;br /&gt;
== Liver RF ==&lt;br /&gt;
* Slicing class (orthogonal) &lt;br /&gt;
* Base: RT imaging class / image source &lt;br /&gt;
* Load data / save result / recording&lt;br /&gt;
* Base: Visualization: 2D view of oblique slices - arbitrary point of view&lt;br /&gt;
* Dependent on transform modules / different trackers can be used - separate from RF ablation module&lt;br /&gt;
Post processing:&lt;br /&gt;
* Volume Rendering&lt;br /&gt;
* Access to more modules&lt;br /&gt;
&lt;br /&gt;
== Prostate IGT ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Potential application in IGT=&lt;br /&gt;
&lt;br /&gt;
=Which part is already in Slicer=&lt;br /&gt;
* There's a plan to implement a flexible/dynamic module system, no real work done yet&lt;br /&gt;
&lt;br /&gt;
=What is not=&lt;br /&gt;
&lt;br /&gt;
=Who among us will take leading role?=&lt;br /&gt;
&lt;br /&gt;
== Function list ==&lt;br /&gt;
Proposed:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Features &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Base&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Module&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Visualization&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | MRML, Arbitary ViewPoint (Pre-defined)&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Liver RF&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Filtering &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | None&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Command Line Module&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | IGT &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Intra-op Image I/O&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Liver RF&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Registration &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Transform Display, Edit and Save/Resotre&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Calculae Transforms, Resample Data&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Segmentation &lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Label Maps, Parcellated Surface&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Segmentation Algorighms&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Quantification&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Label, Image, Volume Statistics; Numpy access to MRML&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Applications in Python or MATLAB&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Real-time Integration&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | VTK Rendering, KWWidgets framework, Tracker Support (as Transforms)&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Direct Manipulation of the MRL Scene; 2D/3D Widgets; Device Interface&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Diffusion Imaging&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | DWI, DTI, Fiber Bundles&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Tractography, Clustering, Atlases&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Application&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Bundles of Modules in Distribution: Registration Editor, some Filters&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Customized Extensions, Domain specific code, optimized Interface&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Base:&lt;br /&gt;
* Tracker support&lt;br /&gt;
* Image I/O&lt;br /&gt;
* Logging and replay (with accelerated replay for recovery after a crash) - Scene Scripting can be used, which is based on undo/redo mechanism (delta over time). Extension: checkpoint slides.&lt;br /&gt;
* Support for Stereo modules&lt;br /&gt;
&lt;br /&gt;
Module/function dependency&lt;br /&gt;
&lt;br /&gt;
*Tracker I/O (BWH Hata)&lt;br /&gt;
**Tracker On/Off&lt;br /&gt;
*Real-Image I/O (BWH Hata)&lt;br /&gt;
**'''Video capturing'''&lt;br /&gt;
**Simple loading image&lt;br /&gt;
**Imager control for each modality&lt;br /&gt;
***MRI (NCIGT Tokuda)&lt;br /&gt;
*Image re-slicing based on tracker (BWH Hata Liu)&lt;br /&gt;
*GUI configuration control (XXX)&lt;br /&gt;
*Human interface control&lt;br /&gt;
**Foot pedal (BWH Liu)&lt;br /&gt;
*Stereo&lt;br /&gt;
*Output to outside display&lt;br /&gt;
*Logging replay and saving&lt;br /&gt;
**IGSTK has fast version&lt;br /&gt;
**MRML scene recorder (Georgetown)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Decision: Base or Module ==&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
* [[2007_December_Slicer_IGT_Programming#Plug-in_mechanism]]&lt;/div&gt;</summary>
		<author><name>Csoma</name></author>
		
	</entry>
</feed>