View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003930 | Slicer4 | Module DICOM | public | 2014-12-29 19:33 | 2018-05-30 11:38 |
Reporter | lassoan | Assigned To | pieper | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | unable to reproduce | ||
Product Version | Slicer 4.4.0 | ||||
Target Version | Fixed in Version | ||||
Summary | 0003930: Crash when trying to load a DICOM ultrasound image | ||||
Description | Slicer crashes when attempting to load an ultrasound image. The root cause is a trivial bug in Short-term fix: Make sure that only valid
Long-term fix: When image type is gdcm::MediaStorage::UltrasoundImageStorage then get spacing from PhysicalUnitsXDirection and PhysicalUnitsYDirection DICOM tags, as it is done in gdcmImageHelper.cxx GetUltraSoundSpacingValueFromSequence(). This should be fixed in GDCM or the workaround in GDCMImageIO::InternalReadImageInformation() should be made more sophisticated (e.g., by doing the same as it is done in GDCM GetUltraSoundSpacingValueFromSequence). | ||||
Additional Information | Sample ultrasound image DICOM tags:
| ||||
Tags | No tags attached. | ||||
We need to get away from the generic dicom readers that ignore the SOPClassUID. Instead we should have custom interpretation classes that losslessly map SOPClasses into the appropriate MRML objects for display and manipulation inside slicer. The current GDCM readers in ITK are okay for many traditional use cases, but the design fails too often and needs to be replaced so we can correctly handle a wider range of datasets. |
|
Yes, I agree that we should add modality-specific plugins to Slicer. However, this issue is so sever and the crash is so easy to fix that it should be fixed in ITK. I didn't have the time to push this through through ITK's gerrit but it would be nice if somebody could do it. |
|
Agreed, it should be fixed in ITK. We could fix it in github.com/Slicer/ITK for now, and then try to get it back upstream. I think that supplying a sample dataset and showing that it crashes with a trivial ITK example would be all that's needed to get a simple patch accepted. |
|
Isn't this the one that Andrey worked on with Hans? If it's not already fixed in ITK we should migrate this issue report to the ITK tracker. |
|
Reminder sent to: fedorov Andrey is this what you saw too? |
|
@pieper @lassoan do you know if this has been addressed ? Was an issue reported in the ITK tracker ? |
|
As I recall there was a parallel thread going on either slicer-devel or the ITK list at the time. @fedorov do you remember? |
|
@pieper that was a long while ago, it would be hard to find the details at this point. Indeed, I believe that issue was also related to spacing in US, but I think the issue was that the spacing was ignored. I may be wrong though. What I also remember is that the changes related to that issue were integrated into ITK, so this must be something else. |
|
It looks to me that the code has been re-written and I don't see the quoted block in the report in the current version of the code: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/IO/GDCM/src/itkGDCMImageIO.cxx At this point unless we can replicate the crash I'd vote for closing this issue with an "unable to reproduce". |
|
In recent Slicer versions, it does not seem to crash anymore. |
|
Color ultrasound images seem to load correctly in latest Slicer version. Tested on Windows 10, 4.9.0-2018-05-29 (revision 27218), with data set http://www.rubomedical.com/dicom_files/dicom_viewer_0020.zip. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2014-12-29 19:33 | lassoan | New Issue | |
2014-12-29 19:33 | lassoan | Status | new => assigned |
2014-12-29 19:33 | lassoan | Assigned To | => pieper |
2014-12-30 04:56 | pieper | Note Added: 0012819 | |
2015-01-05 12:07 | lassoan | Note Added: 0012832 | |
2015-01-05 19:48 | pieper | Note Added: 0012833 | |
2015-05-14 15:52 | pieper | Note Added: 0013057 | |
2015-05-14 15:52 | pieper | Status | assigned => feedback |
2015-05-14 15:52 | pieper | Note Added: 0013058 | |
2018-03-22 03:10 | jcfr | Description Updated | View Revisions |
2018-03-22 03:10 | jcfr | Additional Information Updated | View Revisions |
2018-03-22 03:11 | jcfr | Description Updated | View Revisions |
2018-03-22 03:12 | jcfr | Note Added: 0015603 | |
2018-03-23 19:08 | pieper | Note Added: 0015612 | |
2018-03-26 10:00 | fedorov | Note Added: 0015613 | |
2018-03-26 10:33 | pieper | Note Added: 0015614 | |
2018-05-30 01:53 | lassoan | Status | feedback => assigned |
2018-05-30 01:53 | lassoan | Resolution | open => unable to reproduce |
2018-05-30 01:53 | lassoan | Note Added: 0015834 | |
2018-05-30 11:38 | lassoan | Status | assigned => resolved |
2018-05-30 11:38 | lassoan | Note Added: 0015838 |