From 2a66e175dfc0107c08ed7c312d34744618cdc979 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Mon, 4 May 2020 09:30:51 -0300 Subject: [PATCH] Update viewport state after moving the stack (#1645) * Update viewport state after moving the stack * Only trigger new imagecallback if index bigger than 0 * Fix cornerstone viewport version Co-authored-by: James Petts --- extensions/cornerstone/package.json | 2 +- .../cornerstone/src/OHIFCornerstoneViewport.js | 17 ++++++++++++++++- extensions/cornerstone/src/index.js | 11 +++++++++-- yarn.lock | 8 ++++---- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 0c9a95c82..a9812840a 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -51,6 +51,6 @@ "classnames": "^2.2.6", "lodash.merge": "^4.6.2", "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "^2.3.6" + "react-cornerstone-viewport": "2.3.8" } } diff --git a/extensions/cornerstone/src/OHIFCornerstoneViewport.js b/extensions/cornerstone/src/OHIFCornerstoneViewport.js index fbed63b14..1a8e4a3bc 100644 --- a/extensions/cornerstone/src/OHIFCornerstoneViewport.js +++ b/extensions/cornerstone/src/OHIFCornerstoneViewport.js @@ -4,6 +4,7 @@ import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport'; import OHIF from '@ohif/core'; import PropTypes from 'prop-types'; import cornerstone from 'cornerstone-core'; +import debounce from 'lodash.debounce'; const { StackManager } = OHIF.utils; @@ -179,7 +180,7 @@ class OHIFCornerstoneViewport extends Component { if ( displaySet.displaySetInstanceUID !== - prevDisplaySet.displaySetInstanceUID || + prevDisplaySet.displaySetInstanceUID || displaySet.SOPInstanceUID !== prevDisplaySet.SOPInstanceUID || displaySet.frameIndex !== prevDisplaySet.frameIndex ) { @@ -215,12 +216,26 @@ class OHIFCornerstoneViewport extends Component { }); } + const debouncedNewImageHandler = debounce(({ currentImageIdIndex, sopInstanceUid }) => { + const { displaySet } = this.props.viewportData; + const { StudyInstanceUID } = displaySet; + if (currentImageIdIndex > 0) { + this.props.onNewImage({ + StudyInstanceUID, + SOPInstanceUID: sopInstanceUid, + frameIndex: currentImageIdIndex, + activeViewportIndex: viewportIndex, + }); + } + }, 700); + return ( <> { + const onNewImageHandler = jumpData => { + commandsManager.runCommand('jumpToImage', jumpData); + }; + return ; + }; + + return ExtendedOHIFCornerstoneViewport; }, getToolbarModule() { return toolbarModule; diff --git a/yarn.lock b/yarn.lock index dd5509132..4a06d84e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15598,10 +15598,10 @@ react-codemirror2@^6.0.0: resolved "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-6.0.0.tgz#180065df57a64026026cde569a9708fdf7656525" integrity sha512-D7y9qZ05FbUh9blqECaJMdDwKluQiO3A9xB+fssd5jKM7YAXucRuEOlX32mJQumUvHUkHRHqXIPBjm6g0FW0Ag== -react-cornerstone-viewport@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-2.3.6.tgz#1c76bd37c95284254767296952845bacd3b810a4" - integrity sha512-MBs1Mgl0g0YswkhgoaYlaPoPDVs/HZQ3Z89thHxVytvJsgnQvhc3YrR48iRaUfQj0eYoazh7AL/lLCfd8veFKA== +react-cornerstone-viewport@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-2.3.8.tgz#7af8360f29bca986ae4e36b4e503269b88ddc52f" + integrity sha512-aiG2uVNrDY6SQx4t/HBxIA3zsMsCwT+6TpcXK9qSSoXhs+X6OTmYEKncWUqL0jtxU1yfh6JTUz8ARTg03gtF+A== dependencies: classnames "^2.2.6" date-fns "^2.2.1"