4 29 61#68
Open
OmidChaghaneh wants to merge 98 commits into
Open
Conversation
pyradiomics fix + docs update
- Add 'Load DICOM File' button in ROI selection menu - Implement file dialog for DICOM selection - Add transparency slider with 0-100% control - 0% shows pure B-mode, 100% shows pure DICOM - Fix brightness adjustment to preserve overlay - Remove debug print statements
…sidebar-label-to-QUS-analysis 17 change rf analysis sidebar label to qus analysis
…image-quality-issue
…d preview widgets
…ronal synchronization
… resizing for NIfTI preview
…vista compatibility
…d resolve conflicts favoring feature branch
…update_enhancement_cache method to DrawVOIWidget
…ckend from frontend for enhancement, put back .gitignore, updated ceus engines submodule commit ref
There was a problem hiding this comment.
Pull request overview
Adds a CEUS end-to-end post-load workflow: manual segmentation can now flow toward a preview/confirmation step and then into the new analysis-loading screens. It also expands the manual drawing UIs with image-enhancement controls and updates the application/model wiring to support analysis execution.
Changes:
- Adds a new segmentation preview widget and wires segmentation loading/manual save events into a preview/analysis flow.
- Introduces CEUS analysis parameter, function-selection, and execution screens plus application/model support for running analyses.
- Updates manual ROI/VOI drawing, spline handling, and file-selection validation to support the new workflow.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
src/ceus/seg_loading/views/spline.py |
Makes spline interpolation more tolerant of duplicate points and 4D point inputs. |
src/ceus/seg_loading/views/seg_preview_widget.py |
New read-only segmentation preview/confirmation/export UI. |
src/ceus/seg_loading/views/draw_voi_widget.py |
Emits save events so VOI exports can feed the new flow. |
src/ceus/seg_loading/views/draw_roi_widget.py |
Adds enhancement controls/signals to ROI drawing. |
src/ceus/seg_loading/seg_loading_view_coordinator.py |
Coordinates ROI/VOI drawing, preview, and preprocessing preview updates. |
src/ceus/seg_loading/seg_loading_controller.py |
Connects segmentation-loaded/manual-confirmed events into the model/view flow. |
src/ceus/seg_loading/__init__.py |
Re-exports additional segmentation UI components. |
src/ceus/image_loading/views/file_selection_widget.py |
Fixes folder-vs-file validation logic for image inputs. |
src/ceus/application_model.py |
Adds CEUS analysis state, workers, preprocessing helpers, and manual segmentation handling. |
src/ceus/application_controller.py |
Extends top-level navigation from segmentation into analysis loading. |
src/ceus/analysis_loading/views/analysis_params_widget.py |
New analysis parameter entry screen. |
src/ceus/analysis_loading/views/analysis_function_selection_widget.py |
Adapts function selection UI to CEUS data types/imports. |
src/ceus/analysis_loading/views/analysis_execution_widget.py |
Adapts analysis execution/results UI to CEUS analysis objects. |
src/ceus/analysis_loading/ui/analysis_params.ui |
Adds the Qt Designer layout for analysis parameter entry. |
src/ceus/analysis_loading/analysis_loading_view_coordinator.py |
Coordinates CEUS analysis function/params/execution screens. |
src/ceus/analysis_loading/analysis_loading_controller.py |
Selects analysis types/functions and launches CEUS analyses. |
.gitignore |
Minor ordering tweak for generated UI files. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+72
to
+73
| """Handle segmentation loading completion.""" | ||
| self._on_segmentation_action('segmentation_confirmed', seg_data) |
| @@ -109,6 +111,7 @@ def reset_to_seg_type_selection(self) -> None: | |||
| widgets_to_remove = [ | |||
| self._seg_file_widget, | |||
Comment on lines
+1048
to
+1049
| if hasattr(self, '_last_saved_path'): | ||
| self.segmentation_saved.emit(str(self._last_saved_path)) |
Comment on lines
+139
to
+146
|
|
||
| def _on_run_analysis_clicked(self) -> None: | ||
| """Handle run analysis button click.""" | ||
| print(f"DEBUG: AnalysisParamsWidget._on_run_analysis_clicked called") | ||
| # Collect parameters (simplified) | ||
| params = {} | ||
| # TODO: Collect actual values from dynamically created widgets | ||
|
|
Comment on lines
205
to
+210
| else: | ||
| print(f"DEBUG: Using existing AnalysisExecutionWidget") | ||
| # Update data in existing widget | ||
| self._execution_widget._image_data = self._image_data | ||
| self._execution_widget._seg_data = self._seg_data | ||
| self._execution_widget._config_data = self._config_data |
Comment on lines
+682
to
+687
| if not folder_path or not Path(folder_path).is_dir(): | ||
| self.show_error("Please select a valid folder.") | ||
| return | ||
| if not file_name: | ||
| self.show_error("Please enter a file name.") | ||
| return |
Comment on lines
236
to
+241
|
|
||
| # Add a message that the rest of the pipeline needs to be finished | ||
| info_label = QLabel("Note: The rest of the pipeline still needs to be finished.") | ||
| info_label.setStyleSheet("color: #FFD700; font-style: italic; font-size: 10px; margin-top: 5px;") | ||
| info_label.setAlignment(Qt.AlignmentFlag.AlignCenter) | ||
| self._ui.analysis_execution_layout.addWidget(info_label) |
Comment on lines
+77
to
+79
| if preferred in analysis_types: | ||
| selected_type = preferred | ||
| break |
Comment on lines
+186
to
+187
| # Future: Navigate to visualization screen | ||
| self._app.quit() |
Comment on lines
77
to
+80
|
|
||
| # Enhancement parameters | ||
| self._clahe_clip_limit = 1.2 | ||
| self._gamma = 1.5 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.