* added utilities to get frameNumber from imageId and add frameNumber to per-frame instance copy
* Fix measurements' display texts on the Measurements Panel to have the correct instance number and frame number
* fixed minor React bugs (errors on console)
* fixed React's console bugs that are logged for some series that doesn't have "description"
* bug fix - multi-frame files was not loading frames correctly. It was loading Frame 1 twice, and not loading the last frame. Due to wrong frame number indexing (frame number begins with 1, not 0)
* metadata parser fix - providing default values of imagePlaneModule
* measurement SR support on multi-frame DICOM
* bug fix - jumping to the selected measurment on multi-frame DICOM
* upgrade dcmjs dependency to 2.8.1
* StudySummary component - allow "description" to be null
* make getUIDsFromImageID() method public from MetadataProvider
* imageId usage fixes to be more stable
* change the variable name to be more meaningful
* fix metaProvider importing
* for(...of) instead of for(i=0;i<length;..)
as that doesn't assume anything about the layout/design and just gets next until done.
* use Array.findIndex instead of plain for loop
* use ReferencedSOPSequence[0] - because the ReferencedSOPSequence is an array that happens to have attributes of child zero when of length 1, but you shouldn't count on that.
* DisplaySetService.getDisplaySetForSOPInstanceUID() - added optional frameNumber parameter for future usage : now they are just ignored as we are not supporting multiframe splits
* simple code refactoring
* refactoring for checking undefined values - mappedAnnotations
* remove unreachable code
* code refactoring - prefer conditional chaining
* fix how we access imageIds of viewport (StackViewport)
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
* fix(volume):Support volume viewing
* fix(multiframe):Display multiframe US, and multiframe PR fixes
* fix(metadataProvider):Don't call combine if frame not defined
* 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>
* feat: cs3d working stack viewport and tools (#19)
* Squashed everything
* fix weird react issue
* fix eslint / prettier stuff
* thumbnails work now with cpu rendering
* feat: use new loadImageToCanvas in cs3d
* make jump to measurement work
* fix active thumbnail
* fix measurement delete
* fix window level presets
* remove segmentation and sync groups for now
* fix the dicom pdf and dicom video
* fix cornerstone window assignment for cypress
* apply review comments
Co-authored-by: Erik <erik.sweed@gmail.com>
* feat: cs3d tools and toolGroups (#20)
* add more tools to work with cs3d mode
* fix hotkeys
* add stack manager usage for stach viewports
* add image scrollbar
* wip viewport overlay
* fix toAnnotation schema for tools
* fix the unnecessary size change that triggered resize
* hanging protocol improvement to allow unmatched errors
* study description matching for hanging protocol
* fix the displaysetOptions to work
* fix handle the active tool when a new viewport is added
* fix separate toolGroups for mode
* apply review comments
* apply review comments
* yarn lock
* feat: overlay component (#21)
* fix default displayset options
* add viewport overlay
* apply review comments
* feat: loading and orientation indicators (#22)
* add loading indicator
* add orientation marker initial work
* apply review comments
* fix: orientation markers (#23)
* finished the orientation markers
* fix various broken cypress tests
* apply review comments
* update yarn lock
* feat: re-working measurement tracking mode with cornerstone3d (#2805)
* feat: cs3d working stack viewport and tools (#19)
* Squashed everything
* fix weird react issue
* fix eslint / prettier stuff
* thumbnails work now with cpu rendering
* feat: use new loadImageToCanvas in cs3d
* make jump to measurement work
* fix active thumbnail
* fix measurement delete
* fix window level presets
* remove segmentation and sync groups for now
* fix the dicom pdf and dicom video
* fix cornerstone window assignment for cypress
* apply review comments
Co-authored-by: Erik <erik.sweed@gmail.com>
* feat: Add Measurement tracking mode with cs3D (#2789)
* feat: first render for cornerstone3d tracked viewport
* make tool active work
* wip for SR extension
* renamed dicom sr to cornerstone dicom sr
* remove cornerstone from dicom pdf and video
* move dicom sr logic to sr extension
* feat: Add hydration for the length tool
* fix SR display tool for length using cs3d
* fix default config
* fix: various bugs with sr viewport and tracking
* fix promptying to continue tracking for when SR is created
* feat: add keep trackign of unique identifiers
* fix hydration for same imageIds
* feat: Add SR toolGroup creation on modeEnter
* feat: remove the need for separate mapper for SR hydration
* add SR display for ellipse
* handle hydration of elliptical ROI tool
* remove cornerstone extension
* add arrow mapping
* feat: Add ArrowAnnotate SR display and hydration
* apply review comments
* apply review comments
* move viewport labels to the viewportData
* apply review comments
* fix: integration cypress tests with cornerstone3D and add CINE tool (#2795)
* fix: integration cypress tests with cornerstone3D
* revert to addOrUpdate as it makes more sense
* fix local drag and drop
* fix tests
* move dicomLoaderService to cornerstone extension
* fix various import bugs
* fix bug for local PT series
* fix various unit tests
* bump cs3d versions
* add angle and magnify tool
* bump dependencies to avoid broken peerDeps
* feat: add initial work for capture using cs3d
* feat: show annotations on the image capture
* feat: add svg layer export
* feat: Add CINE Tool
* feat: remove unnecessary viewport rendering for cine state changes
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
* docs: modify and improve documentation (#2800)
* cleanup docs versionings
* feat: Add all version explanations
* version docs for 3.0
* wip for changing docs
* wip for updated docs
* add utility module documentation
* fix demo with nohoisting of history
* add slides and video to resources
* apply review comments
* fix: drag and drop SR into SR viewport (#2803)
* update yarn lock
Co-authored-by: Erik <erik.sweed@gmail.com>
* update pathnames to match v3-stable
* update the e2e pathname
* fix: various bugs with regard to tracking workflow (#2811)
* fix: various issues with measurement panel
* fix: update default tool style for annotations
* fix: annotatoin label getting removed
* feat: Add backward compatibility for SR hydration with legacy cornerstone
* fix: cursors and ellipse ROI max style
* fix: ArrowAnnotate SRDisplay
* apply review comments
* bump package versions
* fix: bugin rehydration of SR
* fix: e2e tests
* fix active viewport thickness and arrowTool ui
* add readme for measurement tracking
* use uploaded image for readme
* add back images
* try to fix e2e test
* fix: window level presets hotkeys
* Update README.md
* update yarn lock
* feat: volume api and TMTV mode (#2817)
* feat: volumeAPI and TMTV mode
* feat: use cs3d cache service to obtain viewportData
* wip for volume api
* wip: fusion viewport
* feat: add blend mode option
* wip for image scrollbar
* fix drag and drop thumbnail
* wip for image scrollbar for voluems
* fix: element mismatch bug for scroll
* feat: Add image scrollbar to volumes
* feat: add syncGroups to volume api
* feat: add tmtv mode initial setup
* feat: add initial image options for the stack viewports
* feat: Add custom load strategy for volume viewports via HP
* apply review comments
fix: Jump presets cs3d (#2812)
* feat: Add JumpPreset to OHIF for Cornerstone3D
* fix: accessing viewport service from servicesManager
feat: volume API and TMTV mode (#2814)
* fix: do not display overlays on mip viewports
* feat: add optional disableCommands for toggle buttons
* fix: toggleCrossharis
* feat: config the crosshairs
* feat: add PetSUV Panel for changing metadata
* feat: initial work for the rectangleROIThreshold panel
* wip: measurement service
* roi threshold working
* feat: Add displayText to segmentations
* feat: add remove segmentation
* feat: add csv export
* feat: add RT export for annotations in tmtv mode
* fix: fusion to use pt in tmtv mode and measuremet mappings
* fix: various bugs
* apply review comments
* apply review comments
* feat: add fusion color maps
* add readme to tmtv mode
* Update README.md
* fix: try to fix build
* fix unit tests
* Update README.md
* feat: add about to the panel
* fix: changing strategy in roi panel
* apply review comments
* update package versions
* wip for stackPrefetch
* fix: cornerstone3d hydration and renaming (#2818)
* update readme
* renamed cornerstone extension
* wip for renaming cornerstone3D variables
* wip for renaming cornerstone3D variables
* wip for fixing bugs for SR viewport
* fix: jumpToMeasurement and initial label after hydration
* fix: fileName capitalization
* feat: use the new prefetch stack in the cs3d (#2820)
* feat: use the new prefetch stack in the cs3d
* use viewport scroll api for stack viewport
* fix cine stop when scrollbar changes
* feat: use new prefetch events
* fix loading state to not show repeatedly
* fix: various bugs for tmtv mode thresholding and new icons (#2823)
* feat: make tmtv mode available in worklist
* feat: add new icons for tmtv mode
* feat: add fusion color icon
* fix: parallel scale calculation
* fix: bump Cornerstone to get large image support working
* fix: Fix issues with CPU viewport flipping, including config files
* fix: bump cornerstone to fix magnify tool
* fix: Bump Cornerstone version to fix resetCamera issue in StackViewport
* ci: Add _headers file to enable CORS headers for Netlify Drag/Drop deploys
* fix: WADO-URI was not working. PET Metadata was coming from the wrong place. Fixed some minor React errors
* feat(OHIF):Allow modes and extensions to be added after commpile time. (#2838)
Also works with the compile time add that the existing cli uses, so that both build types work.
Eric and I agreed this doesn't change existing functionality, but is almost entirely build issues/fixes.
* bump: dependency versions to fix hydration bugs (#2848)
* bump: dcmjs version to fix hydration bugs
* try to fix tests
* bump dependency versions
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
* feat: Add initial cli tool structure
* feat: add copying template files
* feat: Add mode template and command
* feat: Add readme template generation
* feat: Add documentation to extension template
* feat: Enhance documentation of the template mode
* fix: cli module type
* feat: Add config-based mode and extension registration (#2660)
* feat: Add ohif cli add/remove extension/mode (#2661)
* Basic working CLI for add-extension and remove-extension
* Basic cli for add/remove extension/mode, lots more to do.
* Cleanup and harden]
* feat: Add list of tasks to add-mode
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* feat: Add git initialization for the mode or extension template (#2662)
* fix: package json file to include templates
* feat: Add git initialization for the mode or extension template
* feat: Add more checks of git and target dir
* feat: refactore library utilities
* feat: Add the list command to print extensions and modes (#2664)
* feat: Add the list command to print extensions and modes
* Add todo
* Feat/ohif cli validation + auto install (#2671)
* WIP
* Working mode keyword verification
* Validation
* auto install extensions based on modes
* WIP remove unused extensions on removeMove
* Working add-mode, remove-mode automatic extension management.
* If extension is in used by a mode, don't allow the CLI to uninstall it
* Cleanup addExtension
* cleanup removeExtension and addMode
* Cleanup removeMode
* Update existing extensions with the needed keywords/peer deps
* Fix broken config
* Feat/cli search (#2677)
* feat: refactor pretty print for console
* feat: add search for modes and extensions
* fix: ugly colors
* Feat/ohif cli error handling publishing (#2679)
* WIP
* fix: webpack imports
* wip
* fix: react router dom private routes
* from last commit
* wip
* fix: webpack prod builds
* WIP
* Working regsitration with new IDs
* Stable
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* verify extensions when constructing modes. (#2681)
* verify extensions when constructing modes.
* Add version to unit tests so it conforms to schema
* Update ohif utils exposed via @ohif/core
* Fix import
* fix tests
* feat: ohif-cli link local modes/extensions for development (#2682)
* feat: enable cli to work with project root
* feat: add initial link package
* feat: add link and unlink extension
* feat: add link and unlink mode
* erro handling for link-package
* feat: add comment on ohif-cli linking for development (#2686)
* Docs/ohif cli (#2687)
* feat: Add documentation for templates
* feat: Add more documentation
* Fix/core publish (#2685)
* versions
* wip
* remove webpack clean output
* fix publish
* use next as dist tag for v3 for now
* fix webpack pro recipe for output
* fix: lerna publish next
* fix(cli): fix issues when trying to link an extension or a mode (#2725)
The generated package.json doesn't contain keywords property which is
required by the linkPackage function. The module apth wasn't correclty
handled too, and when there is no pluginOptions, it fails while reading
the file or while generating a default configuration.
* make dicom pdf and video work after cli merge
* add axios dependency
* comment out the chdir for now
* create id and version based on user inputs
* customizable path for extension and modes
* fix template to make the template mode load
* fix the questions to loop if path is not desirable
* fix templates
* correct package json order
* unify the package creation for extension and mode
* bump versions for each package
* bump extension versions to 3.0
* add gitignore to templates
* fix version requirements when ^
* update docs
* update docs and fix tests
* try to fix the tests
* bump node version
* remove the version from extensions
* remove the version from modes
* remove version from extensionManager
* fix eslint
* revert husky version
* fix eslint
* fix node version for new eslint
* fix documentatoin removing version
* fix cicle ci image version
* fix circle ci node image
* fix circle ci node image
* add back the video and pdf
Co-authored-by: Matthis Duclos <matthis.duclos@gmail.com>
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
* feat(OHIFv3):Add a video viewport
* Fixed a couple of viewing issues
* fix(OHIF):If not all instances are used by a given provider, then continue to add items
* Added video data
* Add a basic e2e test for video display
* Adding a screen shot as requested
This is the initial addition of the config point settings to allow run time loading of GUI settings via "theme" files/parameters.
The intent is to add an example PR that shows when to use config point, how to configure it, write documentation for it etc.
* fix(OHIFv3):Overlays were broken.
Adds a retrieveBulkData to elements containing BulkDataURI so that
anyone display the data can retrieve the required information.
* fix(OHIFv3):Added a call in the wrong spot, removed it.
* docs(OHIFv3):Added some documentation as requested
* Rebased to have just the static view changes
* Changes based on the PR
* Couple more changes for the PR
* Removed an extraneous log
* Fix the study worklist display when returning to the page
* Added some documentation on the static wado data source setup, and a
bounds check change on the Queue test which was failing
* PR updates - change the undefined study description to '' and remove the aws deploy
* Fixed the e2e tests to actually pass/fail correctly on actual results
* feat: Add OpenID Connect support, speed up docker rebuilds
* fix: Switch Google Cloud API URL to v1
* chore: Remove redux-oidc and use our own components instead
* Added translation for various react components in OHIF-v3
* Added a test language for debugging- test-LNG
* Added copy for test language to not get overwritten
* Update all the icons
* Turn off global tool sync; watch as the world burns
* Shift a bunch of things around so we can start tracking/setting per element
* ToolBarService to initiate one of three different calls; callback passed to all button types
* SplitButton and Toolbar Button to use new `onInteraction` prop and new toolbar state
* Changes to toolbar button interface and config
* Fix broken layout selector
* Update SR viewport to activate tools in viewport component
* Duplicate activation logic in measurement tracking extension
* Add alternative/dashed variants for SR Viewport
* pass through "setToolActive" commands for other viewport types
* fix small overlay bugs (no wwwc or scale info)
* Show SpacingBetweenSlices instead of PixelSpacing in patient information dialog
* Fix prop-types
* Update tracked viewport to have alternative tracked styling
* alt styling for SR viewports
* Update to support isLocked + isRehydratable
* fix broken logic
* fix broken logic
* switch icon style
* fix icon styles
* hover and click to start flow
* expedited workflow when data is not dirty (just after SR hydration)
* fix: setting elliptical roi tool
* fix arrow annotate dialog
* fix: do not show learn more button for now
* remove dead code
* simpler cache invalidation
* simpler cache invalidation part 2
* Fix for unable to spand study cards on separate pages
* Remove trailing zeroes from patient age
* WIP reject + remove displaySet.
* ohif-316: Update DICOM SR thumbnail design to include a delete action (#1948)
* add "supportsReject" to netlify config
Co-authored-by: Igor Octaviano <igoroctaviano@gmail.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* ohif-323: add cineplayer flow
* ohif-323: improve toolbar flow of cine
* ohif-323: improve cine styles
* ohif-323: use toggle instead of set
* ohif-323: add compatibility comment
* ohif-323: move cine logic to command
* ohif-323: cr update
* ohif-323: remove typo and update svg title
* ohif-323: remove log
* ohif-323: update props and remove dead code
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* ohif-301: add sorting to work list series
* ohif-301: clearadd series date to qido
* ohif-301: add series date to qido
* Update qido.js
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
* workflow changes
* Cherry pick OHIF-310 into this PR.
* fix label bug and dead code
* remove comment
* Wire up CreateReportButton
* fix additionalFindingTypes + save interaction
* Remove unused createReportAsync call
* stub for report hydration prompt
* Update PR
* Remove debuggers
* push updated code
* Push updates
* push
* fix sidebar save
* enable tracking of new study or series
* fix for duplicate created report series in sidebard
* fix for unexpected viewport dialog after visiting study list then a new study
* Fix for hydration not marking multiple series as active
* Reviewer changes.
* Respond to final review comment, add series description setting for export.
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
* No more setting on debounce, jumpToMeasurement service set up.
* Fix bug causing a race condition sometimes if you click super fast.
* Optimise rendering of Tracking viewport slightly.
* element => targetElement
* Remove complete TODO
* Respond to reviewer comments.
* Fix e2e workflow.
* Fix regression that removed highlighting on jump to.
* Make sure jump to works from panel as well as viewport.
* Fix typo and remove debugger.
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* WIP
* Reset viewport grid on mode switch.
* Make lifecyclehooks distinct from modules. Add needed SR hydration state on creation.
* Update extensions/cornerstone/src/init.js
* Remove unused REMOVE_MEASUREMENT listener.
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* WIP
* double click to maximise implemented at the viewport grid layer.
* Remove memory of cached layout when the layout is changed, or a different displaySet is set.
* WIP fix double click for cornerstone.
* Update CST
* Prevent maximising when double clicking the action bar
* Update extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js
* Apply suggestions from code review
* Fix conflicts.
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Set measurement as active
* Add basic dialog component
* Update styles and prop types
* Jump to image
* Update dialog
* Format date
* Update summary to use primary modalities
* delete empty studySummary page
* add missing PropTypes import
* fix for accidental sync'd viewports
* CR Updates
* CR Update avoid cache of measurements
* Use get measurement
* Add comment to edit function
* Remove request and merge modalities from series
* Update dependency: react-cornerstone-viewport@2.3.9
react-cornerstone-viewport
* @ohif/extension-cornerstone: 2.3.8 → 2.3.9
* @ohif/extension-dicom-sr: 2.3.8 → 2.3.9
* Update extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Add debugs
* remove console.debug
* Update frameindex to imageindex
* Use new rcv debounced function
* Fix hovering
* Update dialog text
* Dismiss dialogs on esc
* Update dependency: react-cornerstone-viewport@3.0.0
react-cornerstone-viewport
* @ohif/extension-cornerstone: 2.3.9 → 3.0.0
* @ohif/extension-dicom-sr: 2.3.9 → 3.0.0
* OHIF-237
* remove console.debug
* Remove dead code brought in from rebase
* EmptyViewport should not display a message
* Remove more dead code from rebase
* fix variable naming
* remove unused hook
* bump yarn lock
* formatting
* Add arrow dialog
* Filter based on trackedSeries
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Viewport letter only in multi-viewport layout.
* If SliceThickness not available print N/A
* Create displaySet in local session on SR generation.
* Jump to thumbnail when a new displaySet is added with the madeInClient property.
* Check if scrollIntoView exists.
* Viewport letter only in multi-viewport layout.
* If SliceThickness not available print N/A
* Create displaySet in local session on SR generation.
* remove empty line
* remove console log
* Give storeMeasurements an onSuccess handler instead of always creating dataSets.
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Create basic structure for Viewport dialog provier and Dialog component
* Implementation of a UIViewportDialogService
* Update viewportDialogProvider docz
* Create example of use of UIViewportDialogService
* fix: 🐛 Load default display set when no time metadata
Load default displayset (first item in the array) when no series date or
series time availalbe
✅Closes: #1683
* Add batch update
* Fix tests.
Co-authored-by: James Petts <jamesapetts@gmail.com>
* Add segment part 2 (jump to frame and visibility toggle)
* Cr updates
* Filter displaysets with images
* feat: 🎸 Seg jump to slice + show/hide
Co-authored-by: James Petts <jamesapetts@gmail.com>
* Feat #1130 Adding support for downloading and zipping files
@ This is a combination of 12 commits.
- Feat #1130 Initial Commit
- Feat #1130 Adding support for hierachical lists
- Feat #1130 [WIP] Adding support for downloading and zipping files
- Feat #1130 Adding support for hierarchical folder structure study, series, instances on generated zip file
- Feat #1130 Adding unit tests and addressing code review feedbacks
- Feat #1130 POC (adding module to support on progress handling)
- Feat #1130 Improving logic from progress tracking utils
- Feat #1130 Renaming module with progress tracking utils
- Feat #1130 Beta version of Progress Tracking utils
- Feat #1130 Adding unit tests for Progress Tracking Utils
- Feat #1130 Documenting public methods from progress tracking utils module
- Feat #1130 Adding support for download and zip progress reporting
* Feat #1130 Addressing code review feedback
* Feat #1130 Preventing multiple downloads from executing at once
* Feat #1130 Improving error message for concurrent downloads
* Remove downloadAndZipSeriesOnViewports
Co-authored-by: James Petts <jamesapetts@gmail.com>
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Rebase on master.
* format format format
* add basic extension parts
* Updated yarn lock
* Fetch derived/referenced displaysets in sidepanel
* Add buttons, expose seriesDescription, write notes for Danny.
* Add growcut tool extention. -> Move to a seperate repo.
* Change some text fields.
* expose dialog provider
* hide draggable area
* No pointer events for now; need to revisit
* Don't filter seg from the outset for now
* fiddling about
* fix path to series data
* fix logic to determine next available labelmapindex
* Ability to swtich between labelmaps
* Return a promise so we can make sure our labelmap is loaded before pulling metadata
* Better UI to toggle labelmaps
* Fix accidental untoggle of active labelmap for ui
* Remove brush tool from cornerstone extension
* Add cstools in preInit for seg extension
* Add buttons for seg magic
* Hide the measurements panel for now
* Slightly better seg/scissor icons
* Add eraser
* ability to switch segments
* seg color / switcher
* Fix vtk labelmap cache.
* sidepanel should scroll if there's overflow
* Use a fancier range slider
* Slightly prettier buttons
* Push in progress
* A bit more reactive; handle no-meta
* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0
* chore: kickstart preview
* Fix conflict issues
* Refactor panel
* Isolate increment functions
* Wip segment table
* Hide selector and add scroll to segmentation
* Increase width of segment description
* Hide not used items
* Add new select for segmentations
* Align ui
* Fix default segmentation
* Fix broken import test
* Get measurements panel back and add spacing to grouped buttons
* Hide brush and selector and refresh when switching segmentations
* Add pointer events back and fix broken tests for measurement table
* Update segment list when switching humbnails
* CR Update: Minor UI adjustments
* CR Update: Set active segment
* Move components to components folder
* Add new settings ui
* Integrate configuration
* Improve styles
* Float numbers
* Improve css
* Refresh settings menu if side panel changed
* Fix settings rendering logic and remove comments
* Extract components
* Remove not used tools
* Remove non used extension
* Use style variables and remove comments
* Remove non used dep from lock
* Remove tools
* Remove segmentation from toolbar
* Add todo and brushradius from config
* Fix packagejson growcut import
* Remove webpack config already defined in parent
* Update package json description
* Change component name to british english to us
* Improve prop types
* Rename cornerstone label map event
* Scope css
* Extract and add doc to helper
* Update jsdocs for getDerivedDatasets
* Add proptypes and cr updates
* Update tablistitem proptypes
* config is readonly, rollback destructuring
* Remove event for side panel
* Add jsdocs for util
* Extract getimageid to studymetada
* Use ohif log instead of console
* Remove specific style from side panel
* Fix default props for brush radius
* Descructure configuration props from settings component to avoid invalid props
* Update proptypes to be required (settings)
* Update readme
* Remove commandsmodule
* Get configuration module inside the component
* Set selected segment
* Rename extension and use modality to filter
* Fix for failing tests (#1423)
* hello world
* Finish rebase for Igor.
* Re-fix cornerstoneTools version that got messed up in merge.
* Fix reactivity of isDisabled, write implementation for the SEG panel.
* Nuke yarn.lock to stack CST to 4.12.0
* Remove debugger statements.
* WIP consume RTSTRUCT
* Doc API and add endpoints.
* Rebase on SEG PR.
* Update DICOM Keyword variables.
* Fix metadata vars format
* Add basic RT panel along with configuration
* Wire up configuration with settings component
* Mock structure set tables
* Improve design of settings
* Integrate list of contours
* Extract panel section
* Filter by seriesuid
* Fix slow settings
* Add jump to image
* Fix expandable items
* Improvements and CR update
* CR Update: Remove google config
* CR Update: Remove erase tool test
* CR Update: Remove instance
* CR Update: Fix issue with undefined prop
* CR Update: Update yarn lock
* Hide actions of structure item
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
* Show series in Study Browser before their metadata is retrieved
* Switch to decreasing for loop after code review (thanks @ckedar!)
* feat: Limit concurrent series metadata requests (#1581)
* Limit concurrent series metadata requests
* Switch to decreasing for loop after code review (thanks @ckedar!)
* Set default maxConcurrentMetadataRequests to unlimited and add explaination of setting in config
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
* Address comments from code review
* Comment out misbehaving test
Co-authored-by: Kedar <ckedar@gmail.com>
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
* async load cornerstoneWADOImageLoader chunk
* Lazy initializing of CornerstoneWADIImageLoader - delayed till Viewer creation
* Async loading of react-vtkjs-viewport
* withCornerstone HOC to wrap routes requiring CornerstoneWADOImageLoader initiazation
* removed dead code in comments
* initWeWorkers is no more. Remove al its references.
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* fix: Add support for single entries in SequenceOfUltrasoundRegions. More than one region will need lower-level changes
* Update platform/core/src/utils/metadataProvider/getPixelSpacingInformation.js
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Avoid un-necessary redux state update for frequent actions
* Avoid un-necessary re-render when no change in props
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Rebase on master.
* format format format
* add basic extension parts
* Updated yarn lock
* Fetch derived/referenced displaysets in sidepanel
* Add buttons, expose seriesDescription, write notes for Danny.
* Add growcut tool extention. -> Move to a seperate repo.
* Change some text fields.
* expose dialog provider
* hide draggable area
* No pointer events for now; need to revisit
* Don't filter seg from the outset for now
* fiddling about
* fix path to series data
* fix logic to determine next available labelmapindex
* Ability to swtich between labelmaps
* Return a promise so we can make sure our labelmap is loaded before pulling metadata
* Better UI to toggle labelmaps
* Fix accidental untoggle of active labelmap for ui
* Remove brush tool from cornerstone extension
* Add cstools in preInit for seg extension
* Add buttons for seg magic
* Hide the measurements panel for now
* Slightly better seg/scissor icons
* Add eraser
* ability to switch segments
* seg color / switcher
* Fix vtk labelmap cache.
* sidepanel should scroll if there's overflow
* Use a fancier range slider
* Slightly prettier buttons
* Push in progress
* A bit more reactive; handle no-meta
* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0
* chore: kickstart preview
* Fix conflict issues
* Refactor panel
* Isolate increment functions
* Wip segment table
* Hide selector and add scroll to segmentation
* Increase width of segment description
* Hide not used items
* Add new select for segmentations
* Align ui
* Fix default segmentation
* Fix broken import test
* Get measurements panel back and add spacing to grouped buttons
* Hide brush and selector and refresh when switching segmentations
* Add pointer events back and fix broken tests for measurement table
* Update segment list when switching humbnails
* CR Update: Minor UI adjustments
* CR Update: Set active segment
* Move components to components folder
* Add new settings ui
* Integrate configuration
* Improve styles
* Float numbers
* Improve css
* Refresh settings menu if side panel changed
* Fix settings rendering logic and remove comments
* Extract components
* Remove not used tools
* Remove non used extension
* Use style variables and remove comments
* Remove non used dep from lock
* Remove tools
* Remove segmentation from toolbar
* Add todo and brushradius from config
* Fix packagejson growcut import
* Remove webpack config already defined in parent
* Update package json description
* Change component name to british english to us
* Improve prop types
* Rename cornerstone label map event
* Scope css
* Extract and add doc to helper
* Update jsdocs for getDerivedDatasets
* Add proptypes and cr updates
* Update tablistitem proptypes
* config is readonly, rollback destructuring
* Remove event for side panel
* Add jsdocs for util
* Extract getimageid to studymetada
* Use ohif log instead of console
* Remove specific style from side panel
* Fix default props for brush radius
* Descructure configuration props from settings component to avoid invalid props
* Update proptypes to be required (settings)
* Update readme
* Remove commandsmodule
* Get configuration module inside the component
* Set selected segment
* Rename extension and use modality to filter
* Fix for failing tests (#1423)
* hello world
* Finish rebase for Igor.
* Re-fix cornerstoneTools version that got messed up in merge.
* Fix reactivity of isDisabled, write implementation for the SEG panel.
* Nuke yarn.lock to stack CST to 4.12.0
* Remove debugger statements.
* fix: bump cornerstone-tools version to address toFixed issue
* test: force tests for MISTER^MR to navigate to study directly
* test: remove eraser tool test
* test: count is off by one
* test: don't save SR state for the time being
* test: disable more tests
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
* Instance metadata plus metadata provider overhaul.
Fix consumption of wado-uri urls
fallbacks + datatype agnosticism.
WIP DICOMify things.
fix various issues with naturalized variable naming migration.
Remove metadata provider.
Fix consumption of multiframe images and addition of CWIL metadata.
Fix strange build issues.
Fix CWIL style windowWidth to array from naturalized DICOM.
Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.
Move color palette fetching down to the natuaralized JSON level.
Remove unused StudyMetadataSummary
Remove redundant dicom metadata dictionary.
Working local + json routes.
Fix SR read.
Finished first round of testing + cleaned up debugging etc.
* data => metadata for instance naturalizedJSON
* Update dcmjs version
* Correct github isssues.
* Fix erroneously replaced files.
* Danny's recommended changes.
* Instance metadata plus metadata provider overhaul.
Fix consumption of wado-uri urls
fallbacks + datatype agnosticism.
WIP DICOMify things.
fix various issues with naturalized variable naming migration.
Remove metadata provider.
Fix consumption of multiframe images and addition of CWIL metadata.
Fix strange build issues.
Fix CWIL style windowWidth to array from naturalized DICOM.
Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.
Move color palette fetching down to the natuaralized JSON level.
Remove unused StudyMetadataSummary
Remove redundant dicom metadata dictionary.
Working local + json routes.
Fix SR read.
Finished first round of testing + cleaned up debugging etc.
* data => metadata for instance naturalizedJSON
* Update dcmjs version
* Correct github isssues.
* Fix erroneously replaced files.
* Danny's recommended changes.
* Update JSON CI
* Update casing of import.
* Fix jump for SR.
* Fix unit tests for measurements service
* Fix json CI test.
* fix: update yarn lock
* Fix local non-encapsulated pdf view
* CI updated to new sucess message.
Co-authored-by: Danny <danny.ri.brown@gmail.com>
* WindowLevel preset code changes
* Remove localStorage code as its already being saved and some small refactor on reducer/action
* Creating unit tests for preferences reducer
* Fix cypress after class naming change
* Make hidden false as default for tab components
* Remove addUserPreferences
* Small refactor to use commandsManager from getCommandsModule instead of getting it from App.js
* fix: Combined Hotkeys for special characters
* add record method to hotkey manager
* fix record plugin
* remove unused component
* add record to modal props
* rename record method
* replace handlers to use hotkeyRecord
* fix combined keys
* change expected result count from 18 to 17
* autoformat
* Remove duplicate test, that was testing the wrong things; fix label; update configs
* Revert "Remove duplicate test, that was testing the wrong things; fix label; update configs"
This reverts commit 4292f4fe67351962d61cae623b920dcbd87dd71d.
* Fix the record plugin's registration
* fix exposed record method usage
* adding logging for info level items
* Hotkey definitions don't need to be globally reactive; use localstorage/appconfig as sources of truth; not redux
* Tidy up test
* Remove unused code from UserPreferencesForm
* Log info when we run a command
* fix hotkey preference restore
* use application configured hotkeys if there are no user preferred
* Avoid logging circular ref
* Fix callouts
* Fix small issue with array
* Fix langua issue after refactor and merge
* Refactor on recordCurrentCombo as Rodrigo did before
* Separating components in 2 files
* WIP Refactor to simplify the user preferences and move into each form the save and controll functionalities
* Remove context
* Remove unused import
* Initial work on Field treatment
* Refactor General preferences
* Small refactor removing type from HotkeyField
* small update on style
* Refactor and layout fixed
* Make hotkeys preferences working with old hotkeys row
* Move error handling out of hotkey row/input component
* WIP custom form
* Moving validation function to component
* Exposing hotkeyRecord as it does not depend on HotkeyManager Class
* Making hotkeyField as much detached possible from parent component
* Small refactors
* Refactor on user preferences
* Clean up into the changes
* Small fix to let save working
* Style finish
* move about docs into about folder
* Fix double tap on single keys
* Style refactor
* Remove log
* Fix log issues on unit tests
* Fix unit test breaking on ohif/core index
* Fixing hotkeys unpause unit test issue
* Rename file to adopt lowercase
* Rename file to adopt lowercase
* Fixing callouts
* Big refactor miving some of the components into viewer and creating small components into ohif/ui
* Typo on folder name
* Updating ohif ui docs
* Remove comments
* Fix binding of combo keys
* Fix some cypress tests failures
* Fixing onCancel button
* Fixing e2e tests
* Small style update
* Fixing unit tests failing after fix issue
* Remove some not used code
* Remove left over after debug
* Adding prevent default on hotkeys events
* Fixinf existing hotkeys validator with 3 keys pressed
* Exposing hotkeys as root level on ohif-core
* Clean up
* Exposing all availableLanguages with labels and fixing an issue on language switcher
* Fixing e2e cypress tests
* Preveinting some simple errors
* Treating error once we try to set hotkey definitions
* Adding ui notification on setHotkeys errors
* Implementing a service queue request to hold until functions are implemented
* Making sure toFixed is only called on Numbers
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: Gustavo André Lelis <galelis@gmail.com>
* feat: 🎸 MeasurementService
Work in progress...
* Remove cornerstone tools import
* Second iteration
* CR Update: Add update / added events example
* Add new props to measurements
* Update event log
* Add new measurementid to annotation
* Add context support
* Add value types
* Add area
* Add todo
* Wip measurement to annotation map
* Change points representation
* Add props to annotation mapping
* Add tests
* Extract formatter from init and add tests
* Sketch matchers
* Fix events and valuetypes imports
* Remove context support
* Rename formatter to mappings
* Sketching source and source definitions
* Adjust matching criteria in addOrUpdate
* CR Updates: Extract private functions and rename variables
* Fix broken tests
* Add more measurement service tests
* Update broken mapping tests
* Update test description
* Update getAnnotation to get mapping based on def and source
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Remove tash data from redux storage after updates
* Imprelemnted more unit tests
* Remove missing comment
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* fix: Set VTK viewport as active by interaction
* feat: listen for vtkscrollevent in wrapper component
* fix: definitions can skip empty storeContexts key
* hoc to set/pass in commandsManager
* Bump minimum react-vtkjs-viewport version to leverage new event
* Simplify to use onScroll event instead of passing down commandsManager to base component
* fix: make sure we include @JamesAPetts bug fix
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* refactor: 💡 Clean up JSON launch with DICOMWeb server
Clean up JSON launch with DICOMWeb server
✅Closes: #1387
* Remove test file
* parse seriesinstanceuids in query
* Add default studies
* Remove test file
* Cleanup retrievedata changes
* Set active server
* fix: 🐛 Make Plugin switch part of ToolbarModule
Closes: #1241
* Move setCornerstoneViewport command into cornerstone extension
* Exposing extensionManager into extension's get modules functions
* Remove Plugin switch
* Updating set cornerstonelayout to work on VIEWER context
* Creating a customComponent for 2D MPR button
* Use extensionManager to show or not buttons
Adding isHidden option into toolbarModules
* Make buttons hidden depending on extension registration
* Fix unit test after changes on extensionManager
* Remove workaround for extensionManager
* Use studyMeatadataManager and remove TODO's
* Remove storeContext not needed
* Moving Exit 2D MPR into cornerstone extension with VTK context
* Remove PluginSwitch files
* Fix E2E tests
* Adding cypress screenshots into gitignore
* Remove extensionManager from getModuleFn functions and moving CustomComponent for VTK button to VTK extension
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Move DICOMSR to @ohif/core
* refactor: 💡 Move DICOMSR code to @ohif/core project
We've just merged support for DICOM Structured Reports. Today, support
for this feature lives in the @ohif/viewer project in it's lib folder.
Ideally, it should be moved to @ohif/core and given a clear public API
and unit tests.
Closes: #1282
* Update imports
* CR Update: Update imports
* feat: 🎸 Expose extension config to modules
Currently, only the preRegistration hook receives the extension's
configuration as a parameter. Providing getModuleFn's with the
extension's configuration, and all lifecycle/modules with the
application's configuration as rootConfig should open the doors to more
configurable extensions.
Closes: #1268
* CR Update: Pass extension and service config through extension manager preinit/getmodule
* CR Update: Remove appConfig from servicesManager
* CR Update: Remove appconfig variable
* feat: 🎸 DICOM SR STOW on MeasurementAPI
Closes: #758
* feat: 🎸 Adding the dataExchance from DICOM SR
* feat: 🎸 Fix some issues and get the retrieve measurements working
* feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)
* feat: 🎸 Adding a button to start testing SATE functionality
* feat: 🎸Small fixes into the code
* feat: 🎸 MAke sure we get latest SR in the study, even on lazyLoad mode
* Revert "feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)"
This reverts commit 4b3a1efb5810487d2319826fd59c03d779882b5e.
* feat: 🎸 Make sure after sync we update the viewports and also that annotation tools are set to passive, so it can be drawn in the viewports
* feat: 🎸 Remove console logs and start using OHIF.log
* feat: 🎸 Refactor measurement table to use Snackbar service of messages and make sure we only show save button if server type is dicomWeb
* feat: 🎸 Refactor to remove mocked wadoRoot and use server
* Fix to expose error once we can't save the SR
* Update DCMJS into latest dev version
* Update dcmjs with latest fixes
* Fix PR callouts
* Logging error on MeasurementReport creation
* Preventing from breaking on non supported tools and also warning that some toolType is not sopported
* Small error message update
* Expose better the errors and when we have unsopported tools into the measurements
* Renaming variable
* Expose dcmjs tool support check
* Change the way we warn the unsupportedTools
* Adding style to the button
* Small change on button style
* Fix git conflicts
* Fix after merge with latest master
* Fix after merge with master, btn was not clickable
* Fixing callouts
* Adding util functions into files and refactor with JSDocs
* Refactoring code, adding some basic JSDocs
* Bump dcmjs with latest version and fixes
* JSDocs and small refactors
* yarn lock file after dcmjs update
* Remove unused parameters
* Registering a plain copy of server into measurementAPI
* Small refactor
* Start changing from toolType to toolName
* Rename a function to get instanceMetadata
* Adding error if server is not DICOMWeb on retrieve
* Move snackbar outside of UI component and use UINotificationService
* Refactor and JSDocs
* Small fixes on JSDocs (style)
* Remove unused import
* Improve JSDocs on MeasurementApi
* Remove refactor leftover
* Improve JSDocs and propTypes
* JSDocs and small refactors
* Fix ExtensionManager bug and add test to bandaid
* Add tools configuration to extension manager preinit
* Fix reducing of configs
* Merge internal with external configs
* Merge internal with external configs
* Remove dialog from init in measurementstable
* Testing injected configuration
* New way to set config
* Add new prop to dialog provider to allow disabling last position
* Remove code from preinit in cornerstone
* Add new prop to dialog provider to allow disabling last position
* Add centralize to dialogs
* Reorder dialogs when adding them
* Fix draggable styles (cursor)
* Remove repositioning methods from labelling flow and remove overlay from labelling manager
* Fix empty array being set in bringToFront
* Add new command to update table and pass commands manager to modules/preinit hook
* Ad UIContextMenu service / factory
* Use new contextmenu service in measurementspanel extension
* Use dialogs for arrow annotate in default
* Remove positioning funcionality from tool context menu
* Add context menu service
* Pass commandsModule to extension
* Update edit description dialog and simple dialog to position relative
* Remove style code from labelling flow and manager
* Remove eventdata from labelling
* Remove labelling code from measurement init
* Add commandsmanager to provider
* Update contextmenu provider and service
* Add touchstart and mouseclick to hide contextmenu
* Hide labelling if click/touch
* Remove labelling and context menu dead code
* Fix undefined bug if ViewerMain grid has no children
* Fix broken prop on context menu
* Update commandsmodule based on master
* Fix broken configuration
* Update script tag config
* Remove cornerstone from toolcontextmenu
* Remove cornerstone from toolcontextmenu
* Split labelling and context menu providers
* Split labelling and context menu providers
* Update test
* Destructure extensions into new array
* CR Update: Move default arrow config to cornerstone instead of default
* CR Update: Fix app configuration props structure
* CR Update: Fix app configuration prop in script tag and extract commands manager from providers
* CR Update: Create custom providers to use commandsManager
* CR Update: Use services directly in measurementspanel
* CR Update: Pass components to providers
* CR Update: Remove position from dialog
* CR Update: fix dialog prop check
* CR Update: Fix comments
* CR Update: Update documentation
* CR Update: Add test default configuration
* CR Update: Add default empy array to extensions
* CR Update: Update i18n configuration all ot match current function configuration
* CR Update: Add defaults to injected dependencies in configuration and extension configuration
* CR Update: Add defaults to configuration with no args
* Update documentation
* CR Update: Add default for tools
* CR Update: Update config object to i18n
* CR Update: spread defaults
* CR Update: Add tool configuration example to cornerstone extension
* CR Update: Add tool configuration to netlify (testing)
* CR Update: Remove netlify config for tools
* CR Update: Rollback changes to i18n to be fixed later
* CR Update: Update documentation and pass whole cornerstone config object instead of tools key
SEE: https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-both-and-breaking-change-footer
BREAKING CHANGE: modifies the exposed react <App /> components props. The contract for providing configuration for the app has changed. Please reference updated documentation for guidance.
* docs: process docs to include UX Stories requirement
* docs: include note regarding different environments
* Services init
* Remove unused canny logos
* docs: add ModalService diagram
* docs: GIF of notification
* docs: add ui-services page
* docs: simplify ui services call out in the general services docs
* docs: tips and tricks for UI services
* docs: moar pages
* docs: dialog gif
* docs: services in summary/sidebar
* docs: gif examples at top of dialog and notification pages
* docs: add UIModal gif
* docs: details for Dialog Service
* docs: include usage information for ui modal service
* docs: detailed information about our UI Notification Service
* docs: services diagram
* docs: remove unused links
* docs: services example and image
* docs: stubbing extension pages
* docs: UX Stories --> User Cases
* chore: eslint fix
* docs: extensions overview + diagram
* docs: update extensions in sidebar
* docs: extension skeleton and registration info
* docs: copy of maintained extensions table partial in the extensions folder
* docs: swap out old extensions structure for new
* Organize viewports reducers
* Organize viewports actions
* Add local state to store dom node and remove hack
* Comment usage of dom in vtk
* Fix set of enabledElements
* Fix warning in html viewport
* Update docs for state
* Add commandsmanager to commandsmodule