Publication Database

The Image-Guided Surgery Toolkit IGSTK: An Open Source C++ Software Toolkit

Institution:
1Kitware Inc.
2Atamai
3SINTEF
Publisher:
Springer-Verlag
Publication Date:
Jan-2007
Links:
http://liinwww.ira.uka.de/searchbib/index?query=dcjfhlmggjlmhjjqxcpbtmbnmgqxlxct&results=bibtex&mode=dup&rss=1
Appears in Collections:
Image-Guided Surgery Toolkit
Generated Citation:
Enquobahrie A., Cheng P., Gary K., Ibanez L., Gobbi D., Lindseth F., Yaniv Z., Aylward S., Jomier J., Cleary K. The Image-Guided Surgery Toolkit IGSTK: An Open Source C++ Software Toolkit. Springer-Verlag, Jan-2007.
Export citation:

This paper presents an overview of the image-guided surgery toolkit (IGSTK). IGSTK is an open source C++ software library that provides the basic components needed to develop image-guided surgery applications. It is intended for fast prototyping and development of image-guided surgery applications. The toolkit was developed through a collaboration between academic and industry partners. Because IGSTK was designed for safety-critical applications, the development team has adopted lightweight software processes that emphasizes safety and robustness while, at the same time, supporting geographically separated developers. A software process that is philosophically similar to agile software methods was adopted emphasizing iterative, incremental, and test-driven development principles. The guiding principle in the architecture design of IGSTK is patient safety. The IGSTK team implemented a component-based architecture and used state machine software design methodologies to improve the reliability and safety of the components. Every IGSTK component has a well-defined set of features that are governed by state machines. The state machine ensures that the component is always in a valid state and that all state transitions are valid and meaningful. Realizing that the continued success and viability of an open source toolkit depends on a strong user community, the IGSTK team is following several key strategies to build an active user community. These include maintaining a users and developers{'} mailing list, providing documentation (application programming interface reference document and book), presenting demonstration applications, and delivering tutorial sessions at relevant scientific conferences.