Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DICOM browser rework #886

Merged
merged 5 commits into from
Oct 12, 2019
Merged

Conversation

lassoan
Copy link
Member

@lassoan lassoan commented Oct 11, 2019

Huge performance and usability improvement of DICOM browser.

DICOM indexer:

  • Implemented background indexing (in worker thread): indexing may take several minutes and it is not desirable to block the entire application for this long time
  • Reduced indexing time by a factor of 3x (previously, inefficient database inserts, unnecessary queries, and table view updates slowed down the insertions)
    DICOM browser:
  • Removed popups from DICOM browser to not interfere with user workflow (questions, status updates, etc. are display in the browser layout)
  • Do not block the GUI while importing data sets, provide continuous, detailed update about indexing progress
  • Add separate displayed fields preset for DICOM query-retrieve database (this database is built without having access to the files, so less displayed fields can be computed)
  • Condensed table headers in horizontal mode (one row can hold all the search/filter fields instead of using one for each)
  • Set default sorting of columns (based on last insertion time, study date, and series number)
  • Added option to show DICOM metadata (right-click menu)
  • Added option to export datasets to file system (right-click menu)
    DICOM database:
  • Remove orphan empty directories after deleting files from the database
  • Emit signals when the database is opened or closed
  • Added display option for specifying column that is used for sorting by default
  • Improved displayed field update speed by about a factor of 100x (batch execution is very slow on sqlite and individual queries in a transaction should be used instead)
    DICOM query/retrieve:
  • Fixed crash when query/retrieve was used from Python (where database cannot be passed to the Q/R widget as a shared pointer)

Many small fixes.

Andras Lasso added 5 commits September 19, 2019 11:42
Default row height was too high and to fix that manual setting of fixed row height was added to the GUI.
Now we found a way how to properly set the row height to match the content, so manual setting is not needed anymore.
ColumnDisplayProperties table's Format column can now store a JSON string.
Currently there is only a single attribute that can be specified there: resize mode of the column.
See complete specification in documentation of ctkDICOMDatabase.h.
Huge performance and usability improvement of DICOM browser.

DICOM indexer:
- Implemented background indexing (in worker thread): indexing may take several minutes and it is not desirable to block the entire application for this long time
- Reduced indexing time by a factor of 3x (previously, inefficient database inserts, unnecessary queries, and table view updates slowed down the insertions)
DICOM browser:
- Removed popups from DICOM browser to not interfere with user workflow (questions, status updates, etc. are display in the browser layout)
- Do not block the GUI while importing data sets, provide continuous, detailed update about indexing progress
- Add separate displayed fields preset for DICOM query-retrieve database (this database is built without having access to the files, so less displayed fields can be computed)
- Condensed table headers in horizontal mode (one row can hold all the search/filter fields instead of using one for each)
- Set default sorting of columns (based on last insertion time, study date, and series number)
- Added option to show DICOM metadata (right-click menu)
- Added option to export datasets to file system (right-click menu)
DICOM database:
- Remove orphan empty directories after deleting files from the database
- Emit signals when the database is opened or closed
- Added display option for specifying column that is used for sorting by default
- Improved displayed field update speed by about a factor of 100x (batch execution is very slow on sqlite and individual queries in a transaction should be used instead)
DICOM query/retrieve:
- Fixed crash when query/retrieve was used from Python (where database cannot be passed to the Q/R widget as a shared pointer)
@pieper
Copy link
Member

pieper commented Oct 11, 2019

That's a huge update with lots of good stuff. Looks good to me.

@nolden will this impact MITK uses?

Are there other CTK users we should consult?

@nolden
Copy link
Member

nolden commented Oct 12, 2019 via email

@pieper
Copy link
Member

pieper commented Oct 12, 2019

Alright, let's go!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants