I am running into a problem with a Siemens dicom headers.  I have collected scans with 2mm slice thickness and 2 mm gap between slices for 31 slices of the brain (31 dicom files) on a Siemens Trio system.  When using the command spm_dicom_header to get header info I see the following parameters:

PixelSpacing=[3.7500;3.7500]
SliceThickness =2
SpacingBetweenSlices=2

1) This makes sense to me assuming they mean that SpacingBetweenSlices is the gap.  If this field is really gap+thickness, then it is incorrect.  What is meant by  SpacingBetweenSlices (gap or gap+thickness)?

 The current DICOM Standard is described at http://medical.nema.org/standard.html .  In page 739 of the section "DICOM Part 3: Information Object Definitions", it describes the "Spacing between Slices" as:

"Value of the prescribed spacing to be applied between the slices in a volume that is to be acquired. The spacing in mm is defined as the center-to-center distance of adjacent slices."

This suggests that SpacingBetweenSlices is gap+thickness.  My guess is that during set-up, the scanner console asks for a value for the spacing between slices, rather than gap between slices.


Note that when possible, the DICOM conversion ignores the SpacingBetweenSlices and SliceThickness fields and instead derives the values from the PixelSpacing, ImageOrientationPatient and ImagePositionPatient fields of the first and last DICOM files that make up the volume.




Additionally, when I use spm_dicom_convert the file to NIFTI and spm_vol to read the header, the matrix is the following:

-3.74643087387085                0                                               -0.0872387886047363       122.050718307495
0                                                3.75000000000000                 0                                                -109.501228332520
-0.163572669029236         0                                             1.99809646606445                  -45.6215378046036
0                                                0                                               0                                                  1

2) Why is [1,1] = -3.74643087387085?  I am guessing this value is calculated instead of pulling out 3.7500 from the header.  Additionally, why is there a negative sign in front?  Does this signify radiological acquisition vs neurological?

This matrix encodes voxel sizes, rotations and image positioning.  It is generated from a combination of information from the ImageOrientationPatient, PixelSpacing, ImagePositionPatient and (sometimes) SpacingBetweenSlices fields.


3) Why is the z value  1.99809646606445?  I am assuming it is either taking into account only SliceThickness or that SpacingBetweenSlices really means gap+thickness, which is stored incorrectly.  Any help would be appreciated.

Because the images are not exactly axial, this element encodes a whole mix of stuff.  If you want to extract the original voxel sizes from the matrix, you can do it via:

M = [-3.74643087387085  0               -0.0872387886047363 122.050718307495
      0                 3.75000000000000 0                 -109.501228332520
     -0.163572669029236 0                1.99809646606445   -45.6215378046036
      0                 0                0                    1];

vox = sqrt(sum(M(1:3,1:3).^2))

Note that the answer comes out as:
vox =
    3.7500    3.7500    2.0000



I have also tried using other programs such as dcm2niigui and also still have the same issue with the z value showing 2mm instead of 4mm so I do not know if this is a general issue of storing slice gap correctly in nifti format or not reading it correctly from a Siemens dicom file.  I know that there is NO NIFTI field for spacing between slices (assuming this means gap) in the Nifti-1.1 standards, but I wanted to see if others have ran into this issue and if so how you corrected it.  One way around the issue is to correct the value from 1.998 to 4 and resave the matrix (resulting in qform warning), but I'd rather find the root cause and proper calculation in case this pops up again.

I'd suggest displaying the converted image using the Display button of SPM.  It should be pretty obvious if the brain has been zoomed by a factor of a half along the z direction.

Best regards,
-John