Robot Assisted Needle Placement: Application developed using an open source image guided surgery toolkit (IGSTK)

Cheng, Peng,Enquobahrie, Andinet1*,Stenzel, Roland,Lin, Ralph,Zhang, Hui,Yaniv, Ziv,Kim, Hee-su,Cleary, Kevin
1.Kitware, Inc.
Abstract

Abstract

Using a robot system to position needles or needle shaped tools during clinical procedures such as biopsy, radio frequency ablation, and target drug delivery has a great potentials in increasing accuracy and speed of the process, and minimizing trauma to patient. This paper describes a robot assist needle placement system developed using Image Guided Surgery Toolkit (IGSTK). IGSTK is an open source software toolkit aimed at providing a robust and safe platform for researchers and clinicians for fast prototyping of image guided applications with minimum cost and effort

Keywords

RobotRegistrationSegmentationCT
Manuscript
Source Code and Data

Source Code and Data

DataI0294377.dcm514.5 KBI0294378.dcm514.5 KBI0294379.dcm514.5 KBI0294380.dcm514.5 KBI0294382.dcm514.5 KBI0294381.dcm514.5 KBI0294383.dcm514.5 KBI0294384.dcm514.5 KBI0294386.dcm514.5 KBI0294385.dcm514.5 KBI0294388.dcm514.5 KBI0294387.dcm514.5 KBI0294389.dcm514.5 KBI0294390.dcm514.5 KBI0294391.dcm514.5 KBI0294392.dcm514.5 KBI0294393.dcm514.5 KBI0294394.dcm514.5 KBI0294395.dcm514.5 KBI0294396.dcm514.5 KBI0294397.dcm514.5 KBI0294398.dcm514.5 KBI0294399.dcm514.5 KBI0294400.dcm514.5 KBI0294401.dcm514.5 KBI0294402.dcm514.5 KBI0294403.dcm514.5 KBI0294404.dcm514.5 KBI0294406.dcm514.5 KBI0294405.dcm514.5 KBI0294408.dcm514.5 KBI0294407.dcm514.5 KBI0294409.dcm514.5 KBI0294410.dcm514.5 KBI0294411.dcm514.5 KBI0294412.dcm514.5 KBI0294413.dcm514.5 KBI0294414.dcm514.5 KBI0294415.dcm514.5 KBI0294416.dcm514.5 KBI0294417.dcm514.5 KBI0294418.dcm514.5 KBI0294419.dcm514.5 KBI0294420.dcm514.5 KBI0294422.dcm514.5 KBI0294421.dcm514.5 KBI0294424.dcm514.5 KBI0294423.dcm514.5 KBI0294425.dcm514.5 KBI0294426.dcm514.5 KBI0294427.dcm514.5 KBI0294428.dcm514.5 KBI0294429.dcm514.5 KBI0294430.dcm514.5 KBI0294431.dcm514.5 KBI0294433.dcm514.5 KBI0294432.dcm514.5 KBI0294434.dcm514.5 KBI0294435.dcm514.5 KBI0294436.dcm514.5 KBI0294437.dcm514.5 KBI0294438.dcm514.5 KBI0294439.dcm514.5 KBI0294440.dcm514.5 KBI0294441.dcm514.5 KBI0294442.dcm514.5 KBI0294443.dcm514.5 KBI0294444.dcm514.5 KBI0294445.dcm514.5 KBI0294446.dcm514.5 KBI0294447.dcm514.5 KBI0294448.dcm514.5 KBI0294449.dcm514.5 KBI0294450.dcm514.5 KBI0294451.dcm514.5 KBI0294453.dcm514.5 KBI0294452.dcm514.5 KBI0294454.dcm514.5 KBI0294455.dcm514.5 KBI0294456.dcm514.5 KBI0294457.dcm514.5 KBI0294458.dcm514.5 KBI0294459.dcm514.5 KBI0294460.dcm514.5 KBI0294461.dcm514.5 KBI0294462.dcm514.5 KBI0294463.dcm514.5 KBI0294464.dcm514.5 KBI0294465.dcm514.5 KBI0294467.dcm514.5 KBI0294466.dcm514.5 KBI0294468.dcm514.5 KBI0294469.dcm514.5 KBI0294470.dcm514.5 KBI0294471.dcm514.5 KBI0294472.dcm514.5 KBI0294473.dcm514.5 KBI0294474.dcm514.5 KBI0294475.dcm514.5 KBI0294476.dcm514.5 KBI0294477.dcm514.5 KBI0294478.dcm514.5 KBI0294479.dcm514.5 KBI0294480.dcm514.5 KBI0294481.dcm514.5 KBI0294481.dcm.vvi461 BDeckOfCardRobot_Win32.exe16.1 MBIGSTKDartConfig.cmake1.9 KBCMakeLists.txt8 KBExamplesCMakeLists.txt38 BDeckOfCardRobotCVSEntries1.6 KBEntries.Extra866 BEntries.Extra.Old866 BEntries.Old1.6 KBRepository39 BRoot52 BTemplateCMakeLists.txt1.5 KBDeckOfCardRobot.h11.8 KBDeckOfCardRobot.cxx48.5 KBDeckOfCardRobotGUI.fl6.9 KBDeckOfCardRobotRegistrationBase.cxx1007 BDeckOfCardRobotRegistrationBase.h1.8 KBFiducialModel.cxx5.3 KBFiducialModel.h2.3 KBFiducialSegmentation.cxx7.7 KBFiducialSegmentation.h3.4 KBFiducialSegmentationTest.cxx4.2 KBIterativeClosestPointsBasedRegistration.cxx4.7 KBIterativeClosestPointsBasedRegistration.h1.5 KBLandmarkBasedRegistration.cxx5.6 KBLandmarkBasedRegistration.h1.5 KBModelBasedClustering.cxx5.8 KBModelBasedClustering.h1.9 KBModelBasedRegistration.cxx10.4 KBModelBasedRegistration.h3.2 KBModelImageGenerateTest.cxx1.7 KBPCAOnPoints.cxx3.6 KBRobotCommunication.cxx9 KBPCAOnPoints.h1.8 KBRobotCommunication.h5.8 KBigstkImageSpatialObjectVolumeRepresentation.h6.3 KBigstkImageSpatialObjectVolumeRepresentation.txx10.3 KBigstkSocketCommunication.cxx50.5 KBigstkSocketCommunication.h10.7 KBmain.cxx1.2 KBIGSTKConfig.cmake.in1.5 KBUseIGSTK.cmake.in1.1 KBUtilitiesCVSEntries15 BEntries.Extra15 BRepository17 BRoot52 BTemplateDoxygenCVSEntries147 BEntries.Extra63 BRepository25 BRoot52 BTemplateCMakeLists.txt1.6 KBdoxyfile.in3.9 KBdoc_makeall.sh.in9.6 KBSourceCMakeLists.txt5.9 KBCVSEntries10 KBEntries.Extra5.5 KBEntries.Extra.Old5.5 KBEntries.Old10 KBRepository14 BRoot52 BTemplateigstkAnnotation2D.cxx6.1 KBigstkAnnotation2D.h4.1 KBigstkAuroraTracker.cxx21.3 KBigstkAuroraTracker.h5.3 KBigstkAuroraTrackerTool.cxx1.3 KBigstkAuroraTrackerTool.h1.7 KBigstkAxesObject.cxx1.8 KBigstkAxesObject.h2.3 KBigstkAxesObjectRepresentation.cxx4 KBigstkAxesObjectRepresentation.h3.2 KBigstkBinaryData.cxx7.5 KBigstkBinaryData.h4.1 KBigstkBoxObject.cxx2 KBigstkBoxObject.h2.3 KBigstkBoxObjectRepresentation.h3.2 KBigstkBoxObjectRepresentation.cxx5.1 KBigstkCTImageReader.cxx1.2 KBigstkCTImageReader.h2.1 KBigstkCTImageSpatialObject.cxx1.1 KBigstkCTImageSpatialObject.h2.4 KBigstkCTImageSpatialObjectRepresentation.cxx1.1 KBigstkCTImageSpatialObjectRepresentation.h1.8 KBigstkCommunication.cxx2 KBigstkCommunication.h3.6 KBigstkConeObject.cxx1.6 KBigstkConeObject.h2.2 KBigstkConeObjectRepresentation.cxx5.4 KBigstkConeObjectRepresentation.h3.3 KBigstkCylinderObject.cxx1.8 KBigstkCylinderObject.h2.1 KBigstkCylinderObjectRepresentation.cxx5.4 KBigstkCylinderObjectRepresentation.h3.3 KBigstkDICOMImageReader.h11.1 KBigstkDICOMImageReader.txx28.2 KBigstkEllipsoidObject.cxx2 KBigstkEllipsoidObject.h2.1 KBigstkEllipsoidObjectRepresentation.cxx5.3 KBigstkEvents.h6.3 KBigstkEllipsoidObjectRepresentation.h3.3 KBigstkFLTKTextBufferLogOutput.h2.6 KBigstkFLTKTextBufferLogOutput.cxx3 KBigstkFLTKTextLogOutput.h2.5 KBigstkFLTKTextLogOutput.cxx3 KBigstkFlockOfBirdsCommandInterpreter.cxx43.2 KBigstkFlockOfBirdsCommandInterpreter.h18.1 KBigstkFlockOfBirdsTracker.cxx7.3 KBigstkFlockOfBirdsTracker.h4.8 KBigstkFlockOfBirdsTrackerTool.cxx1.4 KBigstkFlockOfBirdsTrackerTool.h1.8 KBigstkGroupObject.cxx1.5 KBigstkGroupObject.h1.9 KBigstkImageReader.h3.8 KBigstkImageReader.txx1.7 KBigstkImageSpatialObject.h6.4 KBigstkImageSpatialObject.txx10.6 KBigstkImageSpatialObjectRepresentation.h6.9 KBigstkImageSpatialObjectRepresentation.txx19 KBigstkLandmark3DRegistration.cxx17.3 KBigstkLandmark3DRegistration.h7.4 KBigstkLandmark3DRegistrationErrorEstimator.h6.9 KBigstkLandmark3DRegistrationErrorEstimator.cxx24.2 KBigstkMR3DImageToUS3DImageRegistration.h7.5 KBigstkMR3DImageToUS3DImageRegistration.cxx19.1 KBigstkMRImageReader.cxx1.2 KBigstkMRImageReader.h2 KBigstkMRImageSpatialObject.cxx1.1 KBigstkMRImageSpatialObject.h2.4 KBigstkMRImageSpatialObjectRepresentation.cxx1.1 KBigstkMRImageSpatialObjectRepresentation.h1.8 KBigstkMacros.h15.3 KBigstkMeshObject.cxx3.5 KBigstkMeshObject.h4.6 KBigstkMeshObjectRepresentation.cxx6.1 KBigstkMeshObjectRepresentation.h2.8 KBigstkMeshReader.cxx2.7 KBigstkMeshReader.h4 KBigstkMouseTracker.cxx3.4 KBigstkMouseTracker.h2.8 KBigstkMultipleOutput.cxx1.5 KBigstkMultipleOutput.h2.1 KBigstkNDICommandInterpreter.cxx59.8 KBigstkNDICommandInterpreter.h62.8 KBigstkNDIErrorEvent.h2.1 KBigstkObject.cxx1.3 KBigstkObject.h2.2 KBigstkObjectRepresentation.cxx14.8 KBigstkObjectRepresentation.h6.8 KBigstkObliqueImageSpatialObjectRepresentation.h7.1 KBigstkObliqueImageSpatialObjectRepresentation.txx18.4 KBigstkPivotCalibration.cxx16.8 KBigstkPivotCalibrationReader.cxx3.1 KBigstkPivotCalibration.h8.2 KBigstkPivotCalibrationReader.h3.6 KBigstkPolarisTracker.cxx20.5 KBigstkPolarisTracker.h5.5 KBigstkPolarisTrackerTool.cxx1.3 KBigstkPolarisTrackerTool.h1.7 KBigstkPrincipalAxisCalibration.cxx13.5 KBigstkPrincipalAxisCalibration.h6.7 KBigstkPulseGenerator.cxx11.8 KBigstkPulseGenerator.h6 KBigstkRealTimeClock.cxx3.7 KBigstkRealTimeClock.h2.1 KBigstkRenderWindowInteractor.cxx1.4 KBigstkRenderWindowInteractor.h1.6 KBigstkSerialCommunication.cxx19.5 KBigstkSerialCommunication.h13 KBigstkSerialCommunicationForPosix.cxx11.2 KBigstkSerialCommunicationForPosix.h3.4 KBigstkSerialCommunicationForWindows.cxx11.8 KBigstkSerialCommunicationForWindows.h3.4 KBigstkSerialCommunicationSimulator.cxx8.8 KBigstkSerialCommunicationSimulator.h4 KBigstkSocketCommunication.cxx50.5 KBigstkSocketCommunication.h10.7 KBigstkSpatialObject.cxx12.2 KBigstkSpatialObject.h5.2 KBigstkSpatialObjectReader.h5 KBigstkSpatialObjectReader.txx7.1 KBigstkStateMachine.h10.6 KBigstkStateMachine.txx24.2 KBigstkStateMachineInput.h2.3 KBigstkStateMachineState.h2.3 KBigstkTimeStamp.cxx3.1 KBigstkTimeStamp.h4.5 KBigstkToken.cxx2 KBigstkToken.h2.5 KBigstkToolCalibration.cxx10.7 KBigstkToolCalibration.h5.7 KBigstkToolCalibrationReader.h9.9 KBigstkToolCalibrationReader.txx17.3 KBigstkTracker.cxx33.7 KBigstkTracker.h15.1 KBigstkTrackerPort.cxx2.2 KBigstkTrackerPort.h2.5 KBigstkTrackerTool.cxx2.4 KBigstkTrackerTool.h4.6 KBigstkTransform.cxx5.9 KBigstkTransform.h7.3 KBigstkTubeGroupObject.cxx1.3 KBigstkTubeGroupObject.h1.8 KBigstkTubeObject.cxx2.5 KBigstkTubeObject.h2.7 KBigstkTubeObjectRepresentation.cxx10.4 KBigstkTubeObjectRepresentation.h2.9 KBigstkTubeReader.cxx2.8 KBigstkTubeReader.h4.2 KBigstkUSImageObject.cxx1.1 KBigstkUSImageObject.h2.4 KBigstkUSImageObjectRepresentation.cxx1.2 KBigstkUSImageObjectRepresentation.h2.2 KBigstkUSImageReader.cxx1.3 KBigstkUSImageReader.h2.1 KBigstkUltrasoundImageSimulator.h7.5 KBigstkUltrasoundImageSimulator.txx13.3 KBigstkUltrasoundProbeObject.cxx1.3 KBigstkUltrasoundProbeObject.h2 KBigstkUltrasoundProbeObjectRepresentation.cxx9 KBigstkUltrasoundProbeObjectRepresentation.h3.5 KBigstkVTKLoggerOutput.cxx4.3 KBigstkVTKLoggerOutput.h5 KBigstkVascularNetworkObject.cxx2.2 KBigstkVascularNetworkObject.h2.7 KBigstkVascularNetworkObjectRepresentation.cxx12 KBigstkVascularNetworkObjectRepresentation.h3.7 KBigstkVascularNetworkReader.cxx4.5 KBigstkVascularNetworkReader.h3.5 KBigstkVesselObject.cxx2.7 KBigstkVesselObject.h3.1 KBigstkView.cxx28 KBigstkView.h9.1 KBigstkView2D.cxx2.6 KBigstkView2D.h2.6 KBigstkView3D.cxx1.5 KBigstkView3D.h2.1 KBigstkConfigure.h.in711 BigstkGenerateIGSTKConfig.cmake2 KBigstkIncludeDirectories.cmake1.9 KBFLTK.cvsignore97 BANNOUNCEMENT5.6 KBCHANGES121.9 KBCMakeCheckFunctionWithHeaderExists.cmake2.2 KBFLTKConfig.cmake.in1.3 KBFLTKUse.cmake2.8 KBPlatformTests.cxx1.4 KBCMakeLists.txt14.3 KBCOPYING26.5 KBCREDITS1.4 KBDartConfig.cmake1.5 KBFLEnumerations.H13 KBFl.H9.2 KBFl_Adjuster.H1.5 KBFl_BMP_Image.H1.3 KBFl_Bitmap.H2.1 KBFl_Box.H1.4 KBFl_Browser.H3.9 KBFl_Browser_.H5.3 KBFl_Button.H2.2 KBFl_Chart.H2.7 KBFl_Check_Browser.H2.9 KBFl_Check_Button.H1.3 KBFl_Choice.H1.4 KBFl_Clock.H2.2 KBFl_Color_Chooser.H3.1 KBFl_Counter.H2.1 KBFl_Dial.H1.7 KBFl_Double_Window.H1.8 KBFl_Export.H1.5 KBFl_File_Browser.H2.2 KBFl_File_Chooser.H6 KBFl_File_Icon.H3.4 KBFl_File_Input.H1.9 KBFl_Fill_Dial.H1.3 KBFl_Fill_Slider.H1.3 KBFl_Float_Input.H1.3 KBFl_FormsBitmap.H1.5 KBFl_FormsPixmap.H1.5 KBFl_GIF_Image.H1.3 KBFl_Free.H1.8 KBFl_Gl_Window.H2.6 KBFl_Group.H3 KBFl_Help_Dialog.H2.7 KBFl_Help_View.H5.8 KBFl_Hold_Browser.H1.3 KBFl_Hor_Fill_Slider.H1.4 KBFl_Hor_Nice_Slider.H1.4 KBFl_Hor_Slider.H1.3 KBFl_Hor_Value_Slider.H1.4 KBFl_Image.H3.5 KBFl_Input.H1.4 KBFl_Input_.H4.6 KBFl_Input_Choice.H4.3 KBFl_Int_Input.H1.3 KBFl_JPEG_Image.H1.3 KBFl_Light_Button.H1.4 KBFl_Line_Dial.H1.3 KBFl_Menu.H1.1 KBFl_Menu_.H3.2 KBFl_Menu_Bar.H1.3 KBFl_Menu_Button.H1.4 KBFl_Menu_Window.H1.7 KBFl_Menu_Item.H5.7 KBFl_Multi_Browser.H1.3 KBFl_Multi_Label.H1.3 KBFl_Multiline_Output.H1.4 KBFl_Multiline_Input.H1.3 KBFl_Object.H1.2 KBFl_Nice_Slider.H1.3 KBFl_Output.H1.3 KBFl_Overlay_Window.H1.8 KBFl_PNG_Image.H1.3 KBFl_PNM_Image.H1.3 KBFl_Pack.H1.5 KBFl_Pixmap.H2.8 KBFl_Positioner.H2.2 KBFl_Preferences.H4.9 KBFl_Progress.H1.7 KBFl_Radio_Button.H1.3 KBFl_Radio_Light_Button.H1.4 KBFl_Radio_Round_Button.H1.4 KBFl_Repeat_Button.H1.5 KBFl_Return_Button.H1.4 KBFl_Roller.H1.3 KBFl_Round_Button.H1.3 KBFl_Round_Clock.H1.3 KBFl_Scroll.H2 KBFl_Scrollbar.H1.6 KBFl_Secret_Input.H1.3 KBFl_Select_Browser.H1.3 KBFl_Shared_Image.H3.2 KBFl_Simple_Counter.H1.3 KBFl_Single_Window.H1.5 KBFl_Slider.H2.1 KBFl_Spinner.H4.4 KBFl_Sys_Menu_Bar.H1.5 KBFl_Tabs.H1.6 KBFl_Text_Buffer.H11.1 KBFl_Text_Display.H11.7 KBFl_Tile.H1.3 KBFl_Text_Editor.H4.1 KBFl_Tiled_Image.H1.8 KBFl_Timer.H1.8 KBFl_Toggle_Button.H1.3 KBFl_Toggle_Light_Button.H1.3 KBFl_Toggle_Round_Button.H1.3 KBFl_Tooltip.H2.5 KBFl_Valuator.H2.6 KBFl_Value_Input.H2 KBFl_Value_Output.H1.8 KBFl_Value_Slider.H1.7 KBFl_Widget.H7.4 KBFl_Window.H4 KBFl_Wizard.H1.4 KBFl_XBM_Image.H1.3 KBFl_XPM_Image.H1.3 KBMakefile.in2 KBdirent.h1.1 KBfilename.H4.5 KBfl_ask.H2.9 KBfl_draw.H7.6 KBfl_message.H1.1 KBfl_show_colormap.H1.2 KBfl_show_input.H1.1 KBforms.H32.9 KBgl.h2.7 KBgl2opengl.h1.3 KBgl_draw.H1.1 KBglut.H16.4 KBmac.H4.5 KBmath.h2.3 KBmac.r369 Bwin32.H5.5 KBx.H4.9 KBGLglut.h1 KBMakefile2.6 KBREADME6.9 KBREADME.mac3.9 KBREADME.win327.6 KBconfigh.cmake.in5.7 KBconfigh.in5.3 KBconfigure.in25.8 KBfltk-config.in6.6 KBfltk.list.in13.7 KBfltk.spec2.9 KBfltk.xpm34 KBfluidCMakeLists.txt557 BCodeEditor.cxx10.1 KBCodeEditor.h2.2 KBFl_Function_Type.cxx30 KBFl_Group_Type.cxx8.7 KBFl_Menu_Type.cxx17.1 KBFl_Type.cxx24.1 KBFl_Type.h23 KBFl_Widget_Type.cxx74.3 KBFl_Widget_Type.h1.4 KBFl_Window_Type.cxx41 KBFluid_Image.cxx6.5 KBFluid_Image.h2.1 KBMakefile2.9 KBabout_panel.cxx12.7 KBShortcut_Button.h1.3 KBabout_panel.fl2.2 KBabout_panel.h1.4 KBalign_widget.cxx14.3 KBalignment_panel.cxx17.3 KBalignment_panel.fl13 KBalignment_panel.h3.8 KBcode.cxx15.6 KBcomments.h3.5 KBfactory.cxx39.3 KBfile.cxx15.4 KBfluid.cxx61 KBfluid.info9 Bfluid.plist1.5 KBfunction_panel.cxx30.7 KBfunction_panel.fl22.1 KBfunction_panel.h3.9 KBiconsfluid-128.png9.9 KBfluid-16.png706 Bfluid-16i.png278 Bfluid-256.png23.2 KBfluid-32.png1.5 KBfluid-32.xpm1.6 KBfluid-32i.png450 Bfluid-48.png2.7 KBfluid-64.png3.8 KBfluid-96.xpm9.9 KBfluid.icns43 KBfluid.ico1.1 KBfluid.xcf.gz22 KBmakefile.wat2.2 KBmakedepend21.4 KBpixmaps.cvsignore6 BflAdjuster.xpm541 BflBox.xpm536 BflButton.xpm539 BflBrowser.xpm540 BflCheckButton.xpm559 BflCheckBrowser.xpm545 BflChoice.xpm539 BflClass.xpm509 BflClock.xpm524 BflCode.xpm508 BflCodeBlock.xpm513 BflComment.xpm511 BflCounter.xpm540 BflDeclaration.xpm515 BflDeclarationBlock.xpm520 BflDial.xpm523 BflFileBrowser.xpm544 BflFileInput.xpm542 BflFunction.xpm512 BflGroup.xpm538 BflHelp.xpm537 BflInput.xpm538 BflLightButton.xpm544 BflMenubar.xpm540 BflMenuButton.xpm543 BflMenuitem.xpm541 BflOutput.xpm539 BflPack.xpm537 BflProgress.xpm541 BflRepeatButton.xpm545 BflReturnButton.xpm545 BflRoller.xpm539 BflRoundButton.xpm559 BflScrollBar.xpm542 BflScroll.xpm539 BflSlider.xpm539 BflSpinner.xpm468 BflSubmenu.xpm540 BflTabs.xpm537 BflTextDisplay.xpm544 BflTextEdit.xpm541 BflTile.xpm538 BflValueInput.xpm543 BflValueOutput.xpm544 BflValueSlider.xpm544 BflWidgetClass.xpm574 BflWindow.xpm539 BflWizard.xpm539 Block.xpm535 Bprint_gray.xpm984 Bprint_color.xpm985 Bprint_panel.cxx18 KBprint_panel.fl10.9 KBprint_panel.h2.3 KBtemplate_panel.cxx6.9 KBtemplate_panel.fl6.2 KBtemplate_panel.h1.7 KBundo.cxx5.1 KBundo.h1.5 KBwidget_panel.cxx28.8 KBwidget_panel.fl20.3 KBwidget_panel.h4.5 KBinstall-sh4.7 KBforms.h125 BlibREADME.lib579 BjpegCMakeLists.txt1.2 KBMakefile2.7 KBREADME19.5 KBchange.log9.1 KBcoderules.doc5.2 KBfilelist.doc8.2 KBjcapimin.c8.9 KBjcapistd.c5.7 KBjccoefct.c16 KBjccolor.c14.5 KBjcdctmgr.c12.2 KBjchuff.c27.6 KBjchuff.h1.5 KBjcinit.c2.3 KBjcmainct.c9 KBjcmarker.c16.8 KBjcmaster.c19.4 KBjcomapi.c3 KBjconfig.doc5.2 KBjconfig.h1.4 KBjcparam.c20.8 KBjcphuff.c24.5 KBjcprepct.c11.8 KBjcsample.c18.4 KBjctrans.c13.6 KBjdapimin.c12.3 KBjdapistd.c9.1 KBjdatadst.c5 KBjdatasrc.c7.4 KBjdcoefct.c24.6 KBjdcolor.c12.7 KBjdct.h6.9 KBjddctmgr.c8.1 KBjdhuff.c20.4 KBjdhuff.h7.9 KBjdinput.c13.2 KBjdmainct.c20 KBjdmarker.c40.2 KBjdmaster.c19.2 KBjdmerge.c13.6 KBjdphuff.c20.1 KBjdpostct.c9.5 KBjdtrans.c5 KBjdsample.c16 KBjerror.c7.6 KBjerror.h13.6 KBjfdctflt.c5.4 KBjfdctfst.c7.4 KBjfdctint.c10.8 KBjidctflt.c8.3 KBjidctint.c14.5 KBjidctfst.c12.9 KBjinclude.h3.2 KBjidctred.c13.2 KBjmemmgr.c40 KBjmemnobs.c2.7 KBjmemsys.h8 KBjmorecfg.h11.1 KBjpegint.h15.3 KBjquant1.c30.6 KBjpeglib.h45.1 KBjutils.c5.1 KBjquant2.c47.3 KBjversion.h360 Blibjpeg.doc155.6 KBmakedepend4.5 KBmakefile.wat2.1 KBstructure.doc50.7 KBusage.doc26.5 KBwizard.doc9.5 KBmakeinclude.in3.3 KBmakesrcdist1.1 KBpngANNOUNCE1.2 KBCHANGES75.3 KBCMakeLists.txt717 BINSTALL7.1 KBKNOWNBUG402 BLICENSE4 KBMakefile2.3 KBREADME13.5 KBTODO1.2 KBY2KINFO2.3 KBlibpng.3160.3 KBlibpng.txt124.8 KBlibpngpf.324.4 KBmakedepend421 Bmakefile.wat1.8 KBpng.52.3 KBpng.c23.1 KBpngconf.h40.7 KBpng.h136.4 KBpngerror.c8.4 KBpngget.c25.4 KBpngmem.c16.2 KBpngpread.c44.9 KBpngread.c45.2 KBpngrio.c5.2 KBpngrtran.c139.3 KBpngset.c37.8 KBpngrutil.c88.9 KBpngtrans.c19.6 KBpngwio.c7.3 KBpngwrite.c46.8 KBpngwtran.c16.6 KBpngwutil.c81.6 KBwatcomconfig.h4.6 KBmakefile2.9 KBreadme.wat1.6 KBsrcCMakeLists.txt4 KBFl.cxx33.4 KBFl_Adjuster.cxx4.7 KBFl_BMP_Image.cxx11.5 KBFl_Bitmap.cxx15.6 KBFl_Box.cxx1.3 KBFl_Browser.cxx14.4 KBFl_Browser_.cxx22.5 KBFl_Browser_load.cxx1.6 KBFl_Button.cxx4.7 KBFl_Chart.cxx11.3 KBFl_Check_Browser.cxx5.3 KBFl_Choice.cxx4.5 KBFl_Check_Button.cxx1.4 KBFl_Clock.cxx4.9 KBFl_Color_Chooser.cxx14.5 KBFl_Counter.cxx5.4 KBFl_Dial.cxx4 KBFl_Double_Window.cxx10.3 KBFl_File_Browser.cxx15.5 KBFl_File_Chooser.fl11.9 KBFl_File_Chooser.cxx12.9 KBFl_File_Icon.cxx10.5 KBFl_File_Chooser2.cxx32.6 KBFl_File_Icon2.cxx27.5 KBFl_File_Input.cxx6.8 KBFl_Font.H3.1 KBFl_GIF_Image.cxx10.6 KBFl_Gl_Choice.H4.1 KBFl_Gl_Choice.cxx13 KBFl_Gl_Overlay.cxx6.3 KBFl_Gl_Window.cxx11.5 KBFl_Group.cxx15.9 KBFl_Help_Dialog.cxx8.1 KBFl_Help_Dialog.fl6.8 KBFl_Help_View.cxx68 KBFl_Image.cxx11.7 KBFl_Input.cxx13.2 KBFl_Input_.cxx24.2 KBFl_JPEG_Image.cxx5 KBFl_Light_Button.cxx4.5 KBFl_Menu.cxx24.9 KBFl_Menu_.cxx6.6 KBFl_Menu_Bar.cxx2.1 KBFl_Menu_Button.cxx2.9 KBFl_Menu_Window.cxx3 KBFl_Menu_add.cxx8.1 KBFl_Menu_global.cxx1.5 KBFl_Multi_Label.cxx2.6 KBFl_Overlay_Window.cxx4.5 KBFl_PNG_Image.cxx3.9 KBFl_PNM_Image.cxx4.5 KBFl_Pack.cxx4.1 KBFl_Pixmap.cxx13.8 KBFl_Positioner.cxx3.9 KBFl_Preferences.cxx27.2 KBFl_Progress.cxx2.9 KBFl_Repeat_Button.cxx1.8 KBFl_Return_Button.cxx2.2 KBFl_Roller.cxx5.2 KBFl_Round_Button.cxx1.5 KBFl_Scroll.cxx8.6 KBFl_Scrollbar.cxx6.6 KBFl_Shared_Image.cxx9.9 KBFl_Single_Window.cxx1.4 KBFl_Slider.cxx7.7 KBFl_Sys_Menu_Bar.cxx8.3 KBFl_Tabs.cxx9.5 KBFl_Text_Buffer.cxx80.9 KBFl_Text_Display.cxx116.6 KBFl_Text_Editor.cxx15.3 KBFl_Tile.cxx5.5 KBFl_Tiled_Image.cxx3.2 KBFl_Tooltip.cxx7.4 KBFl_Valuator.cxx4 KBFl_Value_Input.cxx3.8 KBFl_Value_Output.cxx2.9 KBFl_Value_Slider.cxx2.4 KBFl_Widget.cxx7.3 KBFl_Window.cxx4.6 KBFl_Window_fullscreen.cxx3 KBFl_Window_hotspot.cxx2.8 KBFl_Window_iconize.cxx1.4 KBFl_Wizard.cxx4.1 KBFl_XBM_Image.cxx2.4 KBFl_XColor.H1.6 KBFl_XPM_Image.cxx3 KBFl_add_idle.cxx2.5 KBFl_abort.cxx2.6 KBFl_compose.cxx4.9 KBFl_arg.cxx12 KBFl_display.cxx1.5 KBFl_get_key.cxx2 KBFl_get_key_mac.cxx4.1 KBFl_get_key_win32.cxx3.6 KBFl_get_system_colors.cxx10.7 KBFl_grab.cxx3.1 KBFl_lock.cxx5.1 KBFl_mac.cxx63 KBFl_own_colormap.cxx2.5 KBFl_visual.cxx3.5 KBFl_win32.cxx47.1 KBMakefile23.3 KBFl_x.cxx41.3 KBcmap.cxx5.5 KBallfiles.xbm296 Bd1.xbm278 Bd1_mask.xbm293 Bdump_compose.c756 Bew.xbm316 Bew_mask.xbm341 Bfastarrow.h299 Bfilename_absolute.cxx5.1 KBfilename_expand.cxx3.2 KBfilename_ext.cxx1.5 KBfilename_isdir.cxx2.2 KBfilename_list.cxx3.6 KBfilename_match.cxx2.8 KBfl_arc.cxx2.8 KBfilename_setext.cxx1.5 KBfl_arci.cxx3.8 KBfl_ask.cxx8.8 KBfl_boxtype.cxx9.1 KBfl_call_main.c3.3 KBfl_cmap.h3.2 KBfl_color.cxx11.6 KBfl_color_mac.cxx3.1 KBfl_color_win32.cxx7.2 KBfl_cursor.cxx11.3 KBfl_curve.cxx3 KBfl_diamond_box.cxx2.9 KBfl_dnd.cxx1.2 KBfl_dnd_mac.cxx2.7 KBfl_dnd_win32.cxx12.5 KBfl_dnd_x.cxx5.4 KBfl_draw.cxx9.6 KBfl_draw_image.cxx16.1 KBfl_draw_image_mac.cxx8.3 KBfl_draw_image_win32.cxx7.4 KBfl_draw_pixmap.cxx9 KBfl_engraved_label.cxx2.9 KBfl_file_dir.cxx4.2 KBfl_font.cxx1.6 KBfl_font_mac.cxx9.3 KBfl_font_win32.cxx4.7 KBfl_font_x.cxx7.6 KBfl_font_xft.cxx7.8 KBfl_images_core.cxx2.8 KBfl_line_style.cxx6 KBfl_labeltype.cxx3.9 KBfl_oval_box.cxx2 KBfl_overlay.cxx2.3 KBfl_overlay_visual.cxx3.3 KBfl_plastic.cxx11 KBfl_read_image_mac.cxx3.8 KBfl_read_image.cxx12.5 KBfl_rect.cxx19.1 KBfl_read_image_win32.cxx2.1 KBfl_round_box.cxx4.2 KBfl_rounded_box.cxx3 KBfl_scroll_area.cxx4.8 KBfl_set_font.cxx2.6 KBfl_set_fonts.cxx1.4 KBfl_set_fonts_mac.cxx6.7 KBfl_set_fonts_win32.cxx4.5 KBfl_set_fonts_x.cxx10.7 KBfl_set_fonts_xft.cxx12 KBfl_shadow_box.cxx1.7 KBfl_shortcut.cxx6.4 KBfl_show_colormap.cxx4.3 KBfl_symbols.cxx17.1 KBfl_vertex.cxx8.4 KBflstring.c2.4 KBflstring.h3.3 KBforms_bitmap.cxx1.5 KBforms_compatability.cxx5.5 KBforms_free.cxx2.3 KBforms_fselect.cxx2.3 KBforms_pixmap.cxx1.5 KBforms_timer.cxx4.2 KBgl_draw.cxx6 KBgl_start.cxx4 KBglut_compatability.cxx10.6 KBglut_font.cxx2 KBmakedepend34.1 KBmakefile.wat5.4 KBmediumarrow.h305 Bnew.xbm281 Bns.xbm316 Bns_mask.xbm341 Bnumericsort.c3.2 KBscandir.c3 KBscandir_win32.c3.5 KBscreen_xywh.cxx6 KBslowarrow.h299 Btile.xpm4.4 KBup.xbm278 Bvsnprintf.c6.5 KBwatcom.mif8.3 KBzlibCMakeLists.txt392 BChangeLog35.2 KBFAQ3.5 KBINDEX1.1 KBREADME5.6 KBMakefile2.2 KBadler32.c2.2 KBalgorithm.txt9.1 KBcrc32.c9.5 KBcompress.c2.5 KBcrc32.h29.9 KBdeflate.c53.7 KBdeflate.h11.7 KBinffast.c11.9 KBgzio.c29.9 KBinffixed.h6.2 KBinffast.h407 Binflate.h5.7 KBinflate.c44.3 KBinftrees.h2.3 KBinftrees.c13 KBmakedepend480 Bmakefile.wat1.5 KBtrees.c43 KBtrees.h8.2 KBuncompr.c2.1 KBzconf.h8.8 KBzlib.34.4 KBzlib.h56.4 KBzutil.c6.9 KBzutil.h6.4 KBREADME.txt1.6 KB

Select a file to preview

Reviews

Reviews

Xenophon Papademetris

Tuesday 5 September 2006

Summary: The paper presents a robot assisted needle placement system based on IGSTK. The platform has been tested and encouraging results are presented.

Open Science: The authors provided source code and a data set, unfortunately one also needs a robot and the intra-operative scanner to replicate the findings both of which are unfortunately not so easily downloadable or available.

Reproducibility: I downloaded and looked at the code which is of good quality and looks very similar to code in ITK. I did not attempt to compile it as it requires VTK 5 and ITK 2.6 which I did not have installed on my system, however the Insight Journal dashboard suggests that it compiled just fine.

Use of Open Source Software: The authors use the usual combination of ITK/VTK and the IGSTK toolkit (as implied by the title). The comment about IGSTK being a safe platform for researchers and clinicians to use needs to be qualified, especially since any additional code (extensions, user applications) is perfectly capable of crashing even the most stable of systems.

Open Source Contributions: The source code is made available (together with IGSTK and FLTK), see reproducibility above.

Code Quality: See reproducibility above.

Applicability to other problems: The methodology developed for the application is fairly crude in terms of what constitutes state of the art image analysis. Having said that, the results suggest that it is suitable for the application and perhaps use of more sophisticated methods might be overkill.

The use of a CT scanner for registration is uncommon though, intra-operative scanners are not as easily available and use of CT scanner in a patient setup is kept to a minimum for radiation purposes. This makes the method less applicable to other problems. Point fiducials are time consuming but often easier to implement in most common situations.

Suggestions for future work:

  1. Figure 4: The word ERROR appears in the textbox below the figure. This is a dangerous think to publish for anything related to intervention! While in this case, this is not a serious issue, it should be qualified in the caption. I assume this is the output from the state machine.
  2. The validation study is not sufficiently well described. What was the experimental setup? Did the authors test the amount of time for which communication with the robot remained stable under stress (also leaving the connection on for a few hours without actually invoking it). What is the affect of accidental disconnection of the robot on the software (cables do get loose in real situations). In general testing of this type needs to assume that the worst will happen as it often unfortunately does in the case of real interventions.
  3. I assume that the authors mean \\\\\\\"more sophisticated\\\\\\\" as opposed to \\\\\\\"more relaxed\\\\\\\" registration methods. Iterative closest point methods might be appropriate, the authors might also consider robust methods which are able to do outlier rejection and hence handle any overdetection (the Robust Point Matching framework was pioneered by Anand Rangarajan and his collaborators comes to mind here, this code is available in various forms).

Requests for additional information from authors: The validation study needs to be better described. What CT scanner was used what was the environment in which the robot was placed etc. Reproducibility is also critical, how do the results vary if the robot is imaged twice in the same position, or if the robot is moved back to the same position and reimaged. This is really the weak point of this paper.

David Holmes

Tuesday 5 September 2006

Summary: The authors describe an application of the IGSTK software for robot-guided needle placement. While the paper is loosely about the entire robot-guided application, the method focuses on the registration component of the procedure largely because the is the most critical aspect of the software. The background briefly describes both the hardware and the IGSTK software. The method and results are in regards to the fiducial registration method.

Hypothesis: Although not a hypothesis, the premise of the paper is that robot-guided needle placement is an important clinical application and requires effective software. Specifically, the software must be effective at registering the tool to the patient. Once achieved, visualization is important.

Evidence: The evidence is through a small validation study on a phantom. The details of the validation study are lacking a bit, but the results suggest that the fiducial registration method is effective.

Open Science: This work is completely open science and includes source code which can be used in conjunction with the paper to evaluate and test the method.

Reproducibility: The source code allows for an evaluation of the method and reproducing the study. The authors also include data in their submission which is great. That being said, there is not much information on the validation study (including the type of phantom) and how the ground truth was determined. Nevertheless, the method is reproducible and would allow another investigator to conduct an independent evaluation.

Use of Open Source Software: Everything is open source

Open Source Contributions: Code is available; however, I did not have the opportunity to review it thoroughly or run it. It does seems sparse on documentation in the code.

Code Quality: Same as above.

Applicability to other problems: One would hope and expect that the application could be applied to other IGS applications. This provides a nice example of how to use IGSTK in a clinical application.

Suggestions for future work: The authors appropriately suggest future work for themselves. I look forward to following this project into the future. Get going on the clinical trials to show the work that open-source can and should be used to treat patients.

Requests for additional information from authors: The paper would benefit from including more references appropriate to the registration method. There are several fiducial based registration papers in the literature.

The validation study could be more detailed as well.

Additional Comments: [This is a free-form field]