From b6902e40f670d442b31ffe5f114dfb4f7ec84404 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 13:21:07 -0400 Subject: [PATCH 01/16] Cleaning --- .../src/ConnectedCineDialog.js | 166 +++++++++--------- .../src/ToolbarModule.js | 17 +- 2 files changed, 95 insertions(+), 88 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js index 94486ddd1..34b693b96 100644 --- a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js +++ b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js @@ -5,107 +5,113 @@ import cloneDeep from 'lodash.clonedeep'; const { setViewportSpecificData } = OHIF.redux.actions; -// TODO: I'm guessing this function will be used in other connect locations -// so we might want to put it somewhere shared -function getActiveViewportSpecificData(state) { - const { viewportSpecificData, activeViewportIndex } = state.viewports; - return viewportSpecificData[activeViewportIndex]; -} - +// Why do I need or care about any of this info? +// A dispatch action should be able to pull this at the time of an event? +// `isPlaying` and `cineFrameRate` might matter, but I think we can prop pass for those. const mapStateToProps = state => { - // TODO: - // - Test if including CineDialog in the toolbarRow will prevent it - // from hovering over the rest of the UI when visible. - // - // - Create custom ToolbarButton which just shows Play state - // - Connect this ToolbarButton to Redux - const activeViewportSpecificData = getActiveViewportSpecificData(state); + // Get activeViewport's `cine` and `stack` + const { viewportSpecificData, activeViewportIndex } = state.viewports; + const { cine, stack } = viewportSpecificData[activeViewportIndex] || {}; - let stack = { - imageIds: [], - currentImageIdIndex: 0 - }; - if (activeViewportSpecificData && activeViewportSpecificData.stack) { - stack = activeViewportSpecificData.stack - } + const stackData = stack || { + imageIds: [], + currentImageIdIndex: 0 + }; - let cine = { - isPlaying: false, - cineFrameRate: 24 - }; - if (activeViewportSpecificData && activeViewportSpecificData.cine) { - cine = activeViewportSpecificData.cine - } + const cineData = cine || { + isPlaying: false, + cineFrameRate: 24 + }; + // TODO: activeViewportStackData won't currently change anything on + // CornerstoneViewport. The updates are too frequent and it's killing + // performance. Need to revisit how we can do this. - // TODO: activeViewportStackData won't currently change anything on - // CornerstoneViewport. The updates are too frequent and it's killing - // performance. Need to revisit how we can do this. - return { - activeViewportStackData: stack, - activeViewportCineData: cine, - activeViewportIndex: state.viewports.activeViewportIndex - }; + // New props we're creating? + return { + activeViewportStackData: stackData, + activeViewportCineData: cineData, + activeViewportIndex: state.viewports.activeViewportIndex + }; }; const mapDispatchToProps = dispatch => { - return { - dispatchSetViewportSpecificData: (viewportIndex, data) => { - dispatch(setViewportSpecificData(viewportIndex, data)); - }, - }; + return { + dispatchSetViewportSpecificData: (viewportIndex, data) => { + dispatch(setViewportSpecificData(viewportIndex, data)); + } + }; }; const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { - const { activeViewportStackData, activeViewportCineData, activeViewportIndex } = propsFromState; + const { + activeViewportStackData, + activeViewportCineData, + activeViewportIndex + } = propsFromState; - return { - cineFrameRate: activeViewportCineData.cineFrameRate, - isPlaying: activeViewportCineData.isPlaying, - onPlayPauseChanged: isPlaying => { - const cine = cloneDeep(activeViewportCineData); - cine.isPlaying = !cine.isPlaying; + return { + cineFrameRate: activeViewportCineData.cineFrameRate, + isPlaying: activeViewportCineData.isPlaying, + onPlayPauseChanged: isPlaying => { + const cine = cloneDeep(activeViewportCineData); + cine.isPlaying = !cine.isPlaying; - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { cine }); - }, - onFrameRateChanged: frameRate => { - const cine = cloneDeep(activeViewportCineData); - cine.cineFrameRate = frameRate; + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + cine + }); + }, + onFrameRateChanged: frameRate => { + const cine = cloneDeep(activeViewportCineData); + cine.cineFrameRate = frameRate; - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { cine }); - }, - onClickNextButton: () => { - const stack = cloneDeep(activeViewportStackData); - const largestPossibleIndex = stack.imageIds.length - 1; - stack.currentImageIdIndex = Math.min(stack.currentImageIdIndex + 1, largestPossibleIndex) + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + cine + }); + }, + onClickNextButton: () => { + const stack = cloneDeep(activeViewportStackData); + const largestPossibleIndex = stack.imageIds.length - 1; + stack.currentImageIdIndex = Math.min( + stack.currentImageIdIndex + 1, + largestPossibleIndex + ); - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { stack }); - }, - onClickBackButton: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = Math.max(stack.currentImageIdIndex - 1, 0); + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + stack + }); + }, + onClickBackButton: () => { + const stack = cloneDeep(activeViewportStackData); + stack.currentImageIdIndex = Math.max(stack.currentImageIdIndex - 1, 0); - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { stack }); - }, - onClickSkipToStart: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = 0; + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + stack + }); + }, + onClickSkipToStart: () => { + const stack = cloneDeep(activeViewportStackData); + stack.currentImageIdIndex = 0; - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { stack }); - }, - onClickSkipToEnd: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = stack.imageIds.length; + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + stack + }); + }, + onClickSkipToEnd: () => { + const stack = cloneDeep(activeViewportStackData); + stack.currentImageIdIndex = stack.imageIds.length; - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { stack }); - } - }; + propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { + stack + }); + } + }; }; const ConnectedCineDialog = connect( - mapStateToProps, - mapDispatchToProps, - mergeProps + mapStateToProps, + mapDispatchToProps, + mergeProps )(CineDialog); export default ConnectedCineDialog; diff --git a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js index 657441b60..c9ab12de8 100644 --- a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js +++ b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js @@ -6,7 +6,7 @@ import ConnectedCineDialog from './ConnectedCineDialog'; class ToolbarModule extends Component { state = { cineDialogOpen: false - } + }; onClickCineToolbarButton = () => { this.setState({ @@ -19,13 +19,14 @@ class ToolbarModule extends Component { display: this.state.cineDialogOpen ? 'inline-block' : 'none' }; - return (
- - + +
From cb745a220fee5e047107877c876f4b2695b5994c Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 21:36:47 -0400 Subject: [PATCH 02/16] Bump dependencies higher up in the config; change `react-cornerstone-viewport` to the flagged `expose-dom` release --- extensions/ohif-cornerstone-extension/package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/package.json b/extensions/ohif-cornerstone-extension/package.json index 9fb20cef9..a9605ff37 100644 --- a/extensions/ohif-cornerstone-extension/package.json +++ b/extensions/ohif-cornerstone-extension/package.json @@ -35,6 +35,12 @@ "react-viewerbase": "^0.2.10", "redux": "^4.0.1" }, + "dependencies": { + "@babel/runtime": "^7.2.0", + "classnames": "^2.2.6", + "lodash.throttle": "^4.1.1", + "react-cornerstone-viewport": "0.1.25-expose-dom" + }, "devDependencies": { "@babel/core": "^7.2.2", "@babel/plugin-external-helpers": "^7.2.0", @@ -87,11 +93,5 @@ ], "files": [ "dist" - ], - "dependencies": { - "@babel/runtime": "^7.2.0", - "classnames": "^2.2.6", - "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "^0.1.25" - } + ] } From 1ff173b3e84b07558ae63c7b835e57af02d77344 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 21:37:20 -0400 Subject: [PATCH 03/16] Capture yarn.lock change --- extensions/ohif-cornerstone-extension/yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/yarn.lock b/extensions/ohif-cornerstone-extension/yarn.lock index 6d9a8116a..c299d4f8f 100644 --- a/extensions/ohif-cornerstone-extension/yarn.lock +++ b/extensions/ohif-cornerstone-extension/yarn.lock @@ -4418,10 +4418,10 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -react-cornerstone-viewport@^0.1.23: - version "0.1.23" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.23.tgz#4f065c4d1a5e721a45b819d1b7e94489af69b5c1" - integrity sha512-uukvBIrtvExY0oOo6d/79CZRrALtU2Pq8NBovYVvD02Hg40yYtGYLZ2AnbjbQEtsf0LjpLhcfT/QU6ZOB2v8rw== +react-cornerstone-viewport@0.1.25-expose-dom: + version "0.1.25-expose-dom" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom.tgz#0b258b31d505bed01287bbff91863dcc62947c97" + integrity sha512-JSg4384EIFSHlx7Od8ZLzdxXGRQS6hT1VSZapWGqiEK5K2EYcN+lun8l4WYRi+DgN1qskdwIRcz5uxiOvJpTQQ== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From d430596025c9811aec6e4c02773cea383b0ea9c2 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 21:38:31 -0400 Subject: [PATCH 04/16] Try capturing and setting the dom reference in our viewports module --- .../src/ConnectedCornerstoneViewport.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js b/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js index ac299ba7a..c5f454925 100644 --- a/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js +++ b/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js @@ -50,6 +50,21 @@ const mapDispatchToProps = (dispatch, ownProps) => { dispatch(clearViewportSpecificData(viewportIndex)); }, + /** + * Our component "enables" the underlying dom element on "componentDidMount" + * It listens for that event, and then emits the enabledElement. We can grab + * a reference to it here, to make playing with cornerstone's native methods + * easier. + */ + onElementEnabled: event => { + const enabledElement = event.detail; + dispatch( + setViewportSpecificData(viewportIndex, { + dom: enabledElement + }) + ); + }, + onMeasurementsChanged: (event, action) => { const { onAdded, From 0a4fee733755e1251eab78d2d5c104216d302f0b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 21:47:15 -0400 Subject: [PATCH 05/16] Use the DOM that should now be set for each viewport to influence button behavior --- .../src/ConnectedCineDialog.js | 62 +++++++------------ 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js index 34b693b96..369d673cd 100644 --- a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js +++ b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js @@ -1,8 +1,10 @@ import { connect } from 'react-redux'; import { CineDialog } from 'react-viewerbase'; import OHIF from 'ohif-core'; +import { import as toolImport, getToolState } from 'cornerstone-tools'; import cloneDeep from 'lodash.clonedeep'; +const scrollToIndex = toolImport('util/scrollToIndex'); const { setViewportSpecificData } = OHIF.redux.actions; // Why do I need or care about any of this info? @@ -11,25 +13,16 @@ const { setViewportSpecificData } = OHIF.redux.actions; const mapStateToProps = state => { // Get activeViewport's `cine` and `stack` const { viewportSpecificData, activeViewportIndex } = state.viewports; - const { cine, stack } = viewportSpecificData[activeViewportIndex] || {}; - - const stackData = stack || { - imageIds: [], - currentImageIdIndex: 0 - }; + const { cine, dom } = viewportSpecificData[activeViewportIndex] || {}; const cineData = cine || { isPlaying: false, cineFrameRate: 24 }; - // TODO: activeViewportStackData won't currently change anything on - // CornerstoneViewport. The updates are too frequent and it's killing - // performance. Need to revisit how we can do this. - // New props we're creating? return { - activeViewportStackData: stackData, + activeEnabledElement: dom, activeViewportCineData: cineData, activeViewportIndex: state.viewports.activeViewportIndex }; @@ -45,7 +38,7 @@ const mapDispatchToProps = dispatch => { const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { const { - activeViewportStackData, + activeEnabledElement, activeViewportCineData, activeViewportIndex } = propsFromState; @@ -70,40 +63,29 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }); }, onClickNextButton: () => { - const stack = cloneDeep(activeViewportStackData); - const largestPossibleIndex = stack.imageIds.length - 1; - stack.currentImageIdIndex = Math.min( - stack.currentImageIdIndex + 1, - largestPossibleIndex - ); - - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - stack - }); + const stackData = getToolState(activeEnabledElement, 'stack'); + if (!stackData || !stackData.data || !stackData.data.length) return; + const { currentImageIdIndex, imageIds } = stackData.data[0]; + if (currentImageIdIndex >= imageIds.length - 1) return; + scrollToIndex(activeEnabledElement, currentImageIdIndex + 1); }, onClickBackButton: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = Math.max(stack.currentImageIdIndex - 1, 0); - - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - stack - }); + const stackData = getToolState(activeEnabledElement, 'stack'); + if (!stackData || !stackData.data || !stackData.data.length) return; + const { currentImageIdIndex } = stackData.data[0]; + if (currentImageIdIndex === 0) return; + scrollToIndex(activeEnabledElement, currentImageIdIndex - 1); }, onClickSkipToStart: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = 0; - - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - stack - }); + const stackData = getToolState(activeEnabledElement, 'stack'); + if (!stackData || !stackData.data || !stackData.data.length) return; + scrollToIndex(activeEnabledElement, 0); }, onClickSkipToEnd: () => { - const stack = cloneDeep(activeViewportStackData); - stack.currentImageIdIndex = stack.imageIds.length; - - propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - stack - }); + const stackData = getToolState(activeEnabledElement, 'stack'); + if (!stackData || !stackData.data || !stackData.data.length) return; + const lastIndex = stackData.data[0].imageIds.length - 1; + scrollToIndex(activeEnabledElement, lastIndex); } }; }; From 25ae0bddc60d9ed322132671765864e95d721e42 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 22:00:35 -0400 Subject: [PATCH 06/16] feat(CinePlayer): expose cornerstone enabled element for use in CINE player button actions --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index cc94fb3f4..e15622a21 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "lodash.isequal": "4.5.0", "moment": "^2.24.0", "ohif-core": "0.5.2", - "ohif-cornerstone-extension": "^0.0.28", + "ohif-cornerstone-extension": "0.0.28-expose-dom", "ohif-dicom-html-extension": "^0.0.2", "ohif-dicom-microscopy-extension": "^0.0.5", "ohif-dicom-pdf-extension": "^0.0.6", diff --git a/yarn.lock b/yarn.lock index 2beb85360..e42b344e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9617,15 +9617,15 @@ ohif-core@0.5.2: lodash.merge "^4.6.1" validate.js "^0.12.0" -ohif-cornerstone-extension@^0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28.tgz#79e07133e0b08f2c38f4bdb77032c4c7182266c4" - integrity sha512-GPXMqrmB+kmRAEOlSD0nBO4vwOvYLyn4gt9AtP016JMCLADpAsEDymUzE8Psr0NPLSvk6QrPL0/bKglfsGl7sA== +ohif-cornerstone-extension@0.0.28-expose-dom: + version "0.0.28-expose-dom" + resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom.tgz#0f64efbebaa82c0b8a3672fb39d666af9222d4e6" + integrity sha512-qKa6nYJZ3lzGXD3xA1HCIWs8chZttjYBoJRe/BsespnemymE0loAvXXUB66yScPEQtww7J4KwgTYxBPPKr/8MQ== dependencies: "@babel/runtime" "^7.2.0" classnames "^2.2.6" lodash.throttle "^4.1.1" - react-cornerstone-viewport "^0.1.25" + react-cornerstone-viewport "0.1.25-expose-dom" ohif-dicom-html-extension@^0.0.2: version "0.0.2" @@ -11401,10 +11401,10 @@ react-bootstrap-modal@4.2.0, react-bootstrap-modal@^4.2.0: react-overlays "^0.8.0" react-transition-group "^2.0.0" -react-cornerstone-viewport@^0.1.25: - version "0.1.25" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25.tgz#8d55d35db76f56c4844770ad14b21aeb20640724" - integrity sha512-h+00YdJubWiPylVAeRLhbOA3908ST3aB+ideoMsnDzNH3PGhL0KIgey5e8caAhWXkmFOS+SRJbXjpLCD8aGcLw== +react-cornerstone-viewport@0.1.25-expose-dom: + version "0.1.25-expose-dom" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom.tgz#0b258b31d505bed01287bbff91863dcc62947c97" + integrity sha512-JSg4384EIFSHlx7Od8ZLzdxXGRQS6hT1VSZapWGqiEK5K2EYcN+lun8l4WYRi+DgN1qskdwIRcz5uxiOvJpTQQ== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From 557fdce0167c2e2fdb641ee87761695e44fbf33b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 22:12:34 -0400 Subject: [PATCH 07/16] less error-prone import --- .../src/ConnectedCineDialog.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js index 369d673cd..6247f6bf2 100644 --- a/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js +++ b/extensions/ohif-cornerstone-extension/src/ConnectedCineDialog.js @@ -1,9 +1,12 @@ import { connect } from 'react-redux'; import { CineDialog } from 'react-viewerbase'; import OHIF from 'ohif-core'; -import { import as toolImport, getToolState } from 'cornerstone-tools'; +import csTools from 'cornerstone-tools'; +// Our target output kills the `as` and "import" throws a keyword error +// import { import as toolImport, getToolState } from 'cornerstone-tools'; import cloneDeep from 'lodash.clonedeep'; +const toolImport = csTools.import; const scrollToIndex = toolImport('util/scrollToIndex'); const { setViewportSpecificData } = OHIF.redux.actions; @@ -63,26 +66,26 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }); }, onClickNextButton: () => { - const stackData = getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, 'stack'); if (!stackData || !stackData.data || !stackData.data.length) return; const { currentImageIdIndex, imageIds } = stackData.data[0]; if (currentImageIdIndex >= imageIds.length - 1) return; scrollToIndex(activeEnabledElement, currentImageIdIndex + 1); }, onClickBackButton: () => { - const stackData = getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, 'stack'); if (!stackData || !stackData.data || !stackData.data.length) return; const { currentImageIdIndex } = stackData.data[0]; if (currentImageIdIndex === 0) return; scrollToIndex(activeEnabledElement, currentImageIdIndex - 1); }, onClickSkipToStart: () => { - const stackData = getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, 'stack'); if (!stackData || !stackData.data || !stackData.data.length) return; scrollToIndex(activeEnabledElement, 0); }, onClickSkipToEnd: () => { - const stackData = getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, 'stack'); if (!stackData || !stackData.data || !stackData.data.length) return; const lastIndex = stackData.data[0].imageIds.length - 1; scrollToIndex(activeEnabledElement, lastIndex); From 2cd3bf284892401d75c96438d5dda827ea91a90c Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 22:15:52 -0400 Subject: [PATCH 08/16] bump --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e15622a21..b74ac6d6e 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "lodash.isequal": "4.5.0", "moment": "^2.24.0", "ohif-core": "0.5.2", - "ohif-cornerstone-extension": "0.0.28-expose-dom", + "ohif-cornerstone-extension": "0.0.28-expose-dom-2", "ohif-dicom-html-extension": "^0.0.2", "ohif-dicom-microscopy-extension": "^0.0.5", "ohif-dicom-pdf-extension": "^0.0.6", diff --git a/yarn.lock b/yarn.lock index e42b344e4..69643458b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9617,10 +9617,10 @@ ohif-core@0.5.2: lodash.merge "^4.6.1" validate.js "^0.12.0" -ohif-cornerstone-extension@0.0.28-expose-dom: - version "0.0.28-expose-dom" - resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom.tgz#0f64efbebaa82c0b8a3672fb39d666af9222d4e6" - integrity sha512-qKa6nYJZ3lzGXD3xA1HCIWs8chZttjYBoJRe/BsespnemymE0loAvXXUB66yScPEQtww7J4KwgTYxBPPKr/8MQ== +ohif-cornerstone-extension@0.0.28-expose-dom-2: + version "0.0.28-expose-dom-2" + resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom-2.tgz#cddf3c27a7a3f03a1001889b35f2a0eae1820569" + integrity sha512-QF6Pax95ylw24uneWV3IvEBzRwoOkRkCsVlCbxWCIf0lS9gfQuAUyFmeVLpk7dx27iUChADQsWlfW/ylyjlzEQ== dependencies: "@babel/runtime" "^7.2.0" classnames "^2.2.6" From 4ad93943dc4294b2509a90c16868501eac08b67f Mon Sep 17 00:00:00 2001 From: dannyrb Date: Tue, 14 May 2019 23:21:45 -0400 Subject: [PATCH 09/16] bump --- extensions/ohif-cornerstone-extension/yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/yarn.lock b/extensions/ohif-cornerstone-extension/yarn.lock index c299d4f8f..4f179971e 100644 --- a/extensions/ohif-cornerstone-extension/yarn.lock +++ b/extensions/ohif-cornerstone-extension/yarn.lock @@ -4418,10 +4418,10 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -react-cornerstone-viewport@0.1.25-expose-dom: - version "0.1.25-expose-dom" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom.tgz#0b258b31d505bed01287bbff91863dcc62947c97" - integrity sha512-JSg4384EIFSHlx7Od8ZLzdxXGRQS6hT1VSZapWGqiEK5K2EYcN+lun8l4WYRi+DgN1qskdwIRcz5uxiOvJpTQQ== +react-cornerstone-viewport@0.1.25-expose-dom-3: + version "0.1.25-expose-dom-3" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom-3.tgz#79cf0d531c38ae32d69722e145ba8e54db9ddfd7" + integrity sha512-O1sALN4s47pjfUwDQXmnvY9pWJHvH0WEtKbEQa9eCQ0g+5kbL+lb1XlQZI1tGSuYHaBRL/f8UxV9MpANwffkgQ== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From 724ba44aee8e3beac27432ca9b9bdc8627c195e3 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 09:17:43 -0400 Subject: [PATCH 10/16] fix grabbing enabled element --- extensions/ohif-cornerstone-extension/package.json | 2 +- .../src/ConnectedCornerstoneViewport.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/package.json b/extensions/ohif-cornerstone-extension/package.json index a9605ff37..8efc7724f 100644 --- a/extensions/ohif-cornerstone-extension/package.json +++ b/extensions/ohif-cornerstone-extension/package.json @@ -39,7 +39,7 @@ "@babel/runtime": "^7.2.0", "classnames": "^2.2.6", "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "0.1.25-expose-dom" + "react-cornerstone-viewport": "0.1.25-expose-dom-3" }, "devDependencies": { "@babel/core": "^7.2.2", diff --git a/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js b/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js index c5f454925..4f8e65d56 100644 --- a/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js +++ b/extensions/ohif-cornerstone-extension/src/ConnectedCornerstoneViewport.js @@ -57,7 +57,7 @@ const mapDispatchToProps = (dispatch, ownProps) => { * easier. */ onElementEnabled: event => { - const enabledElement = event.detail; + const enabledElement = event.detail.element; dispatch( setViewportSpecificData(viewportIndex, { dom: enabledElement From f1df6ebba536c4ece7478b0e2a815b563705892f Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 09:22:48 -0400 Subject: [PATCH 11/16] bump --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b74ac6d6e..c3257e848 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "lodash.isequal": "4.5.0", "moment": "^2.24.0", "ohif-core": "0.5.2", - "ohif-cornerstone-extension": "0.0.28-expose-dom-2", + "ohif-cornerstone-extension": "0.0.28-expose-dom-4", "ohif-dicom-html-extension": "^0.0.2", "ohif-dicom-microscopy-extension": "^0.0.5", "ohif-dicom-pdf-extension": "^0.0.6", diff --git a/yarn.lock b/yarn.lock index 69643458b..ee549d65f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9617,15 +9617,15 @@ ohif-core@0.5.2: lodash.merge "^4.6.1" validate.js "^0.12.0" -ohif-cornerstone-extension@0.0.28-expose-dom-2: - version "0.0.28-expose-dom-2" - resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom-2.tgz#cddf3c27a7a3f03a1001889b35f2a0eae1820569" - integrity sha512-QF6Pax95ylw24uneWV3IvEBzRwoOkRkCsVlCbxWCIf0lS9gfQuAUyFmeVLpk7dx27iUChADQsWlfW/ylyjlzEQ== +ohif-cornerstone-extension@0.0.28-expose-dom-4: + version "0.0.28-expose-dom-4" + resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom-4.tgz#509cb4af20bac133a9c7ea90a43f9a8d353a6c87" + integrity sha512-ZvgKkA0MRK7yTXL61BhIrRrfvmlNbnhJroUrNY7DpKNV2sQ4UGRKLIkp/bmJlan1RUeO6rYoRuv/ReR+sLQvSw== dependencies: "@babel/runtime" "^7.2.0" classnames "^2.2.6" lodash.throttle "^4.1.1" - react-cornerstone-viewport "0.1.25-expose-dom" + react-cornerstone-viewport "0.1.25-expose-dom-3" ohif-dicom-html-extension@^0.0.2: version "0.0.2" @@ -11401,10 +11401,10 @@ react-bootstrap-modal@4.2.0, react-bootstrap-modal@^4.2.0: react-overlays "^0.8.0" react-transition-group "^2.0.0" -react-cornerstone-viewport@0.1.25-expose-dom: - version "0.1.25-expose-dom" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom.tgz#0b258b31d505bed01287bbff91863dcc62947c97" - integrity sha512-JSg4384EIFSHlx7Od8ZLzdxXGRQS6hT1VSZapWGqiEK5K2EYcN+lun8l4WYRi+DgN1qskdwIRcz5uxiOvJpTQQ== +react-cornerstone-viewport@0.1.25-expose-dom-3: + version "0.1.25-expose-dom-3" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom-3.tgz#79cf0d531c38ae32d69722e145ba8e54db9ddfd7" + integrity sha512-O1sALN4s47pjfUwDQXmnvY9pWJHvH0WEtKbEQa9eCQ0g+5kbL+lb1XlQZI1tGSuYHaBRL/f8UxV9MpANwffkgQ== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From 49d574d8ac2bf01c602c35f5962bde6251473be4 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 14:24:04 -0400 Subject: [PATCH 12/16] Position this absolutely near the top left of our page --- extensions/ohif-cornerstone-extension/src/ToolbarModule.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js index c9ab12de8..df3fb99ee 100644 --- a/extensions/ohif-cornerstone-extension/src/ToolbarModule.js +++ b/extensions/ohif-cornerstone-extension/src/ToolbarModule.js @@ -16,7 +16,10 @@ class ToolbarModule extends Component { render() { const cineDialogContainerStyle = { - display: this.state.cineDialogOpen ? 'inline-block' : 'none' + display: this.state.cineDialogOpen ? 'block' : 'none', + position: 'absolute', + top: '82px', + zIndex: 999 }; return ( From 36daa8afe254e255913a9acceb6a0214bab245d1 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 15:05:03 -0400 Subject: [PATCH 13/16] bump react-cornerstone-viewport dependency version --- extensions/ohif-cornerstone-extension/package.json | 2 +- extensions/ohif-cornerstone-extension/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/ohif-cornerstone-extension/package.json b/extensions/ohif-cornerstone-extension/package.json index 8efc7724f..1317cfc91 100644 --- a/extensions/ohif-cornerstone-extension/package.json +++ b/extensions/ohif-cornerstone-extension/package.json @@ -39,7 +39,7 @@ "@babel/runtime": "^7.2.0", "classnames": "^2.2.6", "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "0.1.25-expose-dom-3" + "react-cornerstone-viewport": "0.1.26" }, "devDependencies": { "@babel/core": "^7.2.2", diff --git a/extensions/ohif-cornerstone-extension/yarn.lock b/extensions/ohif-cornerstone-extension/yarn.lock index 4f179971e..7fbfa0064 100644 --- a/extensions/ohif-cornerstone-extension/yarn.lock +++ b/extensions/ohif-cornerstone-extension/yarn.lock @@ -4418,10 +4418,10 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -react-cornerstone-viewport@0.1.25-expose-dom-3: - version "0.1.25-expose-dom-3" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom-3.tgz#79cf0d531c38ae32d69722e145ba8e54db9ddfd7" - integrity sha512-O1sALN4s47pjfUwDQXmnvY9pWJHvH0WEtKbEQa9eCQ0g+5kbL+lb1XlQZI1tGSuYHaBRL/f8UxV9MpANwffkgQ== +react-cornerstone-viewport@0.1.26: + version "0.1.26" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.26.tgz#eb09ae7c5d0f24e20a852fdc3ce648935d182370" + integrity sha512-t4onVJeib+FHWNHZNVrJyndLw8dCf7cI/69r5pNE4Sefjxw7pDuPdXfmZdcT8VWpl9cLairTqtqaLW+gXxTxIA== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From 3d1a43f52d5b94e304923765ecf0c5bd573f9e12 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 15:05:32 -0400 Subject: [PATCH 14/16] bump own version --- extensions/ohif-cornerstone-extension/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/ohif-cornerstone-extension/package.json b/extensions/ohif-cornerstone-extension/package.json index 1317cfc91..9e925397f 100644 --- a/extensions/ohif-cornerstone-extension/package.json +++ b/extensions/ohif-cornerstone-extension/package.json @@ -1,6 +1,6 @@ { "name": "ohif-cornerstone-extension", - "version": "0.0.28", + "version": "0.0.29", "description": "OHIF extension for Cornerstone", "author": "OHIF", "license": "MIT", From f925c8a38060dd37c42a282a73cee01e3097e2f6 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 15:09:48 -0400 Subject: [PATCH 15/16] bumpity bump bump --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c3257e848..19ee475ca 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "lodash.isequal": "4.5.0", "moment": "^2.24.0", "ohif-core": "0.5.2", - "ohif-cornerstone-extension": "0.0.28-expose-dom-4", + "ohif-cornerstone-extension": "0.0.29", "ohif-dicom-html-extension": "^0.0.2", "ohif-dicom-microscopy-extension": "^0.0.5", "ohif-dicom-pdf-extension": "^0.0.6", diff --git a/yarn.lock b/yarn.lock index ee549d65f..04fa2ca6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9617,15 +9617,15 @@ ohif-core@0.5.2: lodash.merge "^4.6.1" validate.js "^0.12.0" -ohif-cornerstone-extension@0.0.28-expose-dom-4: - version "0.0.28-expose-dom-4" - resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.28-expose-dom-4.tgz#509cb4af20bac133a9c7ea90a43f9a8d353a6c87" - integrity sha512-ZvgKkA0MRK7yTXL61BhIrRrfvmlNbnhJroUrNY7DpKNV2sQ4UGRKLIkp/bmJlan1RUeO6rYoRuv/ReR+sLQvSw== +ohif-cornerstone-extension@0.0.29: + version "0.0.29" + resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.29.tgz#288f3acb9b85b2434e39cae728ffd6dd2d67e0c2" + integrity sha512-1tFQokdYhW6Z5bhABvU84vLo4u7SHkFqgNpqwyw4mz3UlsbUBB30P9K88a68Txu8/wsMxTa9h8cAEZa1WfJo+g== dependencies: "@babel/runtime" "^7.2.0" classnames "^2.2.6" lodash.throttle "^4.1.1" - react-cornerstone-viewport "0.1.25-expose-dom-3" + react-cornerstone-viewport "0.1.26" ohif-dicom-html-extension@^0.0.2: version "0.0.2" @@ -11401,10 +11401,10 @@ react-bootstrap-modal@4.2.0, react-bootstrap-modal@^4.2.0: react-overlays "^0.8.0" react-transition-group "^2.0.0" -react-cornerstone-viewport@0.1.25-expose-dom-3: - version "0.1.25-expose-dom-3" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.25-expose-dom-3.tgz#79cf0d531c38ae32d69722e145ba8e54db9ddfd7" - integrity sha512-O1sALN4s47pjfUwDQXmnvY9pWJHvH0WEtKbEQa9eCQ0g+5kbL+lb1XlQZI1tGSuYHaBRL/f8UxV9MpANwffkgQ== +react-cornerstone-viewport@0.1.26: + version "0.1.26" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-0.1.26.tgz#eb09ae7c5d0f24e20a852fdc3ce648935d182370" + integrity sha512-t4onVJeib+FHWNHZNVrJyndLw8dCf7cI/69r5pNE4Sefjxw7pDuPdXfmZdcT8VWpl9cLairTqtqaLW+gXxTxIA== dependencies: lodash.debounce "^4.0.8" moment "^2.23.0" From 776f5b0e8cec8688e19dc8a6b9d3f82ec8092228 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Wed, 15 May 2019 15:45:42 -0400 Subject: [PATCH 16/16] No need to produce a warning here --- src/config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/config.js b/src/config.js index f21f38de6..8385e7ead 100644 --- a/src/config.js +++ b/src/config.js @@ -20,7 +20,6 @@ OHIF.user.getAccessToken = () => { // TODO: Get the Redux store from somewhere else const state = window.store.getState() if (!state.oidc || !state.oidc.user) { - console.warn('failed to grab access token') return }