From 48f2f6fb13f9ba0aa03ad51afd2812466bcb2f58 Mon Sep 17 00:00:00 2001 From: Bill Wallace Date: Thu, 5 Feb 2026 11:49:49 -0500 Subject: [PATCH] fix(HistoryMemo): Segmentation delete wasn't remembered (#5775) Will address a few more comments in a separate PR released after this one into 3.13 * fix(HistoryMemo): Segmentation delete wasn't remembered * Temporary add of package.json linking * fix: Use newer dcmjs version and delete segmentation with history cs3d --- addOns/package.json | 2 +- bun.lock | 405 +++++++++--------- .../cornerstone-dicom-pmap/package.json | 4 +- extensions/cornerstone-dicom-seg/package.json | 4 +- extensions/cornerstone-dicom-sr/package.json | 8 +- .../cornerstone-dynamic-volume/package.json | 6 +- extensions/cornerstone/package.json | 16 +- .../SegmentationService.test.ts | 4 +- .../SegmentationService.ts | 83 +++- .../src/utils/updateSegmentationStats.ts | 6 + extensions/default/package.json | 2 +- extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/package.json | 6 +- extensions/test-extension/package.json | 2 +- extensions/tmtv/package.json | 2 +- extensions/usAnnotation/package.json | 4 +- modes/usAnnotation/package.json | 4 +- package.json | 2 +- platform/app/package.json | 4 +- platform/core/package.json | 6 +- yarn.lock | 64 +-- 22 files changed, 363 insertions(+), 275 deletions(-) diff --git a/addOns/package.json b/addOns/package.json index d8a020291..931e844ae 100644 --- a/addOns/package.json +++ b/addOns/package.json @@ -38,7 +38,7 @@ "resolutions": { "**/@babel/runtime": "7.28.2", "commander": "8.3.0", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicomweb-client": "0.10.4", "nth-check": "2.1.1", "trim-newlines": "5.0.0", diff --git a/bun.lock b/bun.lock index cef064f74..63fe9d70a 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "ohif-monorepo-root", @@ -52,7 +53,7 @@ }, "addOns/externals/devDependencies": { "name": "@externals/devDependencies", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "@kitware/vtk.js": "34.15.1", @@ -137,22 +138,22 @@ }, "addOns/externals/dicom-microscopy-viewer": { "name": "@externals/dicom-microscopy-viewer", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "dicom-microscopy-viewer": "0.48.17", }, }, "extensions/cornerstone": { "name": "@ohif/extension-cornerstone", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/ai": "4.15.28", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/labelmap-interpolation": "4.15.28", - "@cornerstonejs/polymorphic-segmentation": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/ai": "4.15.29", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/labelmap-interpolation": "4.15.29", + "@cornerstonejs/polymorphic-segmentation": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "@icr/polyseg-wasm": "0.4.0", "@itk-wasm/morphological-contour-interpolation": "1.1.0", "@kitware/vtk.js": "34.15.1", @@ -170,10 +171,10 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/dicom-image-loader": "4.15.28", - "@ohif/core": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@cornerstonejs/dicom-image-loader": "4.15.29", + "@ohif/core": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -184,19 +185,19 @@ }, "extensions/cornerstone-dicom-pmap": { "name": "@ohif/extension-cornerstone-dicom-pmap", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", "@kitware/vtk.js": "34.15.1", "react-color": "2.19.3", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", @@ -207,16 +208,16 @@ }, "extensions/cornerstone-dicom-rt": { "name": "@ohif/extension-cornerstone-dicom-rt", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "react-color": "2.19.3", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", @@ -227,19 +228,19 @@ }, "extensions/cornerstone-dicom-seg": { "name": "@ohif/extension-cornerstone-dicom-seg", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", "@kitware/vtk.js": "34.15.1", "react-color": "2.19.3", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", @@ -250,20 +251,20 @@ }, "extensions/cornerstone-dicom-sr": { "name": "@ohif/extension-cornerstone-dicom-sr", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-measurement-tracking": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-measurement-tracking": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -272,20 +273,20 @@ }, "extensions/cornerstone-dynamic-volume": { "name": "@ohif/extension-cornerstone-dynamic-volume", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -294,7 +295,7 @@ }, "extensions/default": { "name": "@ohif/extension-default", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "@cornerstonejs/calculate-suv": "1.1.0", @@ -302,9 +303,9 @@ "lodash.uniqby": "4.7.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicomweb-client": "0.10.4", "prop-types": "15.8.1", "react": "18.3.1", @@ -317,7 +318,7 @@ }, "extensions/dicom-microscopy": { "name": "@ohif/extension-dicom-microscopy", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "@cornerstonejs/codec-charls": "1.2.3", @@ -328,10 +329,10 @@ "mathjs": "12.4.3", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", @@ -342,15 +343,15 @@ }, "extensions/dicom-pdf": { "name": "@ohif/extension-dicom-pdf", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -359,15 +360,15 @@ }, "extensions/dicom-video": { "name": "@ohif/extension-dicom-video", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -376,22 +377,22 @@ }, "extensions/measurement-tracking": { "name": "@ohif/extension-measurement-tracking", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@ohif/ui": "3.12.0-beta.132", + "@ohif/ui": "3.12.0-beta.133", "@xstate/react": "3.2.2", "xstate": "4.38.3", }, "peerDependencies": { - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", "classnames": "2.5.1", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "lodash.debounce": "4.0.8", "prop-types": "15.8.1", "react": "18.3.1", @@ -402,15 +403,15 @@ }, "extensions/test-extension": { "name": "@ohif/extension-test", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -419,15 +420,15 @@ }, "extensions/tmtv": { "name": "@ohif/extension-tmtv", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "classnames": "2.5.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.127", - "@ohif/ui": "3.12.0-beta.127", - "dcmjs": "0.48.0", + "@ohif/core": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -436,16 +437,16 @@ }, "extensions/usAnnotation": { "name": "@ohif/extension-ultrasound-pleura-bline", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", - "@ohif/ui-next": "3.12.0-beta.132", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", + "@ohif/ui-next": "3.12.0-beta.133", }, "devDependencies": { "@babel/core": "7.28.0", @@ -488,7 +489,7 @@ }, "modes/basic": { "name": "@ohif/mode-basic", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", }, @@ -497,19 +498,19 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/extension-dicom-pdf": "3.12.0-beta.132", - "@ohif/extension-dicom-video": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", }, }, "modes/basic-dev-mode": { "name": "@ohif/mode-basic-dev-mode", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", @@ -519,17 +520,17 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/extension-dicom-pdf": "3.12.0-beta.132", - "@ohif/extension-dicom-video": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", }, }, "modes/basic-test-mode": { "name": "@ohif/mode-test", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", @@ -539,19 +540,19 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/extension-dicom-pdf": "3.12.0-beta.132", - "@ohif/extension-dicom-video": "3.12.0-beta.132", - "@ohif/extension-measurement-tracking": "3.12.0-beta.132", - "@ohif/extension-test": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", + "@ohif/extension-measurement-tracking": "3.12.0-beta.133", + "@ohif/extension-test": "3.12.0-beta.133", }, }, "modes/longitudinal": { "name": "@ohif/mode-longitudinal", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", @@ -561,33 +562,33 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/extension-dicom-pdf": "3.12.0-beta.132", - "@ohif/extension-dicom-video": "3.12.0-beta.132", - "@ohif/extension-measurement-tracking": "3.12.0-beta.132", - "@ohif/mode-basic": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", + "@ohif/extension-measurement-tracking": "3.12.0-beta.133", + "@ohif/mode-basic": "3.12.0-beta.133", }, }, "modes/microscopy": { "name": "@ohif/mode-microscopy", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-dicom-microscopy": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-dicom-microscopy": "3.12.0-beta.133", }, }, "modes/preclinical-4d": { "name": "@ohif/mode-preclinical-4d", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", }, @@ -596,17 +597,17 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.127", - "@ohif/extension-cornerstone": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dynamic-volume": "3.12.0-beta.127", - "@ohif/extension-default": "3.12.0-beta.127", - "@ohif/extension-tmtv": "3.12.0-beta.127", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dynamic-volume": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-tmtv": "3.12.0-beta.133", }, }, "modes/segmentation": { "name": "@ohif/mode-segmentation", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", @@ -638,20 +639,20 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.127", - "@ohif/extension-cornerstone": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.127", - "@ohif/extension-default": "3.12.0-beta.127", - "@ohif/extension-dicom-pdf": "3.12.0-beta.127", - "@ohif/extension-dicom-video": "3.12.0-beta.127", - "@ohif/mode-basic": "3.12.0-beta.127", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", + "@ohif/mode-basic": "3.12.0-beta.133", }, }, "modes/tmtv": { "name": "@ohif/mode-tmtv", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next": "17.3.1", @@ -661,25 +662,25 @@ "webpack-merge": "5.10.0", }, "peerDependencies": { - "@ohif/core": "3.12.0-beta.127", - "@ohif/extension-cornerstone": "3.12.0-beta.127", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.127", - "@ohif/extension-default": "3.12.0-beta.127", - "@ohif/extension-dicom-pdf": "3.12.0-beta.127", - "@ohif/extension-dicom-video": "3.12.0-beta.127", - "@ohif/extension-measurement-tracking": "3.12.0-beta.127", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", + "@ohif/extension-measurement-tracking": "3.12.0-beta.133", }, }, "modes/usAnnotation": { "name": "@ohif/mode-ultrasound-pleura-bline", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.132", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.133", "i18next": "17.3.1", }, "devDependencies": { @@ -711,40 +712,40 @@ }, "platform/app": { "name": "@ohif/app", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "@cornerstonejs/codec-charls": "1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/dicom-image-loader": "4.15.28", + "@cornerstonejs/dicom-image-loader": "4.15.29", "@emotion/serialize": "1.3.3", - "@ohif/core": "3.12.0-beta.132", - "@ohif/extension-cornerstone": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.132", - "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.132", - "@ohif/extension-default": "3.12.0-beta.132", - "@ohif/extension-dicom-microscopy": "3.12.0-beta.132", - "@ohif/extension-dicom-pdf": "3.12.0-beta.132", - "@ohif/extension-dicom-video": "3.12.0-beta.132", - "@ohif/extension-test": "3.12.0-beta.132", - "@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.132", - "@ohif/i18n": "3.12.0-beta.132", - "@ohif/mode-basic-dev-mode": "3.12.0-beta.132", - "@ohif/mode-longitudinal": "3.12.0-beta.132", - "@ohif/mode-microscopy": "3.12.0-beta.132", - "@ohif/mode-test": "3.12.0-beta.132", - "@ohif/mode-ultrasound-pleura-bline": "3.12.0-beta.132", - "@ohif/ui": "3.12.0-beta.132", - "@ohif/ui-next": "3.12.0-beta.132", + "@ohif/core": "3.12.0-beta.133", + "@ohif/extension-cornerstone": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.133", + "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", + "@ohif/extension-default": "3.12.0-beta.133", + "@ohif/extension-dicom-microscopy": "3.12.0-beta.133", + "@ohif/extension-dicom-pdf": "3.12.0-beta.133", + "@ohif/extension-dicom-video": "3.12.0-beta.133", + "@ohif/extension-test": "3.12.0-beta.133", + "@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.133", + "@ohif/i18n": "3.12.0-beta.133", + "@ohif/mode-basic-dev-mode": "3.12.0-beta.133", + "@ohif/mode-longitudinal": "3.12.0-beta.133", + "@ohif/mode-microscopy": "3.12.0-beta.133", + "@ohif/mode-test": "3.12.0-beta.133", + "@ohif/mode-ultrasound-pleura-bline": "3.12.0-beta.133", + "@ohif/ui": "3.12.0-beta.133", + "@ohif/ui-next": "3.12.0-beta.133", "@svgr/webpack": "8.1.0", "@types/react": "18.3.23", "classnames": "2.5.1", "core-js": "3.45.1", "cornerstone-math": "0.1.10", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "detect-gpu": "4.0.50", "dicom-parser": "1.8.21", "dotenv-webpack": "1.8.0", @@ -790,7 +791,7 @@ }, "platform/cli": { "name": "@ohif/cli", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "bin": { "ohif-cli": "src/index.js", }, @@ -814,10 +815,10 @@ }, "platform/core": { "name": "@ohif/core", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicomweb-client": "0.10.4", "gl-matrix": "3.4.3", "immutability-helper": "3.1.1", @@ -839,16 +840,16 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/dicom-image-loader": "4.15.28", - "@ohif/ui": "3.12.0-beta.132", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/dicom-image-loader": "4.15.29", + "@ohif/ui": "3.12.0-beta.133", "cornerstone-math": "0.1.9", "dicom-parser": "1.8.21", }, }, "platform/i18n": { "name": "@ohif/i18n", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@babel/runtime": "7.28.2", "i18next-locize-backend": "2.2.2", @@ -873,7 +874,7 @@ }, "platform/ui": { "name": "@ohif/ui", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@testing-library/react": "13.4.0", "browser-detect": "0.2.28", @@ -924,7 +925,7 @@ }, "platform/ui-next": { "name": "@ohif/ui-next", - "version": "3.12.0-beta.132", + "version": "3.12.0-beta.133", "dependencies": { "@radix-ui/react-accordion": "1.2.11", "@radix-ui/react-checkbox": "1.3.2", @@ -976,7 +977,7 @@ "core-js": "3.45.1", "cross-env": "7.0.3", "cross-spawn": "7.0.6", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "glob-parent": "6.0.2", "node-forge": "1.3.2", "nth-check": "2.1.1", @@ -1233,9 +1234,9 @@ "@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], - "@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.15.28", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.48.0", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28", "@cornerstonejs/tools": "4.15.28" } }, "sha512-ttePkNXDJtDK/ZfisF8bJrr9jN08I+gQXQNgVzDtM0IQ8TYB0LasOp3TkH3aAG3kKwyDKcJBH3Kit7bYJWu2zg=="], + "@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.15.29", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.48.0", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29", "@cornerstonejs/tools": "4.15.29" } }, "sha512-OcG3YtCQ+C7X/f7buK3dsMOc8NyqsgH/LZRT/JbvppUnqhhfyKIpBTtJG+2+roMyLsi3QrsCeI9Eu6KaQgFFvw=="], - "@cornerstonejs/ai": ["@cornerstonejs/ai@4.15.28", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.48.0", "gl-matrix": "3.4.3", "lodash.clonedeep": "4.5.0", "ndarray": "1.0.19", "onnxruntime-common": "1.17.1", "onnxruntime-web": "1.17.1" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28", "@cornerstonejs/tools": "4.15.28" } }, "sha512-DYgqCpCoG2Sn8d7Hbqr5PgFnetkCOSozO3JVY0LpcetU3hYyvuX1WfRYVCA8JlwbwDlEQ8BvP1cm+2m93g2RNA=="], + "@cornerstonejs/ai": ["@cornerstonejs/ai@4.15.29", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.48.0", "gl-matrix": "3.4.3", "lodash.clonedeep": "4.5.0", "ndarray": "1.0.19", "onnxruntime-common": "1.17.1", "onnxruntime-web": "1.17.1" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29", "@cornerstonejs/tools": "4.15.29" } }, "sha512-fTbfAE7HpXES+vPYzhP0eGljmwykGkbY38LymbMsrn7p6DmvKuJIh4sfUzUtIPW+5kMnCiXAEUhi3+oebQZs0g=="], "@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="], @@ -1247,15 +1248,15 @@ "@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="], - "@cornerstonejs/core": ["@cornerstonejs/core@4.15.28", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-IIRbxcSRvFnBw+ridQarzTxn7OcDUWJArmwocRZJ4t31/LYSEy5ioby50of46DsuDGVB6nYjMPRGP2VGXxo1KQ=="], + "@cornerstonejs/core": ["@cornerstonejs/core@4.15.29", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-o+5gXbxtZde1GIULmw+hWwf6KI3eiXCre0U1C372jbovxA66JH2t+2VW1nj0F2JRRnO0FjgT/+DWYCWt0ILGoA=="], - "@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.15.28", "", { "dependencies": { "@cornerstonejs/codec-charls": "1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", "comlink": "4.4.2", "dicom-parser": "1.8.21", "jpeg-lossless-decoder-js": "2.1.2", "pako": "2.1.0", "uuid": "9.0.1" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28" } }, "sha512-4YM/3cKI1Rz0/h/X8k6NySi02owUJk17YKBjVLtrGiUF5pqSZ+Tt+KtegY6dnvT3B8J9KBREIudIMWYHnWdckg=="], + "@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.15.29", "", { "dependencies": { "@cornerstonejs/codec-charls": "1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", "comlink": "4.4.2", "dicom-parser": "1.8.21", "jpeg-lossless-decoder-js": "2.1.2", "pako": "2.1.0", "uuid": "9.0.1" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29" } }, "sha512-+R7NoFyVTz2OSKclVQ21dqwgYmFM5q7SZc59YPcxfop7rk2+9H5rRxa04ytKHPjz+N5AlqbLKpJvy/RE10Xcew=="], - "@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.15.28", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28", "@cornerstonejs/tools": "4.15.28", "@kitware/vtk.js": "34.15.1" } }, "sha512-07JWwU03tmUsdMnld0IhA8HndReA1aVGwevPVSKPHIzi0XQT/4XS18qpMgEoKWrmsWdmUzzSYJLbk/yQZ/zshQ=="], + "@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.15.29", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29", "@cornerstonejs/tools": "4.15.29", "@kitware/vtk.js": "34.15.1" } }, "sha512-4pZTcZWv88l59HDSd/arlJ/WNcdxf9WZbm4GiwsrOZxKx8vkLivnKA+pjPUu1LugCJjlLMgugEVnBhZCk+hW7w=="], - "@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.15.28", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28", "@cornerstonejs/tools": "4.15.28", "@kitware/vtk.js": "34.15.1" } }, "sha512-v2vumX+x2JUO6Cv2vyJmizzAIlTBawl+UHQ4idI5AxGW453ByfgDfTOqMEv2HI7BAHpxsSiUzsZAenwSpXPS/Q=="], + "@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.15.29", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29", "@cornerstonejs/tools": "4.15.29", "@kitware/vtk.js": "34.15.1" } }, "sha512-EMCw2Y+bjtI3qfCAv1VbAumWH8XNokEMA1roI03jLzaCvr0+8Jts9Z3P4kyQmOm60veaad9214yM9IZ41J4zGQ=="], - "@cornerstonejs/tools": ["@cornerstonejs/tools@4.15.28", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.15.28", "@kitware/vtk.js": "34.15.1", "@types/d3-array": "3.2.1", "@types/d3-interpolate": "3.0.4", "d3-array": "3.2.4", "d3-interpolate": "3.0.1", "gl-matrix": "3.4.3" } }, "sha512-gv6s6jqmsnsKClcmRQwGu47YwiAG9L+hhoNMAb0gQSa2qJthT/21Q2lWCJy5G4tHEOlfQOMCtGhIdLh5lm7IEQ=="], + "@cornerstonejs/tools": ["@cornerstonejs/tools@4.15.29", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.15.29", "@kitware/vtk.js": "34.15.1", "@types/d3-array": "3.2.1", "@types/d3-interpolate": "3.0.4", "d3-array": "3.2.4", "d3-interpolate": "3.0.1", "gl-matrix": "3.4.3" } }, "sha512-MG+RPJ8EUyT3tWcHimSoDHOTeodNQAz7vPG+H03BjkbRu2RPsRVQRqSqoWHkyTOgyUv1XTk0JXJTXZQ/I7xcdA=="], "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], @@ -2683,7 +2684,7 @@ "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], - "dcmjs": ["dcmjs@0.48.0", "", { "dependencies": { "@babel/runtime-corejs3": "^7.22.5", "adm-zip": "^0.5.10", "gl-matrix": "^3.1.0", "lodash.clonedeep": "^4.5.0", "loglevel": "^1.8.1", "ndarray": "^1.0.19", "pako": "^2.0.4" } }, "sha512-hxDxLkfs3roAx3KaDue4aexeFUXCT073wuepvQ7FdS6gZs+WfYYSv/IDW/ejMfVAazs8lLgRfit2reEbKmQYsQ=="], + "dcmjs": ["dcmjs@0.49.4", "", { "dependencies": { "@babel/runtime-corejs3": "^7.22.5", "adm-zip": "^0.5.10", "gl-matrix": "^3.1.0", "lodash.clonedeep": "^4.5.0", "loglevel": "^1.8.1", "ndarray": "^1.0.19", "pako": "^2.0.4" } }, "sha512-w77Gde5JvLjg37FyGIAsTB+oWZIqkO/5NvBeheEVKy6k9XjBgeGsoAbVAByjuGAFLpGqRbf9iWI0edBq87yu/g=="], "debounce": ["debounce@1.2.1", "", {}, "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="], diff --git a/extensions/cornerstone-dicom-pmap/package.json b/extensions/cornerstone-dicom-pmap/package.json index 6337202c1..571ae43dc 100644 --- a/extensions/cornerstone-dicom-pmap/package.json +++ b/extensions/cornerstone-dicom-pmap/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", "@kitware/vtk.js": "34.15.1", "react-color": "2.19.3" } diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index c0ce10784..e378801f5 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,8 +46,8 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", "@kitware/vtk.js": "34.15.1", "react-color": "2.19.3" } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 9f4825565..c64455ed2 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -38,7 +38,7 @@ "@ohif/extension-cornerstone": "3.12.0-beta.133", "@ohif/extension-measurement-tracking": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "classnames": "2.5.1" } } diff --git a/extensions/cornerstone-dynamic-volume/package.json b/extensions/cornerstone-dynamic-volume/package.json index 8c98a4615..cc01159f9 100644 --- a/extensions/cornerstone-dynamic-volume/package.json +++ b/extensions/cornerstone-dynamic-volume/package.json @@ -34,7 +34,7 @@ "@ohif/extension-default": "3.12.0-beta.133", "@ohif/i18n": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -42,8 +42,8 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "classnames": "2.5.1" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index cd53b8292..e01747eea 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -40,10 +40,10 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/dicom-image-loader": "4.15.28", + "@cornerstonejs/dicom-image-loader": "4.15.29", "@ohif/core": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", @@ -53,12 +53,12 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/adapters": "4.15.28", - "@cornerstonejs/ai": "4.15.28", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/labelmap-interpolation": "4.15.28", - "@cornerstonejs/polymorphic-segmentation": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/adapters": "4.15.29", + "@cornerstonejs/ai": "4.15.29", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/labelmap-interpolation": "4.15.29", + "@cornerstonejs/polymorphic-segmentation": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "@icr/polyseg-wasm": "0.4.0", "@itk-wasm/morphological-contour-interpolation": "1.1.0", "@kitware/vtk.js": "34.15.1", diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.test.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.test.ts index d6c670925..6e8c28a8d 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.test.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.test.ts @@ -2117,7 +2117,9 @@ describe('SegmentationService', () => { service.removeSegment(segmentationId, segmentIndex); expect(cstSegmentation.removeSegment).toHaveBeenCalledTimes(1); - expect(cstSegmentation.removeSegment).toHaveBeenCalledWith(segmentationId, segmentIndex); + expect(cstSegmentation.removeSegment).toHaveBeenCalledWith(segmentationId, segmentIndex, { + recordHistory: true, + }); }); }); diff --git a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts index 24ac6eb31..f03acff65 100644 --- a/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts +++ b/extensions/cornerstone/src/services/SegmentationService/SegmentationService.ts @@ -27,6 +27,8 @@ import { SegmentationPresentation, SegmentationPresentationItem } from '../../ty import { EasingFunctionEnum, EasingFunctionMap } from '../../utils/transitions'; import { ViewReference } from '@cornerstonejs/core/types'; +const { DefaultHistoryMemo } = csUtils.HistoryMemo; + const { Labelmap: LABELMAP, Contour: CONTOUR, @@ -951,11 +953,75 @@ class SegmentationService extends PubSubService { }); } + /** + * Creates a memo that records the current state of a segment (segmentationId/segmentIndex) + * so that undo can restore it via addSegment and redo can call removeSegment again + * without recording history. + * + * @param segmentationId - The ID of the segmentation. + * @param segmentIndex - The index of the segment (must still exist when called). + * @param _options - Reserved (e.g. deleting) for future use. + * @returns A Memo with restoreMemo(undo): undo => addSegment, redo => removeSegment (skipRecordingHistory). + */ + public createSegmentIndexMemo( + segmentationId: string, + segmentIndex: number, + _options?: { deleting?: boolean } + ): csTypes.Memo | null { + const csSegmentation = this.getCornerstoneSegmentation(segmentationId); + const segment = csSegmentation?.segments?.[segmentIndex]; + if (!segment) { + return null; + } + + let color: csTypes.Color | undefined; + let visibility: boolean | undefined; + const viewportIds = this.getViewportIdsWithSegmentation(segmentationId); + if (viewportIds.length > 0) { + const firstViewportId = viewportIds[0]; + const representations = this.getSegmentationRepresentations(firstViewportId, { + segmentationId, + }); + const repType = representations[0]?.type ?? LABELMAP; + color = this.getSegmentColor(firstViewportId, segmentationId, segmentIndex); + visibility = cstSegmentation.config.visibility.getSegmentIndexVisibility( + firstViewportId, + { segmentationId, type: repType }, + segmentIndex + ); + } + + const segmentState = { + segmentIndex, + label: segment.label, + isLocked: segment.locked, + active: segment.active, + color, + visibility, + }; + + const service = this; + const memo: csTypes.Memo = { + id: csUtils.uuidv4(), + operationType: 'segmentIndex', + restoreMemo(undo?: boolean) { + if (undo === true) { + service.addSegment(segmentationId, segmentState); + } else { + // Redo: remove the segment via cornerstone without recording history + cstSegmentation.removeSegment(segmentationId, segmentIndex, { recordHistory: false }); + } + }, + }; + return memo; + } + /** * Removes a segment from a segmentation and updates the active segment index if necessary. * * @param segmentationId - The ID of the segmentation containing the segment to remove. * @param segmentIndex - The index of the segment to remove. + * @param options - Optional. skipRecordingHistory: if true, do not push undo memo (used when redoing). * * @remarks * This method performs the following actions: @@ -964,8 +1030,21 @@ class SegmentationService extends PubSubService { * 3. If the removed segment was the active segment, it updates the active segment index. * */ - public removeSegment(segmentationId: string, segmentIndex: number): void { - cstSegmentation.removeSegment(segmentationId, segmentIndex); + public removeSegment( + segmentationId: string, + segmentIndex: number, + options?: { skipRecordingHistory?: boolean } + ): void { + let memo; + if (!options?.skipRecordingHistory) { + memo = this.createSegmentIndexMemo(segmentationId, segmentIndex, { deleting: true }); + DefaultHistoryMemo.startGroupRecording(); + cstSegmentation.removeSegment(segmentationId, segmentIndex, { recordHistory: true }); + DefaultHistoryMemo.push(memo); + DefaultHistoryMemo.endGroupRecording(); + } else { + cstSegmentation.removeSegment(segmentationId, segmentIndex, { recordHistory: false }); + } } public setSegmentVisibility( diff --git a/extensions/cornerstone/src/utils/updateSegmentationStats.ts b/extensions/cornerstone/src/utils/updateSegmentationStats.ts index 99ca83f38..ffc1dbca1 100644 --- a/extensions/cornerstone/src/utils/updateSegmentationStats.ts +++ b/extensions/cornerstone/src/utils/updateSegmentationStats.ts @@ -59,6 +59,12 @@ export async function updateSegmentationStats({ Object.entries(stats).forEach(([segmentIndex, segmentStats]) => { const index = parseInt(segmentIndex); + if (!updatedSegmentation.segments[index]) { + // This happens when a segment is being restored + console.warn('Segment not found to update cached stats:', index); + return; + } + if (!updatedSegmentation.segments[index].cachedStats) { updatedSegmentation.segments[index].cachedStats = {}; hasUpdates = true; diff --git a/extensions/default/package.json b/extensions/default/package.json index 34fadf20d..b29e3c298 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -36,7 +36,7 @@ "peerDependencies": { "@ohif/core": "3.12.0-beta.133", "@ohif/i18n": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicomweb-client": "0.10.4", "prop-types": "15.8.1", "react": "18.3.1", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index f4cfcaefa..9ca5d1143 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ffb9ae320..d78fbd430 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 0de89ff62..df9feb598 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,14 +32,14 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "@ohif/core": "3.12.0-beta.133", "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", "@ohif/extension-default": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", "classnames": "2.5.1", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "lodash.debounce": "4.0.8", "prop-types": "15.8.1", "react": "18.3.1", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c7af686d0..f73422b98 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 74b074085..213d3b247 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.12.0-beta.133", "@ohif/ui": "3.12.0-beta.133", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicom-parser": "1.8.21", "hammerjs": "2.0.8", "prop-types": "15.8.1", diff --git a/extensions/usAnnotation/package.json b/extensions/usAnnotation/package.json index e551ec5f4..2d584fc07 100644 --- a/extensions/usAnnotation/package.json +++ b/extensions/usAnnotation/package.json @@ -42,8 +42,8 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "@ohif/core": "3.12.0-beta.133", "@ohif/extension-cornerstone": "3.12.0-beta.133", "@ohif/extension-default": "3.12.0-beta.133", diff --git a/modes/usAnnotation/package.json b/modes/usAnnotation/package.json index 6b9cc1d04..91a8cf1c0 100644 --- a/modes/usAnnotation/package.json +++ b/modes/usAnnotation/package.json @@ -34,8 +34,8 @@ }, "dependencies": { "@babel/runtime": "7.28.2", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/tools": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/tools": "4.15.29", "@ohif/core": "3.12.0-beta.133", "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.133", "@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.133", diff --git a/package.json b/package.json index a5df72aa6..9adb4ab0e 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "commander": "8.3.0", "cross-env": "7.0.3", "cross-spawn": "7.0.6", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "path-to-regexp": "0.1.12", "nth-check": "2.1.1", "trim-newlines": "5.0.0", diff --git a/platform/app/package.json b/platform/app/package.json index bf2c708ea..fed2ca12b 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.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/dicom-image-loader": "4.15.28", + "@cornerstonejs/dicom-image-loader": "4.15.29", "@emotion/serialize": "1.3.3", "@ohif/core": "3.12.0-beta.133", "@ohif/extension-cornerstone": "3.12.0-beta.133", @@ -79,7 +79,7 @@ "classnames": "2.5.1", "core-js": "3.45.1", "cornerstone-math": "0.1.10", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "detect-gpu": "4.0.50", "dicom-parser": "1.8.21", "dotenv-webpack": "1.8.0", diff --git a/platform/core/package.json b/platform/core/package.json index 3027f3e2a..56efbd425 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,15 +37,15 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", - "@cornerstonejs/core": "4.15.28", - "@cornerstonejs/dicom-image-loader": "4.15.28", + "@cornerstonejs/core": "4.15.29", + "@cornerstonejs/dicom-image-loader": "4.15.29", "@ohif/ui": "3.12.0-beta.133", "cornerstone-math": "0.1.9", "dicom-parser": "1.8.21" }, "dependencies": { "@babel/runtime": "7.28.2", - "dcmjs": "0.48.0", + "dcmjs": "0.49.4", "dicomweb-client": "0.10.4", "gl-matrix": "3.4.3", "immutability-helper": "3.1.1", diff --git a/yarn.lock b/yarn.lock index 0f77bdb04..cdd343a54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1278,10 +1278,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cornerstonejs/adapters@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.15.28.tgz#63ca2c5854e4dc1f2f5cf53b084c84063596bc58" - integrity sha512-ttePkNXDJtDK/ZfisF8bJrr9jN08I+gQXQNgVzDtM0IQ8TYB0LasOp3TkH3aAG3kKwyDKcJBH3Kit7bYJWu2zg== +"@cornerstonejs/adapters@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.15.29.tgz#cd8a60c72db55a76f8e0489ad825bf0f28b0f625" + integrity sha512-OcG3YtCQ+C7X/f7buK3dsMOc8NyqsgH/LZRT/JbvppUnqhhfyKIpBTtJG+2+roMyLsi3QrsCeI9Eu6KaQgFFvw== dependencies: "@babel/runtime-corejs2" "7.26.10" buffer "6.0.3" @@ -1289,10 +1289,10 @@ gl-matrix "3.4.3" ndarray "1.0.19" -"@cornerstonejs/ai@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.15.28.tgz#e37bec45bbd4f7c2ec6688a80cfea526d8bf762e" - integrity sha512-DYgqCpCoG2Sn8d7Hbqr5PgFnetkCOSozO3JVY0LpcetU3hYyvuX1WfRYVCA8JlwbwDlEQ8BvP1cm+2m93g2RNA== +"@cornerstonejs/ai@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.15.29.tgz#f2f8a10b51822afe525dda7a627fc12bc3cd3e3a" + integrity sha512-fTbfAE7HpXES+vPYzhP0eGljmwykGkbY38LymbMsrn7p6DmvKuJIh4sfUzUtIPW+5kMnCiXAEUhi3+oebQZs0g== dependencies: "@babel/runtime-corejs2" "7.26.10" buffer "6.0.3" @@ -1328,20 +1328,20 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.7.tgz#784394d05d8cf735640e9c3baa206535ee8e0376" integrity sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w== -"@cornerstonejs/core@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.15.28.tgz#ba198d58188ba57987123711f8f410d95fe242d5" - integrity sha512-IIRbxcSRvFnBw+ridQarzTxn7OcDUWJArmwocRZJ4t31/LYSEy5ioby50of46DsuDGVB6nYjMPRGP2VGXxo1KQ== +"@cornerstonejs/core@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.15.29.tgz#498b3dd23119b9b03fbd81d859e029715766f957" + integrity sha512-o+5gXbxtZde1GIULmw+hWwf6KI3eiXCre0U1C372jbovxA66JH2t+2VW1nj0F2JRRnO0FjgT/+DWYCWt0ILGoA== dependencies: "@kitware/vtk.js" "34.15.1" comlink "4.4.2" gl-matrix "3.4.3" loglevel "1.9.2" -"@cornerstonejs/dicom-image-loader@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.15.28.tgz#21badba28313e35abbadfafbaea0433735d02e54" - integrity sha512-4YM/3cKI1Rz0/h/X8k6NySi02owUJk17YKBjVLtrGiUF5pqSZ+Tt+KtegY6dnvT3B8J9KBREIudIMWYHnWdckg== +"@cornerstonejs/dicom-image-loader@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.15.29.tgz#238cd5cdc4cfd310e0baffb8e9be7895db01dffe" + integrity sha512-+R7NoFyVTz2OSKclVQ21dqwgYmFM5q7SZc59YPcxfop7rk2+9H5rRxa04ytKHPjz+N5AlqbLKpJvy/RE10Xcew== dependencies: "@cornerstonejs/codec-charls" "1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "1.2.2" @@ -1353,25 +1353,25 @@ pako "2.1.0" uuid "9.0.1" -"@cornerstonejs/labelmap-interpolation@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.15.28.tgz#f4060e5d31c8a4f87ee06c392c054990ff58ac51" - integrity sha512-07JWwU03tmUsdMnld0IhA8HndReA1aVGwevPVSKPHIzi0XQT/4XS18qpMgEoKWrmsWdmUzzSYJLbk/yQZ/zshQ== +"@cornerstonejs/labelmap-interpolation@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.15.29.tgz#413f8c4d22a5658a32ed658864ce99f34237a413" + integrity sha512-4pZTcZWv88l59HDSd/arlJ/WNcdxf9WZbm4GiwsrOZxKx8vkLivnKA+pjPUu1LugCJjlLMgugEVnBhZCk+hW7w== dependencies: "@itk-wasm/morphological-contour-interpolation" "1.1.0" itk-wasm "1.0.0-b.165" -"@cornerstonejs/polymorphic-segmentation@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.15.28.tgz#27da5205a29f8423a4e0094a107cc2c3f8734c49" - integrity sha512-v2vumX+x2JUO6Cv2vyJmizzAIlTBawl+UHQ4idI5AxGW453ByfgDfTOqMEv2HI7BAHpxsSiUzsZAenwSpXPS/Q== +"@cornerstonejs/polymorphic-segmentation@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.15.29.tgz#f905f976b238f1af9f717f925d5650943f81a55d" + integrity sha512-EMCw2Y+bjtI3qfCAv1VbAumWH8XNokEMA1roI03jLzaCvr0+8Jts9Z3P4kyQmOm60veaad9214yM9IZ41J4zGQ== dependencies: "@icr/polyseg-wasm" "0.4.0" -"@cornerstonejs/tools@4.15.28": - version "4.15.28" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.15.28.tgz#f894b52c5a89c8a388b9876929ef3a7093940378" - integrity sha512-gv6s6jqmsnsKClcmRQwGu47YwiAG9L+hhoNMAb0gQSa2qJthT/21Q2lWCJy5G4tHEOlfQOMCtGhIdLh5lm7IEQ== +"@cornerstonejs/tools@4.15.29": + version "4.15.29" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.15.29.tgz#46d29b8f01d2cc702a15547b1013d2b6a94cffff" + integrity sha512-MG+RPJ8EUyT3tWcHimSoDHOTeodNQAz7vPG+H03BjkbRu2RPsRVQRqSqoWHkyTOgyUv1XTk0JXJTXZQ/I7xcdA== dependencies: "@types/offscreencanvas" "2019.7.3" comlink "4.4.2" @@ -7154,10 +7154,10 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== -dcmjs@0.48.0, dcmjs@^0.41.0: - version "0.48.0" - resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.48.0.tgz#002349d6acc7ff325bef57b660caa6f90c31bb89" - integrity sha512-hxDxLkfs3roAx3KaDue4aexeFUXCT073wuepvQ7FdS6gZs+WfYYSv/IDW/ejMfVAazs8lLgRfit2reEbKmQYsQ== +dcmjs@0.48.0, dcmjs@0.49.4, dcmjs@^0.41.0: + version "0.49.4" + resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.49.4.tgz#833c014eb9e36a6859c80a860b0fb231d9bfeaf8" + integrity sha512-w77Gde5JvLjg37FyGIAsTB+oWZIqkO/5NvBeheEVKy6k9XjBgeGsoAbVAByjuGAFLpGqRbf9iWI0edBq87yu/g== dependencies: "@babel/runtime-corejs3" "^7.22.5" adm-zip "^0.5.10"