View Issue Details

IDProjectCategoryView StatusLast Update
0003792Slicer4Module DICOMpublic2018-03-02 11:06
ReporterThieleAssigned Tonicole 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.3.1-2 
Target VersionSlicer 4.5.0-1Fixed in VersionSlicer 4.5.0-1 
Summary0003792: unable to remove one series of an exam in the dicom menu
Description

I use the latest nightly version. I'd like to be able to delete one serie of an exam. If I right click on this serie, I cannot select ‘delete’. If I select the serie and click on remove in the top menu, the whole patient is removed. So there is no option to remove just one series. This issue is not present in the stable version.

TagsNo tags attached.

Relationships

related to 0003519 resolvedmehrtash Cannot delete data from DICOM database 
related to 0003769 assignedmehrtash All series are shown when DICOM browser is launched for the first time after Slicer startup 

Activities

pieper

pieper

2014-08-15 05:21

administrator   ~0012374

Alireza, can you look into fixing this. It does sound like a regression related to the new browser layout.

If it's not easy to fix at the browser level, it might make sense to add a button that gets enabled when there is a valid selection that says something like "Delete Selected Series".

fedorov

fedorov

2015-07-24 12:08

developer   ~0013191

Nicole, Alireza will add some notes here based on our earlier discussion with Steve on how to address this. He is leaving for vacation/grad school today, and unfortunately we were not able to intesect with you to discuss this issue in detail.

nicole

nicole

2015-07-29 08:32

administrator   ~0013197

The remove button triggers deleting all selected series, studies and patients and that causes problems depending on where you've clicked and what got selected in addition to your click select.

Was the consensus to go with a right click menu or to add more options to the Remove button? Or both? It sounds like (from bug 3519) that the right click menu used to appear but with Delete disabled, right now on my Mac I don't get anything from a right click on a series (or study or patient).

fedorov

fedorov

2015-07-29 08:47

developer   ~0013198

yes, I think enabling remove button is the natural thing to do

fedorov

fedorov

2015-07-29 08:48

developer   ~0013199

I mean, enabling "remove" context menu

nicole

nicole

2015-07-29 08:51

administrator   ~0013200

Sounds good, I'll continue that way and leave the remove button alone (will add some more tool tip hints though)

nicole

nicole

2015-08-03 15:32

administrator   ~0013210

A stand alone test of the CTK DICOM Browser shows that a right click on the series table is detected, but when started from Slicer, it is not.

First pass at the CTK changes is here:
https://github.com/naucoin/CTK/commits/3792-unable-to-remove-one-series-of-an-exam
After building testing, you can run:
./CTK-build/bin/CTKDICOMWidgetsCppTests ctkDICOMBrowserTest1 ./CTKData/Data/DICOM/MRHEAD -I

Still debugging from the Slicer side, and doing futher testing on the CTK changes.

nicole

nicole

2015-08-11 10:41

administrator   ~0013233

When I instantiate my updated CTK dicom browser via the python console:
db = ctk.ctkDICOMBrowser()
db.show()

the right click works.
If I manually trigger the right click context menu request on the Slicer version, it works:

dicomWidget = slicer.modules.DICOMWidget
dbrowser = dicomWidget.detailsPopup.dicomBrowser
tables = slicer.util.findChildren(dbrowser, 'dicomTableManager')[0]
seriesTable = findChildren(dbrowser, 'seriesTable')[0]
seriesTable.contextMenuPolicy
qp = qt.QPoint(3,4)
seriesTable.customContextMenuRequested(qp)

I can add connections inside the DICOM widget via python and those slots get triggered by the manual call, but it seems like the right click isn't getting through to the series table.

Digging more into the QSplitter as it's used to reorder the table widgets.

nicole

nicole

2015-08-13 15:10

administrator   ~0013241

The code in DICOMWidgets.py for the class DICOMDetailsPopup create makes a new QWidget window and moves elements from the CTK browser into it. It moves the seriesTableView which doesn't respond to right click events. If I move the seriesTable into the new window, right clicks work again. Taking just the view left the table label, working on how to remove that from the Slicer version.

nicole

nicole

2015-08-14 13:18

administrator   ~0013242

Got the changes localised to CTK, setting up the signals on the table view rather than the table. No changes required to Slicer, CTK pull request is here:
https://github.com/commontk/CTK/pull/587

nicole

nicole

2015-08-25 14:28

administrator   ~0013246

Updated pull request branch with more description about the elements to be removed:
https://github.com/naucoin/CTK/commit/0a2bfec8eb3a3929d7441c8383222a7a986bcbc0

nicole

nicole

2015-09-15 09:46

administrator   ~0013272

Pull request was merged to CTK:
https://github.com/commontk/CTK/pull/597
Pull request to update Slicer's CTK:
https://github.com/Slicer/Slicer/pull/340

jcfr

jcfr

2015-09-16 09:43

administrator   ~0013278

Integrated in r24554
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24554

Related Changesets

Import 2017-06-07 23:51:09: master 97118990

2015-09-16 11:47:06

msmolens

Details Diff
ENH: Update CTK (includes PythonQt crash fix, DICOM browser enhancement)

Fixes Issue 0004045 (py_StandaloneEditorWidgetTest crashes on exit in PythonQt)
Fixes Issue 0003792 (unable to remove one series of an exam in the dicom menu)

// -------------------------
commit cbf890f8eda122b8dca8e67d2bf75e85640ab297
Author: Max Smolens <max.smolens@kitware.com>
Date: Tue Sep 15 15:45:30 2015 -0400

Fix PythonQtSignalReceiver crash during cleanup

This commit fixes a crash during PythonQt::cleanup(). While destroying the
PythonQtPrivate instance, any remaining PythonQtSignalReceivers that are kept
alive only by their parent object will be destroyed. The crash occurs when
PythonQtSignalReceiver's destructor calls back into
PythonQtPrivate::removeSignalEmitter() when the PythonQtPrivate instance is
mostly destroyed.

Includes test case that crashes without the fix.
// -------------------------

// -------------------------
commit ea653d2cfc5be6dc846a5a54f75543af7dfd4445
Author: Nicole Aucoin <nicole@bwh.harvard.edu>
Date: Mon Aug 3 18:51:07 2015 -0400

ENH: add ability to delete individual series, studies, patients

Add to the browser Remove button the information that it will
delete all selected series, studies, patients.

Add support for right click custom context menus in the
patient, study, series tables. Translate the local points
to global ones in terms of the table view and signal
right clicked with the global position so that the browser
can position the context menu appropriately.

Add the context menu to the DICOM browser to allow
deleting at just one level, with number of items
selected information, and a confirmation message box with descriptive
information that can be set to not be shown again.

Added a test for the DICOM browser, with the ability
to open it in interactive mode to test the right clicks.

Add query wrappers for the DICOM database to get the patient name
as well as descriptions for series and study. They will return empty
strings on failure.
Use the new queries to give more meaningful information on the right
click pop up menu in the DICOM browser.
Added a test for the new DICOM database accessors.

Slicer bug:
http://www.na-mic.org/Bug/view.php?id=3792

When Slicer makes a custom DICOM browser, it moves the table views
directly into the new window, extracting them from the DICOM
table.
With this change, the table view takes care of mapping the point to
global, the table manager propagates the signal as a table specific
XRightClicked signal, and the browser responds to it with a table
specific context menu.

Slicer Issue 0003792
// -------------------------

From: Max Smolens <max.smolens@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@24554 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild/External_CTK.cmake Diff File

Issue History

Date Modified Username Field Change
2014-08-04 09:09 Thiele New Issue
2014-08-04 09:12 fedorov Category Core: GUI => Module DICOM
2014-08-14 18:15 fedorov Status new => assigned
2014-08-14 18:15 fedorov Assigned To => pieper
2014-08-15 05:21 pieper Note Added: 0012374
2014-08-27 07:55 mehrtash Assigned To pieper => mehrtash
2015-05-22 10:45 mehrtash Relationship added related to 0003519
2015-05-22 11:13 mehrtash Relationship added related to 0003769
2015-07-24 12:07 fedorov Assigned To mehrtash => nicole
2015-07-24 12:08 fedorov Note Added: 0013191
2015-07-29 08:32 nicole Note Added: 0013197
2015-07-29 08:47 fedorov Note Added: 0013198
2015-07-29 08:48 fedorov Note Added: 0013199
2015-07-29 08:51 nicole Note Added: 0013200
2015-08-03 15:32 nicole Note Added: 0013210
2015-08-11 10:41 nicole Note Added: 0013233
2015-08-13 15:10 nicole Note Added: 0013241
2015-08-14 13:18 nicole Note Added: 0013242
2015-08-25 14:28 nicole Note Added: 0013246
2015-09-15 09:46 nicole Note Added: 0013272
2015-09-16 09:43 jcfr Note Added: 0013278
2015-09-16 09:43 jcfr Status assigned => resolved
2015-09-16 09:43 jcfr Fixed in Version => Slicer 4.5.0-1
2015-09-16 09:43 jcfr Resolution open => fixed
2015-09-16 09:43 jcfr Target Version => Slicer 4.5.0-1
2017-06-10 08:51 msmolens Changeset attached => Slicer master 97118990
2018-03-02 11:06 jcfr Status resolved => closed