* feat: initial RT support
* make the segmentation service work with representation data
* feat: make segmentation service work with representations
* fix rtss vis
* fix: rt hydration
* fix the rendering of rt names
* fix imports
* refactor: Modify status and click handling for hydration of RTStructures
Modify status and click handling for hydration of RTStructures by renaming `onPillClick` to `onStatusClick` in `OHIFCornerstoneRTViewport.tsx` and `_getStatusComponent.tsx` files. Also, update initial segmentation configurations in `PanelSegmentation.tsx` and simplify configuration changes and values for segmentation service in `SegmentationService.ts`. Finally, remove console debug in `CornerstoneViewportService.ts`.
* wip for highlighting contours
* refactor rt displayset code
* review code update
* update cornerstone dependencies
* refactor: Update license year, version number, and minor code cleanup
This commit updates the license year in several files, updates the version number in package.json, and contains minor code cleanup in two files.
* add bulkdataURI retrieve for RT
* fix package version
* apply review comments
* apply review comments
* apply review comments
* feat(panels): refactor and streamline segmentation configuration and inputs
Rewrote state hooks and streamlined the configuration input for `PanelSegmentation` to be more verbose and reusable. Included several new input types, including the `InputRange` component which now shows a fixed floating value based on the step provided. The `SegmentationConfig` component now works with dynamic values controlled by `initialConfig`. These changes should improve function usability and make the code more maintainable going forward.
* fix various bugs
* fix contour delete by upgrade cs3d version
* feat(viewport, inputNumber, segmentationConfig, orthanc): Implement minimum and maximum values for input number components, and useBulkDataURI for Orthanc configuration. Compare measurement view planes with absolute viewport view planes in Cornerstone viewport.
* update yarn lock
* fix: Make the cornerstone sR viewport show all measurements
* PR fixes
* PR fixes
* Add a DICOM SR hanging protocol
* Duplicate the hanging protocol for seg as well
* PR requested change
* PR requested changes
* PR fixes plus merge update fixes
* PR fixes and integration test fix
* PR - documentation
* feat: Add a new hanging protocol @ohif/mn
* Add @ohif/seg example
* PR comments and a couple more fixes to make things cleaner
* PR comment
* Added an example to cause the PR checks to rerun
* Use more consistent type/structure for services
* Fix restoring SR so the tests described work
* One more typed service
* Added types for the Cornerstone library
* Couple more type fixes
The sameAs function requires displaySetMatchDetails and displaySets to compare attributes between display sets, but these properties were not being passed into the options object. This commit adds the necessary lines of code to include displaySetMatchDetails and displaySets in the options object, fixing the issue where the custom attribute function 'sameAs' was missing required data.
* feat: Allow navigating to a specified series and sop instance
This was a feature in OHIF v2, so adding it to v3, albeit with new
parameters.
feat: Allow comma separated as well as repeated args params
* docs
* Test fixes
* feat: Navigate to SOP selected - PR fixes
* Updated docs
* PR fixes
* fix: The display of linked viewports during drag and drop has a race
* PR review comments
* fix: Segmentation display two up
* Removing console logs
* Fix the blank viewport can have stuff added to it
* Fix the null name on HP module
* Fix the navigate to initial image
* Fix the nth interleave loader
* Fix the unit tests
* PR comments - docs mostly
* fix: Exception thrown on change displayset after double click
* feat(DoubleClick): double click a viewport to one up and back
Added a toggleOneUp command that puts the active viewport into a 1x1 grid layout
and it toggles out of 'one-up' by restoring its saved 'toggleOneUpViewportGridStore'
from the StateSyncService.
Added double click customization for the Cornerstone extension with the
default double click handling being the toggleOneUp command.
Added a cypress test for the double click functionality.
* PR feedback:
- tracked viewport measurements no longer show as dashed when toggling one up
- disallowed double clicking near a measurement
- updated cornerstone3D dependencies to fix double click of TMTV and volume viewport 3D
- created ViewportGridService.getLayoutOptionsFromState
* Updated the ViewportGridService docs.
* Switched to using 'cornerstoneViewportClickCommands' and consistency with the context menu clicks.
* fix(Volume3DViewport) - Replacing the volume 3D viewport with another reconstructable series fails
- updated cornerstone3D core package dependency
- checked for null presentations when setting presentations
- added viewportIndex as a dependency for enabling and disabling an OHIFCornerstoneViewport
* PR feedback - removed viewportIndex useEffect dependency for enabling/disabling OHIFCornerstoneViewport
* feat: Allow customizing the measurements panel.
Also includes default display of the site/finding values from the DICOM
SR object.
Update fixes
PR review comments - move the recordInteraction to COmmandsManager.run
PR fixes
fix: Dependency updates to allow right click to be recognized
PR fixes
* Use newer CSWIL
* Make both the base measurements and the tracking measurements show codes
* Fix the right click context menu bringing up menu
* feat: Context menu
feat: Custom context menu
Adding documentation
PR updates
* fix: Capture tool exception
* PR updates
* Add fully worked out examples in the basic test mode/extension
* Fix the menu display
* fix: Make the commands on clicks much more configurable
* Wait for load before double clicking
* docs
* PR changes - nothing functional, just moving things endlessly
* PR comments
* PR changes - rename the default context menu
* Renamed the cornerstoneContextMenu to measurementsContextMenu
* Add chevron right to the sub-menus
* feat(VolumeViewport3D)
- importing and using Cornerstone 3D's VolumeViewport3D viewport
- added mprAnd3DVolumeViewport hanging protocol
- allowed for W/L preset to be applied to a viewport
* Updated cornerstone core dependency
* Removed pan and zoom from the volume3d tool group so that tackballrotate is never dropped for that viewport.
Removed overlays from 3D volume viewport.
Throw an error and display a message whenever an unapplicable tool is selected.
* The default/initial orientation for a 3D volume viewport can now be set.
Using the 'interleaveTopToBottom' image load strategy for the 'mprAnd3DVolumeViewport' hanging protocol.
* Do not set orientation for stack viewport.
* fix: Some residual issues with hanging protocol after state sync
fix: Some issues introduced by the state syncing changes
* fix: PR fixes, mostly code cleanup
* Improve a race condition in an automated test
* Remove obsolete code
* PR fixes
* feat: Add state sync and use it to remember viewport grid info
fix: Version updates
Fixes for toggling MPR mode
Fix the display when the interleaved load module fails
Fix the memory of the state to restore correctly
PR fixes for the state sync service
PR fixes
PR fixes
PR fixes
Added a hack warning to remove volumeDeactivate
Fixes for TMTV colormap setting
Fix the casing
Missed renames
fix: tests not running due to variance in ordering
Reverting some fixes to change case
PR changes - mostly comments and minor improvements
fix: All display sets were being updated on drag and drop
PR fixes - mostly renames
PR fixes
Test support for OHIF, for HP branch
test: Add at least a minimal set of automated tests for hanging protocols
Docs
PR fixes
Merge fixes
DOCS updates
Add an example of the mn hanging protocol
PR fixes
PR fixes
PR fixes
* Fix the drag and drop
PR fixes
* PR changes - update default keys for next/previous stage
* fix: Was storing the custom viewport grid too aggressively
Caused by a PR change misspelling a variable
* feat(SidePanel)
OHIF issue #3135
- Added a method to set a callback for a Panel to invoke when it is ready
to be shown (e.g. its data is loaded).
- Implemented such methods for both the segmentation and measurement panels.
- The SidePanel component now adds a callback to Panel components so that
it will automatically open a Panel that was initially closed and yet to
be opened.
- Updated the OHIF documentation accordingly.
* PR feedback
- added a PanelService that centralized much of the logic that existed in panel PanelModule
- the SidePanel subscribes to PanelService.EVENTS.ACTIVATE_PANEL for each of its child panels
* Removed the PanelMeasurementTableTracking setMeasurementPanelContentReadyCallback method.
* Made the forceActive flag in the PanelService optional and defaulted it to false.
* Fixed failing top level exports unit test.
* - PanelService subscriptions are now per panel (id) so subscribers do not
necessarily need to check the panel id in the event when it is fired
- PanelService activate panel trigger subscriptions are now returned
so that they can be (better) managed outside of the service
- updated/created the various documentation for panels and PanelService
* Clarified various documentation.
Moved the code to add the activate panel triggers out of the extensions
and into the longitudinal mode.
* Removed the openWhenPanelActivated flag.
PanelService now conforms to extending PubSubService like the other services.
Updated various documentation.
* Fixed failing e2e, mpr test.
* Renamed the ActivatePanelTriggers type properties.
The ExtensionManager now sets the id of various modules as a property on each of those modules.
* overlay customization
* custom overlay definition and examples
* minor fix - import statement difference between cornerstone and cornerstone3D
* move "VOI" and "Zoom" calulation to the ViewportOverlay component, make OverlayItem fairly dull
* type specifications
* follow up fixes for CustomizationService changes on upstream
* [fix] various fixes related to custom overlays (formatting, toggling)
* [fix] various fixes related to custom overlays (formatting, toggling)
* right side overlay panels - align right
* [fix] remove "notification" from toggleOverlay command
* comments
* [refactor] remove unused imports
* documentation of customizable overlay configuration
* prettify
* review of documentation of customization service
* fix useCallback() dependencies
* fix useCallback dependencies
* documentation for customization service
* documentation for customization service
* Add CT volume in PET ROI Thresholding (#3053)
* Add CT volume in PET ROI Thresholding
* Change UI ROI Threshold config
* Refactoring ROI Threshold configuration Panel
* fix menus
* try to fix build preview
* try to fix build preview
---------
Co-authored-by: rodrigobasilio2022 <114958722+rodrigobasilio2022@users.noreply.github.com>
* feat(ViewportActionBar): OHIF issue #3123 (#3186)
* feat(ViewportActionBar): OHIF issue #3123
- Renamed previous viewport action bar to be LegacyViewportActionBar
- Components LegacyViewportActionBar depends on also renamed: LegacyCinePlayer and LegacyPatientInfo
- New Viewport coded to specs in issue
- added React hook useResizeObserver
- added some tailwind classes
* Updated tailwind to 3.2.7.
Put external imports like React at the top of the import list.
* feat(CinePlayer and ViewportActionBar) (#3198)
* feat(CinePlayer and ViewportActionBar)
- OHIF issue 3123
- new look cine control implemented
- new custom blue color in tailwind config for various hover backgrounds in the cine control
- new icons added for cine
- Tooltip component now can be placed top (center) on hover
- Tooltip component border colour now consistent with specs
- fixed NPE in ViewportActionBar
- upgraded tailwind to 3.2.7 in platform/ui
- fixed issues in various button components brought by tailwind 3.2.7 where classes now need important flag
- fixed issue with InputRange component so that the tracked value property can change externally
- InputRange component can now optionally show its label
- added new measurement tracking state service to hydrate SR without prompting
- segmentation can also now be hydrated without prompting
* PR feedback:
- cine centralized to OHIFCornerstoneViewport
- introduced a type for the CinePlayer properties
* Addressed PR comments and concerns...
The DOM ref for the root component of the ViewportActionBar is now added to state
so that the various callbacks and ResizeObserver are updated with it.
The CinePlayer FPS slider tooltip was moved up so that its arrow does not
intersect the FPS text.
The hover area for the CinePlayer slider tooltip is now the FPS < > buttons and text.
The tracked measurements are now filtered to only include those of the active
viewport series when the tracked measurement navigation arrows are used.
* Addressed PR comments...
The update to tailwind 3.2.7 caused several look-and-feel, UI regressions,
so we are rolling back to 3.2.4.
* tests: add various e2e tests for MPR and measurements
wip
add cypress config
feat: add mode and extension for testing
add hp applied through search params
add MPR tests
apply review comments
add more e2e tests
update yarn lock
* fix unit tests failing
- formatPN should accept a string person name as well as an object with a Alphabetic field.
- For DICOM JSON data sources, spread in the patient data from the study object into the instance.