From 610faa5a2738da5eabc40e57e338c359f481e852 Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 12 Nov 2024 21:18:06 -0500 Subject: [PATCH] fix: video playback (#4497) --- .../cornerstone-dicom-pmap/package.json | 4 +- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 6 +-- .../cornerstone-dynamic-volume/package.json | 4 +- extensions/cornerstone/package.json | 8 ++-- extensions/measurement-tracking/package.json | 4 +- .../panels/PanelMeasurementTableTracking.tsx | 46 +++++++++++++++++-- platform/app/package.json | 2 +- platform/core/package.json | 2 +- .../UIDialogService/UIDialogService.ts | 8 ++-- version.txt | 2 +- yarn.lock | 32 ++++++------- 12 files changed, 81 insertions(+), 41 deletions(-) diff --git a/extensions/cornerstone-dicom-pmap/package.json b/extensions/cornerstone-dicom-pmap/package.json index 4e014a814..7a9ed139a 100644 --- a/extensions/cornerstone-dicom-pmap/package.json +++ b/extensions/cornerstone-dicom-pmap/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.2.3", - "@cornerstonejs/core": "^2.2.3", + "@cornerstonejs/adapters": "^2.2.4", + "@cornerstonejs/core": "^2.2.4", "@kitware/vtk.js": "32.1.0", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index cac5d095b..6e473017a 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.2.3", - "@cornerstonejs/core": "^2.2.3", + "@cornerstonejs/adapters": "^2.2.4", + "@cornerstonejs/core": "^2.2.4", "@kitware/vtk.js": "32.1.0", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index c1f9b2717..7a1cfdf7a 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.2.3", - "@cornerstonejs/core": "^2.2.3", - "@cornerstonejs/tools": "^2.2.3", + "@cornerstonejs/adapters": "^2.2.4", + "@cornerstonejs/core": "^2.2.4", + "@cornerstonejs/tools": "^2.2.4", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index c4df2f701..7ff82be96 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -42,8 +42,8 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/core": "^2.2.3", - "@cornerstonejs/tools": "^2.2.3", + "@cornerstonejs/core": "^2.2.4", + "@cornerstonejs/tools": "^2.2.4", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 2b8eef9d9..66dcd1436 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^2.2.3", + "@cornerstonejs/dicom-image-loader": "^2.2.4", "@icr/polyseg-wasm": "^0.4.0", "@ohif/core": "3.9.0", "@ohif/ui": "3.9.0", @@ -55,9 +55,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.2.3", - "@cornerstonejs/core": "^2.2.3", - "@cornerstonejs/tools": "^2.2.3", + "@cornerstonejs/adapters": "^2.2.4", + "@cornerstonejs/core": "^2.2.4", + "@cornerstonejs/tools": "^2.2.4", "@icr/polyseg-wasm": "^0.4.0", "@kitware/vtk.js": "32.1.0", "html2canvas": "^1.4.1", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 370611e6d..1be1b9e6c 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^2.2.3", - "@cornerstonejs/tools": "^2.2.3", + "@cornerstonejs/core": "^2.2.4", + "@cornerstonejs/tools": "^2.2.4", "@ohif/core": "3.9.0", "@ohif/extension-cornerstone-dicom-sr": "3.9.0", "@ohif/extension-default": "3.9.0", diff --git a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx index 619c5d653..353548026 100644 --- a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx +++ b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import { PanelMeasurement } from '@ohif/extension-cornerstone'; -import { useViewportGrid } from '@ohif/ui'; +import { useViewportGrid, ButtonEnums, Dialog } from '@ohif/ui'; import { StudySummary } from '@ohif/ui-next'; import { Button, Icons } from '@ohif/ui-next'; import { DicomMetadataStore, utils } from '@ohif/core'; @@ -23,7 +23,7 @@ function PanelMeasurementTableTracking({ }: withAppTypes) { const [viewportGrid] = useViewportGrid(); const { t } = useTranslation('MeasurementTable'); - const { measurementService, customizationService } = servicesManager.services; + const { measurementService, customizationService, uiDialogService } = servicesManager.services; const [trackedMeasurements, sendTrackedMeasurementsEvent] = useTrackedMeasurements(); const { trackedStudy, trackedSeries } = trackedMeasurements.context; const [displayStudySummary, setDisplayStudySummary] = useState( @@ -140,7 +140,47 @@ function PanelMeasurementTableTracking({ variant="ghost" className="pl-0.5" onClick={() => { - measurementService.clearMeasurements(); + uiDialogService.create({ + id: 'delete-all-measurements', + centralize: true, + isDraggable: false, + showOverlay: true, + content: Dialog, + contentProps: { + title: 'Delete All Measurements', + body: () => ( +
+

Are you sure you want to delete all measurements?

+

This action cannot be undone.

+
+ ), + actions: [ + { + id: 'cancel', + text: 'Cancel', + type: ButtonEnums.type.secondary, + }, + { + id: 'yes', + text: 'Delete All', + type: ButtonEnums.type.primary, + classes: ['delete-all-yes-button'], + }, + ], + onClose: () => uiDialogService.dismiss({ id: 'delete-all-measurements' }), + onSubmit: async ({ action }) => { + switch (action.id) { + case 'yes': + measurementService.clearMeasurements(); + uiDialogService.dismiss({ id: 'delete-all-measurements' }); + break; + case 'cancel': + uiDialogService.dismiss({ id: 'delete-all-measurements' }); + break; + } + }, + }, + }); }} > diff --git a/platform/app/package.json b/platform/app/package.json index e3969388e..8628196da 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -53,7 +53,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^2.2.3", + "@cornerstonejs/dicom-image-loader": "^2.2.4", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.9.0", "@ohif/extension-cornerstone": "3.9.0", diff --git a/platform/core/package.json b/platform/core/package.json index da4ac8c47..c3d11f929 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^2.2.3", + "@cornerstonejs/dicom-image-loader": "^2.2.4", "@ohif/ui": "3.9.0", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/core/src/services/UIDialogService/UIDialogService.ts b/platform/core/src/services/UIDialogService/UIDialogService.ts index 079a1943a..c9aa4750f 100644 --- a/platform/core/src/services/UIDialogService/UIDialogService.ts +++ b/platform/core/src/services/UIDialogService/UIDialogService.ts @@ -28,14 +28,14 @@ class UIDialogService extends PubSubService { id, content, contentProps, - onStart, - onDrag, - onStop, + onStart = () => {}, + onDrag = () => {}, + onStop = () => {}, centralize = false, preservePosition = true, isDraggable = true, showOverlay = false, - defaultPosition, + defaultPosition = { x: 0, y: 0 }, }) { return this.serviceImplementation._create({ id, diff --git a/version.txt b/version.txt index b72ad011f..33f465d1a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.9.0 \ No newline at end of file +3.9.1 \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index cfe857ef1..2565a5062 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2580,10 +2580,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.2.3.tgz#6dc37ec2b002c8a1406924c4545509d0bda575af" - integrity sha512-hVUsE2bghSshQGjRszksBk+2UdzGyOzzqNU7+OtJkMHkmiEWvZoBYNlEp7w/hQsF6bKaHnsc0zJGZ3txho65sQ== +"@cornerstonejs/adapters@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.2.4.tgz#6f5edf17dc5f76cb6c80d67a4b70c38c1ca05700" + integrity sha512-sWatnhu93NjaT8MsrJIsexpxzFrUmtxrS6lSBca9CWNDMLR1t8boff6fmvGKE8TYbQkPQZrytRJBSw5O6pWdMg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -2616,19 +2616,19 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.2.3.tgz#e6fe86e38b41269eb6347de1b2445a5d80d00e1a" - integrity sha512-dq+CYUY2sk/Kpwc2lpnbr+9/9upKhzU/F4phdaVR0OfFlQRSJuv0lyI3lgyDw31ZsNt7H6LWcx5DtMTO+ZFtJg== +"@cornerstonejs/core@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.2.4.tgz#eeb4e383a332e43186299cb19ddd46dad1013437" + integrity sha512-nw14sTuz02o2W8a0WT0dH4J1B7iZ4KZU5r0KDnYkpDHjL1Y30lmSt098Pxb4Z9Xj+GJYunlWv962RtVhnWbSZA== dependencies: "@kitware/vtk.js" "32.1.0" comlink "^4.4.1" gl-matrix "^3.4.3" -"@cornerstonejs/dicom-image-loader@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.2.3.tgz#021a312f37afdd924b13762780bfa9ebcfa3a10e" - integrity sha512-OvReDd+hgO9O9TFeXv8sEntDva+I4tb4vR0SVJ97u39ye6NEWHCb4PJ6bLZIQ2yNpKQqUDlS5LQc5At+QxfkDA== +"@cornerstonejs/dicom-image-loader@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.2.4.tgz#117635b11a0230381fe31a5119271b472f7048d5" + integrity sha512-DwRZrTaVrrH7aGqFibcL+Ijnygtd3sxovxREzHWqGrmmxpwsm+aA9Z5nXeg58hk5Kvd0Zt8iwlrtcnTeD2DPiw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" @@ -2639,10 +2639,10 @@ pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/tools@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.2.3.tgz#31b04918861a2e76249eb62340f63ae7645ca7c1" - integrity sha512-GyMz7LwssYk0D8ao4OPrWlob8jIKzEHYEJdYQbZ72rTOKHbpmu147rUjQ3AiihL5T1lftFsV4t9kTfUTHd2ZBA== +"@cornerstonejs/tools@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.2.4.tgz#3fa5e99daffc73434d7385885dda09e17820756c" + integrity sha512-pEqJzAp4/ZtVmWqPG7C/hH/09dt6OBoRq5fiEJE/mxJXbe77FeDq5zQy8Irv7IkDpXpnc8kL+6L9Zb5awc3uRA== dependencies: "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1"