feat: overlapping segments (#4849)

This commit is contained in:
Pedro Köhler 2025-03-18 18:07:13 -03:00 committed by GitHub
parent 5a6c2aeed9
commit 55d6393a3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 232 additions and 248 deletions

318
bun.lock
View File

@ -33,7 +33,7 @@
}, },
"addOns/externals/devDependencies": { "addOns/externals/devDependencies": {
"name": "@externals/devDependencies", "name": "@externals/devDependencies",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
@ -121,21 +121,21 @@
}, },
"addOns/externals/dicom-microscopy-viewer": { "addOns/externals/dicom-microscopy-viewer": {
"name": "@externals/dicom-microscopy-viewer", "name": "@externals/dicom-microscopy-viewer",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"dicom-microscopy-viewer": "^0.46.1", "dicom-microscopy-viewer": "^0.46.1",
}, },
}, },
"extensions/cornerstone": { "extensions/cornerstone": {
"name": "@ohif/extension-cornerstone", "name": "@ohif/extension-cornerstone",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/labelmap-interpolation": "^3.7.0", "@cornerstonejs/labelmap-interpolation": "^3.7.1",
"@cornerstonejs/polymorphic-segmentation": "^3.7.0", "@cornerstonejs/polymorphic-segmentation": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0", "@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
@ -152,9 +152,9 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.21", "dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -166,19 +166,19 @@
}, },
"extensions/cornerstone-dicom-pmap": { "extensions/cornerstone-dicom-pmap": {
"name": "@ohif/extension-cornerstone-dicom-pmap", "name": "@ohif/extension-cornerstone-dicom-pmap",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3", "react-color": "^2.19.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"prop-types": "^15.6.2", "prop-types": "^15.6.2",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
@ -189,16 +189,16 @@
}, },
"extensions/cornerstone-dicom-rt": { "extensions/cornerstone-dicom-rt": {
"name": "@ohif/extension-cornerstone-dicom-rt", "name": "@ohif/extension-cornerstone-dicom-rt",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"react-color": "^2.19.3", "react-color": "^2.19.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"prop-types": "^15.6.2", "prop-types": "^15.6.2",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
@ -209,19 +209,19 @@
}, },
"extensions/cornerstone-dicom-seg": { "extensions/cornerstone-dicom-seg": {
"name": "@ohif/extension-cornerstone-dicom-seg", "name": "@ohif/extension-cornerstone-dicom-seg",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3", "react-color": "^2.19.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"prop-types": "^15.6.2", "prop-types": "^15.6.2",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
@ -232,19 +232,19 @@
}, },
"extensions/cornerstone-dicom-sr": { "extensions/cornerstone-dicom-sr": {
"name": "@ohif/extension-cornerstone-dicom-sr", "name": "@ohif/extension-cornerstone-dicom-sr",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-measurement-tracking": "3.10.0-beta.125", "@ohif/extension-measurement-tracking": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.9", "dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -254,19 +254,19 @@
}, },
"extensions/cornerstone-dynamic-volume": { "extensions/cornerstone-dynamic-volume": {
"name": "@ohif/extension-cornerstone-dynamic-volume", "name": "@ohif/extension-cornerstone-dynamic-volume",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.21", "dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -276,7 +276,7 @@
}, },
"extensions/default": { "extensions/default": {
"name": "@ohif/extension-default", "name": "@ohif/extension-default",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/calculate-suv": "^1.1.0", "@cornerstonejs/calculate-suv": "^1.1.0",
@ -284,8 +284,8 @@
"lodash.uniqby": "^4.7.0", "lodash.uniqby": "^4.7.0",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicomweb-client": "^0.10.4", "dicomweb-client": "^0.10.4",
"prop-types": "^15.6.2", "prop-types": "^15.6.2",
@ -299,7 +299,7 @@
}, },
"extensions/dicom-microscopy": { "extensions/dicom-microscopy": {
"name": "@ohif/extension-dicom-microscopy", "name": "@ohif/extension-dicom-microscopy",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-charls": "^1.2.3",
@ -310,10 +310,10 @@
"mathjs": "^12.4.2", "mathjs": "^12.4.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"prop-types": "^15.6.2", "prop-types": "^15.6.2",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
@ -324,14 +324,14 @@
}, },
"extensions/dicom-pdf": { "extensions/dicom-pdf": {
"name": "@ohif/extension-dicom-pdf", "name": "@ohif/extension-dicom-pdf",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.9", "dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -341,14 +341,14 @@
}, },
"extensions/dicom-video": { "extensions/dicom-video": {
"name": "@ohif/extension-dicom-video", "name": "@ohif/extension-dicom-video",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.9", "dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -358,20 +358,20 @@
}, },
"extensions/measurement-tracking": { "extensions/measurement-tracking": {
"name": "@ohif/extension-measurement-tracking", "name": "@ohif/extension-measurement-tracking",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"@xstate/react": "^3.2.2", "@xstate/react": "^3.2.2",
"xstate": "^4.10.0", "xstate": "^4.10.0",
}, },
"peerDependencies": { "peerDependencies": {
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"classnames": "^2.3.2", "classnames": "^2.3.2",
"dcmjs": "*", "dcmjs": "*",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
@ -384,14 +384,14 @@
}, },
"extensions/test-extension": { "extensions/test-extension": {
"name": "@ohif/extension-test", "name": "@ohif/extension-test",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "0.38.0", "dcmjs": "0.38.0",
"dicom-parser": "^1.8.9", "dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -401,14 +401,14 @@
}, },
"extensions/tmtv": { "extensions/tmtv": {
"name": "@ohif/extension-tmtv", "name": "@ohif/extension-tmtv",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"classnames": "^2.3.2", "classnames": "^2.3.2",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
"dicom-parser": "^1.8.9", "dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
@ -418,7 +418,7 @@
}, },
"modes/basic-dev-mode": { "modes/basic-dev-mode": {
"name": "@ohif/mode-basic-dev-mode", "name": "@ohif/mode-basic-dev-mode",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
@ -428,17 +428,17 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
}, },
}, },
"modes/basic-test-mode": { "modes/basic-test-mode": {
"name": "@ohif/mode-test", "name": "@ohif/mode-test",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
@ -448,19 +448,19 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
"@ohif/extension-measurement-tracking": "3.10.0-beta.125", "@ohif/extension-measurement-tracking": "3.10.0-beta.128",
"@ohif/extension-test": "3.10.0-beta.125", "@ohif/extension-test": "3.10.0-beta.128",
}, },
}, },
"modes/longitudinal": { "modes/longitudinal": {
"name": "@ohif/mode-longitudinal", "name": "@ohif/mode-longitudinal",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
@ -470,32 +470,32 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
"@ohif/extension-measurement-tracking": "3.10.0-beta.125", "@ohif/extension-measurement-tracking": "3.10.0-beta.128",
}, },
}, },
"modes/microscopy": { "modes/microscopy": {
"name": "@ohif/mode-microscopy", "name": "@ohif/mode-microscopy",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.125", "@ohif/extension-dicom-microscopy": "3.10.0-beta.128",
}, },
}, },
"modes/preclinical-4d": { "modes/preclinical-4d": {
"name": "@ohif/mode-preclinical-4d", "name": "@ohif/mode-preclinical-4d",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
}, },
@ -504,17 +504,17 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.125", "@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-tmtv": "3.10.0-beta.125", "@ohif/extension-tmtv": "3.10.0-beta.128",
}, },
}, },
"modes/segmentation": { "modes/segmentation": {
"name": "@ohif/mode-segmentation", "name": "@ohif/mode-segmentation",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
@ -546,19 +546,19 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
}, },
}, },
"modes/tmtv": { "modes/tmtv": {
"name": "@ohif/mode-tmtv", "name": "@ohif/mode-tmtv",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next": "^17.0.3", "i18next": "^17.0.3",
@ -568,43 +568,43 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
}, },
"peerDependencies": { "peerDependencies": {
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
"@ohif/extension-measurement-tracking": "3.10.0-beta.125", "@ohif/extension-measurement-tracking": "3.10.0-beta.128",
}, },
}, },
"platform/app": { "platform/app": {
"name": "@ohif/app", "name": "@ohif/app",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-charls": "^1.2.3",
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@emotion/serialize": "^1.1.3", "@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0-beta.125", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.125", "@ohif/extension-cornerstone": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.125", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.125", "@ohif/extension-default": "3.10.0-beta.128",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.125", "@ohif/extension-dicom-microscopy": "3.10.0-beta.128",
"@ohif/extension-dicom-pdf": "3.10.0-beta.125", "@ohif/extension-dicom-pdf": "3.10.0-beta.128",
"@ohif/extension-dicom-video": "3.10.0-beta.125", "@ohif/extension-dicom-video": "3.10.0-beta.128",
"@ohif/extension-test": "3.10.0-beta.125", "@ohif/extension-test": "3.10.0-beta.128",
"@ohif/i18n": "3.10.0-beta.125", "@ohif/i18n": "3.10.0-beta.128",
"@ohif/mode-basic-dev-mode": "3.10.0-beta.125", "@ohif/mode-basic-dev-mode": "3.10.0-beta.128",
"@ohif/mode-longitudinal": "3.10.0-beta.125", "@ohif/mode-longitudinal": "3.10.0-beta.128",
"@ohif/mode-microscopy": "3.10.0-beta.125", "@ohif/mode-microscopy": "3.10.0-beta.128",
"@ohif/mode-test": "3.10.0-beta.125", "@ohif/mode-test": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"@ohif/ui-next": "3.10.0-beta.125", "@ohif/ui-next": "3.10.0-beta.128",
"@svgr/webpack": "^8.1.0", "@svgr/webpack": "^8.1.0",
"@types/react": "^18.3.3", "@types/react": "^18.3.3",
"classnames": "^2.3.2", "classnames": "^2.3.2",
@ -645,7 +645,7 @@
}, },
"platform/cli": { "platform/cli": {
"name": "@ohif/cli", "name": "@ohif/cli",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"bin": { "bin": {
"ohif-cli": "src/index.js", "ohif-cli": "src/index.js",
}, },
@ -669,7 +669,7 @@
}, },
"platform/core": { "platform/core": {
"name": "@ohif/core", "name": "@ohif/core",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"dcmjs": "*", "dcmjs": "*",
@ -694,15 +694,15 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@ohif/ui": "3.10.0-beta.125", "@ohif/ui": "3.10.0-beta.128",
"cornerstone-math": "0.1.9", "cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21", "dicom-parser": "^1.8.21",
}, },
}, },
"platform/i18n": { "platform/i18n": {
"name": "@ohif/i18n", "name": "@ohif/i18n",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"i18next-locize-backend": "^2.0.0", "i18next-locize-backend": "^2.0.0",
@ -727,7 +727,7 @@
}, },
"platform/ui": { "platform/ui": {
"name": "@ohif/ui", "name": "@ohif/ui",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@testing-library/react": "^13.1.0", "@testing-library/react": "^13.1.0",
"browser-detect": "^0.2.28", "browser-detect": "^0.2.28",
@ -787,7 +787,7 @@
}, },
"platform/ui-next": { "platform/ui-next": {
"name": "@ohif/ui-next", "name": "@ohif/ui-next",
"version": "3.10.0-beta.125", "version": "3.10.0-beta.128",
"dependencies": { "dependencies": {
"@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-accordion": "^1.2.0",
"@radix-ui/react-checkbox": "^1.1.1", "@radix-ui/react-checkbox": "^1.1.1",
@ -1095,7 +1095,7 @@
"@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="], "@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="],
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@3.7.0", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.0", "@cornerstonejs/tools": "^3.7.0" } }, "sha512-7ROFACNjT4W8dukUoKwggHhl+tjg0rdDpYDq8rM6b0c0gO2MgYKbU55t9MoT682yIuebt81jCsAbFSRGVzf45Q=="], "@cornerstonejs/adapters": ["@cornerstonejs/adapters@3.7.1", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.1", "@cornerstonejs/tools": "^3.7.1" } }, "sha512-aREkDwxmoIxBT4xJs00i7ghI9kCdKa7hmmDdCxw54lD0kI6aGLAHrwIeeYl+C19suyNH18duwuy1E/GYLfg5pA=="],
"@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="], "@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="],
@ -1107,15 +1107,15 @@
"@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="], "@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="],
"@cornerstonejs/core": ["@cornerstonejs/core@3.7.0", "", { "dependencies": { "@kitware/vtk.js": "32.12.1", "comlink": "^4.4.1", "gl-matrix": "^3.4.3", "loglevel": "^1.9.2" } }, "sha512-eRCovUYO3JvFV3Dzuwc6EWn9bpm+fvp/x6SXvr3MwiO+LRw1o5bmZfeh0+m4+5xzvQJPbjNYiXPPEpLYGQIOqQ=="], "@cornerstonejs/core": ["@cornerstonejs/core@3.7.1", "", { "dependencies": { "@kitware/vtk.js": "32.12.1", "comlink": "^4.4.1", "gl-matrix": "^3.4.3", "loglevel": "^1.9.2" } }, "sha512-+I6rCCFW+Am5GRJoaFdl2mD8R+Z0UXRZOBUE7hfTs0F6S8+45nOrlUccIK0UJdRq3bUc+h+G2tHW/i04FFs/mg=="],
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.7.0", "", { "dependencies": { "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "comlink": "^4.4.1", "dicom-parser": "^1.8.9", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.0" } }, "sha512-MSv5A7ZcAp7uVm1ofrTaQppPm1DyOAXN0BdX8a2/fMZ2Ud4OmEtk0aoUlaJ52/hQtUvfdCqfYObBos2oBIMQ1w=="], "@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.7.1", "", { "dependencies": { "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "comlink": "^4.4.1", "dicom-parser": "^1.8.9", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.1" } }, "sha512-mfbZ4PjLIGRh9CaMGxw0I4skI0y3sG+z0SlH40m/cwWvfKj18T5iqoLVSovSnYhqCcKdSyljM/ZTAj1t0vfRVQ=="],
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@3.7.0", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.0", "@cornerstonejs/tools": "^3.7.0", "@kitware/vtk.js": "32.12.1" } }, "sha512-/1l1XsKFYeov+hrMKindJ4n6l4H2zcXFwcO+wtqE4kmfoFhXRN6RSlIXbCRzEZtFCmh0hafg7SUUcXxr0QoClQ=="], "@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@3.7.1", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.1", "@cornerstonejs/tools": "^3.7.1", "@kitware/vtk.js": "32.12.1" } }, "sha512-D9VwRPeWlIMfbGD9e5R+zPQLiqKmP0sz3kMN6pxEiDbHpJ6QirtgyJyzZRI3+Z68zL2mxUDNLbfw0GbYm9fhEg=="],
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.7.0", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.0", "@cornerstonejs/tools": "^3.7.0", "@kitware/vtk.js": "32.12.1" } }, "sha512-MYb8aXE2EwfsyPmhvhTmNdTkCq5pIlMJuVRmT6GuQ4nf2dIhx5AeZ+Ya/TRaNNumV2Fx9/9PetI8+Z8XJLAILw=="], "@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.7.1", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.1", "@cornerstonejs/tools": "^3.7.1", "@kitware/vtk.js": "32.12.1" } }, "sha512-CRmSSgngzQqfBIiOmVFLzcM9lmDw2ueH/Co44/RDuo437J8mTG3QfDBmKoRt0VhlkiWy+C/cVMKqHwZ63Xl7Og=="],
"@cornerstonejs/tools": ["@cornerstonejs/tools@3.7.0", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.0", "@kitware/vtk.js": "32.12.1", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-72lbmaAm/dnOANAUNc0OK+9aL2pFklaWBLR+kOKn8OeSh1i9RRTSEaP8zWzStaSNAcdhwQ+JOQzcMR40Eo8oNQ=="], "@cornerstonejs/tools": ["@cornerstonejs/tools@3.7.1", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.1", "@kitware/vtk.js": "32.12.1", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-OVLfmGmQBuR9Ig1ZKy35EjwRLv6zNs6q4hrXf9EoIysMSH/mYB+V4n9/FQsqnlVh4IN0DuBqkwoUmBaGSPkspQ=="],
"@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@1.1.1", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA=="], "@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@1.1.1", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA=="],

View File

@ -46,8 +46,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3" "react-color": "^2.19.3"
} }

View File

@ -46,8 +46,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3" "react-color": "^2.19.3"
} }

View File

@ -182,7 +182,6 @@ async function _loadSegments({
// Todo: what should be defaults here // Todo: what should be defaults here
const tolerance = 0.001; const tolerance = 0.001;
const skipOverlapping = true;
eventTarget.addEventListener(Enums.Events.SEGMENTATION_LOAD_PROGRESS, evt => { eventTarget.addEventListener(Enums.Events.SEGMENTATION_LOAD_PROGRESS, evt => {
const { percentComplete } = evt.detail; const { percentComplete } = evt.detail;
segmentationService._broadcastEvent(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, { segmentationService._broadcastEvent(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, {
@ -190,11 +189,10 @@ async function _loadSegments({
}); });
}); });
const results = await adaptersSEG.Cornerstone3D.Segmentation.generateToolState( const results = await adaptersSEG.Cornerstone3D.Segmentation.createFromDICOMSegBuffer(
imageIds, imageIds,
arrayBuffer, arrayBuffer,
metaData, { metadataProvider: metaData, tolerance }
{ skipOverlapping, tolerance, eventTarget, triggerEvent }
); );
let usedRecommendedDisplayCIELabValue = true; let usedRecommendedDisplayCIELabValue = true;
@ -211,15 +209,6 @@ async function _loadSegments({
} }
}); });
if (results.overlappingSegments) {
uiNotificationService.show({
title: 'Overlapping Segments',
message:
'Unsupported overlapping segments detected, segmentation rendering results may be incorrect.',
type: 'warning',
});
}
if (!usedRecommendedDisplayCIELabValue) { if (!usedRecommendedDisplayCIELabValue) {
// Display a notification about the non-utilization of RecommendedDisplayCIELabValue // Display a notification about the non-utilization of RecommendedDisplayCIELabValue
uiNotificationService.show({ uiNotificationService.show({

View File

@ -46,9 +46,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -42,8 +42,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -38,7 +38,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@ohif/core": "3.10.0-beta.128", "@ohif/core": "3.10.0-beta.128",
"@ohif/ui": "3.10.0-beta.128", "@ohif/ui": "3.10.0-beta.128",
"dcmjs": "*", "dcmjs": "*",
@ -51,11 +51,11 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.7.0", "@cornerstonejs/adapters": "^3.7.1",
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/labelmap-interpolation": "^3.7.0", "@cornerstonejs/labelmap-interpolation": "^3.7.1",
"@cornerstonejs/polymorphic-segmentation": "^3.7.0", "@cornerstonejs/polymorphic-segmentation": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0", "@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.12.0", "@kitware/vtk.js": "32.12.0",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",

View File

@ -391,13 +391,13 @@ class SegmentationService extends PubSubService {
): Promise<string> { ): Promise<string> {
const { type } = options; const { type } = options;
let { segmentationId } = options; let { segmentationId } = options;
const { labelmapBufferArray } = segDisplaySet; const { labelMapImages } = segDisplaySet;
if (type !== LABELMAP) { if (type !== LABELMAP) {
throw new Error('Only labelmap type is supported for SEG display sets right now'); throw new Error('Only labelmap type is supported for SEG display sets right now');
} }
if (!labelmapBufferArray) { if (!labelMapImages || !labelMapImages.length) {
throw new Error('SEG reading failed'); throw new Error('SEG reading failed');
} }
@ -414,16 +414,32 @@ class SegmentationService extends PubSubService {
} }
const imageIds = images.map(image => image.imageId); const imageIds = images.map(image => image.imageId);
const derivedImages = labelMapImages?.flat();
const derivedImageIds = derivedImages.map(image => image.imageId);
const derivedSegmentationImages = await imageLoader.createAndCacheDerivedLabelmapImages( segDisplaySet.images = derivedImages.map(image => ({
imageIds as string[]
);
segDisplaySet.images = derivedSegmentationImages.map(image => ({
...image, ...image,
...metaData.get('instance', image.referencedImageId), ...metaData.get('instance', image.referencedImageId),
})); }));
// We should parse the segmentation as separate slices to support overlapping segments.
// This parsing should occur in the CornerstoneJS library adapters.
// For now, we use the volume returned from the library and chop it here.
let firstSegmentedSliceImageId = null;
for (let i = 0; i < derivedImages.length; i++) {
const voxelManager = derivedImages[i].voxelManager as csTypes.IVoxelManager<number>;
const scalarData = voxelManager.getScalarData();
voxelManager.setScalarData(scalarData);
// Check if this slice has any non-zero voxels and we haven't found one yet
if (!firstSegmentedSliceImageId && scalarData.some(value => value !== 0)) {
firstSegmentedSliceImageId = derivedImages[i].referencedImageId;
}
}
// assign the first non zero voxel image id to the segDisplaySet
segDisplaySet.firstSegmentedSliceImageId = firstSegmentedSliceImageId;
const segmentsInfo = segDisplaySet.segMetadata.data; const segmentsInfo = segDisplaySet.segMetadata.data;
const segments: { [segmentIndex: string]: cstTypes.Segment } = {}; const segments: { [segmentIndex: string]: cstTypes.Segment } = {};
@ -481,30 +497,6 @@ class SegmentationService extends PubSubService {
addColorLUT(colorLUT, colorLUTIndex); addColorLUT(colorLUT, colorLUTIndex);
this._segmentationIdToColorLUTIndexMap.set(segmentationId, colorLUTIndex); this._segmentationIdToColorLUTIndexMap.set(segmentationId, colorLUTIndex);
// now we need to chop the volume array into chunks and set the scalar data for each derived segmentation image
const volumeScalarData = new Uint8Array(labelmapBufferArray[0]);
// We should parse the segmentation as separate slices to support overlapping segments.
// This parsing should occur in the CornerstoneJS library adapters.
// For now, we use the volume returned from the library and chop it here.
let firstSegmentedSliceImageId = null;
for (let i = 0; i < derivedSegmentationImages.length; i++) {
const voxelManager = derivedSegmentationImages[i]
.voxelManager as csTypes.IVoxelManager<number>;
const scalarData = voxelManager.getScalarData();
const sliceData = volumeScalarData.slice(i * scalarData.length, (i + 1) * scalarData.length);
scalarData.set(sliceData);
voxelManager.setScalarData(scalarData);
// Check if this slice has any non-zero voxels and we haven't found one yet
if (!firstSegmentedSliceImageId && sliceData.some(value => value !== 0)) {
firstSegmentedSliceImageId = derivedSegmentationImages[i].referencedImageId;
}
}
// assign the first non zero voxel image id to the segDisplaySet
segDisplaySet.firstSegmentedSliceImageId = firstSegmentedSliceImageId;
this._broadcastEvent(EVENTS.SEGMENTATION_LOADING_COMPLETE, { this._broadcastEvent(EVENTS.SEGMENTATION_LOADING_COMPLETE, {
segmentationId, segmentationId,
segDisplaySet, segDisplaySet,
@ -515,7 +507,7 @@ class SegmentationService extends PubSubService {
representation: { representation: {
type: LABELMAP, type: LABELMAP,
data: { data: {
imageIds: derivedSegmentationImages.map(image => image.imageId), imageIds: derivedImageIds,
referencedVolumeId: this._getVolumeIdForDisplaySet(referencedDisplaySet), referencedVolumeId: this._getVolumeIdForDisplaySet(referencedDisplaySet),
referencedImageIds: imageIds as string[], referencedImageIds: imageIds as string[],
}, },
@ -1163,8 +1155,8 @@ class SegmentationService extends PubSubService {
highlightFunctionType = 'ease-in-out' // todo: make animation functions configurable from outside highlightFunctionType = 'ease-in-out' // todo: make animation functions configurable from outside
): void { ): void {
const center = this._getSegmentCenter(segmentationId, segmentIndex); const center = this._getSegmentCenter(segmentationId, segmentIndex);
if (!center) { if (!center) {
console.warn('No center found for segmentation', segmentationId, segmentIndex);
return; return;
} }

View File

@ -32,8 +32,8 @@
"start": "yarn run dev" "start": "yarn run dev"
}, },
"peerDependencies": { "peerDependencies": {
"@cornerstonejs/core": "^3.7.0", "@cornerstonejs/core": "^3.7.1",
"@cornerstonejs/tools": "^3.7.0", "@cornerstonejs/tools": "^3.7.1",
"@ohif/core": "3.10.0-beta.128", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
"@ohif/extension-default": "3.10.0-beta.128", "@ohif/extension-default": "3.10.0-beta.128",

View File

@ -58,6 +58,9 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
}, },
}, },
}, },
{
toolName: toolNames.SegmentBidirectional,
},
{ toolName: toolNames.Bidirectional }, { toolName: toolNames.Bidirectional },
{ toolName: toolNames.DragProbe }, { toolName: toolNames.DragProbe },
{ toolName: toolNames.Probe }, { toolName: toolNames.Probe },

View File

@ -54,7 +54,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@emotion/serialize": "^1.1.3", "@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0-beta.128", "@ohif/core": "3.10.0-beta.128",
"@ohif/extension-cornerstone": "3.10.0-beta.128", "@ohif/extension-cornerstone": "3.10.0-beta.128",

View File

@ -37,7 +37,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^3.7.0", "@cornerstonejs/dicom-image-loader": "^3.7.1",
"@ohif/ui": "3.10.0-beta.128", "@ohif/ui": "3.10.0-beta.128",
"cornerstone-math": "0.1.9", "cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21" "dicom-parser": "^1.8.21"

View File

@ -1393,10 +1393,10 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
"@cornerstonejs/adapters@^3.7.0": "@cornerstonejs/adapters@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.7.0.tgz#7e16d609e1e5035585e40d7a7d919534b03ae094" resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.7.1.tgz#9d5babdd00fc08e54aa57c14a7d36d2854ebd01c"
integrity sha512-7ROFACNjT4W8dukUoKwggHhl+tjg0rdDpYDq8rM6b0c0gO2MgYKbU55t9MoT682yIuebt81jCsAbFSRGVzf45Q== integrity sha512-aREkDwxmoIxBT4xJs00i7ghI9kCdKa7hmmDdCxw54lD0kI6aGLAHrwIeeYl+C19suyNH18duwuy1E/GYLfg5pA==
dependencies: dependencies:
"@babel/runtime-corejs2" "^7.17.8" "@babel/runtime-corejs2" "^7.17.8"
buffer "^6.0.3" buffer "^6.0.3"
@ -1429,20 +1429,20 @@
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0"
integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg==
"@cornerstonejs/core@^3.7.0": "@cornerstonejs/core@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.7.0.tgz#d31cafc237ccc7ae621d1a41e3979a721b2fdcff" resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.7.1.tgz#409fad60fa933219f5b1e5757c9dbaead058338c"
integrity sha512-eRCovUYO3JvFV3Dzuwc6EWn9bpm+fvp/x6SXvr3MwiO+LRw1o5bmZfeh0+m4+5xzvQJPbjNYiXPPEpLYGQIOqQ== integrity sha512-+I6rCCFW+Am5GRJoaFdl2mD8R+Z0UXRZOBUE7hfTs0F6S8+45nOrlUccIK0UJdRq3bUc+h+G2tHW/i04FFs/mg==
dependencies: dependencies:
"@kitware/vtk.js" "32.12.1" "@kitware/vtk.js" "32.12.1"
comlink "^4.4.1" comlink "^4.4.1"
gl-matrix "^3.4.3" gl-matrix "^3.4.3"
loglevel "^1.9.2" loglevel "^1.9.2"
"@cornerstonejs/dicom-image-loader@^3.7.0": "@cornerstonejs/dicom-image-loader@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.7.0.tgz#6446bc6f9011674b5d000b275b6b0c34efd95c2c" resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.7.1.tgz#c6744624387b5a5056f416d2adebafe0fdda8a48"
integrity sha512-MSv5A7ZcAp7uVm1ofrTaQppPm1DyOAXN0BdX8a2/fMZ2Ud4OmEtk0aoUlaJ52/hQtUvfdCqfYObBos2oBIMQ1w== integrity sha512-mfbZ4PjLIGRh9CaMGxw0I4skI0y3sG+z0SlH40m/cwWvfKj18T5iqoLVSovSnYhqCcKdSyljM/ZTAj1t0vfRVQ==
dependencies: dependencies:
"@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-charls" "^1.2.3"
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
@ -1454,25 +1454,25 @@
pako "^2.0.4" pako "^2.0.4"
uuid "^9.0.0" uuid "^9.0.0"
"@cornerstonejs/labelmap-interpolation@^3.7.0": "@cornerstonejs/labelmap-interpolation@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.7.0.tgz#00d7bbd056fd292b2ea53681259efd0b8f6e5f5f" resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.7.1.tgz#e82c887ffb3f2c3cba77c7ad84b26812aecd6a44"
integrity sha512-/1l1XsKFYeov+hrMKindJ4n6l4H2zcXFwcO+wtqE4kmfoFhXRN6RSlIXbCRzEZtFCmh0hafg7SUUcXxr0QoClQ== integrity sha512-D9VwRPeWlIMfbGD9e5R+zPQLiqKmP0sz3kMN6pxEiDbHpJ6QirtgyJyzZRI3+Z68zL2mxUDNLbfw0GbYm9fhEg==
dependencies: dependencies:
"@itk-wasm/morphological-contour-interpolation" "1.1.0" "@itk-wasm/morphological-contour-interpolation" "1.1.0"
itk-wasm "1.0.0-b.165" itk-wasm "1.0.0-b.165"
"@cornerstonejs/polymorphic-segmentation@^3.7.0": "@cornerstonejs/polymorphic-segmentation@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.7.0.tgz#6bc0c71451fc8bacfcc4b2ac311ba5efda43c51e" resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.7.1.tgz#364a25cd10fba06dc1667d6a53b2ccd91250ffc2"
integrity sha512-MYb8aXE2EwfsyPmhvhTmNdTkCq5pIlMJuVRmT6GuQ4nf2dIhx5AeZ+Ya/TRaNNumV2Fx9/9PetI8+Z8XJLAILw== integrity sha512-CRmSSgngzQqfBIiOmVFLzcM9lmDw2ueH/Co44/RDuo437J8mTG3QfDBmKoRt0VhlkiWy+C/cVMKqHwZ63Xl7Og==
dependencies: dependencies:
"@icr/polyseg-wasm" "0.4.0" "@icr/polyseg-wasm" "0.4.0"
"@cornerstonejs/tools@^3.7.0": "@cornerstonejs/tools@^3.7.1":
version "3.7.0" version "3.7.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.7.0.tgz#0df08e1e9e47ab5da103592488a3a29d567537c8" resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.7.1.tgz#19458b127b4570314f1a35d04081f59850af5bdc"
integrity sha512-72lbmaAm/dnOANAUNc0OK+9aL2pFklaWBLR+kOKn8OeSh1i9RRTSEaP8zWzStaSNAcdhwQ+JOQzcMR40Eo8oNQ== integrity sha512-OVLfmGmQBuR9Ig1ZKy35EjwRLv6zNs6q4hrXf9EoIysMSH/mYB+V4n9/FQsqnlVh4IN0DuBqkwoUmBaGSPkspQ==
dependencies: dependencies:
"@types/offscreencanvas" "2019.7.3" "@types/offscreencanvas" "2019.7.3"
comlink "^4.4.1" comlink "^4.4.1"