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
This commit is contained in:
Bill Wallace 2026-02-05 11:49:49 -05:00 committed by GitHub
parent 3b9d3babf9
commit 48f2f6fb13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 363 additions and 275 deletions

View File

@ -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",

405
bun.lock
View File

@ -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=="],

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -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",

View File

@ -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,
});
});
});

View File

@ -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(

View File

@ -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;

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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"