Skip to content

Update the new feature for 4.7#7

Open
nroduit wants to merge 3 commits intomainfrom
4.7
Open

Update the new feature for 4.7#7
nroduit wants to merge 3 commits intomainfrom
4.7

Conversation

@nroduit
Copy link
Copy Markdown
Owner

@nroduit nroduit commented Apr 22, 2026

Changes since v4.6.6 → next release v4.7.0

🆕 New Features

OpenGL 3.3 Volume Rendering Backend (macOS support) — #784

  • Added a new FBO (Framebuffer Object) + Fragment Shader rendering pipeline using OpenGL 3.3 core profile.
  • This enables Volume Rendering on macOS (previously blocked by deprecated OpenGL APIs).
  • Introduced weighted-splatting accumulators and improved FBO texture sizing.
  • The Volume class is now used as the primary input for all 3D rendering (MPR/MIP and VR).

Hanging Protocols — Part I

  • Changed the view container layout to lay the groundwork for Hanging Protocol support.
  • This is the first step toward configurable automated layout of series on screen.

Unified DICOM Import UX — #793

  • DICOM-ZIP files can now be drag-and-dropped directly into Weasis.
  • All local DICOM import methods (folder, file, ZIP) have been consolidated into a single "Local Device" dialog for a more consistent user experience. So DICOM-ZIP can be imported via the same dialog as folders/files.

Export Annotation Feature (finalized)

  • The export of graphical annotations to external formats has been fully implemented and finalized.

4D Series Sub-Series Splitting Dialog — #763

  • A dialog to automatically divide a multi-phase 4D series into individual phase sub-series (usable in MPR, MIP, and VR).

Integrated MIP Projection Mode in Standard 2D Viewer — #795

  • MIP projection mode is now available directly in the standard 2D viewer with full synchronization and slab geometry overlay.

DICOM Export for MPR Views — #796

  • Added the ability to export MPR views as DICOM files with the current orientation.

MPR Crosshair Cut Mode for 3D Volume Rendering — #799

  • Introduced a crosshair cut mode that allows interactive slicing/clipping of 3D volume rendering from MPR crosshair positions.

System File Chooser — #761

  • Weasis now uses the system native file chooser instead of the Java common one, providing a more familiar file browsing experience on each platform.

Customizable Keyboard Shortcuts — #804 (uncommitted)

  • Added a centralized ShortcutManager to manage all keyboard shortcuts in the application.
  • New Shortcuts preferences panel (ShortcutPrefView) allowing users to view, search, customize, and reset keyboard shortcuts.
  • Supports conflict detection, per-user persistence, and export/import of shortcut configurations.

Tab Opening Preferences for Studies — #806

  • Redesigned the tab opening preferences for studies to improve usability and handle different import contexts (e.g., new study vs. same study, local vs. network).
  • Introduced TabFocusPolicy for configurable focus behavior when opening new viewer tabs.

🔧 Improvements

3D / Volume Rendering

  • Volume class overhauled: better min/max handling in subclasses, validation of parallel and regular slices, support for color images (byte & short), ability to read and save 3D raw data.
  • Improved volume array structure and integration into the rendering pipeline.
  • Improved FBO texture size management.

MPR (Multi-Planar Reconstruction)

  • Fixed horizontal banding/striations in coronal/sagittal MPR views — #771
  • Fixed deformed axial images in non-axially scanned volumes — #752
  • Fixed MPR geometry computation.
  • Fixed move-center logic for rotated axes.
  • Fixed volume intersection logic.
  • Optimized metadata reading during MPR construction.
  • The current view will also move when MPR is orthogonal — #769

UI / UX

  • Toolbar layout and DICOM Explorer layout improved (better spacing, alignment).
  • Fixed split series selection behavior in multi-view.
  • Improved the info layer display (corner annotations).
  • Fixed print layout rendering according to the layout change. Still has some issues to be resolved #509.
  • Refactored viewer initialization to use ViewerOpenOptions and enhanced split layout handling.

Networking

  • HTTP downloads now exclusively use HttpClient (removed legacy HttpURLConnection paths). Improves how images/series are downloaded.
  • Implemented JavaNetHttpClient for OAuth2 authentication flows.
  • Refactored org.weasis.core.api.net package; added URIUtils.
  • Fixed local file URI exception with HttpClient.

Code & Build Quality

  • Updated to Java 25 (both compilation and runtime target).
  • Refactored org.weasis.core.api.image and org.weasis.core.api.net packages.
  • Replaced File with Path throughout for modern I/O usage.
  • Updated to latest weasis-dicom-tools API (5.34.2).
  • Fixed bnd-maven-plugin (OSGi bundle generation) compatibility issue.
  • Fixed large properties-file loading issue.
  • Updated FlatLaf to 3.7.1.

Date/Time Picker

  • Replaced the legacy date picker with a new custom DateTimePicker component featuring improved selection UX

SpinnerProgress

  • Added a new SpinnerProgress component for displaying indeterminate progress with a spinner animation, used in various loading contexts.

🐛 Bug Fixes

Commit Description
f867c06 Redesign tab opening preferences for studies — #806
ee8c27b Fix very slow initialization of language settings
52618d2 Fix minor display in MPR/MIP/VR
86bf1d3 Fix local file URI exception with HttpClient
bda67cc Fix preferences initialization in certain launch contexts
77e7dbb Fix store channel value in volume data
95190bf Fix MPR geometry
0cc0790 Fix print layout
a6522d4 Fix horizontal banding/striations in MPR COR/SAG views — #771
d1f99e0 Fix deformed axial image in non-axially scanned volumes — #752
6e74788 Fix Optional type handling
2f7e43a Fix params copy
0952bad Fix large properties files
2cf44a1 Fix message issue
d522508 Fix wrong class call
dad5ed0 Fix orientation issue
6510528 Fix DICOM presets not loaded for Breast Tomosynthesis — #709
48b54a8 Fix icon transparency

🧪 Areas to Test for v4.7.0

  1. Volume Rendering on macOS — Verify OpenGL 3.3 FBO pipeline renders correctly; compare output with compute shader mode. To force FBO on any system, use this VM option: -Dweasis.3d.force.fbo=true
  2. MPR quality — Load non-axial series (gantry tilt, oblique); check for striations, deformation, geometry errors (measurements).
  3. Hanging Protocols layout — Verify that view container layout changes do not regress existing layout behavior.
  4. DICOM import (Local Device dialog) — Test drag-and-drop of ZIP files, folder import, single-file import; all should go through the unified dialog. DICOM-ZIP files can be imported via folders or file text field (selecting the ZIP file). Verify that the series load correctly in all cases (also DICOM-ZIP with a password).
  5. Export annotations — Export graphical annotations (measurements, graphics) and verify the output file.
  6. 4D sub-series splitting — Open a multi-phase 4D series, trigger the split dialog, verify resulting sub-series in MPR or VR. See also #739 and #763 for details.
  7. OAuth2 networking — Test WADO-RS/DICOMweb connections using OAuth2 tokens (using new org.weasis.core.api.net.auth.JavaNetHttpClient implementation).
  8. HTTP downloads — Verify series load correctly over HTTP(S) with the new HttpClient-only path.
  9. Print layout — Print a multi-view layout and verify rendering. Note that some issues remain with the print layout and are being tracked in #509.
  10. Preferences — Test cold start and re-launch scenarios to ensure preferences are correctly initialized. Some scenarios were thrown an NPE during UICore initialization.
  11. DICOM presets (Breast Tomosynthesis) — Verify window/level presets load correctly.
  12. Java 25 compatibility — Ensure the build and runtime work on JDK 25. Build pipeline, Scripts, GitHub Actions, documentation, and all platforms should be tested with JDK 25.
  13. weasis-dicom-tools 5.34.2 — This update includes a major refactoring of image conversion and processing, as well as all DICOM tools. Verify DICOM import/export, transcoding, WADO-RS retrieval, C-STORE, C-MOVE, C-GET, C-FIND, and any image processing pipeline (e.g., windowing, LUT application, pixel data handling) to ensure no regressions.
  14. MIP in 2D viewer — Activate MIP projection in the standard 2D viewer; verify synchronization with other views and slab geometry overlay display — #795.
  15. DICOM export from MPR — Export an MPR view as DICOM and verify the resulting file has the correct orientation and metadata — #796.
  16. MPR crosshair cut mode in VR — Use the crosshair cut tool in the 3D volume rendering view; verify the clipping planes update correctly when moving MPR crosshairs — #799.
  17. System file chooser — Verify that file open/save dialogs use the native OS file chooser on all platforms — #761.
  18. Keyboard shortcuts — Open the Shortcuts preferences panel; verify shortcuts are listed, searchable, and customizable. Test conflict detection and reset to defaults — #804.
  19. Tab opening preferences — Test study tab opening behavior with different import contexts (local, network, same study, new study). Verify TabFocusPolicy.autoByDuration is consistent with the different usages. Verify the redesigned preferences dialog — #806.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Print 2x3 images using 2d Viewer Layout result on low quality and pixelate image.

1 participant