* fix(Video): Added fallback checks for DICOM video
Added some docs for video, pdf and upload.
* Added separate headings for DICOM PDF, DICOM Video and DICOM Upload in the docs.
* Updated docs for singlepart data source configuration.
* fix(local): should use dicomlocal for localbasic
* chore(github): styling for issues forms
* try to fix netlify
* apply review comments
* apply review comments
* feat(custom displayOptions): add custom options to every level of hanging protocols
* move set preset down to cornerstone3d
* works
* fix tmtv based on new api
* fix unit test
* close
* review1
* upgrade packages
* update packages
* apply review comments
* recursive call
* less copy
* apply review comments
* fix e2e tests
* apply review comments
* revert
* apply review comments
* apply review comments
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* fix: multiframe
* fix the unnecessary use of prior since some servers dont like it
* add authentication via token in url
* add data citation
* add resources
* upgrade packages
* yarn lock
* apply review comments
Update HangingProtocolService doc to include example and instructions to use custom attributes included in @ohif/extension-test. Example shows usage of sameAs for frame of reference check in tmtv hanging protocol.
* choe(modes, components): improved readability
This commit includes changes to improve performance in the basic-dev-mode and Thumbnail components.
Additionally, a change in the webpack configuration file was made to ignore ".min.js.map" files.
The defaultDataSourceName was also added to several configuration files, and whiteLabeling code was removed
from the local_orthanc configuration file.
* fix(cli): better path management and add dependencies
* better docs
* add default tool group to the templates
* add review comments
* apply review comments
* try to fix test
* fix thumbnail in tests
* fix: Jump to measurement after presentation store
* Fix initial load of DICOM SR
* Fix measurement highlight issues
* Clear measurements changed to array
* Fix merge issues
* PR comments
* Removed unused formatting. Change to single event
* Fix the unit test
* PR review comments
* refactor(viewport): simplify imports, align destructuring
Simplify import statements by removing unused imports, organize existing imports, and align destructured imports consistently across the component.
---------
* fix(Browser history):
- fixed an NPE when navigating to a different study via the URL
- exposed browser history navigation via a command
* Added documentation for the navigateHistory command.
Moved the history object from UI to viewer.
* 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
* 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
* 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.
* 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
* 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
* 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.
* fix(ViewportGrid): In ViewportGrid, fill blank viewports with display sets not yet in grid.
ViewportGridService now allows off-screen viewports to remain so that
so as to maintain continuity if they were filled by the UI/user.
* PR feedback: moved getNumViewportPanes into the ViewportGridService API.
* PR feedback:
- renamed some variables
- proper import/export of IDisplaySet
- added some comments for clarification
- fixed broken e2e tests
* Some missed rename of Services.
* fix(misc):Update the data source name, provide a /datasources
Update the imports for a few things to match, to avoid 2 versions
Fix the datasources name
pr:Make the data source selector configurable
* Updated data source selector page as requested
* PR fixes
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
The primary button will always be the layout grid selector and the MPR toggle is in the drop down menu.
This is the first step to later adding other (e.g. 3D) layout HPs to the menu.
Summary of changes/fixes:
- SplitButton now allows for its primary button to be any button component specified by a UI type.
- SplitButton passes a className to its primary button component to dictate how it should be rendered
based on its active/toggle status, hovering, menu visibility etc.
- The default menu item renderer for the SplitButton, renders acitve toggle items correctly.
- Items/buttons in the toolbar are now all the correct and same size.
- Added ToolbarService.getButtonComponentForUIType to fetch a button component for a given UI type.
- Spacing between toolbar items is now done at the Toolbar level to avoid double spacing and to ensure
uniform spacing.
- The drop down menu closes when clicking the primary button.
- Show a mouse down click effect when clicking the primary button.
Items to investigate still:
The following are all slightly contrary to the design specs of the UI:
- Is the click effect on the primary button satisfactory because with the hover border effect, the
button appears slightly smaller during the mouse down/up operation? (MEDIUM)
- On hover over the drop down button, the right-hand-side corners of the primary button appear
rounded and NOT square. Also the hover over the drop down button border effects make the primary
button appear smaller. (MEDIUM)
- Should there be hover effects when hovering over either tooltip of the SplitButton? (LOW)
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
Fixed broken e2e tests.
data-cy and data-tool properties now passed down to primary button component.
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
On drop down button hover, the primary button now stretches all the way right with no right border
and with square corners in the top and bottom right as per the toolbar spec.
The mouse down effect gives a full button look (i.e. no borders) with rounded corners all around and black text icon.
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
Documented that the primary button of a split button can specify a UI type.
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
Feedback from PR review to fix prettier formatting issue.
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
Added TODOs as per Bill's request in the PR.
* feat: Combine the layout grid selector tool with the toggle MPR button into a split button.
Feedback from Alireza: reverted the layout selector and MPR tools to be separate toolbar items.
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
* feat(imageLoader):Add an nth image loader strategy (#10)
* Updates for PR for nth menu
* performance:Prior implementation was O(n^2), taking about 50 ms
* feat:Nth image loader, added docs as requested
* fix: Use single quotes instead of backticks when specifying the environment variable that should be substituted for the envsubst command.
GitHub issue: #3079
Removed duplicate calls to envsubst.
Default nginx listen port is now 80.
Adde markdown documentation.
* fix: Fixed some typos and wording in markdown documentation.
GitHub issue: #3079
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
* fix(grid):Grid service wasn't being reset
* fix(service):Fix the initial service state
Services with mode specific state differed in internal state between
initial and subsequent load. This fix address that structurally by
allows the mode to store/manage service state, but makes the
responsibility of service state central to the service.
* feat(customization):Add a customization service
Update UICustomizationService to v3-stable.
Also, adds an example customization for tab colors
* moved the customization service to ui category
* feat: warn for overlapping segments
* fix: typo
* refactor mpr toggle and stack sync
* fix: wip for more general mpr
* fix: tool groups for mpr
* fix: changing of viewport id
* fix: viewport Id for the seg viewports
* fix
* update cornerstone version
* feat: add initial sop class handler for SEG
* feat: move segmentation service
* update segmentation service methods
* fix: viewport data structure
* feat: Add initial render for the DICOM SEG for each displaySet
* fix: various wrong architectural dependencies between services
* feat: initial separate SEG display in each viewport
* feat: refactore viewport action bar
* initial work for SEG hydration
* fix: various bugs regarding drag and dropping different viewports
* fix: rendering issues for multiple seg displaysets
* fix: bugs for thumbnail and hydration
* feat: fix the initial segment color
* update after rebase
* feat: initial design for the segmentation group table
* feat: initial new design for the segmentation panel
* feat: segmentation panel
* feat: make segmentation appear on all related viewports
* fix: segmentation load bug based on functional groups
* initial work for segmentation crosshairs
* fix: various stylings and functionality
* fix: various stylings for the seg panel
* fix: overflow styles
* feat: add more ui components
* feat: added segmentation config
* feat: add jump to segment
* feat: add jump to segment for DICOM SEG viewport
* fix: bugs after rebase
* feat: jump in segmentation viewport
* fix: mpr support for seg
* feat: add more icons
* feat: new icons
* feat: add new side panel
* feat: add segmentation config
* feat: add loading indicator to ohif
* feat: make hanging protocols follow matching rules for viewports
* feat: enhance drag and drop to be hanging protocol aware
* fix: mpr restore previous layout
* fix: crosshairs toggle
* fix: add auth headers to the dicom loader via dicomwebclient
* fix: bug for crosshairs toggle in mpr
* fix: seg viewport reusing old toolGroup
* feat: add loading animation with lottie
* fix: various bugs for Segmentation hydration in mpr
* feat: change outline alpha to outline opacity
* feat: loading indicator for seg viewport
* fix: various segmentation group styles
* fix: local mode for seg
* feat: add animation for the highlight
* fix: loading indicatro to show segment indices
* feat: enhance modality drop down ui
* fix: panels
* fix: download form
* fix: layout shift in loading indicator
* fix: loading indicator to have correct values
* fix: update software number
* fix: image jump between MPR and default
* fix: segmentation cleanup and cine service cleanup
* fix: segmentation toolgroup clena up
* fix: highlight interval should not trigger again
* fix: issue with multiframe sorting
* rename: change onSeriesChange to onArrowsClick
* fix: buttons for tmtv and layout shift
* fix: various bugs wrt crosshairs
* fix: crosshairs re init on reset camera
* fix: middle slice calculation different from cs middle reset camera
* fix: reset camera should reset viewport camera
* fix: loading segments in MPR mode
* fix: tmtv hp back to before
* fix: layout shift
* feat: orientation markers for volume viewport
* fix: capture for volume viewports
* fix: memory leak for back to worklist
* fix: loading bar bg color
* fix: side panel for only one panel
* fix: react select style in production
* fix: various styling for segmentation groups
* fix: various ui styles
* feat: add new segmentation config styles
* fix: hover state for segmentation item
* fix: side panel layout shift
* temp add panels
* try to fix scrollbar for thimbnail
* fix: scroll not appearing for side panels
* feat: changed styles for scrollbar
* feat: add cpu fallback warning
* fix: webworker destroy
* fix: select styles
* fix: orientation marker color and position
* fix: capture screenshot for volume viewports
* fix: hide segment visibility on mpr
* fix: reloading an already loaded seg displayset
* feat: add is equal
* fix: mpr jump to measurements
* apply review comments
* fix: optimization for the segmentation load
* fix: remove unnecessary context menu and hp service reset
* fix: segmentation service wrt brush settings
* feat: initial work for the stack synchronization
* fix: add validateDisplaySetSelectorsForNewDisplaySets to make sure drag and drop can follow requirements
* fix: various react proptypes
* fix: thumbnails for the tmtv and change default props to default params
* feat: make showing loading indicator configurable and add docs
* bump versions and add more docs
* fix demo
* update cornerstone versions
* apply review comments
* feat: add reference lines
* fix build
* fix unit tests
* add reference lines icon
* fix: e2e tests
* fix static wado config
* docs: add segmentation service docs
* fix: docker build
* fix: keep camera and bump versions
* Try re-enabling minification to fix deploy previews
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
There had been a change made to make the hanging protocols
auto initialize, but that caused problems on mode init
because the couldn't specify the hanging protocols any longer.
THis change restores that, and also improves the API a little
bit by allowing the display set selectors to be specified by id
instead of positionally.
fix(hp):PR Review Comments
fix(hp):Unit test and docs
* feat: add more types to HP service
* change hp to have apply protocol
* feat: mpr initial work
* apply protocol by id
* feat: mode should be able to apply protocol directly
* fix: wrong inheritance for viewports drag and drop
* apply review comments
* initial upgrade commit for tailwind
* fix: inconsistensies in button
* fix: various places with conflicts
* final fixes
* fix: dialog header color
* apply review
* feat(HP): Apply HP to display sets, fix race condition
* fix: displaySetService no event not needed (#2912)
* fix various styles and renamings
* feat: refactored hp service
* fix: use HP service event for viewport grid
* remove unnecessary doc
* fix test
* apply review comment
* fix: segmentation creation
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* fix: ptDisplaySet metadata problem
* fix: typo in xhrHeader field
* fix: temporary fix for crosshairs on reload data
* fix hotkey bug for input fields
* upgrade docusarusu to stable release
* circle ci node upgrade
* cypress node upgrade
* bump node in netlify
* bump node version
* remove versioned docs
* update resources
* fix: webpack injection of plugins
* fix meaningful label for panels
* add reviews and fix cli for creation
* copy over chunks if exists in the build
* edit templates
* edit templates
* fix yarn lock
* fix(plugin):Deploy on windows is broken
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>