Skip to content
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

Philips DICOM conversion "corrupted" files (XX_####) #328

Closed
hippocampo opened this issue Aug 28, 2019 · 9 comments
Closed

Philips DICOM conversion "corrupted" files (XX_####) #328

hippocampo opened this issue Aug 28, 2019 · 9 comments

Comments

@hippocampo
Copy link

Hello,
I am hoping for some help with DCM2NIIx conversion of certain Philips DICOM files, which are reported as corrupted and interrupt the process with an error code 4. This may be related to the XX_#### (and PS_#### files), which are identified as corrupted. I suspect this may be specifically related to a QSM data collection, I'm not sure. Here is the DCM2NIIx code that throws the error:

//20190524: Philips MR 55.1 creates non-image files that report kDim1/kDim2 - we can detect them since 0008,0016 reports “RawDataStorage”
printError(“Conversion aborted due to corrupt file: %s %d %d\n”, fname, d.xyzDim[1], d.xyzDim[2]);

Thanks very much,
Chris

@neurolabusc
Copy link
Collaborator

@hippocampo would it be possible to send a sample dataset (via DropBox, Box, GoogleDrive) to me (email in my avatar). I work at a Siemens only center, so rely on users to reverse engineer Philips interpretation of the DICOM standard.

I wonder if the latest commits to the development branch resolve your issue. If you have a Linux/Mac you can test this by building the development build - if you are successful the software report version v1.0.20190808:

git clone --branch development https://github.com/rordenlab/dcm2niix.git
cd dcm2niix/console
make
./dcm2niix

@captainnova
Copy link
Collaborator

captainnova commented Aug 28, 2019 via email

@neurolabusc
Copy link
Collaborator

neurolabusc commented Aug 28, 2019

Agreed. The question is whether the current dcm2niix algorithm correctly rejects these non-images, does not report them as corrupt images (terminating with an error), and does not falsely skip real DICOM images. I think the current development build does this, but it would be nice to confirm this. It is unfortunate that Philips made these non-image files so similar to DICOM images, a quick web search will show this had a lot of unintended consequences on tools that mistook these for being DICOM images.

@drmclem
Copy link

drmclem commented Aug 28, 2019 via email

@drmclem
Copy link

drmclem commented Aug 28, 2019 via email

@neurolabusc
Copy link
Collaborator

@drmclem - dcm2niix does use 0002,0002 to discriminate these files. It would be nice to have Philips users confirm it is a robust solution.

@hippocampo
Copy link
Author

hippocampo commented Aug 29, 2019 via email

@captainnova
Copy link
Collaborator

captainnova commented Aug 29, 2019 via email

@neurolabusc
Copy link
Collaborator

Thanks @hippocampo for the examples. The upcoming release does fine with these.

yarikoptic added a commit to neurodebian/dcm2niix that referenced this issue May 6, 2020
* commit '1.0.20190720+git34-g605ba61':
  Document Philips non-image DICOMs (rordenlab#328)
  Handle Philips proprietary transfer syntax (https://discourse.slicer.org/t/fail-to-load-pet-ct-gemini/8158/6)
  Support big-endian (rordenlab#327)
  Emulate seriesUidCrc if SeriesUid does not exist
  change to -n (now uses CRC of SeriesUID) and version reporting (rordenlab#326)
  Siemens slice timing (rordenlab#322)
  Document new Siemens slice timing (rordenlab#322)
  Use Acquisition Time (0008,0032) to infer slice times for Siemens data saved as 2D slices not mosaic (MosaicRefAcqTimes missing).
  E11C 2D (not mosaic) files do not report mosaicAcqTimes or multi-band factor.
  Slice timing element order and scale fixes
  Adding missing preprocessor fence
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants