View Issue Details

IDProjectCategoryView StatusLast Update
0004015Slicer4Module DICOMpublic2015-08-03 14:05
Reportertjdett Assigned Topieper  
PrioritynormalSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
Product VersionSlicer 4.4.0 
Target VersionFixed in Version 
Summary0004015: DICOM browser fails to launch if $HOME/Documents does not exist
Description

On first run, after clicking "Load DICOM Data", a window pops up reading:

DICOM Database will be stored in

/home/researcher/Documents/SlicerDICOMDatabase

Use the Local Database button in the DICOM Browser to pick a different location.

After clicking OK, the following error is output to the console:

PythonQt: QObject::connect() signal 'valueChanged(double)' does not exist on QWidget
Traceback (most recent call last):
  File "/opt/slicer/lib/Slicer-4.4/qt-scripted-modules/DICOM.py", line 254, in setup
    self.promptForDatabaseDirectory()
  File "/opt/slicer/lib/Slicer-4.4/qt-scripted-modules/DICOM.py", line 411, in promptForDatabaseDirectory
    os.mkdir(databaseDirectory)
OSError: [Errno 2] No such file or directory: '/home/researcher/Documents/SlicerDICOMDatabase'
Traceback (most recent call last):
  File "/opt/slicer/lib/Slicer-4.4/qt-scripted-modules/DICOM.py", line 191, in enter
    self.detailsPopup.open()
AttributeError: DICOMWidget instance has no attribute 'detailsPopup'

Because the parent directory ($HOME/Documents) does not exist, os.mkdir(databaseDirectory) will fail, as it is not recursive. os.makedirs(databaseDirectory) may be a better choice.

Additional Information

In trunk this code is located in Modules/Scripted/DICOMLib/DICOMWidgets.py rather than Modules/Scripted/DICOM/DICOM.py.

TagsNo tags attached.

Relationships

related to 0004022 resolvedpieper Default DICOM database directory might not be writable 

Activities

pieper

pieper

2015-08-03 14:05

administrator   ~0013209

I guess this makes sense - another option might be to use the home directory itself or maybe prompt the user to select something.

Since we are using the Qt call to get the location it's odd to me that it doesn't exist:

http://doc.qt.io/qt-4.8/qdesktopservices.html

But I guess we need to handle that case explicitly.

Issue History

Date Modified Username Field Change
2015-07-08 17:02 tjdett New Issue
2015-07-08 17:02 tjdett Status new => assigned
2015-07-08 17:02 tjdett Assigned To => pieper
2015-07-17 05:27 pieper Relationship added related to 0004022
2015-08-03 14:05 pieper Note Added: 0013209
2015-08-03 14:05 pieper Status assigned => acknowledged