diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index bf5060afa..b7f59d4ea 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -33,7 +33,7 @@ "@ohif/ui": "^0.50.0", "cornerstone-core": "^2.3.0", "cornerstone-math": "^0.1.8", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "cornerstone-wado-image-loader": "^3.1.2", "dcmjs": "0.16.1", "dicom-parser": "^1.8.3", diff --git a/extensions/cornerstone/src/CornerstoneViewportDownloadForm.js b/extensions/cornerstone/src/CornerstoneViewportDownloadForm.js index bdd34e737..684b1b837 100644 --- a/extensions/cornerstone/src/CornerstoneViewportDownloadForm.js +++ b/extensions/cornerstone/src/CornerstoneViewportDownloadForm.js @@ -13,9 +13,10 @@ const DEFAULT_SIZE = 512; const MAX_TEXTURE_SIZE = 10000; const CornerstoneViewportDownloadForm = ({ onClose, activeViewportIndex }) => { - const { element: activeEnabledElement } = getEnabledElement( + const enabledElement = getEnabledElement( activeViewportIndex ); + const activeEnabledElement = enabledElement?.element const enableViewport = viewportElement => { if (viewportElement) { @@ -116,6 +117,7 @@ const CornerstoneViewportDownloadForm = ({ onClose, activeViewportIndex }) => { viewportElement.querySelector('canvas').toBlob(blob => { const URLObj = window.URL || window.webkitURL; const a = document.createElement('a'); + a.href = URLObj.createObjectURL(blob); a.download = file; document.body.appendChild(a); diff --git a/extensions/cornerstone/src/commandsModule.js b/extensions/cornerstone/src/commandsModule.js index ce22c1db3..4bacc0d23 100644 --- a/extensions/cornerstone/src/commandsModule.js +++ b/extensions/cornerstone/src/commandsModule.js @@ -202,8 +202,9 @@ const commandsModule = ({ servicesManager, commandsManager }) => { return enabledElement; }, showDownloadViewportModal: () => { - const activeViewportIndex = 0; // viewports.activeViewportIndex; + const { activeViewportIndex } = ViewportGridService.getState(); const { UIModalService } = servicesManager.services; + if (UIModalService) { UIModalService.show({ content: CornerstoneViewportDownloadForm, diff --git a/extensions/dicom-rt/package.json b/extensions/dicom-rt/package.json index 335d90e13..86288540c 100644 --- a/extensions/dicom-rt/package.json +++ b/extensions/dicom-rt/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "^0.50.0", "cornerstone-core": "^2.2.8", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "dcmjs": "0.16.1", "prop-types": "^15.6.2", "react": "^16.8.6", diff --git a/extensions/dicom-segmentation/package.json b/extensions/dicom-segmentation/package.json index d9a3a0455..21df11cc0 100644 --- a/extensions/dicom-segmentation/package.json +++ b/extensions/dicom-segmentation/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "^0.50.0", "cornerstone-core": "^2.2.8", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "dcmjs": "0.16.1", "prop-types": "^15.6.2", "react": "^16.8.6", diff --git a/extensions/dicom-sr/package.json b/extensions/dicom-sr/package.json index 582d95d48..2a5b9091e 100644 --- a/extensions/dicom-sr/package.json +++ b/extensions/dicom-sr/package.json @@ -33,7 +33,7 @@ "@ohif/ui": "^0.50.0", "cornerstone-core": "^2.3.0", "cornerstone-math": "^0.1.8", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "cornerstone-wado-image-loader": "^3.1.2", "dcmjs": "0.16.1", "dicom-parser": "^1.8.3", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index ab8222bbd..585d63cb1 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -28,7 +28,7 @@ }, "peerDependencies": { "@ohif/core": "^0.50.0", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "dcmjs": "0.16.1", "prop-types": "^15.6.2", "react": "^16.13.1", diff --git a/extensions/vtk/package.json b/extensions/vtk/package.json index e17144eb0..e41dae629 100644 --- a/extensions/vtk/package.json +++ b/extensions/vtk/package.json @@ -57,7 +57,7 @@ "@ohif/core": "^2.9.6", "@ohif/ui": "^2.0.0", "cornerstone-core": "^2.3.0", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "cornerstone-wado-image-loader": "^3.1.2", "dicom-parser": "^1.8.3", "gh-pages": "^2.0.1", diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index e8f00446b..6306fa19c 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -62,8 +62,7 @@ export default function mode({ modeConfiguration }) { 'Zoom', 'WindowLevel', 'Pan', - // TODO: OHIF-376, need more time to adress this reasonably - // 'Capture', + 'Capture', 'Layout', 'MoreTools', ]); diff --git a/modes/longitudinal/src/toolbarButtons.js b/modes/longitudinal/src/toolbarButtons.js index b836c54a9..6365a4bde 100644 --- a/modes/longitudinal/src/toolbarButtons.js +++ b/modes/longitudinal/src/toolbarButtons.js @@ -146,17 +146,16 @@ export default [ commandOptions: { toolName: 'Pan' }, }, }, - // TODO: OHIF-376, need more time to adress this reasonably - // { - // id: 'Capture', - // type: 'ohif.action', - // props: { - // icon: 'tool-capture', - // label: 'Capture', - // type: 'action', - // commandName: 'showDownloadViewportModal', - // }, - // }, + { + id: 'Capture', + type: 'ohif.action', + props: { + icon: 'tool-capture', + label: 'Capture', + type: 'action', + commandName: 'showDownloadViewportModal', + }, + }, { id: 'Layout', type: 'ohif.layoutSelector', diff --git a/platform/core/package.json b/platform/core/package.json index 7dd6f7e88..d872a552b 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -31,7 +31,7 @@ }, "peerDependencies": { "cornerstone-core": "^2.3.0", - "cornerstone-tools": "4.20.1", + "cornerstone-tools": "5.1.2", "cornerstone-wado-image-loader": "^3.1.2", "dicom-parser": "^1.8.3" }, diff --git a/platform/ui/src/components/ViewportDownloadForm/ViewportDownloadForm.jsx b/platform/ui/src/components/ViewportDownloadForm/ViewportDownloadForm.jsx index 60ad9f2b6..7044e13c3 100644 --- a/platform/ui/src/components/ViewportDownloadForm/ViewportDownloadForm.jsx +++ b/platform/ui/src/components/ViewportDownloadForm/ViewportDownloadForm.jsx @@ -281,7 +281,7 @@ const ViewportDownloadForm = ({ setFilename(value)} + onChange={evt => setFilename(evt.target.value)} label="File Name" /> {renderErrorHandler('filename')} @@ -296,7 +296,7 @@ const ViewportDownloadForm = ({ max={maximumSize} label="Image width (px)" value={dimensions.width} - onChange={value => onDimensionsChange(value, 'width')} + onChange={evt => onDimensionsChange(evt.target.value, 'width')} data-cy="image-width" /> {renderErrorHandler('width')} @@ -308,7 +308,7 @@ const ViewportDownloadForm = ({ max={maximumSize} label="Image height (px)" value={dimensions.height} - onChange={value => onDimensionsChange(value, 'height')} + onChange={evt => onDimensionsChange(evt.target.value, 'height')} data-cy="image-height" /> {renderErrorHandler('height')} @@ -371,44 +371,36 @@ const ViewportDownloadForm = ({
-
setViewportElement(ref)} - > - -
- - {viewportPreview.src ? (
Image preview - Preview + {activeViewport && (
setViewportElement(ref)} + > + +
)} + {!activeViewport && + + Active viewport has no displayed image + + }
- ) : ( -
- Loading Image Preview... -
- )}
diff --git a/platform/viewer/package.json b/platform/viewer/package.json index e98ada2d8..c705d7c7d 100644 --- a/platform/viewer/package.json +++ b/platform/viewer/package.json @@ -68,7 +68,7 @@ "classnames": "^2.2.6", "core-js": "^3.2.1", "cornerstone-math": "^0.1.8", - "cornerstone-tools": "^4.22.0", + "cornerstone-tools": "5.1.2", "cornerstone-wado-image-loader": "^3.1.2", "dcmjs": "0.16.1", "dicom-parser": "^1.8.3", diff --git a/yarn.lock b/yarn.lock index b165e64bd..c1d215159 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1787,27 +1787,13 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" - integrity sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/runtime@7.7.6", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4": +"@babel/runtime@7.1.2", "@babel/runtime@7.7.6", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6": version "7.7.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.6.tgz#d18c511121aff1b4f2cd1d452f1bac9601dd830f" integrity sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw== dependencies: regenerator-runtime "^0.13.2" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/standalone@^7.10.2", "@babel/standalone@^7.4.5": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.10.2.tgz#49dbbadcbc4b199df064d7d8b3e21c915b84abdb" @@ -20754,11 +20740,6 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"