Is it possible to import spectra from Philips scanners directly into Osprey (either classic DICOM or enhanced DICOM, not the sdat/spar format)?
Osprey can load MRS data in Philips DICOM, yes. You’ll need to organize them into sub-folders so that each folder only contains data from one acquisition, i.e., put water reference data in a separate folder.
I have the data organized, but Osprey (2.9.2) keep on crashing when I try to load the Philips DICOMs. There’s no ### ASCCONV in the file which explains why read_dcm_header fails; I can still load it using Matlab’s dicominfo though, so it’s some version of DICOM.
BTW I also have SDAT/SPAR (while that loads and processes, but the spectra look pretty awful) and raw data (list/data), but whatever loads doesn’t even look like a spectrum. I don’t have much experience with Philips data, but before I get in too deep, I’m wondering if anyone has a similar issue, or even better, a solution.
Are these really MRS DICOM and not just the screenshots (which don’t contain the time-domain data)?
The data stored in SDAT/SPAR are, if I remember correctly, identical to the data stored in DICOM, so if they look awful in SDAT/SPAR, chances are they will in DICOM as well. DATA/LIST contain the separate coil elements, so without removing the receiver phase (usually based on the water reference), they’ll indeed look all over the place.
Good question, but as far I can tell, yes, they are spectra files. I tried loading the DICOMs into a DICOM viewer, which declared them non-images. I have also attempted to convert the data (DICOMs, SDAT/SPAR, raw) using spec2nii, with variable degree of success. Then in turn Osprey didn’t like some of the nii.gz files due to missing header parameters.
The somewhat puzzling part is that these are data from multi-site study, where most MR systems are Siemens, but we have one Philips. Even “better looking” Philips data are a lot noisier than we get on Siemens, although we have use harmonized protocol (in terms of sequence, parameters, voxel size, number of averages…)
Hello @peter,
maybe it’s helpful when you check your SOP Class UID in the dicom header. One way with MATLAB might be:
metadata = dicominfo(filepath);
sopclassuid = metadata.(dicomlookup(“0008”,“0016”));
For spectroscopy (Philips), it should be ‘1.3.46.670589.11.0.0.12.1’ for classic DICOM and ‘1.2.840.10008.5.1.4.1.1.4.2’ for enhanced. For the classic format, you find the FID with metadata.(dicomlookup(“2005”,“1270”)) and for enhanced with metadata.(dicomlookup(“5600”,“0020”)).
Heiner
Thanks Heiner.
I only have classic DICOM spectroscopy files in the folders; Osprey returns an error:
Unrecognized field name "tSequenceFileName".
Error in read_dcm_header (line 105)
DicomHeader.sequenceFileName = dcmHeader.tSequenceFileName; % Full sequence name
I can load SDAT/SPAR (when it first loads, spectra appears upside down, but that’s corrected with processing).
As noted however, both DICOM and SDAT/SPAR are already averaged, so it might be worth to use the raw data instead.