* fix bugs for the RT for the new demo
* fix SM with the static-wado server
* remove thumbnail from tmtv
* migration guide
* fix stability for the rt struct
* apply review comments
* add loading indicator to SM
* pdf works
* try to fix relative bulkData
* fix the rest
* fix preflight for the SM
* fix typo
* apply review comments
* yarn lock
* fix(DicomTagBrowser): Fix parsing problems that was limiting nested tags rendering
* Added a progress indicator when switching to a list of more than 1000 rows.
* Switched to using react-window to virtualize the dicom tag browser window.
* Added filtering to the DICOM tag browser with a new search UI widget.
Lots of tweaks and updates to the look-and-feel.
* Removed unused import.
* PR feedback including some UI tweaks.
* More PR feedback.
---------
Co-authored-by: Igor Octaviano <igor.octaviano@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
* fix(command): Added command and hotkey binding for navigate to next and previous display set.
* Centralized the sorting (function) of display sets since at least three
areas sort display sets: hanging protocols, study/thumbnail browser and
updateViewportDisplaySet command.
* Renamed some methods for clarity.
* Scrolling active thumbnail into view for an updateViewportDisplaySet
* Added a null check.
* Added check to minimize thumbnail scrolling.
* fix(Measurement): fixed line dashing of measurements in various scenarios
For a StackViewport simply rely on the SeriesInstanceUID being part of the
tracked measurements or not.
For a VolumeViewport first check the image id of the current image in the viewport
and then check the SeriesInstanceUID (like for a StackViewport) if an id is returned.
To reliably get the id of the current image, listen for the VOLUME_VIEWPORT_NEW_VOLUME event.
* Changes for PR comments.
* 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.
- prevent non-cornerstone viewports from showing the image download dialogue
- passing the rendering engine id to ToolGroup.addViewport
- fixed the keep/dismiss aspect feature
* 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(dicomlocal): navigate /local to the work list and /localbasic to the (basic) viewer
For TMTV, consider both the forward and back slash separator for modalities.
* Fix to TMTV isValidMode method.
* PR feedback:
- replace forward slashes with back slashes for modalities in the WorkList instead of in the Mode.
* Added query.series to DicomLocalDataSource.
* fix: KO series being displayed in browser list
* fix sr for volume viewports
* move highlight labelmap to RAF
* remove commented code
* fix the hydration bug for the SR
* apply review comments
* revert the key images for sr
* Remove some obsolete changes
* set initial image for sr instead of jump
* Remove viewportType stack
---------
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* fix(Measurements): return {} instead of undefined for getSOPInstanceAttributes
* PR feedback:
- separated measurements from non-acquisition plane
- reverted to previous behaviour of returning undefined in getSOPInstanceAttributes
* Added unit tests for unmapped measurements.
* PR feedback: added comments to the unmappedMeasurement used in the unit tests.
* 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
* fix(DICOM PDF and Video)
- added retrieve.directURL for local DICOM load data source; it returns a data URL
- fixed various checks for video using transfer syntaxes and SOP class UID with number of frames
- added call to 'rendered' endpoint for those data sources that support it; others get BulkDataURI
* Added DOC (PDF) and OT (for video in particular) to list of non-image thumbnail modalities.
* Fixed broken e2e tests.
* 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.
---------
* feat(DICOM Upload)
OHIF #3297
- DicomWebDataSource.store.dicom now accepts an ArrayBuffer of data sets to store
- DicomWebDataSource.store.dicom now also accepts optional callbacks to track upload and an AbortSignal object to cancel upload
- Added DicomFileUploader class that performs and tracks the upload of a DICOM file
- Added various UI pieces for the upload: DicomUpload, DicomUploadProgress, DicomUploadProgressItem
- ProgressLoadingBar was extracted from LoadingIndicatorProgress so it can be reused
- Modal dialogues can now optionally prevent an outside click from closing the Modal
* Passing an XMLHttpRequest to the dataSource.store.dicom method instead of callbacks and AbortSignal.
Cleanup of various UI pieces to minimize code and increase readability.
* Made the DicomUpload component a customization module exported by the cornerstone extension.
* Exposed a copy of the data source configuration via the IWebApiDataSource interface.
Added dicomUploadEnabled to a data source's configuration.
* Code clean up.
* Upgraded the dicomweb-client version to one that provides the ability to
pass a custom HTTP request. DICOM upload uses that custom HTTP request
to track progress and cancel requests.
* Distinguished between failed and cancelled uploads.
* Allow no selection in the upload dialogue.
Fixed the styling of various progress information so that everything aligns.
* Switched from cornerstone wado image loader to cornerstone dicom image loader for DICOM upload.
* Added special cancelled icon to differentiate from failed.
* Added a bit of spacing between the upload progress bar and percentage.
* Fixed minor issue with upload rejection.
* Performance improvement for cancel all uploads:
- use React memo for each upload item progress (row)
- do not await each request of a cancel all
* Fixed various padding/spacing for the DICOM upload drop zone component.
Changed the border dashing for the DICOM upload drop zone to be a background image gradient.
Added hover and active effects to the 'Cancel All Uploads' text.
* fix: viewportdialoge not appearing in non-tracked viewports
* feat(viewports): Introduce useViewportDialog and remove deprecated API
This commit introduces the `useViewportDialog` hook and replaces the deprecated `viewportDialogApi` with the new `viewportDialogState`. Additionally, the notifications in `OHIFCornerstoneRTViewport` and `OHIFCornerstoneViewport` have been removed. Finally, the `CinePlayer` component now accepts optional parameters.
* fix tests
* feat(cst): Add new command to get nearby annotation tools
This commit adds a new command `getNearbyAnnotation` to the `commandsModule.ts` file that identifies nearby annotation tools excluding Crosshairs and ReferenceLines. It also removes an unused mapping to `Crosshairs` in `initMeasurementService.js` and changes the command run in `findNearbyToolData.ts` to `getNearbyAnnotation`.
* perf(cornerstone): Improve performance by optimizing tools
Removes unnecessary imports to improve app's performance. Changes how annotations are detected on the `commandsModule.js` file by fetching the `isAnnotation` property of the tool instance if available. Updates `CrosshairsTool` and `ReferenceLinesTool` to not be annotations anymore. Adjusts the `localhost` URL ports for the `dcm4chee-arc` service interface on `local_dcm4chee.js` to allow for more efficient server communication.
* feat(cornerstone): Add CornerstoneServices type and ToolGroupService.getToolGroup to get tool group by ID or active viewport
This commit introduces the new CornerstoneServices interface to the code and adds the ToolGroupService.getToolGroup method, which can retrieve a specific tool group by ID or from the active viewport. The older _getToolGroup method has also been removed from commandsModule. When no tool group ID is provided, this method now retrieves the tool group from the currently active viewport with the help of getActiveViewportEnabledElement. Additionally, the required reference to @ohif/core has been removed.
* 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
* 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
* 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