NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
The Technical Manual

Introduction

Welcome to the NifTK technical manual. This manual provides the detailed technical information for the platform and any further information can be obtained be joining:

The aim of providing this manual is to enable developers to understand the architecture, the code design, layout and conventions, and to start coding and contributing to the platform. Where necessary or informative the design decisions will be explained in detail. It is however assumed that the reader is a good C++ developer.

Table Of Contents

Additional Reading

The MITK Infrastructure

MITK forms the underlying infrastructure for the GUI applications. So, developers should be reading and digesting, on a regular basis, the main MITK website, the API and also the Bug Squashing Seminars.

The MITK Segmentation Framework

At least three of the available plugins are segmentation tools. The underlying architecture of these plugins is derived in some ways from the MITK Segmentation Framework described here.

The Medical Image Display And Analysis System (MIDAS) Application

Throughout this manual we may refer to an application called MIDAS. MIDAS was developed by Pete Freeborough and Nick Fox at the UCL Dementia Research Centre. Many of the important features of MIDAS have been re-implemented and brought to this multi-platform environment with a lot of new functionality. The interested reader should refer to:

[1] Peter A. Freeborough, Nick C. Fox and Richard I. Kitney: Interactive Algorithms for the segmentation and quantitation off 3-D MRI brain scans. Computer Methods and Programs In Biomedicine, (53), 15-25, 1997. doi:10.1016/S0169-2607(97)01803-8.

The Slicer Execution Model

The Graphical User Interface (GUI)'s contained within this project can run command line executables as a background process, using the Command Line Modules view. The underlying technology was developed as part of the Slicer project, ported to the GIMIAS project, and then re-implemented within the Common Toolkit (CTK) project. Technical details can be found here. This technology is particularly interesting for developers interested in inter-operability. If you develop a command line module using this method, it should be runnable in NifTK applications and MITK, GIMIAS and Slicer.