An Open-Source Solution for Interactive Acquisition, Processing and Transfer of Interventional Ultrasound Images

Boisvert, Jonathan1*,Gobbi, David,Vikal, Siddharth,Rohling, Robert,Fichtinger, Gabor,Abolmaesumi, Purang
1.Queen's University
Abstract

Abstract

Ultrasound has become a very important modality in image-guided therapy. At present, however, the collection, synchronization and transfer of ultrasonic images are more cumbersome than necessary. This paper presents a reusable solution to these problems. We propose a software package called SynchroGrab, which allows the collection of interventional ultrasound images as well as their synchronization with a stream of pose measurements. The software includes support for an open-interface ultrasound system, namely the Sonix RP, from Ultrasonix (Vancouver, Canada). Using an open-interface system like the Sonix RP allows customization of the imaging process and the capture of the ultrasound images directly from memory without the need for a frame-grabbing card. Pose measurement is currently performed with an Optotrak Certus by Northern Digital (Waterloo, Canada). However, extensibility was a primary goal in the design of this software, so the support of new devices can be achieved simply by sub-classing the relevant base class. SynchroGrab also performs reconstruction of 3D ultrasound volumes from synchronized data streams. Moreover, the recorded images, volumes and tracking information are available for visualization or further processing either directly from the file system or from a network connection compliant with the OpenIGTLink protocol, which is supported by Slicer 3.

Keywords

SynchronisationVolumetric Reconstruction3D TrackingIGT System IntegrationInterventional Ultrasound Images
Manuscript
Source Code and Data

Source Code and Data

SynchroGrabSourcesApplicationsCMakeLists.txt239 BCopy of AcquireTrackedVolume.cxx13.9 KBCopy of SynchroGrab.cxx16 KBSynchroGrab.cxx7.1 KBtestopenigtlink.cxx2.9 KBvtkSynchroGrabPipeline.cxx13 KBvtkSynchroGrabPipeline.h4.2 KBCMakeLists.txt1.4 KBCMakeOptions.cmake4.6 KBQueensOpenIGTLibsConfigure.h.in371 BUtilitiesCMakeLists.txt34 BigtlCMakeLists.txt2.7 KBigtlClientSocket.cxx2.4 KBigtlClientSocket.h2 KBigtlConditionVariable.cxx5.3 KBigtlConditionVariable.h5.2 KBigtlCreateObjectFunction.h2.9 KBigtlFastMutexLock.cxx1.5 KBigtlFastMutexLock.h3.5 KBigtlImageMessage.cxx7 KBigtlImageMessage.h3.5 KBigtlLightObject.cxx6.3 KBigtlLightObject.h4.8 KBigtlMacro.h37.1 KBigtlMath.cxx2.2 KBigtlMath.h808 BigtlMessageBase.cxx1.8 KBigtlMessageBase.h1.9 KBigtlMultiThreader.cxx25.4 KBigtlMultiThreader.h9.2 KBigtlMutexLock.cxx2.7 KBigtlMutexLock.h4.3 KBigtlOSUtil.cxx1010 BigtlOSUtil.h828 BigtlObject.cxx11.7 KBigtlObject.h7.2 KBigtlObjectFactory.h2.5 KBigtlObjectFactoryBase.cxx17.4 KBigtlObjectFactoryBase.h7.5 KBigtlServerSocket.cxx3.4 KBigtlServerSocket.h2.5 KBigtlSimpleFastMutexLock.cxx2.9 KBigtlSimpleFastMutexLock.h2.9 KBigtlSmartPointer.h5 KBigtlSocket.cxx9.6 KBigtlSocket.h5 KBigtlTransformMessage.cxx2.4 KBigtlTransformMessage.h1.5 KBigtlWin32Header.h5.7 KBigtlWindows.h1.6 KBigtlutilCMakeLists.txt354 Bigtl_header.c931 Bigtl_header.h1.8 KBigtl_image.c4.6 KBigtl_image.h4.5 KBigtl_transform.c1.1 KBigtl_transform.h1.2 KBigtl_types.h2.5 KBigtl_util.c7 KBigtl_util.h1.2 KBndicapiCMakeLists.txt522 BMakefile.in1.2 KBREADME.TXT2 KBconfig.h.in875 Bconfigure54 KBconfigure.in1.4 KBinstall-sh5.7 KBndicapi.c74.5 KBndicapi.def1.9 KBndicapi.dox31.9 KBndicapi.h68.5 KBndicapi.txt2.1 KBndicapi_math.c9.1 KBndicapi_math.h4.5 KBndicapi_serial.c27 KBndicapi_serial.h9.5 KBndicapi_thread.c7.2 KBndicapi_thread.h3.5 KBpolaris.dox31.9 KBpolaris.h50.9 KBpolaris.txt2.1 KBpolaris_math.h4.9 KBpolarismodule.c37.4 KBsetup.py347 BVTKLibs.DS_Store6 KBCMakeLists.txt42 BTrackingCMakeLists.txt713 BvtkFrameToTimeConverter.cxx6.4 KBvtkFrameToTimeConverter.h5.2 KBvtkNDICertusTracker.cxx27.7 KBvtkNDICertusTracker.h5.4 KBvtkNDITracker.cxx34.8 KBvtkNDITracker.h6.7 KBvtkTracker.cxx22.2 KBvtkTracker.h12.3 KBvtkTrackerBuffer.cxx21.6 KBvtkTrackerBuffer.h6.5 KBvtkTrackerTool.cxx12.3 KBvtkTrackerTool.h8 KBvtkTrackingWin32Header.h1015 BUltrasoundCMakeLists.txt2.5 KBTestingCMakeLists.txt55 BCalibFileReaderCMakeLists.txt124 BCalibFileReaderTest.cxx2.4 KBSonixVideoSourceCMakeLists.txt131 BSonixVideoSourceTest.cxx4.1 KBfixed.h19.7 KBvtk3DPanoramicVolumeReconstructor.cxx110.5 KBvtk3DPanoramicVolumeReconstructor.h13.2 KBvtkSonixVideoSource.cxx31.1 KBvtkSonixVideoSource.h8.2 KBvtkTaggedImageFilter.cxx6.2 KBvtkTaggedImageFilter.h4.6 KBvtkUltrasoundCalibFileReader.cxx14.3 KBvtkUltrasoundCalibFileReader.h5.2 KBvtkUltrasoundWin32Header.h1 KBWrappingJavaDependencies.cmake.in150 BTclMakePackages.tcl204 BvtkopenigtpkgIndex.tcl563 Bvtkopenigt.tcl74 BvtkopenigtultrasoundpkgIndex.tcl583 Bvtkopenigtultrasound.tcl255 BhintsvtkWrapperInit.data.in25 B

Select a file to preview