-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dcm2niix fails to convert Philips resting-state and diffusion DICOM files #267
Comments
Yes, please provide an example. You can send it to me directly. I would also suggest you archive and use the raw data from your scanner. Philips DICOM data (and their enhanced format in particular) often confound popular DICOM tools such as anonymization. |
The raw DICOM data are stored in the PACS of the acquisition centre, but they have to be anonymized before they leave the acquisition centre. In theory they have been properly anonymized (see dicom-anonymizer.script), specifically private tags are not removed. I'll send you the resting-state and diffusion privately. |
Meanwhile I checked that the DICOM files that are properly converted by dcm2niix are anonymized differently from the DICOM files that cannot be anonymized by dcm2niix, one of the differences being the absence of |
If you can provide a sample of the troublesome dataset I can provide feedback. My email is in my profile picture - it is usually easiest to send a box/dropbox link to the dataset. It sounds like an issue with your anonymization. Please make absolutely sure that the anonymizer is not converting Explicit VRs to Implicit VRs. Be aware that Philips uses a lot of private SQs, and since these are not public (and therefore not part of most DICOM dictionaries), many tools do not convert these correctly. This is one of the reasons Philips DICOM tends to be pretty fragile for conversion. |
You obviously didn't get my mail. Sending it again. |
By the way, as far as I know our anonymizer just removes/blanks DICOM tags - it doesn't remove whole private blocks. |
I still have not received any message from you. My institution rejects emails with many types of attachments. Therefore, either send a box/dropbox link or consider sending a message to me via gmail (crorden6). If your anonymizer removes 'blank' SQs, or if it converts an explicit VR private SQ to an implicit VR without the appropriate delimiters you can destroy the context for interpreting the DICOM header. In my experience, many tools preserve the data inside Philips private blocks, but they remove the ability to determine whether public tags in these private blocks refer to public information or are specific to private information. I have not seen your data, but one thing that might explain your data is the fact that Philips uses the public tag Image Position Patient (0020,0032) differently depending on its context (e.g. it has a public definition, but in a private SQ it is used differently). |
I did send an email (without attachments but instead with a link to an FTP server) to your email address. I'll try again. |
The issue is with your anonymization script that removes the manufacturer name. This is a flaw in your data, not with dcm2niix. Different manufacturers interpret some DICOM tags differently. It is important to know the manufacturer to extract this data. I strongly suggest you reinsert this tag if you want your DICOM data to be of archival quality. As a hack, you can change one line of code in dcm2niix that will allow it to handle your files. Change the line in nii_dicom.cpp from This change will have unintended consequences if you remove the manufacturer name from DICOM files created by other vendors. |
Indeed I was expecting an issue with Thank you so much for your help. |
The developmental commit will identify the manufacturer as Philips if:
This is a great and desperate kludge. In my mind, DICOM data that removes the manufacturer tag is not archival quality. Knowing the manufacturer provides crucial context for interpreting data. Different vendors interpret DICOM tags differently. While my older dcm2nii tended to assume data was Philips (since I worked at a center with Philips equipment), the more modern dcm2niix provides much richer meta data by recognizing vendor specific issues. A simple concrete example of the issue is how each vendor uses specific acronyms. I would urge you to write a script to re-insert the manufacturer tag into your data. The example below provides a template: Be aware that 0008,0070 is a Type 1 DICOM attribute. One could argue that this is no longer valid raw DICOM data. |
I totally agree with you, we should either retrieve our DICOM data from the PACS and re-anonymize with the updated anonymization script, or modify the existing files by adding back the Thank you for the tip with The missing |
* tag 'v1.0.20190410': (52 commits) Update dcm_qa submodule. Prevent MSVC compilation warnings Siemens PASL 3D BIDS tags (http://adni.loni.usc.edu/wp-content/uploads/2010/05/ADNI3_Basic_Siemens_Skyra_E11.pdf) Reduce Microsoft Visual Studio 14 warnings (rordenlab#288) Use fgets not getline (rordenlab#288) Fixes (rordenlab#286; rordenlab#287) Added missing space (coding standard). Supported dicom tag Accession Number (0008,0050). Struct TDICOMdata extended with accessionNumber property, modified dicom loader and supported exporting accession number into json file and using it as filename with %g modifier. Terminate when corrupted DICOM detected (rordenlab#283) Keep more characters for institution address (VR is ST) "dcm2niix -v" returns version (rordenlab#280) NRRD export supports oldmin/oldmax (http://teem.sourceforge.net/nrrd/format.html#oldmin) Assume 1.2.840.10008.1.2 if transfer syntax is empty Option to modify overwrite behavior (rordenlab#276) XA11 classic DICOM uses private tags for DWI (rordenlab#274) Detect Philips when manufacturer (0008,0070) has been erased (rordenlab#267) Detect discrepancies in PAR/REC slice thicknesses (rordenlab#273) New "-x i" option (https://www.nitrc.org/forum/forum.php?thread_id=9324&forum_id=4703) bvecs for Philips DWI using 0019,10bb, 0019,10bc Adjust negative MosaicRefAcqTimes (rordenlab#271) ...
We have DICOM files acquired on a Philips Ingenia MRi scanner. The resting-state fMRI and the DWI sequences are not properly converted by dcm2niix, although dcm2nii does succeed. The exit status of dcm2niix is 0 and it does not print any error message while converting these sequences. However they look bad visually, see screen captures below.
Fig. 1 - resting-state fMRI DICOM files converted with dcm2niix
Fig. 2 - resting-state fMRI DICOM files converted with dcm2nii
When visualizing the resting-state and DWI data converted with dcm2niix, FSLView complains:
Any clue?
Please note that these DICOM files files have been anonymized, in theory using this DicomEditor script: dicom-anonymizer.script. However a different anonymization method might have been applied without my knowledge. Indeed I see that the
Manufacturer
andManufacturerModelName
DICOM tags are missing from these DICOM files, although dicom-anonymizer.script is supposed to keep them. Could that be a problem?If needed I can provide sample DICOM files.
The text was updated successfully, but these errors were encountered: