-
Notifications
You must be signed in to change notification settings - Fork 494
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
Add Visual DICOM Browser | ⚠️ Authorship of integration commit changed #1165
Conversation
Proposed commit title & message for
|
Warnings to fix:
|
c949a75
to
3ce3c67
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
Some of the tests are failing ... it would be great to fix these as well:
|
ok I am running them and double-checking. It may also be related to the second part of #1142 (comment). Reporting here: Note/question for @jcfr: To run the test locally, I had to follow these steps:
I might be missing something, but it would be helpful if the superbuild could automatically install DCMTK (eliminating the need for steps 3 and 4). Please let me know if this is a bug or if I am overlooking something. |
@jcfr I confirm with the ld library path fixed manually, only these tests fails: he following tests FAILED: I am going to fix them now. If you can have a look how to fix the installation of DCMTK, it would be great (I don't want to mess up the cmake for projects relying on CTK). |
Thanks for the details.
I updated the main description based of #1165 (comment) to include the updated diagram & testing scripts |
This comment was marked as outdated.
This comment was marked as outdated.
Thanks @Punzo 🙏 , your changes were helpful to move forward. Fixes and improvement to the DICOM tests are being integrated in the following pull requests:
Once there are integrated, we will rebase this one and ensure all tests are still passing 💯 🚀 Thanks for your patience ⏳ |
b4d35c5
to
9e9238f
Compare
62e9ef6
to
eaeaf7b
Compare
Thank you @jcfr for workong on this a lot! What is the status of this now? Can I help with anything to get this integrated? |
eaeaf7b
to
3a98e65
Compare
Proposed plan:
|
Sounds good, thank you! |
c44c296
to
3d86f96
Compare
7843549
to
3e025b8
Compare
sure! done and everything looks good. Thanks a lot for your hard work on the cleaning, I appreciate it.
Checked, looks good to me. I have also tested with valgrind/massif and the memory usage/deallocation works as expected.
I agree, I removed it in 6afcfe5 and here the new UML
ah that's great!!! |
As a step toward automating styling in CTK & Slicer, the most common styling practices accross CTK & Slicer code base have been applied.
Introduces the `ctkDICOMVisualBrowserWidget`, which improves the threaded execution of the following operations: - Filtering and navigation with thumbnails of local database and servers results - Import from file system to local database - Query/Retrieve from servers (DIMSE C-GET/C-MOVE ) - Storage listener - Send (emits only a signal for the moment, requires external implementation) - Remove (only from local database, not from server) - Metadata exploration In addition, the commit introduces the following classes: * `Core` classes: * `ctkAbstractJob` * `ctkAbstractScheduler` * `ctkAbstractWorker` * `DICOM/Core` classes: * `ctkDICOMEcho` * `ctkDICOMInserter` * `ctkDICOMInserterJob` * `ctkDICOMInserterWorker` * `ctkDICOMJob` * `ctkDICOMJobResponseSet` * `ctkDICOMQueryJob` * `ctkDICOMQueryWorker` * `ctkDICOMRetrieveJob` * `ctkDICOMRetrieveWorker` * `ctkDICOMScheduler` * `ctkDICOMServer` * `ctkDICOMStorageListener` * `ctkDICOMStorageListenerJob` * `ctkDICOMStorageListenerWorker` * `DICOM/Widget`classes: * `ctkDICOMPatientItemWidget` * `ctkDICOMSeriesItemWidget` * `ctkDICOMServerNodeWidget2` * `ctkDICOMStudyItemWidget` Co-authored-by: Andras Lasso <[email protected]> Co-authored-by: Jean-Christophe Fillion-Robin <[email protected]>
🍾 Amazing job guys, really looking forward to seeing this working in Slicer! |
Remove setting of unsupported and unused `placeholderText` property from `ctkDICOMVisualBrowserWidget.ui`. Since the property is set to its default value, removing it will not impact how the widget is rendered. For reference, it was originally introduced in 88ff72b ("ENH: Add Visual DICOM Browser (commontk#1165)", 2024-01-19)
Remove setting of unsupported and unused `placeholderText` property from `ctkDICOMVisualBrowserWidget.ui`. Since the property is set to its default value, removing it will not impact how the widget is rendered. For reference, the use of `placeholderText` was originally introduced in 88ff72b ("ENH: Add Visual DICOM Browser (commontk#1165)", 2024-01-19) Conditionally use `Qt::MatchRegularExpression` introduced in Qt 5.15. For reference, its use was originally introduced in 888cdd9 ("ENH: Add ctkDICOMJobListWidget for logging jobs activity in the UI", 2024-01-18)
This commit resolves compilation issues encountered when building the DICOMWidget against Qt 5.12.8. The changes include: 1. Removed the setting of the unsupported and unused `placeholderText` property from `ctkDICOMVisualBrowserWidget.ui`. This property's removal does not affect widget rendering. The removal addresses a compilation error introduced in commit 88ff72b ("ENH: Add Visual DICOM Browser (commontk#1165)", 2024-01-19): ``` /path/to/CTK/Libs/DICOM/Core/ctkDICOMStorageListener.cpp:71:18: error: ‘acceptAssociations’ is not a member of ‘DcmSCP’ 71 | return DcmSCP::acceptAssociations(); | ^~~~~~~~~~~~~~~~~~ ``` 2. Introduced conditional utilization of `Qt::MatchRegularExpression`, available in Qt 5.15, to resolve a compilation error introduced in commit 888cdd9 ("ENH: Add ctkDICOMJobListWidget for logging jobs activity in the UI", 2024-01-18): ``` /path/to/CTK/Libs/DICOM/Widgets/ctkDICOMJobListWidget.cpp:405:69: error: ‘MatchRegularExpression’ is not a member of ‘Qt’ 405 | QList<QStandardItem*> list = this->findItems(tr("completed"), Qt::MatchRegularExpression, Columns::Status); | ^~~~~~~~~~~~~~~~~~~~~~ ```
This commit resolves compilation issues encountered when building the DICOMWidget against Qt 5.12.8. The changes include: 1. Removed the setting of the unsupported and unused `placeholderText` property from `ctkDICOMVisualBrowserWidget.ui`. This property's removal does not affect widget rendering. The removal addresses a compilation error introduced in commit 88ff72b ("ENH: Add Visual DICOM Browser (#1165)", 2024-01-19): ``` /path/to/CTK/Libs/DICOM/Core/ctkDICOMStorageListener.cpp:71:18: error: ‘acceptAssociations’ is not a member of ‘DcmSCP’ 71 | return DcmSCP::acceptAssociations(); | ^~~~~~~~~~~~~~~~~~ ``` 2. Introduced conditional utilization of `Qt::MatchRegularExpression`, available in Qt 5.15, to resolve a compilation error introduced in commit 888cdd9 ("ENH: Add ctkDICOMJobListWidget for logging jobs activity in the UI", 2024-01-18): ``` /path/to/CTK/Libs/DICOM/Widgets/ctkDICOMJobListWidget.cpp:405:69: error: ‘MatchRegularExpression’ is not a member of ‘Qt’ 405 | QList<QStandardItem*> list = this->findItems(tr("completed"), Qt::MatchRegularExpression, Columns::Status); | ^~~~~~~~~~~~~~~~~~~~~~ ```
main
branch using force push.➡️ These changes have been replaced by the commit 88ff72b.
Rationale:
After performing a
Squash & Merge
operation in association with this pull request (#1165(, the primary authorship of the commit was inadvertently attributed to @jcfr instead of @Punzo, who contributed significantly to the changes.To rectify this, a force push was applied to explicitly set @Punzo as the main author of the commit, reflecting their substantial contribution to the work.
This pull request introduces the
ctkDICOMVisualBrowserWidget
, which improves the threaded execution of various operations:Key Components:
Core
classes:ctkAbstractJob
ctkAbstractScheduler
ctkAbstractWorker
DICOM/Core
classes:ctkDICOMEcho
ctkDICOMInserter
ctkDICOMInserterJob
ctkDICOMInserterWorker
ctkDICOMJob
ctkDICOMJobResponseSet
ctkDICOMQueryJob
ctkDICOMQueryWorker
ctkDICOMRetrieveJob
ctkDICOMRetrieveWorker
ctkDICOMScheduler
ctkDICOMServer
ctkDICOMStorageListener
ctkDICOMStorageListenerJob
ctkDICOMStorageListenerWorker
DICOM/Widget
classes:ctkDICOMPatientItemWidget
ctkDICOMSeriesItemWidget
ctkDICOMServerNodeWidget2
ctkDICOMStudyItemWidget
Related
Testing
Additionally, a CTK application named
ctkDICOMVisualBrowser
has been included for testing purposes (requires enabling CMake optionsexamples
andDICOM
).Testing can also be performed by running the visual DICOM browser from the Slicer Python console:
Similarly, here is how to test the scheduler from the Python console (e.g. query and retrieve):
Video:
VideoVisuaDICOMBrowser.mp4