Load GE Invenia ABUS images from DICOM

Hello there,

I have a question about how to make the slicer of Axial displays bend?

Expected:

Now:

Hello There,

I want to make the slicer showed in the “Red” widget curve.
From


To

In order to do this, I am trying to get slice data before it was rendered.
I have no idea how to do this, I can only get the “renderWindow” from each “sliceView”.
How can I access the slice data and process it?

renWin=slicer.app.layoutManager().sliceWidget(“Red”).sliceView().renderWindow()

render=renWin.GetRenderers().GetFirstRenderer()

What ultrasound system do you use (brand, model, transducer type and model)? How did you export the data from the ultrasound system and into what file format? How did you import the data into Slicer?

Hello Iassoan,

The Breast Image is Dicom data generated by the ABUS 2.0 system.
All the useful information I can get is:

image
image
image
image

I’m not getting data from the ultrasound system. I import “.dcm” from a folder by “DICOMUtils.importDicom”

If you can share an anonymized sample data set then I can have a look if it contains information to reconstruct a 3D volume. Right now what you get is just a stack of 2D frames.

Hello Iassoan,

Thank you very much~
This is the link to my “.dcm” file.

Thank you, this is very helpful. The image contains geometry information in private DICOM fields and fortunately GE provides meaningful description of these fields in their DICOM conformance statement. Since you know the radius of both the transducer and the trajectory curvature, you should be able to create a transform that warps the slices accordingly.

Hello Iassoan,

Yes, I can get the radius information. But I don’t know How to create a None linear transform and how to apply or warps it to the slices.
Is this involved vtk, render or openGL?

Could you provide an example?
Thank you very much!

Hello Iassoan,

Can you provide some useful function API to solve this issue?

I’ve added a DICOM plugin to load GE ABUS volume with correct scan conversion. I’ll push it to the Slicer Preview Release today so it will be available on download.slicer.org starting tomorrow.

Hello Iassoan,

That’s great, Thank you so much!!!

The new GE Invenia ABUS import plugin is in Slicer now. Using Slicer Preview Release of tomorrow you can load the ABUS image by double-clicking on the series.

Scan conversion is applied by placing the volume under a non-linear transform. This allows quick loading, visualization, segmentation, etc. but some operations, such as volume rendering are not supported for non-linearly transformed volumes, so probably the best is to harden the transform the volume (right-click in the transform column in Data module).

I could not verify image directions (if the image is not mirrored along one axis), so it would be great if you could check this by comparing this to 3D views shown in the GE review workstation (you cannot tell if the image is flipped from 2D views, as you are free to flip the image in 2D views):

Hello Iassoan,

You are such a wonderful person! I don’t know how to express my gratitude!
Your selfless dedication made me feel the love and warmth of the world.
I have to say that this is my most pleasant and grateful moment in 2020!

Sincere blessing~

3 Likes

Hello Iassoan,

I have applied your method to do the transform. However, I found the transform made the volume data changed instead of just mapping to “Axial Viewer”, the "Coronal Viewer is changed too, this will made the image distortion.

I found this by press the “shift key” while the cursor over the top of “Axial Viewer”, at this moment “Coronal Viewer” is not what we expect. It means all slicers in the “Coronal Viewer” is distorted.

So Is there any idea to make the transform just work on the “Axial Viewer”?

Thank you very much~

As you can see in this presentation, the GE Invenia has a concave curvilinear transducer, moving on a linear translational stage, so it produces a cylindrical volume.

image

If you enable volume rendering then maybe it explains better what you see in the green (“coronal”) slice viewer.

Hello Iassoan,

I don’t know more about this problem. but I personally think the original data is true, however, the curve is just happened on “Axial Viewer”.

I will check this problem later.

Thank you for your help~

Can you post more DCM examples?