My issue is similar to Converting Philips Fieldmaps to BIDS and finding Echo time 1 and Echo time 2 - #11 by Carlos_Z
I am processing certain Philips Achieva and Achieva dStream scans around the 2014 era. I do have access to the DICOM files. When I run these files through dcm2niix
(at default settings) I tend to receive a magnitude image (i.e. only has a _real
suffix) and an image that has the suffix _real_ph
Here is a view of the magnitude image and its sidecar:
{
"Modality": "MR",
"MagneticFieldStrength": 3,
"ImagingFrequency": 127.726096,
"Manufacturer": "Philips",
"ManufacturersModelName": "Achieva",
"BodyPartExamined": "BRAIN",
"PatientPosition": "HFS",
"SoftwareVersions": "3.2.3\\3.2.3.0",
"MRAcquisitionType": "2D",
"ScanningSequence": "GR",
"SequenceVariant": "SS",
"ScanOptions": "FC",
"PulseSequenceName": "FFE",
"ImageType": ["ORIGINAL", "PRIMARY", "M", "FFE", "M", "FFE", "REAL"],
"SeriesNumber": 601,
"AcquisitionTime": "17:18:2.620000",
"AcquisitionNumber": 6,
"PhilipsRescaleSlope": 1.2862,
"PhilipsRescaleIntercept": 0,
"PhilipsScaleSlope": 0.000195649,
"UsePhilipsFloatNotDisplayScaling": 1,
"SliceThickness": 3,
"SpacingBetweenSlices": 4,
"SAR": 0.139658,
"EchoTime": 0.004606,
"RepetitionTime": 0.688001,
"MTState": false,
"FlipAngle": 60,
"CoilString": "Dual coil",
"PercentPhaseFOV": 100,
"PercentSampling": 100,
"PartialFourierDirection": "FREQUENCY",
"PhaseEncodingSteps": 64,
"FrequencyEncodingSteps": 64,
"PhaseEncodingStepsOutOfPlane": 1,
"AcquisitionMatrixPE": 64,
"ReconMatrixPE": 64,
"WaterFatShift": 1.51277,
"EstimatedEffectiveEchoSpacing": 2.76468e-05,
"EstimatedTotalReadoutTime": 0.00174175,
"AcquisitionDuration": 90.8161,
"PixelBandwidth": 287,
"PhaseEncodingAxis": "j",
"ImageOrientationPatientDICOM": [
1,
0,
0,
0,
0.961913,
-0.273354 ],
"InPlanePhaseEncodingDirectionDICOM": "COL",
"BidsGuess": ["anat","_acq-SSGRFFE_run-601_part-mag_T2starw"],
"ConversionSoftware": "dcm2niix",
"ConversionSoftwareVersion": "v1.0.20240202"
}
And here is the image with the _real_ph
suffix plus its sidecar:
{
"Modality": "MR",
"MagneticFieldStrength": 3,
"ImagingFrequency": 127.726096,
"Manufacturer": "Philips",
"ManufacturersModelName": "Achieva",
"BodyPartExamined": "BRAIN",
"PatientPosition": "HFS",
"SoftwareVersions": "3.2.3\\3.2.3.0",
"MRAcquisitionType": "2D",
"ScanningSequence": "GR",
"SequenceVariant": "SS",
"ScanOptions": "FC",
"PulseSequenceName": "FFE",
"ImageType": ["ORIGINAL", "PRIMARY", "VELOCITY MAP", "P", "PCA", "PHASE", "REAL"],
"SeriesNumber": 601,
"AcquisitionTime": "17:18:2.620000",
"AcquisitionNumber": 6,
"PhilipsRescaleSlope": 0.0991453,
"PhilipsRescaleIntercept": -203,
"PhilipsScaleSlope": 10.0737,
"UsePhilipsFloatNotDisplayScaling": 1,
"SliceThickness": 3,
"SpacingBetweenSlices": 4,
"SAR": 0.139658,
"EchoTime": 0.004606,
"RepetitionTime": 0.688001,
"MTState": false,
"FlipAngle": 60,
"CoilString": "Dual coil",
"PercentPhaseFOV": 100,
"PercentSampling": 100,
"PartialFourierDirection": "FREQUENCY",
"PhaseEncodingSteps": 64,
"FrequencyEncodingSteps": 64,
"PhaseEncodingStepsOutOfPlane": 1,
"AcquisitionMatrixPE": 64,
"ReconMatrixPE": 64,
"WaterFatShift": 1.51277,
"EstimatedEffectiveEchoSpacing": 2.76468e-05,
"EstimatedTotalReadoutTime": 0.00174175,
"AcquisitionDuration": 90.8161,
"PixelBandwidth": 287,
"PhaseEncodingAxis": "j",
"ImageOrientationPatientDICOM": [
1,
0,
0,
0,
0.961913,
-0.273354 ],
"InPlanePhaseEncodingDirectionDICOM": "COL",
"BidsGuess": ["anat","_acq-SSGRFFE_run-601_part-phase_T2starw"],
"ConversionSoftware": "dcm2niix",
"ConversionSoftwareVersion": "v1.0.20240202"
}
To my understanding:
- This is a fully preprocessed fieldmap and NOT a phasediff. Therefore to be BIDS compliant, I would have to denote this file with the
_fieldmap
suffix - The units are in Hz. If true, then BIDS compliance necessitates that the Units key be added to the sidecar. For future note and for scripting purposes, is the following DICOM field a reliable giveaway? It had the value “HERTZ” in the data I work with:
(2005,1346) MRSpectroFrequencyUnit
- Assuming the above are true & implemented along with other keys like IntendedFor, this is ready for use in tools like
fMRIPrep
I would like to ask whether anyone can confirm or deny the above.