Page MenuHomePhabricator

DICOM Browser Widget / View
Closed, ResolvedPublic

Assigned To
None
Authored By
nolden
Oct 23 2009, 1:09 PM
Referenced Files
F350: DicomBrowser-all.patch
Nov 16 2009, 5:24 PM
F349: dicom-all.patch
Nov 16 2009, 11:10 AM

Description

Create a Qt based brwoser for DICOM directories.

Related Objects

Event Timeline

[SVN revision 19691]
ENH (#2735): new widget and bundle for DICOM browsing

First version did not link on windows, I have to investigate this. As soon as basic class setup is final I will look for helpers doing GUI beautification etc.

[SVN revision 19860]
COMP (#2735): reactivated DICOM stuff with QVTK package depends

[SVN revision 19942]
ENH (#2735): add directory button, test application

All DICOM Browser related changes up to now. Unresolved issues:

  1. error handling if some process fails
  2. An empty file is created by Qt. If the database creation fails afterwards, a new database will never be created.
  3. The columnm headers are not readable. This can be changed by using "SELECT xxx AS yyy". See the modified select statement.
  4. Directory listing takes too much space.
  5. Dates are not formatted in readable way, there should be some formatting code for this in the Liver tool.
  6. The DataTreeNodes should get a name, eg the study description

This patch contains the modifications and fixes requested from Marco in the previous comment.

A few things must be modified:

QtDicomBrowser.cpp
Line 233: The path to the DicomIndex app.

QmitkDICOMBrowserView.cpp
Lines 55-71: The paths to the DicomIndexer app, to the database and to the DB initialization script.

[SVN revision 20227]
ENH (#2735): activated dicom indexer and browser for Mitk3M. lots of improvements to dicom browser

It does not find the DicomIndexer app in the Linux version. I don't know how to fix this.

The PATH variable has to contain the mitk/bin subdirectory. Please try that. Can you also add some log output that shows the executable and the content of the PATH variable. I think this could be helpful for windows and linux.

[SVN revision 20263]
ENH (#2735): Date formatation now performed with Qt.

[SVN revision 20264]
ENH (#2735): The inclusion of the mitk/bin to the PATH variable worked. LOG_ERROR added, showing the PATH variable and the indexer app name, in case the process do not start.

[SVN revision 20288]
ENH (#2735): Change in button labels.

[SVN revision 20289]
ENH (#2735): Documentation

[SVN revision 20302]
FIX (#2735): Some bug fixes concerning the stop refresh button. The DicomIndexer process did not stop in windows using QProcess::terminate. It was changed to kill.
Because the process is now being killed and does not comes to its natural end, the lock file is not deleted. Since there is no need for a lock file, the lock file creation and remotion was removed.
Another small bug: after closing the MainApp during refresh, the DicomIndexer process kept running in background. It is (supposedly) fixed by killing the process in the view's destructor.

[SVN revision 20303]
FIX (#2735): See the previous comment.

[SVN revision 20309]
CHG (#2735): install support for DicomIndexer

[SVN revision 20370]
ENH (#2735): A few presentation changes were made to the DICOMBrowser. The view does not manage the folder anymore. They are now managed through a preferences page. This allowed the size of the view to be reduced, so it can be placed beneath the standard views. A perspective was created in order to load the view in the mentioned position.
A small change concerning the directory were the DB is placed was also made. The DB is placed in the configuration directory of the application running it, instead of putting it always under .Mitk3M.

[SVN revision 20399]
FIX (#2735): install support for DicomIndexer, added missing sql init file

[SVN revision 20400]
ENH (#2735): Show preferences button was moved to the DicomIndexer widget for better GUI layout.

Installing MITK 3M (build with MinGW) on a bare WinXP VM shows some problems related to the DicomIndexer call:

No DICOM database. Calling DicomIndexer.exe --exec-sql-script C:/Dokumente und Einstellungen/admin/.Mitk3M3/plugin_cache/dicom.db

I noticed the following points:

  • no SQL script supplied on the command line
  • spaces in the path are not handled properly
  • the path for the .db file points to the plugin_cache, why?? (shouldn't it be something like .Mitk3M3/.metadata/.plugins/org.mitk.gui.qt.dicombrowser/dicom.db?)
  • If the SQL script was not supplied in the command line means that it couldn't be found means that it could not be found in any of the StandardFileLocations. This is an installation issue.
  • I don't know what you mean by "spaces in the path are not handled properly". I am using the QT file handling classes for this, and I thought it behaves correctly according to the OS being used. Could be more specific?
  • You mentioned before that the path should be something like that, but I could not find any working way to get this path from the system. I don't know why this file is landing in the plugin_cache directory. I am using cherry::Platform::GetUserPath(), which (under linux) is the .Mitk3M3.

1.) Okay, I will have a look at the MinGW installer. Where is the script supposed to be? in bin/ ?

2.) Paths with spaces must be quoted, like "C:/path with spaces/". No OS can handle paths containing spaces on the command line without quoting them.

3.) We should have a look at your code this afternoon.

  1. I don't know exactly. It should be in any directory that is searched by

mitk::StandardFileLocations. It also looks in the source directory
"mbi/Modules/DicomIndexer". I think Marco can be of further help in this point.

  1. What you see in the log messages is only a LOG_INFO showing the "supposedly"

called commands. It does not mean that the process is being called that way.
QProcess handles the execution, taking an argument list. Are you sure that it
is not working?

[SVN revision 20536]
ENH (#2735): Documentation with MainPage.

[SVN revision 20538]
ENH (#2735): Support for a temporary DB added. This was performed to allow the management of removable media. The temporary DB is allways reinited when the application restarts or when a new temporary dir is selected.

[SVN revision 20616]
CHG (#2735): Paths for databases storage where modified according the OpenCherry standards. Instead of putting them direct to .Mitk3M3, they are now put to .Mitk3M3/.metadata/.plugins/org.mitk.gui.qt.dicombrowser/

[SVN revision 20618]
ENH (#2735): Mouse cursor is set to wait modus during image load.

Merging "applicazion modules" component with "ExtApp plugins"