Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to calculate space between dicom slices for MPR?

Tags:

slice

dicom

Due to showing MPR view based on Dicoms. I've made a 3D array from series of dicom files. And I show it from Coronal and Sagittal sides.

My 3D array includes: 

 - z = count of dicoms
 - c = column value for every dicoms
 - r = Row value for every dicoms

But I have a problem. When there is some space between slices, image is made by this way doesn't show a correct view. Because I can not think of simulation distance between them!

I don't know how to calculate space between slices? I want to add extra space between slices. for example, If space between slices is 4. I have to add 4 time z inner slices.

I hope to arrive my mean.

like image 552
Omid Nazifi Avatar asked Feb 18 '13 05:02

Omid Nazifi


2 Answers

Image Position (Patient) and Image Orientation (Patient) are the two only attributes you should ever used when computing distance between slices. For more details see here or here. For an actual implementation see here, this implementation also does take into account Frame Of Reference UID, as well as Gantry/Detector Tilt.

This question is the question #1 asked on comp.protocols.dicom.

Please see ImageJ bug


I believe the answer from @Matt is erroneous, let me clarify a few things here.

  • No: 'DICOM does not have an attribute called Spacing Between Slices'. That is very wrong (technically it does not even mean anything).

DICOM defines IODs which define the set of required attributes available in an SOP Class Instance. Let's consider two very common cases: CT Image Storage (legacy) and MR Image Storage (legacy). So we need to compare the set of attributes in between:

  1. CT Image IOD Modules
  2. MR Image IOD Modules

Now let's say we want to check that MR Image Storage support Spacing Between Slices, it is easy to jump to:

  • MR Image Module Attributes

However it is much harder to find this attribute for CT Image Storage: simply because this attribute does not exist (per standard). So the only time you would find such attribute would be within an extended SOP Class (some vendors may decide that Spacing Between Slices attribute make sense within their extended SOP Class Instance).

  • Mixing in the same answer both Spacing Between Slices and Slice Thickness (0018,0050) is very confusing for new users.

I agree that Slice Thickness is perfectly defined in the standard for both CT Image Storage and MR Image Storage since they both include Image Plane Module Attributes, however let's not exchange one for the other.

I found a nice summary of Slice Thickness vs Spacing Between Slices here (if you scroll to the section, you can even play the small demo) :

  • CT Physics: CT Reconstruction and Helical CT

In step and shoot CT the Slice Thickness and Spacing Between Slices are identical so there is no big issue here. However for helical CT those values are not the same and can vary in any direction (they are independent).

[…] Slice Thickness is determined by the detector width and pitch, while reconstruction interval (=Spacing Between Slices) can be chosen arbitrarily. […]

In conclusion to compute (safely!) the Spacing Between Slices (= Reconstruction Interval), it is much safer to use Image Orientation (Patient) and Image Position (Patient) since they are available in either MR Image Storage or CT Image Storage instances.

like image 122
malat Avatar answered Sep 25 '22 15:09

malat


DICOM has an attribute called Spacing Between Slices (0018, 0088) that gives the distance between two adjacent slices (perpendicular to the image plane) and it also has an attribute called Slice Thickness (0018, 0050) that gives the thickness of the imaged slice (the image plane exists at the center of the slice, with half of the volume above the plane and half below). Image Position (Patient) (0020, 0032) and Image Orientation (Patient) (0020, 0037) are also useful attributes for computing spatial relationships between slices.

For a more detailed explanation, see section C.7.6.2 of part 3 of the DICOM standard. (p. 409)

WARNING: Please be aware that different vendors use the same dicom tags for addressing different things. For instance, the attribute Spacing Between Slices (0018, 0088) means two different things depending on the vendor. See this table to have a guide, and this thread for an explanation.

like image 37
Matt Avatar answered Sep 24 '22 15:09

Matt