# Live volume reconstruction using Telemed and NDI Aurora

**URL:** <https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578>\
**Category:** Support\
**Tags:** surgical-navigation, ultrasound\
**Created:** [June 3, 2024, 7:09pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578 "2024-06-03T19:09:37Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 3, 2024, 7:09pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/1 "2024-06-03T19:09:37Z")

</div>

Operating system: Windows 10  
Slicer version: 4.11.20200930  
Plus version: 2.9.0.20240320-Telemed-Win64  
Expected behavior: Image slice from Telemed moves as tracked by the NDI Aurora. Scout scan projects movement and live reconstruction creates volume.  
Actual behavior: Image slice from Telemed is not moving based on NDI Aurora tracker. Scout scan is not working, and live reconstruction does not work due to scout scan.

Hi, I am trying to perform live reconstruction of the kidney using Telemed to visualize images and NDI Aurora to track movement of probe. I successfully connected the devices to the Plus server using the configuration file provided below. I combined each device’s respective configuration into one file and followed the steps in this [video](https://youtu.be/2vXeJxYFou4?si=d6KAe1T-cbZ707wK). However, each time I get to the Scout scan and live reconstruction part, it does not work. Based on documentation, tutorials, and videos, the image slice projected by Telemed should move based on the movement of the probe tracked by the NDI Aurora. From my impression, the scout scanning and live reconstruction occurs based on the movement of the probe. The video uses a different method than the SlicerIGT tutorials. The video uses the Plus Remote module to set up the server and rearranges the transform data hierarchy. I assume that I need the Image\_Image transform in my hierarchy but my list only contains Image\_Reference. Also, when I click on the view in the 3D volume section, the image slice takes up the whole outlined volume box and the volume box disappears. I have included some screenshots as reference. I have trying to achieve the same results as this [video](https://youtu.be/lfZeXabDjMg?si=xNzoaOaWt0ax2OpN), but with the Telemed and NDI Aurora. I looked at forums to find similar questions and tried to troubleshoot it, but I cannot figure it out. I’m not sure if my configuration files are incorrect or missing a part or if I am missing a step when setting up the live reconstruction in 3D Slicer. Please provide advice and solutions to this problem.

![image (1)](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/9/2/928d17525556f9867a48dab40cd163d8dd4b9825.png)

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/2/b/2b5c144b5116698b7acfd6e9dd928fd691f38d15.png)  
 ![PlusDeviceSet_Server_NDIAurora_and_Telemed_Configuration_File](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/e/c/eced31dcfc7f2a186f3e4ad35851b78c4e6b061f.png)

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [June 3, 2024, 8:05pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/2 "2024-06-03T20:05:24Z")

</div>

Please don’t upload images of config files. It makes them difficult to search.

Your ImageToReference is a static transform, so the ultrasound image will never move. You’ll need to update your config file to use the correct names for the tools tracked by the Aurora.

With only one sensor you can perform the volume reconstruction in the “Tracker” coordinate system, provided that the object you’re scanning never moves, but it would be better to have both a reference sensor attached to the object and a sensor on the probe, and perform the reconstruction in the “Reference” coordinate system.

If you want to perform the volume reconstruction like it is done in the first video, you will need the latest stable or nightly version of Slicer.

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [June 3, 2024, 8:11pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/3 "2024-06-03T20:11:20Z")

</div>

You can find more info on commonly used coordinate systems in Plus here:

[http://perk-software.cs.queensu.ca/plus/doc/nightly/user/CommonCoordinateSystems.html](http://perk-software.cs.queensu.ca/plus/doc/nightly/user/CommonCoordinateSystems.html)

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 3, 2024, 8:32pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/4 "2024-06-03T20:32:10Z")

</div>

Hi Kyle,  
I appreciate your timely response. Sorry about the configuration file image. I didn’t know how to upload it since I could only upload image or video files and thought pasting it into the text would make the post too long. Is there a better way to share the file for next time?

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 3, 2024, 8:33pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/5 "2024-06-03T20:33:44Z")

</div>

Thank you for the resource! The sketch is very helpful and clarifies the problem. Is there a configuration file based on this coordinate system sketch?

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [June 3, 2024, 8:41pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/6 "2024-06-03T20:41:16Z")

</div>

In the future you can upload the config file somewhere else and add a link or attach the config file text to the discourse post using:

````auto
[details="Config file"]
```
<xml></xml>
```
[/details]

````

Which creates:

> **Config file**
>
> ```auto
> <xml></xml>
> 
> ```

This config file uses Ultrasonix and Ascension devices, but the concept should be the same if you update the config file to use Telemed and Aurora.

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 4, 2024, 4:41pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/7 "2024-06-04T16:41:48Z")

</div>

> [@Sunderlandkyl](#):
>
> `<xml></xml>`

Is this the config file for Ultrasonix and Ascension? I cannot open it or view the config file you are referring to.

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [June 4, 2024, 4:43pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/8 "2024-06-04T16:43:54Z")

</div>

Sorry, forgot to add the link:

> <https://github.com/PlusToolkit/PlusLibData/blob/master/ConfigFiles/PlusDeviceSet_Server_Ultrasonix_C5-2_Ascension3DG_calibrated.xml>

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 4, 2024, 8:22pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/9 "2024-06-04T20:22:40Z")

</div>

I downloaded the latest stable version of Slicer and modified the given config file for the NDI Aurora and Telemed but I still cannot get the slice to move. I included the modified config file and an image of my setup (currently testing on gel sample instead of phantom model). Also, initially, I did see ProbetoTracker and ReferencetoTracker in my hierarchy list but the only thing listed is the Image\_Reference. I’m assuming it has something to do with the transform matrix in the coordinate definitions section. Should I have used the matrix given in the default Telemed config file?

> **Config file**
>
> ```auto
> <PlusConfiguration version="2.1">
> 
> <DataCollection StartupDelaySec="1.0" >
> <DeviceSet
> Name="PlusServer: Telemed US + NDI Aurora tracker (Probe, Reference)"
> Description="Broadcasting ultrasound images acquired from the Ultrasonix system through OpenIGTLink. Probe is spatially calibrated for any imaging depth. If PlusServer does not run on the Ultrasonix PC then update the IP attribute in the Device element with the Ultrasonix PC's IP address. Ascension3DG sensors should be plugged in to the Ascension3DG DriveBay mounted on Ultrasonix US in the following order from to leftmost slot (Transducer 1) to the right: 1 Probe, 2 Reference, 3 Stylus." />
> <Device
> Id="TrackerDevice" 
> Type="AuroraTracker" 
> SerialPort="3" 
> BaudRate="9600"
> AcquisitionRate="50"
> LocalTimeOffsetSec="0.0"
> FilterAcWideNotch="1"
> ToolReferenceFrame="Tracker" >
> <DataSources>
> <DataSource 
> Type="Tool" 
> Id="Probe" 
> RomFile="DDRO-080-061-01_GENERIC (4).rom"
> PortName="0" 
> /> <!-- PortName relates to physical port 1 -->
> <DataSource 
> Type="Tool" 
> Id="Reference" 
> RomFile="DDRO-080-051-01_GENERIC.rom"
> PortName="1" 
> /> <!-- PortName relates to physical port 2 -->
> </DataSources>
> <OutputChannels>
> <OutputChannel Id="TrackerStream" >
> <DataSource Id="Probe"/>
> <DataSource Id="Reference"/>
> </OutputChannel>
> </OutputChannels>
> </Device>
> <Device
> Id="VideoDevice"
> Type="TelemedVideo" 
> AcquisitionRate="30" 
> LocalTimeOffsetSec="-0.2976"
> IP="127.0.0.1"
> AutoClipEnabled="TRUE"
> ImageToTransducerTransformName="ImageToTransducer" >
> <DataSources>
> <DataSource Type="Video" Id="Video" PortUsImageOrientation="UN" />
> </DataSources>
> <OutputChannels>
> <OutputChannel Id="VideoStream" VideoDataSourceId="Video"/>
> </OutputChannels>
> </Device>
> <Device 
> Id="TrackedVideoDevice" 
> Type="VirtualMixer" >
> <InputChannels>
> <InputChannel Id="TrackerStream" />
> <InputChannel Id="VideoStream" />
> </InputChannels>
> <OutputChannels>
> <OutputChannel Id="TrackedVideoStream"/>
> </OutputChannels>
> </Device>
> <Device
> Id="CaptureDevice"
> Type="VirtualCapture"
> BaseFilename="Recording.igs.mhd"
> EnableCapturingOnStart="FALSE"
> RequestedFrameRate="15" >
> <InputChannels>
> <InputChannel Id="TrackedVideoStream" />
> </InputChannels>
> </Device>
> <Device
> Id="VolumeReconstructorDevice"
> Type="VirtualVolumeReconstructor"
> OutputVolDeviceName="Volume_Reference"
> EnableReconstruction="FALSE" >
> <InputChannels>
> <InputChannel Id="TrackedVideoStream" />
> </InputChannels>
> <VolumeReconstruction
> ImageCoordinateFrame="Image" ReferenceCoordinateFrame="Reference"
> CompoundingMode="MEAN" Interpolation="LINEAR"
> Optimization="FULL" NumberOfThreads="2"
> ClipRectangleOrigin="0 0" ClipRectangleSize="820 616" PixelRejectionThreshold="1"
> OutputSpacing="0.5 0.5 0.5"
> FillHoles="ON" >
> <HoleFilling>
> <HoleFillingElement Type="GAUSSIAN" Size="5" Stdev="0.6667" MinimumKnownVoxelsRatio="0.50001" />
> <HoleFillingElement Type="STICK" StickLengthLimit="9" NumberOfSticksToUse="1" />
> </HoleFilling>
> </VolumeReconstruction>
> </Device>
> </DataCollection>
> 
> <CoordinateDefinitions>
> <!-- transform matrix provided by Telemed default config file -->
> <Transform From="Image" To="Reference"
> Matrix="
> 0.2 0.0 0.0 0.0
> 0.0 0.2 0.0 0.0
> 0.0 0.0 0.2 0.0
> 0 0 0 1" />
> </CoordinateDefinitions>
>   
> <PlusOpenIGTLinkServer 
> MaxNumberOfIgtlMessagesToSend="1" 
> MaxTimeSpentWithProcessingMs="50" 
> ListeningPort="18944" 
> SendValidTransformsOnly="true" 
> OutputChannelId="TrackedVideoStream" > 
> <DefaultClientInfo> 
> <MessageTypes> 
> <Message Type="IMAGE" />
> <Message Type="TRANSFORM" />
> </MessageTypes>
> <TransformNames> 
> <Transform Name="ProbeToReference" />
> <Transform Name="ReferenceToTracker" />
> </TransformNames>
> <ImageNames>
> <Image Name="Image" EmbeddedTransformToFrame="Reference" />
> </ImageNames>
> </DefaultClientInfo>
> </PlusOpenIGTLinkServer>
> 
> </PlusConfiguration>
> 
> ```

 ![Labelled_setup](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/0/d/0d920295448823865837a383887676cd4777a4a3.png)

---

<div class="post-metadata">

**Author:** ![LeidyMoraV](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/leidymorav/32/70144_2.png) [@LeidyMoraV](https://discourse.slicer.org/u/LeidyMoraV)\
**Post date:** [June 4, 2024, 8:34pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/10 "2024-06-04T20:34:24Z")

</div>

Try changing:

> [@valerie](#):
>
> `<Image Name="Image" EmbeddedTransformToFrame="Reference" />`

to:

`<Image Name="Image" EmbeddedTransformToFrame="Probe" />`

And puting Image\_Reference in the hierachy of ProbeToReferences, something like this:  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/9/2/9254c4db3b726ac54bcf3a5afb451a7af2f5f2f8.jpeg)

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 4, 2024, 8:43pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/11 "2024-06-04T20:43:18Z")

</div>

Hi Leidy,

Thank you for your advice. Unfortunately, my problem still remains with the Transform hierarchy list. I do not see the other transforms. The only one that is being listed is Image\_Probe. How do I get the other transforms to appear in the list like in the image you show?

Update: I have ReferenceToTracker in my list by opening OpenIGTLinkIF first and then viewing Data; previously, I was following the steps of the video and creating the Plus Remote Server and then viewing Data. However, I am missing Image\_Reference and ProbeToReference in my list. Any way to solve this issue?

![Screenshot 2024-06-04 170911](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/d/3/d3936b52dd60bd2f5e5fc69fe1b2572eef2bc77a.png)

---

<div class="post-metadata">

**Author:** ![valerie](https://avatars.discourse-cdn.com/v4/letter/v/ccd318/32.png) [@valerie](https://discourse.slicer.org/u/valerie)\
**Post date:** [June 13, 2024, 7:19pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/12 "2024-06-13T19:19:10Z")

</div>

I am still having issues with reconstructing the volume in 3D Slicer. The image slice is now moving based on the position of the transducer. However, after I complete the Scout scan, there is a black square. I ended up following the steps in the [SlicerIGT tutorial presentation](https://onedrive.live.com/view.aspx?resid=7230D4DEC6058018%213992&authkey=!ADFvs6W6EnKJR44) instead of following the [video](https://youtu.be/2vXeJxYFou4?si=Zz4mrDYXCzc3wff3) in my original post (it wasn’t working as well and produced nothing). How do I fix this and achieve the desired reconstruction of the kidney? Any suggestions on how to visualize the reconstruction volume?  
 ![List of transforms based on config file.](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/0/a/0a613c311292b55c3a5b37c75cb584e588775a63.png)

 ![Black square from Scout scan and Live reconstruction. Floating image slice outside volume is tracked transducer.](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/9/1/917c8278295d77cb33f99ce6d58bf44e935eef2c.png)

---

<div class="post-metadata">

**Author:** ![LeidyMoraV](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/leidymorav/32/70144_2.png) [@LeidyMoraV](https://discourse.slicer.org/u/LeidyMoraV)\
**Post date:** [June 17, 2024, 2:26pm UTC](https://discourse.slicer.org/t/live-volume-reconstruction-using-telemed-and-ndi-aurora/36578/13 "2024-06-17T14:26:57Z")

</div>

Remember to turn on the visualization of the volume in the ‘Volume Rendering’ module

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/8/e/8ebcd1daf96bf5b111eff8b8539d02e0d64a2a2c.png)
