- 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
* 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>
* 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>
* 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 capture not maintaining flip/rotate state
* fix capture not maintaining flip/rotate state
---------
Co-authored-by: silasshellenbarger <sdshe@Silas-Computer.localdomain>
- add segmentationExists check to getSopClassHandlerModule
- now firing SEGMENTATION_REMOVED and SEGMENTATION_REPRESENTATION_REMOVED events
- centralized segmentation removal in a listener
- when a segmentation is deleted (completely), remove it from all viewports it overlays
- when a segmentation is removed from a viewport, remove it as overlay from the viewport
---------
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* Better handle octet stream case
* Use data source config stack options
* Use immutability helper
* Use immutability helper (update)
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Will address a few more comments in a separate PR released after this one into 3.13
* fix(HistoryMemo): Segmentation delete wasn't remembered
* Temporary add of package.json linking
* fix: Use newer dcmjs version and delete segmentation with history cs3d
The window level menu's logic for when it is opened and closed now also runs when the AllInOneMenu triggers the open or close.
Using refs to store the latest function references in the AllInOneMenu component to avoid triggering a useEffect when the functions change.
Removed an unused element prop from the WindowLevelActionMenu component.
This was done by using an array of representation types instead of a single type for a panel.
The first element of the array is the primary type of the panel, and the rest are secondary types
that can also be displayed in the panel.
PR feedback:
- added test to check number of segments in side panel for 3D only view
- fixed jumping to segment in 3D only view
- fixed exception when adding contour segment in 3D only view
* fix: prevent annotation from appearing in active viewport when switching series with different Frame of Reference UID
* refactor: extract viewport update strategies
* Update version and use nearest orientation viewport
---------
Co-authored-by: trenser-belbin <belbin.kunjumon@prenuvo.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Requested issues were resolved. Approved this and am merging.
* sort the viewports based on the closest orientation as that of measurement
* fix: Separate out function for finding viewport alignment
---------
Co-authored-by: Arul Mozhi J <arul.mozhi@trenser.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* fix(ViewportWindowLevel): add null checks for volumeActor in opacity functions
* refactor(ViewportWindowLevel): register histogram worker at module load and optimize scalar data retrieval
* fix(Preclinical4D): add null check for viewportId and set frame rate for cine playback
* fix: seg sync for data without FOR
* test commit to trigger deploy re-run
* test commit to trigger deploy re-run
* Revert "test commit to trigger deploy re-run"
This reverts commit 42c532c6f404798e39e3d137fff7c1e7569956ad.
* chore: comments updated
* review commnets
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* [WIP] Fix contour annotations RTSS saving
* fix: Export image sop image reference provider
* Fixes for download with filename
* Updates to fix metadata issues with CS3D
* Updates to save menu
* Fixing some additional re-save metadata
* Add support for saving with predecessor image sequence
* PR comment fixes
* fix: Load RTSS after save
* fix segmentation save
* fix load of mixed seg/rt studies
* Use frame module to get information on the frame shown
* Fix study browser to use instances.length when numImageFrames not present
* fix: Load of display set split from multiple non-FOR referenes
* Fix RT and SEG applying to wrong series because of using
referenced series sequence without checkout sop instances
* Fix save seg
* Update to released CS3D versions
* test: Add revokeObjectURL to test download blob
* Add hard dependency on mode-basic to fix build order issues
* fix: build
* Try to fix build segmentation
* PR comments
* PR comment update
* Remove dead code and fix rectangle roi rehydration
* Revert bun.lock
* Remove hardcoded modality
* Add e2e tests
* Update screewnshots
* Adjustments to tests
* disabvle test for now
* Add test again
* Use ohif data soure
* Revert changes
* Test
* Update testdata to include point
* Improve tests
* Update screenshot
---------
Co-authored-by: Andrey Fedorov <andrey.fedorov@gmail.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* Opacity, fill and outline properties for active and inactive contours
are now consistent with those for label map segmentations.
The properties for inactive segmentations are applied to BOTH
inactive contours and label maps.
* Activate the selected segmentation for a type when the alpha, outline width, or fill/outline visibility is changed.
* fix(segmentation): Lock all rehydrated segmentation segments when panelSegmentation.disableEditing is true.
* PR feedback.
* PR feedback.
* Added tests for disableEditing and utilities for simulating drag operations.
* Update bun.lock file after merging master.