From 045e54aa024e93bcbab61d271a5df6e30c1886cf Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Tue, 16 May 2023 10:02:10 -0400 Subject: [PATCH] fix(Measurement): Use dashed lines for measurments of viewports where getCurrentImageId returns undefined (#3392) * fix(Measurement): Use dashed lines for measurments of viewports where getCurrentImageId returns undefined * Updated cornerstone3d packages * Fixed code comment. * Removed unused imports. --- extensions/cornerstone-dicom-sr/package.json | 4 +- extensions/cornerstone/package.json | 8 ++-- extensions/measurement-tracking/package.json | 4 +- .../viewports/TrackedCornerstoneViewport.tsx | 25 ++++++------ package.json | 2 +- platform/core/package.json | 2 +- platform/viewer/package.json | 2 +- yarn.lock | 38 +++++++++---------- 8 files changed, 42 insertions(+), 43 deletions(-) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 42c705d4c..5eec75694 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,7 +46,7 @@ "@babel/runtime": "^7.20.13", "classnames": "^2.3.2", "@cornerstonejs/adapters": "^0.6.0", - "@cornerstonejs/core": "^0.46.2", - "@cornerstonejs/tools": "^0.67.2" + "@cornerstonejs/core": "^0.47.1", + "@cornerstonejs/tools": "^0.67.4" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 4ac46a7c5..c22365ed9 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -34,7 +34,7 @@ "peerDependencies": { "@ohif/core": "^3.0.0", "@ohif/ui": "^2.0.0", - "@cornerstonejs/dicom-image-loader": "^0.6.4", + "@cornerstonejs/dicom-image-loader": "^0.6.6", "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", @@ -53,9 +53,9 @@ "dependencies": { "@babel/runtime": "^7.20.13", "@cornerstonejs/adapters": "^0.6.0", - "@cornerstonejs/core": "^0.46.2", - "@cornerstonejs/streaming-image-volume-loader": "^0.20.2", - "@cornerstonejs/tools": "^0.67.2", + "@cornerstonejs/core": "^0.47.1", + "@cornerstonejs/streaming-image-volume-loader": "^0.20.4", + "@cornerstonejs/tools": "^0.67.4", "@kitware/vtk.js": "27.3.1", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 94ab0e0db..8b71f466e 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "peerDependencies": { "@ohif/core": "^3.0.0", "classnames": "^2.3.2", - "@cornerstonejs/core": "^0.46.2", - "@cornerstonejs/tools": "^0.67.2", + "@cornerstonejs/core": "^0.47.1", + "@cornerstonejs/tools": "^0.67.4", "@ohif/extension-cornerstone-dicom-sr": "^3.0.0", "dcmjs": "^0.29.5", "lodash.debounce": "^4.17.21", diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index 47da82c8b..418d4aa97 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -2,13 +2,7 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import OHIF, { utils } from '@ohif/core'; -import { - Notification, - ViewportActionBar, - useViewportDialog, - Tooltip, - Icon, -} from '@ohif/ui'; +import { ViewportActionBar, Tooltip, Icon } from '@ohif/ui'; import { useTranslation } from 'react-i18next'; @@ -19,13 +13,11 @@ const { formatDate } = utils; function TrackedCornerstoneViewport(props) { const { - children, displaySets, viewportIndex, viewportLabel, servicesManager, extensionManager, - commandsManager, viewportOptions, } = props; @@ -40,7 +32,6 @@ function TrackedCornerstoneViewport(props) { const displaySet = displaySets[0]; const [trackedMeasurements] = useTrackedMeasurements(); - const [viewportDialogState] = useViewportDialog(); const [isTracked, setIsTracked] = useState(false); const [trackedMeasurementUID, setTrackedMeasurementUID] = useState(null); @@ -48,7 +39,6 @@ function TrackedCornerstoneViewport(props) { const viewportId = viewportOptions.viewportId; const { - Modality, SeriesDate, SeriesDescription, SeriesInstanceUID, @@ -93,8 +83,17 @@ function TrackedCornerstoneViewport(props) { }; }, [isTracked]); - if (trackedSeries.includes(SeriesInstanceUID) !== isTracked) { - setIsTracked(!isTracked); + // A current image id will only exist for viewports that can have measurements tracked. + // Typically these are stack viewports and those volume viewports for the series of acquisition. + const currentImageId = cornerstoneViewportService + .getCornerstoneViewport(viewportId) + ?.getCurrentImageId(); + if (currentImageId) { + if (trackedSeries.includes(SeriesInstanceUID) !== isTracked) { + setIsTracked(!isTracked); + } + } else if (isTracked) { + setIsTracked(false); } function switchMeasurement(direction) { diff --git a/package.json b/package.json index dcf5a0e78..775bea023 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ ] }, "resolutions": { - "@cornerstonejs/core": "^0.46.2", + "@cornerstonejs/core": "^0.47.1", "**/@babel/runtime": "^7.20.13", "nth-check": "^2.1.1", "trim-newlines": "^5.0.0", diff --git a/platform/core/package.json b/platform/core/package.json index 293670c0c..8c80400b2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -32,7 +32,7 @@ }, "peerDependencies": { "cornerstone-math": "0.1.9", - "@cornerstonejs/dicom-image-loader": "^0.6.4", + "@cornerstonejs/dicom-image-loader": "^0.6.6", "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", diff --git a/platform/viewer/package.json b/platform/viewer/package.json index 3ad63cfa4..6ce2ff1b8 100644 --- a/platform/viewer/package.json +++ b/platform/viewer/package.json @@ -68,7 +68,7 @@ "config-point": "^0.4.8", "core-js": "^3.16.1", "cornerstone-math": "^0.1.9", - "@cornerstonejs/dicom-image-loader": "^0.6.4", + "@cornerstonejs/dicom-image-loader": "^0.6.6", "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", diff --git a/yarn.lock b/yarn.lock index f0dd609f3..47d527d3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,43 +1469,43 @@ resolved "https://registry.npmjs.org/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.2.tgz#e96721d56f6ec96f7f95c16321d88cc8467d8d81" integrity sha512-lgdvBvvNezleY+4pIe2ceUsJzlZe/0PipdeubQ3vZZOz3xxtHHMR1XFCl4fgd8gosR8COHuD7h6q+MwgrwBsng== -"@cornerstonejs/core@^0.46.2": - version "0.46.2" - resolved "https://registry.npmjs.org/@cornerstonejs/core/-/core-0.46.2.tgz#89ba0d27f491aab8b0a22d15ce5ed601ee23d2ec" - integrity sha512-HHActbdv3np/QXmQPl+DOqVMXPeOXbkqDov1SagF1om6Me4V7O8N2HbM4CgKCdf2VrEId6h0BL3+MG3Cxn7LPQ== +"@cornerstonejs/core@^0.47.1": + version "0.47.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-0.47.1.tgz#8bbb9d5d8a6cd8a4c0fbf0b20bc0f56808d4fa40" + integrity sha512-bA69qo2WkMd5lkFFegYQ1UWHbnOADF0TD6DHiOnabFxHMQYZLB9CkCy4lT/tPAYL2w9WKm6b52ScUPNLTirWeA== dependencies: "@kitware/vtk.js" "27.3.1" detect-gpu "^5.0.22" gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^0.6.4": - version "0.6.4" - resolved "https://registry.npmjs.org/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-0.6.4.tgz#8020402b11dd78df52957345ca57ed8c05b2999b" - integrity sha512-+y9NklTFYlq61frxKcJ2u+0h9zfKKiv20N28N5qBr3Ie6CFcNrY51ETkujNnNKKRUBvxXDidjVdY+j+MSPPJKQ== +"@cornerstonejs/dicom-image-loader@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-0.6.6.tgz#086b14e93e67923ea999d7f80c42bf766db3918f" + integrity sha512-pdJ5f7/JEX4BAXR2keAAGf6RUfuyzB3vhEvk0T4yDv960TdpT4RZqRjs5acZMs9bkGqY8zAb+c9+Gdz5vypfvg== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.2" - "@cornerstonejs/core" "^0.46.2" + "@cornerstonejs/core" "^0.47.1" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^0.20.2": - version "0.20.2" - resolved "https://registry.npmjs.org/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-0.20.2.tgz#0df2ed5afd012d2851356af01eed48646d3a6c60" - integrity sha512-2TYoJ0wpE9KDpn8adfmTq0xOb/Xg7jhEyOuBnrr3il/NFvOfMlJieJVCYM0v3hyoANfqmDcFBqqtlm346VOMdw== +"@cornerstonejs/streaming-image-volume-loader@^0.20.4": + version "0.20.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-0.20.4.tgz#f8d727f2ae7dc0ae3c8975bad2a4f5365743127f" + integrity sha512-Zkf/HKatWGf3GPb+0yR7wNPqBHfKXQznpcKsqwFbbMu/SNp7dBcCuvqRVXO5BrJOfnyDeeDpB2+2XRocBnighg== dependencies: - "@cornerstonejs/core" "^0.46.2" + "@cornerstonejs/core" "^0.47.1" -"@cornerstonejs/tools@^0.67.2": - version "0.67.2" - resolved "https://registry.npmjs.org/@cornerstonejs/tools/-/tools-0.67.2.tgz#7b7c6aac4ec7eaa84a438198837e657328e3c8a2" - integrity sha512-nOg2byAVrdMj3DqLYVT7qbrl2Sz6V82xtfFYJ4oQeGul/u/1AvHj4SSZs7MTV63Li3KP2ax/ZghCjral+exaVg== +"@cornerstonejs/tools@^0.67.4": + version "0.67.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-0.67.4.tgz#5dfc2d3bacc2be600496cd4e230b1749de59b001" + integrity sha512-qeCCtK/xioEBv7l1zqicWQrHdzkFOX4fGNZ5D/TMkQMa+Ed5Zip8gDAcYTbmUvbYXdvkzhoOZeLcPVhoAkDykw== dependencies: - "@cornerstonejs/core" "^0.46.2" + "@cornerstonejs/core" "^0.47.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2"