| Literature DB >> 32932840 |
Paolo Zaffino1, Alessio Merola1, Domenico Leuzzi1, Virgilio Sabatino1, Carlo Cosentino1, Maria Francesca Spadea1.
Abstract
Interaction between medical image platform and external environment is a desirable feature in several clinical, research, and educational scenarios. In this work, the integration between 3D Slicer package and Arduino board is introduced, enabling a simple and useful communication between the two software/hardware platforms. The open source extension, programmed in Python language, manages the connection process and offers a communication layer accessible from any point of the medical image suite infrastructure. Deep integration with 3D Slicer code environment is provided and a basic input-output mechanism accessible via GUI is also made available. To test the proposed extension, two exemplary use cases were implemented: (1) INPUT data to 3D Slicer, to navigate on basis of data detected by a distance sensor connected to the board, and (2) OUTPUT data from 3D Slicer, to control a servomotor on the basis of data computed through image process procedures. Both goals were achieved and quasi-real-time control was obtained without any lag or freeze, thus boosting the integration between 3D Slicer and Arduino. This integration can be easily obtained through the execution of few lines of Python code. In conclusion, SlicerArduino proved to be suitable for fast prototyping, basic input-output interaction, and educational purposes. The extension is not intended for mission-critical clinical tasks.Entities:
Keywords: 3D Slicer; Arduino; medical imaging platform; microcontroller
Year: 2020 PMID: 32932840 PMCID: PMC7552646 DOI: 10.3390/bioengineering7030109
Source DB: PubMed Journal: Bioengineering (Basel) ISSN: 2306-5354
Figure 1SlicerArduino Graphical User Interface (GUI).
Figure 2Data stream visualization coming from an established hardware connection.
Figure 3Graphical concept of SlicerArduino extension.
Figure 4Simulation of an ultrasound guided procedure. The aim was to move the probe according to the data coming from a distance sensor.
Listing 1Python code developed for moving ultrasound probe according to data coming from distance sensor. Since the class is observing the Arduino node, when a new value is read the function that edits the linear transformation is executed.
Figure 5Computed tomography (CT) scans shown in overlay mode. In the left panel, before registration, it is possible to see the misalignment along the z axis. In the right panel, after linear registration, the displacement was accurately recovered.
Listing 2Python code for controlling a servomotor according to a translation identified by the alignment of two CT scans.
Time needed for a sample to travel back and forward the board via Slicer (at 9600 baud).
| Polling Frequency (Hz) | Mean (ms) | Standard Deviation (ms) |
|---|---|---|
| 50 | 20.0 | 2.4 |
| 100 | 17.4 | 1.7 |