* fix: Use newer ONNX version and load without errors
* Only changes to enable SAM again
* fix(seg hydration): auto-hydrate RT struct on second load with disableConfirmationPrompts (#5875)
* chore(version): Update package versions to 3.13.0-beta.34 [skip ci]
* fix(Threshold tool): Threshold tool no longer becomes deselected when the Dynamic option is selected (#5884)
fix(Threshold tool): Added 'ThresholdCircularBrushDynamic' to the toolNames array so the evaluator correctly recognizes it as an active state for the Threshold button when Dynamic mode is selected.
* chore(version): Update package versions to 3.13.0-beta.35 [skip ci]
* fix: Modalities in study list should select starts with as primary (#5886)
* chore(version): Update package versions to 3.13.0-beta.36 [skip ci]
* fix(security): Bump tar version to address CVE-2026-31802. (#5893)
* chore(version): Update package versions to 3.13.0-beta.37 [skip ci]
* fix(segmentation): Display "No description S:{series number} {modality}" for segmentations with no label. (#5874)
* Bump CS3D dependency to get the fallbackLabel field additions.
* chore(version): Update package versions to 3.13.0-beta.38 [skip ci]
* fix(window level): The window level value is not displayed by default on all the viewports when selecting common/custom layout and TMTV. (#5865)
* fix(window level): Set up listener for viewport availability such that the initial window level can be read and displayed.
* PR feedback.
* PR feedback.
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* chore(version): Update package versions to 3.13.0-beta.39 [skip ci]
* fix(security): Bump flattened version to address CVE-2026-32141. (#5897)
* chore(version): Update package versions to 3.13.0-beta.40 [skip ci]
* fix(sr-hydration): enable hydration and arrow navigation for 3D SR measurements (#5887)
Joe is away, so approving based on the code having the requested change, and otherwise looking good/passing tests.
* fix(sr-hydration): enable hydration and arrows navigation for 3D SR measurements
* test: add automated test for SR measurement navigation with arrows after hydration
* add cross-study warning in the 3D branch
* test: address reviewer feedback for the test
* fix: support 3D and 2D annotations for SR hydration
* test: improve navigation to first image
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* chore(version): Update package versions to 3.13.0-beta.41 [skip ci]
* feat: Add combined build (#5895)
* Add combined build
* Link script location update
* Security and validation fixes
* Allow specifying target path in PR description
* fix: Version match
* Fix build detection issue
* fix: Playwright deploy
* Separate out the branch merge guard
* Update docs and link info
* test: Update the layout change to wait for network idle
* Move audit late so the rest of the build can be worked on
* Add text with network check to ensure we see this change is updated
* Attempt to fix the mpr loading on ohif-downstream
* PR review comments
* Update docs
* Update to CS3D 4.20.0
* PR comments
* Add log on ohif-integration builds
* Update build test
* Removed unused space to kickoff build
* chore(version): Update package versions to 3.13.0-beta.42 [skip ci]
* fix(SR): Added support for spline and live wire SR items. (#5870)
* fix(SR): Added support for spline and live wire SR items.
* Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Add a script to checkout a worktree for test builds
* fix: Allow download for testing sr validator
* Remove script that wasn't intended to be included
* Bump CS3D version.
* PR comments - simplify code and use single codepath for download
* Allow both download and save buttons for SEG and RTSTRUCT
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* chore(version): Update package versions to 3.13.0-beta.43 [skip ci]
* chore(tests): contour segment interactions e2e tests - rename and togglevisibility (#5891)
* chore(version): Update package versions to 3.13.0-beta.44 [skip ci]
* chore(refactor): use public appConfig getter instead of private _appConfig field (#5923)
* chore(version): Update package versions to 3.13.0-beta.45 [skip ci]
* refactor(tests): update viewport page object usage to async and update all effected tests (#5927)
* chore(version): Update package versions to 3.13.0-beta.46 [skip ci]
* fix: prevent black viewport when navigating series with client-created segmentation (#5919)
* chore(version): Update package versions to 3.13.0-beta.47 [skip ci]
* fix(measurement): Restore viewport interactivity when deleting in-progress Spline or Livewire measurement (#5905)
* chore(version): Update package versions to 3.13.0-beta.48 [skip ci]
* fix(segmentation): restrict overlay segmentation menu to same frame of reference as viewport background display set (#5900)
- Add FrameOfReferenceUID to SEG and RTSTRUCT displaySet in SOP Class Handlers so the FOR is available for filtering
- Sync optimisticOverlayDisplaySets when background display set changes so the overlay menu reflects the correct state after a background switch
- Add FOR matching guard to the hydrate segmentation synchronizer to prevent the hydration synchronizer from blindly mirroring segmentations from a source viewport to a target viewport if their primary Frames of Reference do not align.
- fix segmentation overlay order reversal on viewport re-render
* chore(version): Update package versions to 3.13.0-beta.49 [skip ci]
* fix(security): update dependencies to fix security vulnerabilities (#5936)
* chore(version): Update package versions to 3.13.0-beta.50 [skip ci]
* fix(security): Update yarn.lock that was missed in PR #5936. (#5940)
* chore(version): Update package versions to 3.13.0-beta.51 [skip ci]
* feat(component): Adds SmartScrollbar to ui-next - OHIF-2558 (#5924)
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
* fix(defaultRouteInit): pass sorted display sets to hanging protocol for deterministic viewport order (#5933)
fix: pass sorted display sets to hanging protocol for deterministic viewport order
The `applyHangingProtocol` function already sorts display sets by modality
priority and series number into `sortedDisplaySets`, but the unsorted
`displaySets` array was being passed to `hangingProtocolService.run()`.
This caused non-deterministic viewport ordering across page loads because
`displaySetService.getActiveDisplaySets()` returns display sets in creation
order, which depends on asynchronous network responses.
Made-with: Cursor
* chore(version): Update package versions to 3.13.0-beta.52 [skip ci]
* revert: rename DisplaySet.frameOfReferenceUID back to FrameOfReferenceUID (#5943)
* chore(version): Update package versions to 3.13.0-beta.53 [skip ci]
* fix(cornerstone): read FrameOfReferenceUID from display set in viewport service (#5950)
* chore(version): Update package versions to 3.13.0-beta.54 [skip ci]
* fix: ignore auth in git (#5955)
* chore(version): Update package versions to 3.13.0-beta.55 [skip ci]
* ONNX latest version
* chore(version): Update package versions to 3.13.0-beta.56 [skip ci]
* bun lock
* fix high sev mathjs issue
* Revert onnx changes
* Update to recent CS3D version
* Undo unneeded change
* Add null check
* Undo unneeded change
---------
Co-authored-by: Ghadeer Albattarni <165973963+GhadeerAlbattarni@users.noreply.github.com>
Co-authored-by: ohif-bot <danny.ri.brown+ohif-bot@gmail.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: diattamo <mmddiatta@gmail.com>
Co-authored-by: Pedro Köhler <pedrokohlerbh@gmail.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* fix: A couple of changes to enable cs3d integration build
* Bun update
* fix: Crosshairs tests due to order changes
* Fix a race in DicomTagBrowser.spec.ts and update the comparison for the screenshot for seg hydration.
* Fix sorting issues by using consistent sort
* fix: Inconsistency in scoord loader. Will need an update to screenshot
* Fix crosshairs stability issues and random order issues in Scoord
* Update the comparison image
* Update navigate image
* fix: Axios issue
* Update to current CS3D
* Add combined build
* Link script location update
* Security and validation fixes
* Allow specifying target path in PR description
* fix: Version match
* Fix build detection issue
* fix: Playwright deploy
* Separate out the branch merge guard
* Update docs and link info
* test: Update the layout change to wait for network idle
* Move audit late so the rest of the build can be worked on
* Add text with network check to ensure we see this change is updated
* Attempt to fix the mpr loading on ohif-downstream
* PR review comments
* Update docs
* Update to CS3D 4.20.0
* PR comments
* Add log on ohif-integration builds
* Update build test
* Removed unused space to kickoff build
fix(Threshold tool): Added 'ThresholdCircularBrushDynamic' to the toolNames array so the evaluator correctly recognizes it as an active state for the Threshold button when Dynamic mode is selected.
* feat(ecg): add DICOM ECG waveform extension
Introduce @ohif/extension-dicom-ecg for rendering DICOM waveform (ECG)
data. Register the extension in the basic mode and pluginConfig.json,
and remove ECG from NON_IMAGE_MODALITIES so waveform display sets are
handled by the new viewport.
* refactor(ecg): move ECG support into cornerstone extension per review feedback
- Remove standalone dicom-ecg extension; fold all ECG functionality into
the cornerstone extension as requested by reviewer
- Add ECG SOP class handler (DicomEcgSopClassHandler) to the cornerstone
extension getSopClassHandlerModule, registering ECG waveform metadata
via genericMetadataProvider on display set creation
- Move ECG helpers (buildEcgModule, decodeInt16Multiplex, base64ToArrayBuffer)
into extensions/cornerstone/src/utils/ecgMetadata.ts
- Handle ECGViewport in CornerstoneViewportService._setDisplaySets by
detecting ECGViewport instanceof and calling setEcg(imageId) directly,
so OHIFCornerstoneViewport can be used without a custom ECG viewport component
- Add ECG support to getCornerstoneViewportType utility
- Update basic mode to reference the cornerstone extension's ECG SOP handler
and use the base cornerstone viewport for ECG display sets
- Migrate ecgMetadata and getCornerstoneViewportType tests
* chore: revert bun.lock to upstream origin/master
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* fix: Detect 16 bit when 8 declared
* Update bun lock with dcmjs changes
* PR comments
* Update package versions
* fix: Palette color lookup table data for dcmjs parsed data
* fix: Published version should match (#5813)
* fix: Published version should match
* Move version number update to package.json
* fix: Netlify version number update
* Try updating platform app vesion too
* PR comments
---------
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
* Update latest cs3d
* formatting
* fix: Use 64k instead of 0 for number of entries
* fix: Revert CS3D version to see test issues
* Updated screenshots for ArrowAnnotate.spec.ts.
* Update CS3D version
* fix: Update cs3d 4.17.4
* Update bun lock
* Update bun
* Downgrade to CS3D 4.17.2 to try to release
---------
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>