<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameliemeyer</id>
	<title>Slicer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameliemeyer"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/Ameliemeyer"/>
	<updated>2026-04-16T20:11:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38899</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38899"/>
		<updated>2014-08-26T14:05:55Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===Module===&lt;br /&gt;
* '''Use of base classes:'''&lt;br /&gt;
Use of base classes for Python scripted modules to simplify the code. See module [https://github.com/Slicer/Slicer/blob/master/Extensions/Testing/ScriptedLoadableExtensionTemplate/ScriptedLoadableModuleTemplate/ScriptedLoadableModuleTemplate.py template] and [https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/ScriptedLoadableModule.py source code] for base classes.&lt;br /&gt;
&lt;br /&gt;
===Parameters set===&lt;br /&gt;
* '''Parameters set observer:'''&lt;br /&gt;
Need to add an observer to save the new parameter value when user changes it, or to update the GUI when user select another parameter set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterNodeObserver = self.parameterNode.AddObserver('currentNodeChanged(vtkMRMLNode*)', functionToCall)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Saving parameters:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parametersList = {'parameterNode': GUIObject.currentObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox.value,...}&lt;br /&gt;
for parameter in self.parametersList:&lt;br /&gt;
  self.parameterNode.SetParameter(parameter, str(self.parametersList[parameter]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ROI node it has to be done using reference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
roiNodeID = self.roiNode.GetID()&lt;br /&gt;
self.parameterNode.SetNthNodeReferenceID('ROI', 0, roiNodeID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Getting a saved parameter and updating the GUI when selecting a parameter set:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterValueList = {'parameterName': GUIObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox,...}&lt;br /&gt;
for parameter in self.parameterValueList:&lt;br /&gt;
  if self.parameterNode.GetParameter(parameter):&lt;br /&gt;
    #Block Signal to avoid call of updateParameterNodeFromGui when parameter is set programmatically - we only want to catch when user change values&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(True)&lt;br /&gt;
      self.parameterValueList[parameter].setValue(float(self.parameterNode.GetParameter(parameter)))&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(False)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the ROI node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode = self.parameterNode.GetNthNodeReference('ROI', 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===OpenIGTLinkConnector===&lt;br /&gt;
* '''OpenIGTLinkConnector observer:'''&lt;br /&gt;
Need to add observers to be informed when the connector is connected/disconnected to enable/disable command buttons.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
events = [[slicer.vtkMRMLIGTLConnectorNode.ConnectedEvent, self.onConnectorNodeConnected], [slicer.vtkMRMLIGTLConnectorNode.DisconnectedEvent, self.onConnectorNodeDisconnected]]&lt;br /&gt;
for tagEventHandler in events:&lt;br /&gt;
  connectorNodeObserverTag = self.connectorNode.AddObserver(tagEventHandler[0], tagEventHandler[1])&lt;br /&gt;
  self.connectorNodeObserverTagList.append(connectorNodeObserverTag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ROI widget===&lt;br /&gt;
* '''ROI initialization:'''&lt;br /&gt;
ROI widget is created after the scout scan and it is initialized to fit the scout scan reconstructed volume, which is in the RAS coordinate system. RAS origin is the corner of the cube whereas ROI origin has to be the center of the cube. Radius is half of the distance from one side to another side of the cube.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reconstructedVolumeNode.GetRASBounds(bounds)&lt;br /&gt;
for i in range(0,5,2):&lt;br /&gt;
  roiCenterInit[i] = (bounds[i+1] + bounds[i])/2&lt;br /&gt;
  roiRadiusInit[i] = (bounds[i+1] - bounds[i])/2&lt;br /&gt;
...&lt;br /&gt;
  self.roiNode = slicer.vtkMRMLAnnotationROINode()&lt;br /&gt;
  self.roiNode.SetXYZ(roiCenterInit[0], roiCenterInit[2], roiCenterInit[4])&lt;br /&gt;
  self.roiNode.SetRadiusXYZ(roiRadiusInit[0], roiRadiusInit[2], roiRadiusInit[4])&lt;br /&gt;
  self.roiNode.Initialize(slicer.mrmlScene)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update extent values:'''&lt;br /&gt;
Need to update volume extent values each time user modifies the ROI, as we want the volume to fit ROI for live reconstruction. Origin of the cube is computed using the ROI values. For each direction extent value is twice the radius divided by the spacing, as radius is given in millimetres and extent in pixels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode.GetXYZ(roiCenter)&lt;br /&gt;
self.roiNode.GetRadiusXYZ(roiRadius)&lt;br /&gt;
for i in range(0,len(roiCenter)):&lt;br /&gt;
  outputOrigin[i] = roiCenter[i] - roiRadius[i]&lt;br /&gt;
#Radius in mm, extent in pixel&lt;br /&gt;
self.outputExtentValue = [0, int((2*roiRadius[0])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[1])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[2])/self.outputSpacingLiveReconstructionBox.value)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Multiple commands processing===&lt;br /&gt;
* '''Hash table for multiple commands processing:'''&lt;br /&gt;
Need to be able to send multiple commands and call functions when the reply is received. Use of hash table to store the command ID and the associated function to call. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.commandToMethodHashtable[commandId]={'responseCallback': responseCallback, 'connectorNodeId': connectorNodeId, 'remainingTime': self.defaultCommandTimeoutSec/self.timerIntervalSec}&lt;br /&gt;
...&lt;br /&gt;
for commandId in self.commandToMethodHashtable.keys():&lt;br /&gt;
...&lt;br /&gt;
if textNode or remainingTime&amp;lt;=0:&lt;br /&gt;
  # We received a response or timed out waiting for a response&lt;br /&gt;
  commandToMethodItem = self.commandToMethodHashtable.pop(commandId)&lt;br /&gt;
  responseCallback = commandToMethodItem['responseCallback']&lt;br /&gt;
  responseCallback(commandId, textNode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38898</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38898"/>
		<updated>2014-08-25T20:40:40Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===Module===&lt;br /&gt;
* '''Use of base classes:'''&lt;br /&gt;
Use of base classes for Python scripted modules to simplify the code. See module [https://github.com/Slicer/Slicer/blob/master/Extensions/Testing/ScriptedLoadableExtensionTemplate/ScriptedLoadableModuleTemplate/ScriptedLoadableModuleTemplate.py template] and [https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/ScriptedLoadableModule.py source code] for base classes.&lt;br /&gt;
&lt;br /&gt;
===Parameters set===&lt;br /&gt;
* '''Parameters set observer:'''&lt;br /&gt;
Need to add an observer to save the new parameter value when user changes it, or to update the GUI when user select another parameter set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterNodeObserver = self.parameterNode.AddObserver('currentNodeChanged(vtkMRMLNode*)', functionToCall)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Saving parameters:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterValueList = {'parameterName': GUIObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox,...}&lt;br /&gt;
for parameter in self.parameterValueList:&lt;br /&gt;
  if self.parameterNode.GetParameter(parameter):&lt;br /&gt;
    #Block Signal to avoid call of updateParameterNodeFromGui when parameter is set programmatically - we only want to catch when user change values&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(True)&lt;br /&gt;
      self.parameterValueList[parameter].setValue(float(self.parameterNode.GetParameter(parameter)))&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(False)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the ROI node it has to be done using reference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode = self.parameterNode.GetNthNodeReference('ROI', 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Getting a saved parameter and updating the GUI when selecting a parameter set:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parametersList = {'parameterNode': GUIObject.currentObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox.value,...}&lt;br /&gt;
for parameter in self.parametersList:&lt;br /&gt;
  self.parameterNode.SetParameter(parameter, str(self.parametersList[parameter]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ROI node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
roiNodeID = self.roiNode.GetID()&lt;br /&gt;
self.parameterNode.SetNthNodeReferenceID('ROI', 0, roiNodeID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===OpenIGTLinkConnector===&lt;br /&gt;
* '''OpenIGTLinkConnector observer:'''&lt;br /&gt;
Need to add observers to be informed when the connector is connected/disconnected to enable/disable command buttons.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
events = [[slicer.vtkMRMLIGTLConnectorNode.ConnectedEvent, self.onConnectorNodeConnected], [slicer.vtkMRMLIGTLConnectorNode.DisconnectedEvent, self.onConnectorNodeDisconnected]]&lt;br /&gt;
for tagEventHandler in events:&lt;br /&gt;
  connectorNodeObserverTag = self.connectorNode.AddObserver(tagEventHandler[0], tagEventHandler[1])&lt;br /&gt;
  self.connectorNodeObserverTagList.append(connectorNodeObserverTag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ROI widget===&lt;br /&gt;
* '''ROI initialization:'''&lt;br /&gt;
ROI widget is created after the scout scan and it is initialized to fit the scout scan reconstructed volume, which is in the RAS coordinate system. RAS origin is the corner of the cube whereas ROI origin has to be the center of the cube. Radius is half of the distance from one side to another side of the cube.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reconstructedVolumeNode.GetRASBounds(bounds)&lt;br /&gt;
for i in range(0,5,2):&lt;br /&gt;
  roiCenterInit[i] = (bounds[i+1] + bounds[i])/2&lt;br /&gt;
  roiRadiusInit[i] = (bounds[i+1] - bounds[i])/2&lt;br /&gt;
...&lt;br /&gt;
  self.roiNode = slicer.vtkMRMLAnnotationROINode()&lt;br /&gt;
  self.roiNode.SetXYZ(roiCenterInit[0], roiCenterInit[2], roiCenterInit[4])&lt;br /&gt;
  self.roiNode.SetRadiusXYZ(roiRadiusInit[0], roiRadiusInit[2], roiRadiusInit[4])&lt;br /&gt;
  self.roiNode.Initialize(slicer.mrmlScene)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update extent values:'''&lt;br /&gt;
Need to update volume extent values each time user modifies the ROI, as we want the volume to fit ROI for live reconstruction. Origin of the cube is computed using the ROI values. For each direction extent value is twice the radius divided by the spacing, as radius is given in millimetres and extent in pixels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode.GetXYZ(roiCenter)&lt;br /&gt;
self.roiNode.GetRadiusXYZ(roiRadius)&lt;br /&gt;
for i in range(0,len(roiCenter)):&lt;br /&gt;
  outputOrigin[i] = roiCenter[i] - roiRadius[i]&lt;br /&gt;
#Radius in mm, extent in pixel&lt;br /&gt;
self.outputExtentValue = [0, int((2*roiRadius[0])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[1])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[2])/self.outputSpacingLiveReconstructionBox.value)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Multiple commands processing===&lt;br /&gt;
* '''Hash table for multiple commands processing:'''&lt;br /&gt;
Need to be able to send multiple commands and call functions when the reply is received. Use of hash table to store the command ID and the associated function to call. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.commandToMethodHashtable[commandId]={'responseCallback': responseCallback, 'connectorNodeId': connectorNodeId, 'remainingTime': self.defaultCommandTimeoutSec/self.timerIntervalSec}&lt;br /&gt;
...&lt;br /&gt;
for commandId in self.commandToMethodHashtable.keys():&lt;br /&gt;
...&lt;br /&gt;
if textNode or remainingTime&amp;lt;=0:&lt;br /&gt;
  # We received a response or timed out waiting for a response&lt;br /&gt;
  commandToMethodItem = self.commandToMethodHashtable.pop(commandId)&lt;br /&gt;
  responseCallback = commandToMethodItem['responseCallback']&lt;br /&gt;
  responseCallback(commandId, textNode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38897</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38897"/>
		<updated>2014-08-25T20:17:53Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===Parameters set===&lt;br /&gt;
* '''Parameters set observer:'''&lt;br /&gt;
Need to add an observer to save the new parameter value when user changes it, or to update the GUI when user select another parameter set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterNodeObserver = self.parameterNode.AddObserver('currentNodeChanged(vtkMRMLNode*)', functionToCall)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Saving parameters:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterValueList = {'parameterName': GUIObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox,...}&lt;br /&gt;
for parameter in self.parameterValueList:&lt;br /&gt;
  if self.parameterNode.GetParameter(parameter):&lt;br /&gt;
    #Block Signal to avoid call of updateParameterNodeFromGui when parameter is set programmatically - we only want to catch when user change values&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(True)&lt;br /&gt;
      self.parameterValueList[parameter].setValue(float(self.parameterNode.GetParameter(parameter)))&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(False)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the ROI node it has to be done using reference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode = self.parameterNode.GetNthNodeReference('ROI', 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Getting a saved parameter and updating the GUI when selecting a parameter set:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parametersList = {'parameterNode': GUIObject.currentObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox.value,...}&lt;br /&gt;
for parameter in self.parametersList:&lt;br /&gt;
  self.parameterNode.SetParameter(parameter, str(self.parametersList[parameter]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ROI node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
roiNodeID = self.roiNode.GetID()&lt;br /&gt;
self.parameterNode.SetNthNodeReferenceID('ROI', 0, roiNodeID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===OpenIGTLinkConnector===&lt;br /&gt;
* '''OpenIGTLinkConnector observer:'''&lt;br /&gt;
Need to add observers to be informed when the connector is connected/disconnected to enable/disable command buttons.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
events = [[slicer.vtkMRMLIGTLConnectorNode.ConnectedEvent, self.onConnectorNodeConnected], [slicer.vtkMRMLIGTLConnectorNode.DisconnectedEvent, self.onConnectorNodeDisconnected]]&lt;br /&gt;
for tagEventHandler in events:&lt;br /&gt;
  connectorNodeObserverTag = self.connectorNode.AddObserver(tagEventHandler[0], tagEventHandler[1])&lt;br /&gt;
  self.connectorNodeObserverTagList.append(connectorNodeObserverTag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ROI widget===&lt;br /&gt;
* '''ROI initialization:'''&lt;br /&gt;
ROI widget is created after the scout scan and it is initialized to fit the scout scan reconstructed volume, which is in the RAS coordinate system. RAS origin is the corner of the cube whereas ROI origin has to be the center of the cube. Radius is half of the distance from one side to another side of the cube.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reconstructedVolumeNode.GetRASBounds(bounds)&lt;br /&gt;
for i in range(0,5,2):&lt;br /&gt;
  roiCenterInit[i] = (bounds[i+1] + bounds[i])/2&lt;br /&gt;
  roiRadiusInit[i] = (bounds[i+1] - bounds[i])/2&lt;br /&gt;
...&lt;br /&gt;
  self.roiNode = slicer.vtkMRMLAnnotationROINode()&lt;br /&gt;
  self.roiNode.SetXYZ(roiCenterInit[0], roiCenterInit[2], roiCenterInit[4])&lt;br /&gt;
  self.roiNode.SetRadiusXYZ(roiRadiusInit[0], roiRadiusInit[2], roiRadiusInit[4])&lt;br /&gt;
  self.roiNode.Initialize(slicer.mrmlScene)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update extent values:'''&lt;br /&gt;
Need to update volume extent values each time user modifies the ROI, as we want the volume to fit ROI for live reconstruction. Origin of the cube is computed using the ROI values. For each direction extent value is twice the radius divided by the spacing, as radius is given in millimetres and extent in pixels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode.GetXYZ(roiCenter)&lt;br /&gt;
self.roiNode.GetRadiusXYZ(roiRadius)&lt;br /&gt;
for i in range(0,len(roiCenter)):&lt;br /&gt;
  outputOrigin[i] = roiCenter[i] - roiRadius[i]&lt;br /&gt;
#Radius in mm, extent in pixel&lt;br /&gt;
self.outputExtentValue = [0, int((2*roiRadius[0])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[1])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[2])/self.outputSpacingLiveReconstructionBox.value)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Multiple commands processing===&lt;br /&gt;
* '''Hash table for multiple commands processing:'''&lt;br /&gt;
Need to be able to send multiple commands and call functions when the reply is received. Use of hash table to store the command ID and the associated function to call. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.commandToMethodHashtable[commandId]={'responseCallback': responseCallback, 'connectorNodeId': connectorNodeId, 'remainingTime': self.defaultCommandTimeoutSec/self.timerIntervalSec}&lt;br /&gt;
...&lt;br /&gt;
for commandId in self.commandToMethodHashtable.keys():&lt;br /&gt;
...&lt;br /&gt;
if textNode or remainingTime&amp;lt;=0:&lt;br /&gt;
  # We received a response or timed out waiting for a response&lt;br /&gt;
  commandToMethodItem = self.commandToMethodHashtable.pop(commandId)&lt;br /&gt;
  responseCallback = commandToMethodItem['responseCallback']&lt;br /&gt;
  responseCallback(commandId, textNode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38896</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38896"/>
		<updated>2014-08-25T20:10:33Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===Parameters set===&lt;br /&gt;
* '''Parameters set observer:'''&lt;br /&gt;
Need to add an observer to save the new parameter value when user changes it, or to update the GUI when user select another parameter set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterNodeObserver = self.parameterNode.AddObserver('currentNodeChanged(vtkMRMLNode*)', functionToCall)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Saving parameters:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterValueList = {'parameterName': GUIObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox,...}&lt;br /&gt;
for parameter in self.parameterValueList:&lt;br /&gt;
  if self.parameterNode.GetParameter(parameter):&lt;br /&gt;
    #Block Signal to avoid call of updateParameterNodeFromGui when parameter is set programmatically - we only want to catch when user change values&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(True)&lt;br /&gt;
      self.parameterValueList[parameter].setValue(float(self.parameterNode.GetParameter(parameter)))&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(False)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the ROI node it has to be done using reference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode = self.parameterNode.GetNthNodeReference('ROI', 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Getting a saved parameter and updating the GUI when selecting a parameter set:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parametersList = {'parameterNode': GUIObject.currentObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox.value,...}&lt;br /&gt;
for parameter in self.parametersList:&lt;br /&gt;
  self.parameterNode.SetParameter(parameter, str(self.parametersList[parameter]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ROI node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
roiNodeID = self.roiNode.GetID()&lt;br /&gt;
self.parameterNode.SetNthNodeReferenceID('ROI', 0, roiNodeID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===OpenIGTLinkConnector===&lt;br /&gt;
* '''OpenIGTLinkConnector observer:'''&lt;br /&gt;
Need to add observers to be informed when the connector is connected/disconnected to enable/disable command buttons.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
events = [[slicer.vtkMRMLIGTLConnectorNode.ConnectedEvent, self.onConnectorNodeConnected], [slicer.vtkMRMLIGTLConnectorNode.DisconnectedEvent, self.onConnectorNodeDisconnected]]&lt;br /&gt;
for tagEventHandler in events:&lt;br /&gt;
  connectorNodeObserverTag = self.connectorNode.AddObserver(tagEventHandler[0], tagEventHandler[1])&lt;br /&gt;
  self.connectorNodeObserverTagList.append(connectorNodeObserverTag)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ROI widget===&lt;br /&gt;
* '''ROI initialization:'''&lt;br /&gt;
ROI widget is created after the scout scan and it is initialized to fit the scout scan reconstructed volume, which is in the RAS coordinate system. RAS origin is the corner of the cube whereas ROI origin has to be the center of the cube. Radius is half of the distance from one side to another side of the cube.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
reconstructedVolumeNode.GetRASBounds(bounds)&lt;br /&gt;
for i in range(0,5,2):&lt;br /&gt;
  roiCenterInit[i] = (bounds[i+1] + bounds[i])/2&lt;br /&gt;
  roiRadiusInit[i] = (bounds[i+1] - bounds[i])/2&lt;br /&gt;
  if self.roiNode:&lt;br /&gt;
    self.roiNode.SetXYZ(roiCenterInit[0], roiCenterInit[2], roiCenterInit[4])&lt;br /&gt;
    self.roiNode.SetRadiusXYZ(roiRadiusInit[0], roiRadiusInit[2], roiRadiusInit[4])&lt;br /&gt;
  else:&lt;br /&gt;
    self.roiNode = slicer.vtkMRMLAnnotationROINode()&lt;br /&gt;
    self.roiNode.SetXYZ(roiCenterInit[0], roiCenterInit[2], roiCenterInit[4])&lt;br /&gt;
    self.roiNode.SetRadiusXYZ(roiRadiusInit[0], roiRadiusInit[2], roiRadiusInit[4])&lt;br /&gt;
    self.roiNode.Initialize(slicer.mrmlScene)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Update extent values:'''&lt;br /&gt;
Need to update volume extent values each time user modifies the ROI, as we want the volume to fit ROI for live reconstruction. Origin of the cube is computed using the ROI values. For each direction extent value is twice the radius divided by the spacing, as radius is given in millimetres and extent in pixels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode.GetXYZ(roiCenter)&lt;br /&gt;
self.roiNode.GetRadiusXYZ(roiRadius)&lt;br /&gt;
for i in range(0,len(roiCenter)):&lt;br /&gt;
  outputOrigin[i] = roiCenter[i] - roiRadius[i]&lt;br /&gt;
#Radius in mm, extent in pixel&lt;br /&gt;
self.outputExtentValue = [0, int((2*roiRadius[0])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[1])/self.outputSpacingLiveReconstructionBox.value), 0, int((2*roiRadius[2])/self.outputSpacingLiveReconstructionBox.value)]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Multiple commands processing===&lt;br /&gt;
* '''Hash table for multiple commands processing:'''&lt;br /&gt;
Need to be able to send multiple commands and call functions when the reply is received. Use of hash table to store the command ID and the associated function to call. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.commandToMethodHashtable[commandId]={'responseCallback': responseCallback, 'connectorNodeId': connectorNodeId, 'remainingTime': self.defaultCommandTimeoutSec/self.timerIntervalSec}&lt;br /&gt;
...&lt;br /&gt;
for commandId in self.commandToMethodHashtable.keys():&lt;br /&gt;
...&lt;br /&gt;
if textNode or remainingTime&amp;lt;=0:&lt;br /&gt;
  # We received a response or timed out waiting for a response&lt;br /&gt;
  commandToMethodItem = self.commandToMethodHashtable.pop(commandId)&lt;br /&gt;
  responseCallback = commandToMethodItem['responseCallback']&lt;br /&gt;
  responseCallback(commandId, textNode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38895</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38895"/>
		<updated>2014-08-25T19:49:23Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===How Tos===&lt;br /&gt;
* '''Parameters set:'''&lt;br /&gt;
Need to add an observer to save the new parameter value when user changes it, or to update the GUI when user select another parameter set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterNodeObserver = self.parameterNode.AddObserver('currentNodeChanged(vtkMRMLNode*)', functionToCall)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Saving parameters:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parameterValueList = {'parameterName': GUIObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox,...}&lt;br /&gt;
for parameter in self.parameterValueList:&lt;br /&gt;
  if self.parameterNode.GetParameter(parameter):&lt;br /&gt;
    #Block Signal to avoid call of updateParameterNodeFromGui when parameter is set programmatically - we only want to catch when user change values&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(True)&lt;br /&gt;
      self.parameterValueList[parameter].setValue(float(self.parameterNode.GetParameter(parameter)))&lt;br /&gt;
      self.parameterValueList[parameter].blockSignals(False)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the ROI node it has to be done using reference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.roiNode = self.parameterNode.GetNthNodeReference('ROI', 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Getting a saved parameter and updating the GUI when selecting a parameter set:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
self.parametersList = {'parameterNode': GUIObject.currentObject, 'ScoutScanSpacing': self.outputVolumeSpacingBox.value,...}&lt;br /&gt;
for parameter in self.parametersList:&lt;br /&gt;
  self.parameterNode.SetParameter(parameter, str(self.parametersList[parameter]))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ROI node:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
roiNodeID = self.roiNode.GetID()&lt;br /&gt;
self.parameterNode.SetNthNodeReferenceID('ROI', 0, roiNodeID)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38894</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38894"/>
		<updated>2014-08-25T19:31:53Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* Extent values are updated only when clicking on scout scan or live reconstruction command buttons, not in &amp;quot;real-time&amp;quot; when user modifies the ROI&lt;br /&gt;
* Foreground volume contrast and brightness is set programmatically using scout scan values, because it cannot be modified in Slicer views &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===How Tos===&lt;br /&gt;
*How to programmatically volume render your volume node?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38891</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38891"/>
		<updated>2014-08-25T19:16:24Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
*To date, &lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html vtkMRMLScriptedModuleNode] saves all parameters and get them back when selecting a parameter set&lt;br /&gt;
* [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLIGTLConnectorNode.html vtkMRMLIGTLConnectorNode] is OpenIGTLink connector node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the resulting volume&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeDisplayNode.html vtkMRMLScalarVolumeDisplayNode] changes the display properties of the node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] to create the volume rendering display node&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the ROI widget&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationTextNode.html vtkMRMLAnnotationTextNode] represents the command reply text&lt;br /&gt;
&lt;br /&gt;
===How Tos===&lt;br /&gt;
*How to programmatically volume render your volume node?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38884</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38884"/>
		<updated>2014-08-25T17:21:57Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values (updated when clicking on scout scan or live reconstruction command buttons)&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38883</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38883"/>
		<updated>2014-08-25T17:21:09Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values&lt;br /&gt;
*** Display snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38882</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38882"/>
		<updated>2014-08-25T17:16:54Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values&lt;br /&gt;
*** Take snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server (also visible when moving the mouse on blue information icons)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38881</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38881"/>
		<updated>2014-08-25T17:13:59Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default output filename &amp;quot;Recording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name &lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Scout scan and live reconstruction:''' &lt;br /&gt;
** Start and stop scout scan &lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm as we expect a low resolution scout scan)&lt;br /&gt;
*** Modify default output filename &amp;quot;ScoutScanRecording.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
Scout scan button record a file and automatically performs the volume reconstruction once the recording is over. The result of scout scan volume reconstruction is saved in &amp;quot;scoutFile.mha&amp;quot;&lt;br /&gt;
** Start and stop live volume reconstruction:&lt;br /&gt;
** Display and modify ROI using eye icon (initialized to fit scout scan volume)&lt;br /&gt;
** Spacing (default value is 1mm for high resolution reconstruction)&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Output volume device name (read only)&lt;br /&gt;
*** Modify default output filename &amp;quot;LiveReconstructedVolume.mha&amp;quot;&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
*** Display volume extent values&lt;br /&gt;
*** Take snapshots during live volume reconstruction (if 0, no snapshots)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38880</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38880"/>
		<updated>2014-08-25T17:00:25Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See PLUS [https://www.assembla.com/spaces/plus/wiki/Users_guide user guide] and [http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html manual] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default filename&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name&lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38879</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38879"/>
		<updated>2014-08-25T16:55:05Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributors: Tamas Ungi (PerkLab, Queen's University), Andras Lasso (PerkLab, Queen's University), Amélie Meyer (Télécom Physique Strasbourg, Université de Strasbourg)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands https://www.assembla.com/spaces/plus/wiki/PlusServer_commands] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Recording:''' &lt;br /&gt;
** Start and stop recording&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Modify default filename&lt;br /&gt;
*** Add timestamp (YYYYMMDD_HHMMSS) to filename&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Offline reconstruction of recorded volume:''' &lt;br /&gt;
** Offline reconstruction&lt;br /&gt;
** Advanced parameters:&lt;br /&gt;
*** Spacing (default value is 3mm)&lt;br /&gt;
*** Output volume device name&lt;br /&gt;
*** Volume to reconstruct filename (automatically filled when user record a file, but user can also edit this line and reconstruct previously saved files)&lt;br /&gt;
*** Show results on completion (display reconstructed volume in the green, yellow and 3D views) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38877</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38877"/>
		<updated>2014-08-25T16:39:12Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor: Tamas Ungi (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands https://www.assembla.com/spaces/plus/wiki/PlusServer_commands] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*'''Parameters sets:''' saving of all parameters&lt;br /&gt;
** Create a new parameter set to save your parameters&lt;br /&gt;
** Select previously saved ones &lt;br /&gt;
** Default parameter set is selected when entering the module&lt;br /&gt;
This is useful when user knows optimal parameters for a specific procedure. The parameters set is saved when saving the scene and is reloaded when opening a saved scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''Parameters:''' parameters for communication with PLUS server, recording and reconstruction&lt;br /&gt;
** OpenIGTLinkConnector&lt;br /&gt;
** Capture Device ID&lt;br /&gt;
** Volume Reconstructor ID&lt;br /&gt;
These parameters are essential. Therefore all commands are disabled when these parameters are not set. List of available OpenIGTLinkConnector is available once you created connections in [https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/OpenIGTLinkIF OpenIGTLinkIF] module. When a connector is selected, capture device ID and volume reconstruction ID lists are automatically filled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Recording: Start and stop recording&lt;br /&gt;
** test&lt;br /&gt;
&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38876</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38876"/>
		<updated>2014-08-25T16:05:53Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor: Tamas Ungi (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands https://www.assembla.com/spaces/plus/wiki/PlusServer_commands] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemote_panel.png|500px|thumb|right|Plus Remote panel]] &lt;br /&gt;
[[File:PlusRemote_AdvancedOptions.png|500px|thumb|right|Plus Remote panel with advanced parameters]] &lt;br /&gt;
&lt;br /&gt;
*Recording: Start and stop recording&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:PlusRemote_AdvancedOptions.png&amp;diff=38875</id>
		<title>File:PlusRemote AdvancedOptions.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:PlusRemote_AdvancedOptions.png&amp;diff=38875"/>
		<updated>2014-08-25T16:01:28Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:PlusRemote_panel.png&amp;diff=38874</id>
		<title>File:PlusRemote panel.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:PlusRemote_panel.png&amp;diff=38874"/>
		<updated>2014-08-25T16:00:50Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38873</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38873"/>
		<updated>2014-08-25T15:53:54Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor: Tamas Ungi (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands https://www.assembla.com/spaces/plus/wiki/PlusServer_commands] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:VolRec_Workflow.jpg|Workflow for live ultrasound volume reconstruction using scout scanning&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_phantom_scan.jpg|Completed scout scan (left-side image), live update of reconstruction (middle) and final live reconstructed volume (right) of a spine phantom&amp;lt;br&amp;gt;&lt;br /&gt;
Image:PlusRemote_volunteer_scan.jpg|Scout scan (left) and live reconstruction (right) of an adult spine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemoteScreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
*Recording: Start and stop recording&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38872</id>
		<title>Documentation/Nightly/Modules/PlusRemote</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Nightly/Modules/PlusRemote&amp;diff=38872"/>
		<updated>2014-08-25T15:37:50Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: New version of Plus Remote&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Author: Franklin King (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contributor: Tamas Ungi (PerkLab, Queen's University)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Tamas Ungi, &amp;lt;email&amp;gt;ungi@cs.queensu.ca&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|cco}}|{{collaborator|longname|cco}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
Convenience module for sending commands through OpenIGTLink Remote to PLUS. Requires OpenIGTLink Remote module available in the SlicerIGT extension. See [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands https://www.assembla.com/spaces/plus/wiki/PlusServer_commands] for more information about PLUS server commands.&lt;br /&gt;
&lt;br /&gt;
The module provides the following features:&lt;br /&gt;
* Recording of 2D tracked ultrasound frames&lt;br /&gt;
* Volume reconstruction of recorded frames&lt;br /&gt;
* Live ultrasound volume reconstruction using scout scanning&lt;br /&gt;
* Sending Transform Update command to PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
Some ultrasound-guided interventions require a general view of an entire area followed by more detailed images of a specific region. One example is spinal injection procedures. The problem is that, for elderly patients, the epidural area is not directly visible in ultrasound images because the intervertebral space is often compressed or deformed. In this case, physicians use four vertebrae landmarks to estimate the position of the target. Visualization can be improved using reconstructed 3D ultrasound volumes, but often there is not enough time for high resolution reconstruction of a large area during interventions.&lt;br /&gt;
&lt;br /&gt;
The live ultrasound volume reconstruction workflow using scout scanning is then adapted for these procedures. The two-step method allows user to perform quick low resolution scout scan followed by high resolution volume reconstruction of a selected region of interest, in real-time. Low resolution scout scanning offers visualization of the global area and selection of the region of interest, and then high resolution reconstruction provides a good image quality of the targeted region. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
The SlicerIGT [http://www.slicerigt.org/wp/user-tutorial/ website] provides a [https://onedrive.live.com/view.aspx?cid=7230D4DEC6058018&amp;amp;resid=7230D4DEC6058018%213992&amp;amp;app=PowerPoint&amp;amp;authkey=%21AGQkSCZOwjVYXw8 tutorial] for ultrasound volume reconstruction in Slicer using Plus Remote (U35).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:PlusRemoteScreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
*Recording: Start and stop recording&lt;br /&gt;
*Transform Update: Update transform from what is set in the PLUS config file; Requires name of transform node to match an existing transform in the PLUS config file&lt;br /&gt;
*Reply: Feedback message from PLUS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
* [https://www.assembla.com/spaces/plus/wiki/PlusServer_commands PlusServer commands]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-developerinfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:VolRec_Workflow.jpg&amp;diff=38870</id>
		<title>File:VolRec Workflow.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:VolRec_Workflow.jpg&amp;diff=38870"/>
		<updated>2014-08-25T15:24:10Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: Volume reconstruction using scout scanning: workflow in Plus Remote.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Volume reconstruction using scout scanning: workflow in Plus Remote.&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:PlusRemote_volunteer_scan.jpg&amp;diff=38869</id>
		<title>File:PlusRemote volunteer scan.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:PlusRemote_volunteer_scan.jpg&amp;diff=38869"/>
		<updated>2014-08-25T15:22:49Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: Live volume reconstruction of an human subject spine using scout scanning in Plus Remote.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Live volume reconstruction of an human subject spine using scout scanning in Plus Remote.&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:PlusRemote_phantom_scan.jpg&amp;diff=38868</id>
		<title>File:PlusRemote phantom scan.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:PlusRemote_phantom_scan.jpg&amp;diff=38868"/>
		<updated>2014-08-25T15:18:26Z</updated>

		<summary type="html">&lt;p&gt;Ameliemeyer: Live volume reconstruction of a spine phantom using scout scanning in Plus Remote module.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Live volume reconstruction of a spine phantom using scout scanning in Plus Remote module.&lt;/div&gt;</summary>
		<author><name>Ameliemeyer</name></author>
		
	</entry>
</feed>