View Issue Details

IDProjectCategoryView StatusLast Update
0003282Slicer4Module DICOMpublic2017-06-07 23:27
Reporterfedorov Assigned Tofedorov  
PrioritynormalSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0003282: Cannot load an item from DICOM table in certain situations
Description

The problem happens when a DICOM plugin returns multiple loadables for the same list of files. An example of such situation could be MultiVolume plugin can parse the same DICOM study into a valid multivolume node by different DICOM tags. The problem manifests itself in DICOM table of loadables having 2 rows corresponding to the same loadable object.

Additional Information

from communication with @pieper on Aug 9:

Steve, I found it. The problem is that here:
https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOM/DICOMLib/DICOMWidgets.py#L396-L400
you iterate over loadables that have selected = True first.

In addLoadablesRow() you check and if there is already a loadable that
has files == files of the new one, you set selected = False. The
problem is that you iterate over the same list of loadables twice. So
when you go over the same list again (checking those that are not
selected), you add the same loadable to the table again, since it is
not selected this time around:
https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOM/DICOMLib/DICOMWidgets.py#L351-L352

By switching the order from (True,False) to (False,True), the issue
essentially goes away, but of course then you do not have the
loadables ordered by selected first. It is a bit messy, I am not sure
what is the best way to resolve the underlying issue while keeping all
the features, since this requires understanding of all intricacies of
the implementation, which I don't have..

TagsNo tags attached.

Activities

fedorov

fedorov

2013-08-09 08:06

developer   ~0009442

fix proposed in https://github.com/fedorov/Slicer/tree/3282-dicomtable-multiple-entries

fedorov

fedorov

2013-08-09 15:02

developer   ~0009452

fixed in r22275

Related Changesets

Slicer: 2145-support-for-installing-extension-from-file 243f9964

2013-08-09 13:55:35

fedorov

Details Diff
BUG: modify the process of populating loadables table in DICOM widget to ensure that each loadable is added only once by selecting relevant loadables before adding them to the table; resolves issue 0003282


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22275 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Scripted/DICOM/DICOMLib/DICOMWidgets.py Diff File

Issue History

Date Modified Username Field Change
2013-08-09 07:12 fedorov New Issue
2013-08-09 07:12 fedorov Status new => assigned
2013-08-09 07:12 fedorov Assigned To => pieper
2013-08-09 08:06 fedorov Note Added: 0009442
2013-08-09 15:02 fedorov Assigned To pieper => fedorov
2013-08-09 15:02 fedorov Note Added: 0009452
2013-08-09 15:02 fedorov Status assigned => closed
2013-08-09 15:02 fedorov Resolution open => fixed
2014-03-06 05:59 jcfr Fixed in Version => Slicer 4.3.0
2014-03-06 06:15 jcfr Target Version => Slicer 4.3.0
2017-06-07 23:27 fedorov Changeset attached => Slicer 2145-support-for-installing-extension-from-file 243f9964