From 149d6d049cd333b9e5846576b403ff387558a66f Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 4 Feb 2025 12:25:10 -0500 Subject: [PATCH] fix(core): Address 3D reconstruction and Android compatibility issues and clean up 4D data mode (#4762) --- .circleci/config.yml | 2 +- bun.lock | 310 +++++++++--------- .../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 +- .../src/panels/DynamicVolumeControls.tsx | 83 +++-- .../src/panels/PanelGenerateImage.tsx | 50 +-- extensions/cornerstone/package.json | 8 +- .../src/components/CinePlayer/CinePlayer.tsx | 32 +- extensions/cornerstone/src/hps/fourUp.ts | 39 +-- extensions/cornerstone/src/hps/main3D.ts | 38 +-- extensions/cornerstone/src/hps/mpr.ts | 4 +- .../src/hps/mprAnd3DVolumeViewport.ts | 39 +-- extensions/cornerstone/src/hps/only3D.ts | 3 + extensions/cornerstone/src/hps/primary3D.ts | 38 +-- .../cornerstone/src/hps/primaryAxial.ts | 38 +-- .../src/utils/ActiveViewportBehavior.tsx | 48 ++- .../customizations/panelMeasurementItem.tsx | 5 + .../src/getCustomizationModule.ts | 12 + extensions/dicom-microscopy/src/index.tsx | 3 + extensions/measurement-tracking/package.json | 4 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- .../HangingProtocolService.ts | 18 +- .../platform/services/ui/ui-modal-service.md | 10 +- .../pages/components/NumericMetaShowcase.tsx | 126 +++++-- .../src/components/Numeric/Numeric.tsx | 53 ++- platform/ui-next/src/index.ts | 2 + .../src/components/CinePlayer/CinePlayer.tsx | 28 +- .../MeasurementTable/MeasurementTable.tsx | 9 +- yarn.lock | 32 +- 32 files changed, 528 insertions(+), 528 deletions(-) create mode 100644 extensions/dicom-microscopy/src/customizations/panelMeasurementItem.tsx create mode 100644 extensions/dicom-microscopy/src/getCustomizationModule.ts diff --git a/.circleci/config.yml b/.circleci/config.yml index 70b88eabd35..d05ddd4b376 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.1 orbs: codecov: codecov/codecov@1.0.5 - cypress: cypress-io/cypress@3.3.1 + cypress: cypress-io/cypress@3.4.2 defaults: &defaults docker: diff --git a/bun.lock b/bun.lock index 427232eafd4..4424fa45695 100644 --- a/bun.lock +++ b/bun.lock @@ -32,7 +32,7 @@ }, "addOns/externals/devDependencies": { "name": "@externals/devDependencies", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "@kitware/vtk.js": "32.1.1", @@ -120,19 +120,19 @@ }, "addOns/externals/dicom-microscopy-viewer": { "name": "@externals/dicom-microscopy-viewer", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "dicom-microscopy-viewer": "^0.46.1", }, }, "extensions/cornerstone": { "name": "@ohif/extension-cornerstone", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.17.2", - "@cornerstonejs/core": "^2.17.2", - "@cornerstonejs/tools": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", "@icr/polyseg-wasm": "^0.4.0", "@itk-wasm/morphological-contour-interpolation": "1.1.0", "@kitware/vtk.js": "32.1.1", @@ -150,9 +150,9 @@ "@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.17.2", - "@ohif/core": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@cornerstonejs/dicom-image-loader": "^2.19.3", + "@ohif/core": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", @@ -164,19 +164,19 @@ }, "extensions/cornerstone-dicom-pmap": { "name": "@ohif/extension-cornerstone-dicom-pmap", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.17.2", - "@cornerstonejs/core": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", "@kitware/vtk.js": "32.1.1", "react-color": "^2.19.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", "prop-types": "^15.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -187,16 +187,16 @@ }, "extensions/cornerstone-dicom-rt": { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "react-color": "^2.19.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", "prop-types": "^15.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -207,19 +207,19 @@ }, "extensions/cornerstone-dicom-seg": { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.17.2", - "@cornerstonejs/core": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", "@kitware/vtk.js": "32.1.1", "react-color": "^2.19.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", "prop-types": "^15.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -230,19 +230,19 @@ }, "extensions/cornerstone-dicom-sr": { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^2.17.2", - "@cornerstonejs/core": "^2.17.2", - "@cornerstonejs/tools": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-measurement-tracking": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-measurement-tracking": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", @@ -252,19 +252,19 @@ }, "extensions/cornerstone-dynamic-volume": { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/core": "^2.17.2", - "@cornerstonejs/tools": "^2.17.2", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", @@ -274,14 +274,14 @@ }, "extensions/default": { "name": "@ohif/extension-default", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "@cornerstonejs/calculate-suv": "^1.1.0", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", "dcmjs": "*", "dicomweb-client": "^0.10.4", "prop-types": "^15.6.2", @@ -295,7 +295,7 @@ }, "extensions/dicom-microscopy": { "name": "@ohif/extension-dicom-microscopy", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "@cornerstonejs/codec-charls": "^1.2.3", @@ -305,10 +305,10 @@ "mathjs": "^12.4.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "prop-types": "^15.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -319,14 +319,14 @@ }, "extensions/dicom-pdf": { "name": "@ohif/extension-dicom-pdf", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", @@ -336,14 +336,14 @@ }, "extensions/dicom-video": { "name": "@ohif/extension-dicom-video", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", @@ -353,20 +353,20 @@ }, "extensions/measurement-tracking": { "name": "@ohif/extension-measurement-tracking", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/ui": "3.10.0-beta.91", "@xstate/react": "^3.2.2", "xstate": "^4.10.0", }, "peerDependencies": { - "@cornerstonejs/core": "^2.17.2", - "@cornerstonejs/tools": "^2.17.2", - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "classnames": "^2.3.2", "dcmjs": "*", "lodash.debounce": "^4.0.8", @@ -379,14 +379,14 @@ }, "extensions/test-extension": { "name": "@ohif/extension-test", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "0.38.0", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", @@ -396,14 +396,14 @@ }, "extensions/tmtv": { "name": "@ohif/extension-tmtv", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "classnames": "^2.3.2", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", "dcmjs": "*", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", @@ -413,7 +413,7 @@ }, "modes/basic-dev-mode": { "name": "@ohif/mode-basic-dev-mode", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", @@ -423,17 +423,17 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", }, }, "modes/basic-test-mode": { "name": "@ohif/mode-test", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", @@ -443,19 +443,19 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", - "@ohif/extension-measurement-tracking": "3.10.0-beta.82", - "@ohif/extension-test": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", + "@ohif/extension-measurement-tracking": "3.10.0-beta.91", + "@ohif/extension-test": "3.10.0-beta.91", }, }, "modes/longitudinal": { "name": "@ohif/mode-longitudinal", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", @@ -465,32 +465,32 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", - "@ohif/extension-measurement-tracking": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", + "@ohif/extension-measurement-tracking": "3.10.0-beta.91", }, }, "modes/microscopy": { "name": "@ohif/mode-microscopy", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-dicom-microscopy": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-dicom-microscopy": "3.10.0-beta.91", }, }, "modes/preclinical-4d": { "name": "@ohif/mode-preclinical-4d", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", }, @@ -499,17 +499,17 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-tmtv": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-tmtv": "3.10.0-beta.91", }, }, "modes/segmentation": { "name": "@ohif/mode-segmentation", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", @@ -541,19 +541,19 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", }, }, "modes/tmtv": { "name": "@ohif/mode-tmtv", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next": "^17.0.3", @@ -563,43 +563,43 @@ "webpack-merge": "^5.7.3", }, "peerDependencies": { - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", - "@ohif/extension-measurement-tracking": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", + "@ohif/extension-measurement-tracking": "3.10.0-beta.91", }, }, "platform/app": { "name": "@ohif/app", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "@cornerstonejs/codec-charls": "^1.2.3", "@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.17.2", + "@cornerstonejs/dicom-image-loader": "^2.19.3", "@emotion/serialize": "^1.1.3", - "@ohif/core": "3.10.0-beta.82", - "@ohif/extension-cornerstone": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.82", - "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.82", - "@ohif/extension-default": "3.10.0-beta.82", - "@ohif/extension-dicom-microscopy": "3.10.0-beta.82", - "@ohif/extension-dicom-pdf": "3.10.0-beta.82", - "@ohif/extension-dicom-video": "3.10.0-beta.82", - "@ohif/extension-test": "3.10.0-beta.82", - "@ohif/i18n": "3.10.0-beta.82", - "@ohif/mode-basic-dev-mode": "3.10.0-beta.82", - "@ohif/mode-longitudinal": "3.10.0-beta.82", - "@ohif/mode-microscopy": "3.10.0-beta.82", - "@ohif/mode-test": "3.10.0-beta.82", - "@ohif/ui": "3.10.0-beta.82", - "@ohif/ui-next": "3.10.0-beta.82", + "@ohif/core": "3.10.0-beta.91", + "@ohif/extension-cornerstone": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.91", + "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.91", + "@ohif/extension-default": "3.10.0-beta.91", + "@ohif/extension-dicom-microscopy": "3.10.0-beta.91", + "@ohif/extension-dicom-pdf": "3.10.0-beta.91", + "@ohif/extension-dicom-video": "3.10.0-beta.91", + "@ohif/extension-test": "3.10.0-beta.91", + "@ohif/i18n": "3.10.0-beta.91", + "@ohif/mode-basic-dev-mode": "3.10.0-beta.91", + "@ohif/mode-longitudinal": "3.10.0-beta.91", + "@ohif/mode-microscopy": "3.10.0-beta.91", + "@ohif/mode-test": "3.10.0-beta.91", + "@ohif/ui": "3.10.0-beta.91", + "@ohif/ui-next": "3.10.0-beta.91", "@svgr/webpack": "^8.1.0", "@types/react": "^18.3.3", "classnames": "^2.3.2", @@ -641,7 +641,7 @@ }, "platform/cli": { "name": "@ohif/cli", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "bin": { "ohif-cli": "src/index.js" }, @@ -665,7 +665,7 @@ }, "platform/core": { "name": "@ohif/core", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "dcmjs": "*", @@ -691,15 +691,15 @@ "@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.17.2", - "@ohif/ui": "3.10.0-beta.82", + "@cornerstonejs/dicom-image-loader": "^2.19.3", + "@ohif/ui": "3.10.0-beta.91", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21", }, }, "platform/i18n": { "name": "@ohif/i18n", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@babel/runtime": "^7.20.13", "i18next-locize-backend": "^2.0.0", @@ -724,7 +724,7 @@ }, "platform/ui": { "name": "@ohif/ui", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@testing-library/react": "^13.1.0", "browser-detect": "^0.2.28", @@ -782,7 +782,7 @@ }, "platform/ui-next": { "name": "@ohif/ui-next", - "version": "3.10.0-beta.82", + "version": "3.10.0-beta.91", "dependencies": { "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-checkbox": "^1.1.1", @@ -1091,7 +1091,7 @@ "@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="], - "@cornerstonejs/adapters": ["@cornerstonejs/adapters@2.18.2", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^2.18.2", "@cornerstonejs/tools": "^2.18.2" } }, "sha512-Tm2izseStXcPQwrXmD6T3X8ybnFwjPyGltVTYvqwwlzLw4quuPw1B60scvY13rKrg3Pl04smYNqfw37nzIFjQQ=="], + "@cornerstonejs/adapters": ["@cornerstonejs/adapters@2.19.3", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.3", "@cornerstonejs/tools": "^2.19.3" } }, "sha512-QuugcUCelTW9bxhO1yewuuf6UHbIufiWMU+plNp40RwR92hgWi1SB9K/gFhtSRxVBqnkbG3Sh6mZRSuS3KcP1A=="], "@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="], @@ -1103,11 +1103,11 @@ "@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="], - "@cornerstonejs/core": ["@cornerstonejs/core@2.18.2", "", { "dependencies": { "@kitware/vtk.js": "32.9.0", "comlink": "^4.4.1", "gl-matrix": "^3.4.3" } }, "sha512-nlkWBL56I9gYFy/77loFyPjFGe7R72kQFRPtcIcGZ89Jnz3nwZSjGma7taJJjiSfb2YnUUhmT4HvzsqQlClPdg=="], + "@cornerstonejs/core": ["@cornerstonejs/core@2.19.3", "", { "dependencies": { "@kitware/vtk.js": "32.9.0", "comlink": "^4.4.1", "gl-matrix": "^3.4.3" } }, "sha512-yqPFpfzKCNj9U94q1do8oE3adg7+/t+bc4uBHrNPCvbUyOqaWZzentw5+79cj5hhHif2OG0jVNRSPr+kbBBk2Q=="], - "@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@2.18.2", "", { "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.5", "comlink": "^4.4.1", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^2.18.2", "dicom-parser": "^1.8.9" } }, "sha512-m9GFwsrChJdWGYG8OZGGeSft89cUaPLlkw2pd5kDLxJz0874nJQgTp27L7o/mjRXqEijQhiPNtWdSvwUZv60pg=="], + "@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@2.19.3", "", { "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.5", "comlink": "^4.4.1", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.3", "dicom-parser": "^1.8.9" } }, "sha512-/VTmaDabIqF8lBzPq0yK3yF6TIb3vTEoMeyvXTQWpPG1wjiTRAaYql5uQjCgE1p/xCXVA3Iq+h2rk90HWFu6nA=="], - "@cornerstonejs/tools": ["@cornerstonejs/tools@2.18.2", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^2.18.2", "@kitware/vtk.js": "32.9.0", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-Xxfl3JWB86tN/GAawFwKApfglu+3rFZyRSKyvnpUl8aAPomjhvbt93l2H8VDliw+JuCEgrUwCu0LQl0wumpR2Q=="], + "@cornerstonejs/tools": ["@cornerstonejs/tools@2.19.3", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.3", "@kitware/vtk.js": "32.9.0", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-bJFhE2b1B2k8enZT9vZqspLXmSHqCLAOFwib5FWi4/9AtNydVaDBIafAYq/gCXTcF8YcbsUhBhWQL1LU7ejkWg=="], "@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@1.1.1", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA=="], diff --git a/extensions/cornerstone-dicom-pmap/package.json b/extensions/cornerstone-dicom-pmap/package.json index a6709e29680..9fcc70ecaa1 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.17.2", - "@cornerstonejs/core": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", "@kitware/vtk.js": "32.1.1", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index 358053ca93c..f0bc0e6b1bc 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.17.2", - "@cornerstonejs/core": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", "@kitware/vtk.js": "32.1.1", "react-color": "^2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 5f7ddef26a6..c2dc874582c 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.17.2", - "@cornerstonejs/core": "^2.17.2", - "@cornerstonejs/tools": "^2.17.2", + "@cornerstonejs/adapters": "^2.19.3", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index e318380c49d..d83bdde3e70 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.17.2", - "@cornerstonejs/tools": "^2.17.2", + "@cornerstonejs/core": "^2.19.3", + "@cornerstonejs/tools": "^2.19.3", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx index f5dfa07cce5..53aab398d6f 100644 --- a/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx +++ b/extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { Button, PanelSection, ButtonGroup, IconButton, InputNumber } from '@ohif/ui'; -import { DoubleSlider, Icons, Tooltip, TooltipTrigger, TooltipContent } from '@ohif/ui-next'; +import { Icons, Tooltip, TooltipTrigger, TooltipContent, Numeric } from '@ohif/ui-next'; import { Enums } from '@cornerstonejs/core'; const controlClassNames = { @@ -20,7 +20,10 @@ const Header = ({ title, tooltip }) => ( /> - +
{tooltip}
@@ -37,23 +40,16 @@ const DynamicVolumeControls = ({ minFps, maxFps, // Frames - currentFrameIndex, - onFrameChange, - framesLength, + currentDimensionGroupNumber, + onDimensionGroupChange, + numDimensionGroups, onGenerate, onDoubleRangeChange, + rangeValues, onDynamicClick, }) => { const [computedView, setComputedView] = useState(false); const [computeViewMode, setComputeViewMode] = useState(Enums.DynamicOperatorType.SUM); - const [sliderRangeValues, setSliderRangeValues] = useState([0, framesLength - 1]); - - const handleSliderChange = newValues => { - onDoubleRangeChange(newValues); - setSliderRangeValues(newValues); - }; - - const formatLabel = value => Math.round(value); return (
@@ -89,7 +85,7 @@ const DynamicVolumeControls = ({
-
@@ -111,9 +107,10 @@ const DynamicVolumeControls = ({
Operation Buttons (SUM, AVERAGE, SUBTRACT): Select the mathematical operation to be applied to the data set. -
Range Slider: Choose the numeric range within which the operation will be - performed. -
Generate Button: Execute the chosen operation on the specified range of data. +
Range Slider: Choose the numeric range of dimension groups within which the + operation will be performed. +
+ Generate Button: Execute the chosen operation on the specified range of data.
} /> @@ -141,15 +138,15 @@ const DynamicVolumeControls = ({
- + + +