Difference between revisions of "Slicer-IGT/ForDeveloppers"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Summery==
+
<big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer-IGT/ForDeveloppers here]</font></big>
‘’’Slicer for IGT’’’ is an extension of 3D Slicer designed and customized for Image Guided Therapy. 3D Slicer is comprehensive medical image processing and visualization software for medical image computing.  There are many technical advantages to use Slicer for IGT research.
 
 
 
*Access to state of art medical image-to-image registration and segmentation algorithm
 
*Interface for commercial tracking device available in the market
 
*State-of-art patient-to-image registration methods
 
*Multi-platform support (Linux, Windows, Mac OS)
 
*Add your own software as command-line-based C or C++ program without binding it to specific toolkit or language
 
*Active discussion and collaboration with Image Guided Therapy researchers
 
*Real-time image transfer from MRI/CT/US (partially available)
 
*Access to tracking and registration data from a commercial navigation system (not yet available)
 
 
 
==Objective==
 
The objective of this page is to understand the architecture of Slicer IGT and build your own module using on Slicer.
 
 
 
 
 
==Architecture==
 
 
 
===Slicer and Opentracker===
 
[[Image:Slicer-and-opentracker.png|300px|thumb| Slicer and Opentracker]]
 
'''Slicer for IGT''' uses an external software '''Opentracker (including libopentracker.so)''' to access tracking and imaging devices. '''Slicer for IGT''' also links library version of Opentracker (again libopentracker.so) in it self. As is shown in Figure on the right, Slicer and Opentracker act as two separate software each loading its specific configuration files (config.xml and config.xml_1). The figure also show tha each loads identical library (libopentracker.so).  The Optracker software can also run on a separate computer on the net and send tracker reading over the net (Opentracker on net). Note it is opentracker, not Slicer, that connects to the tracking device.
 
 
 
===Inside Slicer for IGT===
 
[[Image:Slicer3-IGT-Architecture.png|300px|thumb| Blockdiagram of the IGT module]]
 
 
 
IGT developer should focus on writing codes in two subcomponents in Slicer: '''Modules''' and '''IGT library.''' Deteiled instruction to make your own software on the top of Slicer can be found http://wiki.na-mic.org/Wiki/index.php/Slicer3:Developers. We also provide '''vtkSlicerIGTLogic''' class in Base component of the Slicer to provide basic function for IGT applications.  However, you should be working only in two most important parts (a Module and IGT library) your will be mainly adding/creating codes.
 
 
 
 
 
 
 
'''Module''' represents a page window in Slicer, where developers can design appliation specific GUI and associated C++ codes. The codes are usually stored in one directory under Module directory of Slicer, and self-containing for one application. One application directory have one Gui class and Logic class. Instruction to build a module can be found at [[Slicer3:Interface_Design#First_steps:_How_to_build_a_Slicer3_Module_GUI | How to add an interactive module]].
 
 
 
 
 
'''IGT library''' is part of the library in the Lib directory of the codes. This is the library where people should contribute codes to share among IGT applications. The application specific codes should go into a '''Module'''.  As a starting set of shared codes, we developed three groups of classes in the IGT library. Those are classes for interfacing to tracker and imaging devices, patient-to-image registration, and tool calibration. UML description of each group of classes can be found here.
 
 
 
==Source Code Download==
 
Slier for IGT follows downloading and compilation mechanism set by main Slicer 3. If the users wants to use trackign device they have to chose to compile either Opentracker or IGSTK. As of January 2007, we don't have a class to support IGSTK tracker classes yet.
 
 
 
 
 
* [[Build Slicer3 on Dell Laptop Inspiron 1501 (Fedora Core 6) | Slicer3-IGT downloading and building]]
 
 
 
The users can use either IGSTK or Opentracker to tracking device.
 
* [[IGSTK]] (Will be available mid Feb 2007 --- Recommended for single host IGT system using a commercial IGT tracking device)
 
* [[Build and Run SPLOT on Dell Laptop Inspiron 1501 (Fedora Core 6)|Opentracker]] (Recommended for expanded multi-host system)
 
 
 
==Version notes==
 
[http://www.na-mic.org/websvn/listing.php?repname=Slicer3&path=%2Fbranches%2FIGT%2F&rev=0&sc=0 SVN]
 
 
 
==Documentation==
 
 
 
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/  Doxygen-generated documentation ]
 
 
 
==Links==
 
 
 
[http://wiki.na-mic.org/Wiki/index.php/Slicer3 Slicer3 main page]
 
 
 
==FAQ==
 
 
 
==HowTo==
 
 
 
* add pre-processor flags inside CMake
 
with ADD_DEFINITIONS() it is possible to add new definitions to the gcc - commandline. Thus it is possible to influence the code compiling directly out of CMakeLists.txt.
 
e.g.: ADD_DEFINITIONS(-DFLAGTOADD)
 

Latest revision as of 18:07, 10 July 2017

Home < Slicer-IGT < ForDeveloppers

Note: We are migrating this content to the slicer.org domain - The newer page is here