feat(segmentation): Enhance Segmentation Tools with Preview and Selection Features (#4870)
This commit is contained in:
parent
20042f9109
commit
5f112337b6
318
bun.lock
318
bun.lock
@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
"addOns/externals/devDependencies": {
|
"addOns/externals/devDependencies": {
|
||||||
"name": "@externals/devDependencies",
|
"name": "@externals/devDependencies",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/labelmap-interpolation": "^3.7.1",
|
"@cornerstonejs/labelmap-interpolation": "^3.7.5",
|
||||||
"@cornerstonejs/polymorphic-segmentation": "^3.7.1",
|
"@cornerstonejs/polymorphic-segmentation": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"@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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@ohif/core": "3.10.0-beta.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ohif/core": "3.10.0-beta.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-measurement-tracking": "3.10.0-beta.128",
|
"@ohif/extension-measurement-tracking": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ohif/core": "3.10.0-beta.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"@xstate/react": "^3.2.2",
|
"@xstate/react": "^3.2.2",
|
||||||
"xstate": "^4.10.0",
|
"xstate": "^4.10.0",
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"@ohif/core": "3.10.0-beta.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/basic-test-mode": {
|
"modes/basic-test-mode": {
|
||||||
"name": "@ohif/mode-test",
|
"name": "@ohif/mode-test",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
"@ohif/extension-measurement-tracking": "3.10.0-beta.128",
|
"@ohif/extension-measurement-tracking": "3.10.0-beta.130",
|
||||||
"@ohif/extension-test": "3.10.0-beta.128",
|
"@ohif/extension-test": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/longitudinal": {
|
"modes/longitudinal": {
|
||||||
"name": "@ohif/mode-longitudinal",
|
"name": "@ohif/mode-longitudinal",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
"@ohif/extension-measurement-tracking": "3.10.0-beta.128",
|
"@ohif/extension-measurement-tracking": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/microscopy": {
|
"modes/microscopy": {
|
||||||
"name": "@ohif/mode-microscopy",
|
"name": "@ohif/mode-microscopy",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-microscopy": "3.10.0-beta.128",
|
"@ohif/extension-dicom-microscopy": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/preclinical-4d": {
|
"modes/preclinical-4d": {
|
||||||
"name": "@ohif/mode-preclinical-4d",
|
"name": "@ohif/mode-preclinical-4d",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-tmtv": "3.10.0-beta.128",
|
"@ohif/extension-tmtv": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/segmentation": {
|
"modes/segmentation": {
|
||||||
"name": "@ohif/mode-segmentation",
|
"name": "@ohif/mode-segmentation",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"modes/tmtv": {
|
"modes/tmtv": {
|
||||||
"name": "@ohif/mode-tmtv",
|
"name": "@ohif/mode-tmtv",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
"@ohif/extension-measurement-tracking": "3.10.0-beta.128",
|
"@ohif/extension-measurement-tracking": "3.10.0-beta.130",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"platform/app": {
|
"platform/app": {
|
||||||
"name": "@ohif/app",
|
"name": "@ohif/app",
|
||||||
"version": "3.10.0-beta.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@emotion/serialize": "^1.1.3",
|
"@emotion/serialize": "^1.1.3",
|
||||||
"@ohif/core": "3.10.0-beta.128",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.128",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.128",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-microscopy": "3.10.0-beta.128",
|
"@ohif/extension-dicom-microscopy": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-pdf": "3.10.0-beta.128",
|
"@ohif/extension-dicom-pdf": "3.10.0-beta.130",
|
||||||
"@ohif/extension-dicom-video": "3.10.0-beta.128",
|
"@ohif/extension-dicom-video": "3.10.0-beta.130",
|
||||||
"@ohif/extension-test": "3.10.0-beta.128",
|
"@ohif/extension-test": "3.10.0-beta.130",
|
||||||
"@ohif/i18n": "3.10.0-beta.128",
|
"@ohif/i18n": "3.10.0-beta.130",
|
||||||
"@ohif/mode-basic-dev-mode": "3.10.0-beta.128",
|
"@ohif/mode-basic-dev-mode": "3.10.0-beta.130",
|
||||||
"@ohif/mode-longitudinal": "3.10.0-beta.128",
|
"@ohif/mode-longitudinal": "3.10.0-beta.130",
|
||||||
"@ohif/mode-microscopy": "3.10.0-beta.128",
|
"@ohif/mode-microscopy": "3.10.0-beta.130",
|
||||||
"@ohif/mode-test": "3.10.0-beta.128",
|
"@ohif/mode-test": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"@ohif/ui-next": "3.10.0-beta.128",
|
"@ohif/ui-next": "3.10.0-beta.130",
|
||||||
"@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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@ohif/ui": "3.10.0-beta.128",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.128",
|
"version": "3.10.0-beta.130",
|
||||||
"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.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/adapters": ["@cornerstonejs/adapters@3.7.5", "", { "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.5", "@cornerstonejs/tools": "^3.7.5" } }, "sha512-Pdrlx1dYVe/nakC7geec8QOQwqi4hJaAgTpN18y+/a7Vk3wpzj+/q+vf03lt4BhUygAu9+3t5gAUDm0kzXq02g=="],
|
||||||
|
|
||||||
"@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.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/core": ["@cornerstonejs/core@3.7.5", "", { "dependencies": { "@kitware/vtk.js": "32.12.1", "comlink": "^4.4.1", "gl-matrix": "^3.4.3", "loglevel": "^1.9.2" } }, "sha512-AMzZrl4nTTcoZejI3qomi5f9LNPr8QkHGconRnNe7aEjuUHUiT9uwX3ieoltJ2IDNmmqhK3wVzJ19EKVqfuESQ=="],
|
||||||
|
|
||||||
"@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/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.7.5", "", { "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.5" } }, "sha512-bDm4hx9NagD7tTU//ls+Z+U8duYgunOfLsAiU6SvNfB2vEINOSHVSnz7pAcnzfnE21ObJYnZnmH5aa8/sa/xCg=="],
|
||||||
|
|
||||||
"@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/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@3.7.5", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.5", "@cornerstonejs/tools": "^3.7.5", "@kitware/vtk.js": "32.12.1" } }, "sha512-mIdT8qzQpps1my6daRMAQDejhAAj6QGvkZyU4vbcqIHqqEnWezWFdKNWIlZhm6MX52Vy3Jnl7qBlQ8JtPd+5gQ=="],
|
||||||
|
|
||||||
"@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/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.7.5", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.5", "@cornerstonejs/tools": "^3.7.5", "@kitware/vtk.js": "32.12.1" } }, "sha512-+4T5yKjfd0b4dGqy/Tj/V5biuQgjvJVkUv7qe5xU8L/0f8irvr4XtfYoeX9Hoo/iFrYKxdI5LrC35rsKWJttpQ=="],
|
||||||
|
|
||||||
"@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=="],
|
"@cornerstonejs/tools": ["@cornerstonejs/tools@3.7.5", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.7.5", "@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-9GcUI0meHqsO8uzePwv7k99Knr1ta6Q0OCb5AmTKGP6u6ZSEAi1aj2pBSoFZPlG/2vhcXh2NYHkNmeLTYlTP1g=="],
|
||||||
|
|
||||||
"@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=="],
|
||||||
|
|
||||||
|
|||||||
@ -46,8 +46,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@kitware/vtk.js": "32.12.0",
|
"@kitware/vtk.js": "32.12.0",
|
||||||
"react-color": "^2.19.3"
|
"react-color": "^2.19.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,8 +46,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@kitware/vtk.js": "32.12.0",
|
"@kitware/vtk.js": "32.12.0",
|
||||||
"react-color": "^2.19.3"
|
"react-color": "^2.19.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,9 +46,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"classnames": "^2.3.2"
|
"classnames": "^2.3.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,8 +42,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"classnames": "^2.3.2"
|
"classnames": "^2.3.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@ohif/core": "3.10.0-beta.130",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/ui": "3.10.0-beta.130",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"dcmjs": "*",
|
"dcmjs": "*",
|
||||||
@ -51,11 +51,11 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^3.7.1",
|
"@cornerstonejs/adapters": "^3.7.5",
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/labelmap-interpolation": "^3.7.1",
|
"@cornerstonejs/labelmap-interpolation": "^3.7.5",
|
||||||
"@cornerstonejs/polymorphic-segmentation": "^3.7.1",
|
"@cornerstonejs/polymorphic-segmentation": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"@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",
|
||||||
|
|||||||
@ -41,6 +41,23 @@ const toggleSyncFunctions = {
|
|||||||
voi: toggleVOISliceSync,
|
voi: toggleVOISliceSync,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getLabelmapTools = ({ toolGroupService }) => {
|
||||||
|
const labelmapTools = [];
|
||||||
|
const toolGroupIds = toolGroupService.getToolGroupIds();
|
||||||
|
toolGroupIds.forEach(toolGroupId => {
|
||||||
|
const toolGroup = cornerstoneTools.ToolGroupManager.getToolGroup(toolGroupId);
|
||||||
|
const tools = toolGroup.getToolInstances();
|
||||||
|
// tools is an object with toolName as the key and tool as the value
|
||||||
|
Object.keys(tools).forEach(toolName => {
|
||||||
|
const tool = tools[toolName];
|
||||||
|
if (tool instanceof cornerstoneTools.LabelmapBaseTool) {
|
||||||
|
labelmapTools.push(tool);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return labelmapTools;
|
||||||
|
};
|
||||||
|
|
||||||
function commandsModule({
|
function commandsModule({
|
||||||
servicesManager,
|
servicesManager,
|
||||||
commandsManager,
|
commandsManager,
|
||||||
@ -57,6 +74,7 @@ function commandsModule({
|
|||||||
colorbarService,
|
colorbarService,
|
||||||
hangingProtocolService,
|
hangingProtocolService,
|
||||||
syncGroupService,
|
syncGroupService,
|
||||||
|
toolbarService,
|
||||||
segmentationService,
|
segmentationService,
|
||||||
displaySetService,
|
displaySetService,
|
||||||
} = servicesManager.services as AppTypes.Services;
|
} = servicesManager.services as AppTypes.Services;
|
||||||
@ -1484,6 +1502,41 @@ function commandsModule({
|
|||||||
redo: () => {
|
redo: () => {
|
||||||
DefaultHistoryMemo.redo();
|
DefaultHistoryMemo.redo();
|
||||||
},
|
},
|
||||||
|
toggleSegmentPreviewEdit: ({ toggle }) => {
|
||||||
|
const labelmapTools = getLabelmapTools({ toolGroupService });
|
||||||
|
labelmapTools.forEach(tool => {
|
||||||
|
tool.configuration = {
|
||||||
|
...tool.configuration,
|
||||||
|
preview: {
|
||||||
|
...tool.configuration.preview,
|
||||||
|
enabled: toggle,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
toggleSegmentSelect: ({ toggle }) => {
|
||||||
|
const toolGroupIds = toolGroupService.getToolGroupIds();
|
||||||
|
toolGroupIds.forEach(toolGroupId => {
|
||||||
|
const toolGroup = cornerstoneTools.ToolGroupManager.getToolGroup(toolGroupId);
|
||||||
|
if (toggle) {
|
||||||
|
toolGroup.setToolActive(cornerstoneTools.SegmentSelectTool.toolName);
|
||||||
|
} else {
|
||||||
|
toolGroup.setToolDisabled(cornerstoneTools.SegmentSelectTool.toolName);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
acceptPreview: () => {
|
||||||
|
const labelmapTools = getLabelmapTools({ toolGroupService });
|
||||||
|
labelmapTools.forEach(tool => {
|
||||||
|
tool.acceptPreview();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
rejectPreview: () => {
|
||||||
|
const labelmapTools = getLabelmapTools({ toolGroupService });
|
||||||
|
labelmapTools.forEach(tool => {
|
||||||
|
tool.rejectPreview();
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const definitions = {
|
const definitions = {
|
||||||
@ -1755,6 +1808,10 @@ function commandsModule({
|
|||||||
interpolateLabelmap: actions.interpolateLabelmap,
|
interpolateLabelmap: actions.interpolateLabelmap,
|
||||||
runSegmentBidirectional: actions.runSegmentBidirectional,
|
runSegmentBidirectional: actions.runSegmentBidirectional,
|
||||||
downloadCSVSegmentationReport: actions.downloadCSVSegmentationReport,
|
downloadCSVSegmentationReport: actions.downloadCSVSegmentationReport,
|
||||||
|
toggleSegmentPreviewEdit: actions.toggleSegmentPreviewEdit,
|
||||||
|
toggleSegmentSelect: actions.toggleSegmentSelect,
|
||||||
|
acceptPreview: actions.acceptPreview,
|
||||||
|
rejectPreview: actions.rejectPreview,
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
import { CustomDropdownMenuContent } from './CustomDropdownMenuContent';
|
import { CustomDropdownMenuContent } from './CustomDropdownMenuContent';
|
||||||
import { CustomSegmentStatisticsHeader } from './CustomSegmentStatisticsHeader';
|
import { CustomSegmentStatisticsHeader } from './CustomSegmentStatisticsHeader';
|
||||||
|
import React, { useState } from 'react';
|
||||||
|
import { Switch } from '@ohif/ui-next';
|
||||||
|
|
||||||
export default function getSegmentationPanelCustomization({ commandsManager, servicesManager }) {
|
export default function getSegmentationPanelCustomization({ commandsManager, servicesManager }) {
|
||||||
return {
|
return {
|
||||||
@ -30,5 +32,40 @@ export default function getSegmentationPanelCustomization({ commandsManager, ser
|
|||||||
volume: 'Volume',
|
volume: 'Volume',
|
||||||
lesionGlycolysis: 'Lesion Glycolysis',
|
lesionGlycolysis: 'Lesion Glycolysis',
|
||||||
},
|
},
|
||||||
|
'segmentationToolbox.config': () => {
|
||||||
|
// Get initial states based on current configuration
|
||||||
|
const [previewEdits, setPreviewEdits] = useState(false);
|
||||||
|
const [toggleSegmentEnabled, setToggleSegmentEnabled] = useState(false);
|
||||||
|
|
||||||
|
const handlePreviewEditsChange = checked => {
|
||||||
|
setPreviewEdits(checked);
|
||||||
|
commandsManager.run('toggleSegmentPreviewEdit', { toggle: checked });
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleToggleSegmentEnabledChange = checked => {
|
||||||
|
setToggleSegmentEnabled(checked);
|
||||||
|
commandsManager.run('toggleSegmentSelect', { toggle: checked });
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="bg-muted flex flex-col gap-4 border-b border-b-[2px] border-black px-2 py-3">
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<Switch
|
||||||
|
checked={previewEdits}
|
||||||
|
onCheckedChange={handlePreviewEditsChange}
|
||||||
|
/>
|
||||||
|
<span className="text-base text-white">Preview edits before creating</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<Switch
|
||||||
|
checked={toggleSegmentEnabled}
|
||||||
|
onCheckedChange={handleToggleSegmentEnabledChange}
|
||||||
|
/>
|
||||||
|
<span className="text-base text-white">Highlight segments to select</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,6 +37,7 @@ import {
|
|||||||
LivewireContourTool,
|
LivewireContourTool,
|
||||||
OrientationMarkerTool,
|
OrientationMarkerTool,
|
||||||
WindowLevelRegionTool,
|
WindowLevelRegionTool,
|
||||||
|
SegmentSelectTool,
|
||||||
} from '@cornerstonejs/tools';
|
} from '@cornerstonejs/tools';
|
||||||
import * as polySeg from '@cornerstonejs/polymorphic-segmentation';
|
import * as polySeg from '@cornerstonejs/polymorphic-segmentation';
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ export default function initCornerstoneTools(configuration = {}) {
|
|||||||
addTool(OrientationMarkerTool);
|
addTool(OrientationMarkerTool);
|
||||||
addTool(WindowLevelRegionTool);
|
addTool(WindowLevelRegionTool);
|
||||||
addTool(PlanarFreehandContourSegmentationTool);
|
addTool(PlanarFreehandContourSegmentationTool);
|
||||||
|
addTool(SegmentSelectTool);
|
||||||
// Modify annotation tools to use dashed lines on SR
|
// Modify annotation tools to use dashed lines on SR
|
||||||
const annotationStyle = {
|
const annotationStyle = {
|
||||||
textBoxFontSize: '15px',
|
textBoxFontSize: '15px',
|
||||||
@ -150,6 +151,7 @@ const toolNames = {
|
|||||||
WindowLevelRegion: WindowLevelRegionTool.toolName,
|
WindowLevelRegion: WindowLevelRegionTool.toolName,
|
||||||
PlanarFreehandContourSegmentation: PlanarFreehandContourSegmentationTool.toolName,
|
PlanarFreehandContourSegmentation: PlanarFreehandContourSegmentationTool.toolName,
|
||||||
SegmentBidirectional: SegmentBidirectionalTool.toolName,
|
SegmentBidirectional: SegmentBidirectionalTool.toolName,
|
||||||
|
SegmentSelect: SegmentSelectTool.toolName,
|
||||||
};
|
};
|
||||||
|
|
||||||
export { toolNames };
|
export { toolNames };
|
||||||
|
|||||||
@ -264,10 +264,14 @@ class SegmentationService extends PubSubService {
|
|||||||
{
|
{
|
||||||
segmentationId,
|
segmentationId,
|
||||||
type,
|
type,
|
||||||
|
config,
|
||||||
suppressEvents = false,
|
suppressEvents = false,
|
||||||
}: {
|
}: {
|
||||||
segmentationId: string;
|
segmentationId: string;
|
||||||
type?: csToolsEnums.SegmentationRepresentations;
|
type?: csToolsEnums.SegmentationRepresentations;
|
||||||
|
config?: {
|
||||||
|
blendMode?: csEnums.BlendModes;
|
||||||
|
};
|
||||||
suppressEvents?: boolean;
|
suppressEvents?: boolean;
|
||||||
}
|
}
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
@ -301,7 +305,8 @@ class SegmentationService extends PubSubService {
|
|||||||
segmentationId,
|
segmentationId,
|
||||||
representationTypeToUse,
|
representationTypeToUse,
|
||||||
colorLUTIndex,
|
colorLUTIndex,
|
||||||
isConverted
|
isConverted,
|
||||||
|
config
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!suppressEvents) {
|
if (!suppressEvents) {
|
||||||
@ -1349,12 +1354,15 @@ class SegmentationService extends PubSubService {
|
|||||||
segmentationId: string,
|
segmentationId: string,
|
||||||
representationType: csToolsEnums.SegmentationRepresentations,
|
representationType: csToolsEnums.SegmentationRepresentations,
|
||||||
colorLUTIndex: number,
|
colorLUTIndex: number,
|
||||||
isConverted: boolean
|
isConverted: boolean,
|
||||||
|
config?: {
|
||||||
|
blendMode?: csEnums.BlendModes;
|
||||||
|
}
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const representation = {
|
const representation = {
|
||||||
type: representationType,
|
type: representationType,
|
||||||
segmentationId,
|
segmentationId,
|
||||||
config: { colorLUTOrIndex: colorLUTIndex },
|
config: { colorLUTOrIndex: colorLUTIndex, ...config },
|
||||||
};
|
};
|
||||||
|
|
||||||
const addRepresentation = () =>
|
const addRepresentation = () =>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Types, getEnabledElementByViewportId } from '@cornerstonejs/core';
|
import { Enums as CoreEnums, Types, getEnabledElementByViewportId } from '@cornerstonejs/core';
|
||||||
import {
|
import {
|
||||||
SynchronizerManager,
|
SynchronizerManager,
|
||||||
Synchronizer,
|
Synchronizer,
|
||||||
@ -7,7 +7,8 @@ import {
|
|||||||
} from '@cornerstonejs/tools';
|
} from '@cornerstonejs/tools';
|
||||||
|
|
||||||
const { createSynchronizer } = SynchronizerManager;
|
const { createSynchronizer } = SynchronizerManager;
|
||||||
const { SEGMENTATION_REPRESENTATION_ADDED } = Enums.Events;
|
const { SEGMENTATION_REPRESENTATION_MODIFIED } = Enums.Events;
|
||||||
|
const { BlendModes } = CoreEnums;
|
||||||
|
|
||||||
export default function createHydrateSegmentationSynchronizer(
|
export default function createHydrateSegmentationSynchronizer(
|
||||||
synchronizerName: string,
|
synchronizerName: string,
|
||||||
@ -15,15 +16,16 @@ export default function createHydrateSegmentationSynchronizer(
|
|||||||
): Synchronizer {
|
): Synchronizer {
|
||||||
const stackImageSynchronizer = createSynchronizer(
|
const stackImageSynchronizer = createSynchronizer(
|
||||||
synchronizerName,
|
synchronizerName,
|
||||||
SEGMENTATION_REPRESENTATION_ADDED,
|
SEGMENTATION_REPRESENTATION_MODIFIED,
|
||||||
(synchronizerInstance, sourceViewport, targetViewport, sourceEvent) =>
|
(synchronizerInstance, sourceViewport, targetViewport, sourceEvent) => {
|
||||||
segmentationRepresentationModifiedCallback(
|
return segmentationRepresentationModifiedCallback(
|
||||||
synchronizerInstance,
|
synchronizerInstance,
|
||||||
sourceViewport,
|
sourceViewport,
|
||||||
targetViewport,
|
targetViewport,
|
||||||
sourceEvent,
|
sourceEvent,
|
||||||
{ servicesManager, options }
|
{ servicesManager, options }
|
||||||
),
|
);
|
||||||
|
},
|
||||||
{
|
{
|
||||||
eventSource: 'eventTarget',
|
eventSource: 'eventTarget',
|
||||||
}
|
}
|
||||||
@ -41,8 +43,8 @@ const segmentationRepresentationModifiedCallback = async (
|
|||||||
) => {
|
) => {
|
||||||
const event = sourceEvent as ToolsTypes.EventTypes.SegmentationRepresentationModifiedEventType;
|
const event = sourceEvent as ToolsTypes.EventTypes.SegmentationRepresentationModifiedEventType;
|
||||||
|
|
||||||
const { segmentationId, viewportId } = event.detail;
|
const { segmentationId } = event.detail;
|
||||||
const { segmentationService, hangingProtocolService } = servicesManager.services;
|
const { segmentationService } = servicesManager.services;
|
||||||
|
|
||||||
const targetViewportId = targetViewport.viewportId;
|
const targetViewportId = targetViewport.viewportId;
|
||||||
|
|
||||||
@ -75,5 +77,9 @@ const segmentationRepresentationModifiedCallback = async (
|
|||||||
await segmentationService.addSegmentationRepresentation(targetViewportId, {
|
await segmentationService.addSegmentationRepresentation(targetViewportId, {
|
||||||
segmentationId,
|
segmentationId,
|
||||||
type,
|
type,
|
||||||
|
config: {
|
||||||
|
blendMode:
|
||||||
|
viewport.getBlendMode() === 1 ? BlendModes.LABELMAP_EDGE_PROJECTION_BLEND : undefined,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import { useNavigate, useLocation } from 'react-router-dom';
|
import { useNavigate, useLocation } from 'react-router-dom';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
import { Header, useModal } from '@ohif/ui-next';
|
import { Button, Header, Icons, useModal } from '@ohif/ui-next';
|
||||||
import { useSystem } from '@ohif/core';
|
import { useSystem } from '@ohif/core';
|
||||||
import { Toolbar } from '../Toolbar/Toolbar';
|
import { Toolbar } from '../Toolbar/Toolbar';
|
||||||
import HeaderPatientInfo from './HeaderPatientInfo';
|
import HeaderPatientInfo from './HeaderPatientInfo';
|
||||||
@ -10,7 +10,7 @@ import { PatientInfoVisibility } from './HeaderPatientInfo/HeaderPatientInfo';
|
|||||||
import { preserveQueryParameters, publicUrl } from '@ohif/app';
|
import { preserveQueryParameters, publicUrl } from '@ohif/app';
|
||||||
|
|
||||||
function ViewerHeader({ appConfig }: withAppTypes<{ appConfig: AppTypes.Config }>) {
|
function ViewerHeader({ appConfig }: withAppTypes<{ appConfig: AppTypes.Config }>) {
|
||||||
const { servicesManager, extensionManager } = useSystem();
|
const { servicesManager, extensionManager, commandsManager } = useSystem();
|
||||||
const { customizationService } = servicesManager.services;
|
const { customizationService } = servicesManager.services;
|
||||||
|
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
@ -94,6 +94,28 @@ function ViewerHeader({ appConfig }: withAppTypes<{ appConfig: AppTypes.Config }
|
|||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
UndoRedo={
|
||||||
|
<div className="text-primary-active flex cursor-pointer items-center">
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
className="hover:bg-primary-dark"
|
||||||
|
onClick={() => {
|
||||||
|
commandsManager.run('undo');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Icons.Undo className="" />
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
className="hover:bg-primary-dark"
|
||||||
|
onClick={() => {
|
||||||
|
commandsManager.run('redo');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Icons.Redo className="" />
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<div className="relative flex justify-center gap-[4px]">
|
<div className="relative flex justify-center gap-[4px]">
|
||||||
<Toolbar servicesManager={servicesManager} />
|
<Toolbar servicesManager={servicesManager} />
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
import React from 'react';
|
import React, { useState } from 'react';
|
||||||
import { PanelSection, ToolSettings } from '@ohif/ui-next';
|
import { Icons, PanelSection, ToolSettings } from '@ohif/ui-next';
|
||||||
import { useSystem, useToolbar } from '@ohif/core';
|
import { useSystem, useToolbar } from '@ohif/core';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
interface ButtonProps {
|
interface ButtonProps {
|
||||||
isActive?: boolean;
|
isActive?: boolean;
|
||||||
@ -20,7 +21,10 @@ interface ButtonProps {
|
|||||||
*/
|
*/
|
||||||
export function Toolbox({ buttonSectionId, title }: { buttonSectionId: string; title: string }) {
|
export function Toolbox({ buttonSectionId, title }: { buttonSectionId: string; title: string }) {
|
||||||
const { servicesManager } = useSystem();
|
const { servicesManager } = useSystem();
|
||||||
const { toolbarService } = servicesManager.services;
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const { toolbarService, customizationService } = servicesManager.services;
|
||||||
|
const [showConfig, setShowConfig] = useState(false);
|
||||||
|
|
||||||
const { toolbarButtons: toolboxSections, onInteraction } = useToolbar({
|
const { toolbarButtons: toolboxSections, onInteraction } = useToolbar({
|
||||||
servicesManager,
|
servicesManager,
|
||||||
@ -72,12 +76,27 @@ export function Toolbox({ buttonSectionId, title }: { buttonSectionId: string; t
|
|||||||
onInteraction?.({ itemId });
|
onInteraction?.({ itemId });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const CustomConfigComponent = customizationService.getCustomization(`${buttonSectionId}.config`);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PanelSection>
|
<PanelSection>
|
||||||
<PanelSection.Header>
|
<PanelSection.Header className="flex items-center justify-between">
|
||||||
<span>{title}</span>
|
<span>{t(title)}</span>
|
||||||
|
{CustomConfigComponent && (
|
||||||
|
<div className="ml-auto mr-2">
|
||||||
|
<Icons.Settings
|
||||||
|
className="text-primary-active h-4 w-4"
|
||||||
|
onClick={e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
setShowConfig(!showConfig);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</PanelSection.Header>
|
</PanelSection.Header>
|
||||||
|
|
||||||
<PanelSection.Content className="flex-shrink-0 border-none">
|
<PanelSection.Content className="flex-shrink-0 border-none">
|
||||||
|
{showConfig && <CustomConfigComponent />}
|
||||||
{toolboxSections.map(section => {
|
{toolboxSections.map(section => {
|
||||||
const sectionId = section.componentProps.buttonSection;
|
const sectionId = section.componentProps.buttonSection;
|
||||||
const buttons = toolbarService.getButtonSection(sectionId) as any[];
|
const buttons = toolbarService.getButtonSection(sectionId) as any[];
|
||||||
|
|||||||
@ -32,8 +32,8 @@
|
|||||||
"start": "yarn run dev"
|
"start": "yarn run dev"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@cornerstonejs/core": "^3.7.1",
|
"@cornerstonejs/core": "^3.7.5",
|
||||||
"@cornerstonejs/tools": "^3.7.1",
|
"@cornerstonejs/tools": "^3.7.5",
|
||||||
"@ohif/core": "3.10.0-beta.130",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.130",
|
||||||
"@ohif/extension-default": "3.10.0-beta.130",
|
"@ohif/extension-default": "3.10.0-beta.130",
|
||||||
|
|||||||
@ -54,7 +54,6 @@ export default function PanelRoiThresholdSegmentation({
|
|||||||
// Find the first segmentation with a TMTV value since all of them have the same value
|
// Find the first segmentation with a TMTV value since all of them have the same value
|
||||||
const stats = segmentationService.getSegmentationGroupStats(segmentationIds);
|
const stats = segmentationService.getSegmentationGroupStats(segmentationIds);
|
||||||
const tmtvValue = stats?.tmtv;
|
const tmtvValue = stats?.tmtv;
|
||||||
const tlgValue = stats?.tlg;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mt-2 mb-10 flex flex-col">
|
<div className="mt-2 mb-10 flex flex-col">
|
||||||
@ -65,7 +64,6 @@ export default function PanelRoiThresholdSegmentation({
|
|||||||
{'TMTV:'}
|
{'TMTV:'}
|
||||||
</span>
|
</span>
|
||||||
<div className="text-white">{`${tmtvValue?.toFixed(3)} mL`}</div>
|
<div className="text-white">{`${tmtvValue?.toFixed(3)} mL`}</div>
|
||||||
<div className="text-white">{`${tlgValue?.toFixed(3)} mL`}</div>
|
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -40,6 +40,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, se
|
|||||||
],
|
],
|
||||||
passive: [
|
passive: [
|
||||||
{ toolName: toolNames.Length },
|
{ toolName: toolNames.Length },
|
||||||
|
{ toolName: toolNames.SegmentBidirectional },
|
||||||
{ toolName: toolNames.ArrowAnnotate },
|
{ toolName: toolNames.ArrowAnnotate },
|
||||||
{ toolName: toolNames.Bidirectional },
|
{ toolName: toolNames.Bidirectional },
|
||||||
{ toolName: toolNames.Probe },
|
{ toolName: toolNames.Probe },
|
||||||
|
|||||||
@ -67,9 +67,6 @@ function createTools(utilityModule) {
|
|||||||
parentTool: 'Brush',
|
parentTool: 'Brush',
|
||||||
configuration: {
|
configuration: {
|
||||||
activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
|
activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
|
||||||
// preview: {
|
|
||||||
// enabled: true,
|
|
||||||
// },
|
|
||||||
threshold: {
|
threshold: {
|
||||||
isDynamic: true,
|
isDynamic: true,
|
||||||
dynamicRadius: 3,
|
dynamicRadius: 3,
|
||||||
@ -79,14 +76,14 @@ function createTools(utilityModule) {
|
|||||||
{
|
{
|
||||||
toolName: toolNames.SegmentBidirectional,
|
toolName: toolNames.SegmentBidirectional,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
toolName: toolNames.SegmentSelect,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
toolName: 'ThresholdSphereBrushDynamic',
|
toolName: 'ThresholdSphereBrushDynamic',
|
||||||
parentTool: 'Brush',
|
parentTool: 'Brush',
|
||||||
configuration: {
|
configuration: {
|
||||||
activeStrategy: 'THRESHOLD_INSIDE_SPHERE',
|
activeStrategy: 'THRESHOLD_INSIDE_SPHERE',
|
||||||
// preview: {
|
|
||||||
// enabled: true,
|
|
||||||
// },
|
|
||||||
threshold: {
|
threshold: {
|
||||||
isDynamic: true,
|
isDynamic: true,
|
||||||
dynamicRadius: 3,
|
dynamicRadius: 3,
|
||||||
|
|||||||
@ -28,6 +28,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
|
|||||||
],
|
],
|
||||||
passive: [
|
passive: [
|
||||||
{ toolName: toolNames.Length },
|
{ toolName: toolNames.Length },
|
||||||
|
{ toolName: toolNames.SegmentBidirectional },
|
||||||
{
|
{
|
||||||
toolName: toolNames.ArrowAnnotate,
|
toolName: toolNames.ArrowAnnotate,
|
||||||
configuration: {
|
configuration: {
|
||||||
|
|||||||
@ -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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@emotion/serialize": "^1.1.3",
|
"@emotion/serialize": "^1.1.3",
|
||||||
"@ohif/core": "3.10.0-beta.130",
|
"@ohif/core": "3.10.0-beta.130",
|
||||||
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
"@ohif/extension-cornerstone": "3.10.0-beta.130",
|
||||||
|
|||||||
@ -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.1",
|
"@cornerstonejs/dicom-image-loader": "^3.7.5",
|
||||||
"@ohif/ui": "3.10.0-beta.130",
|
"@ohif/ui": "3.10.0-beta.130",
|
||||||
"cornerstone-math": "0.1.9",
|
"cornerstone-math": "0.1.9",
|
||||||
"dicom-parser": "^1.8.21"
|
"dicom-parser": "^1.8.21"
|
||||||
|
|||||||
@ -167,6 +167,16 @@ const bindings = [
|
|||||||
label: 'Delete Annotation',
|
label: 'Delete Annotation',
|
||||||
keys: ['backspace'],
|
keys: ['backspace'],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
commandName: 'acceptPreview',
|
||||||
|
label: 'Accept Preview',
|
||||||
|
keys: ['enter'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
commandName: 'rejectPreview',
|
||||||
|
label: 'Reject Preview',
|
||||||
|
keys: ['esc'],
|
||||||
|
},
|
||||||
// after we have the ui for undo/redo, we can add these back in
|
// after we have the ui for undo/redo, we can add these back in
|
||||||
// {
|
// {
|
||||||
// commandName: 'undo',
|
// commandName: 'undo',
|
||||||
|
|||||||
@ -29,6 +29,7 @@ interface HeaderProps {
|
|||||||
};
|
};
|
||||||
PatientInfo?: ReactNode;
|
PatientInfo?: ReactNode;
|
||||||
Secondary?: ReactNode;
|
Secondary?: ReactNode;
|
||||||
|
UndoRedo?: ReactNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Header({
|
function Header({
|
||||||
@ -39,11 +40,10 @@ function Header({
|
|||||||
isSticky = false,
|
isSticky = false,
|
||||||
WhiteLabeling,
|
WhiteLabeling,
|
||||||
PatientInfo,
|
PatientInfo,
|
||||||
|
UndoRedo,
|
||||||
Secondary,
|
Secondary,
|
||||||
...props
|
...props
|
||||||
}: HeaderProps): ReactNode {
|
}: HeaderProps): ReactNode {
|
||||||
const { t } = useTranslation('Header');
|
|
||||||
|
|
||||||
const onClickReturn = () => {
|
const onClickReturn = () => {
|
||||||
if (isReturnEnabled && onClickReturnButton) {
|
if (isReturnEnabled && onClickReturnButton) {
|
||||||
onClickReturnButton();
|
onClickReturnButton();
|
||||||
@ -76,6 +76,8 @@ function Header({
|
|||||||
<div className="flex items-center justify-center space-x-2">{children}</div>
|
<div className="flex items-center justify-center space-x-2">{children}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="absolute right-0 top-1/2 flex -translate-y-1/2 select-none items-center">
|
<div className="absolute right-0 top-1/2 flex -translate-y-1/2 select-none items-center">
|
||||||
|
{UndoRedo}
|
||||||
|
<div className="border-primary-dark mx-1.5 h-[25px] border-r"></div>
|
||||||
{PatientInfo}
|
{PatientInfo}
|
||||||
<div className="border-primary-dark mx-1.5 h-[25px] border-r"></div>
|
<div className="border-primary-dark mx-1.5 h-[25px] border-r"></div>
|
||||||
<div className="flex-shrink-0">
|
<div className="flex-shrink-0">
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
import React, { ReactNode, useState, Children, isValidElement } from 'react';
|
import React, { ReactNode, useState, Children, isValidElement } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { PanelSection } from '../PanelSection';
|
import { PanelSection } from '../PanelSection';
|
||||||
import {
|
import { SegmentationTableProvider, SegmentationTableContextType } from './contexts';
|
||||||
SegmentationTableProvider,
|
|
||||||
SegmentationTableContextType,
|
|
||||||
ViewportSegmentationInfo,
|
|
||||||
} from './contexts';
|
|
||||||
import { SegmentationSegments } from './SegmentationSegments';
|
import { SegmentationSegments } from './SegmentationSegments';
|
||||||
import { SegmentStatistics } from './SegmentStatistics';
|
import { SegmentStatistics } from './SegmentStatistics';
|
||||||
import { SegmentationTableConfig } from './SegmentationTableConfig';
|
import { SegmentationTableConfig } from './SegmentationTableConfig';
|
||||||
|
|||||||
48
yarn.lock
48
yarn.lock
@ -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.1":
|
"@cornerstonejs/adapters@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.7.1.tgz#9d5babdd00fc08e54aa57c14a7d36d2854ebd01c"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.7.5.tgz#d5199f8aef9f9ba176183f9d123b3a0e32622813"
|
||||||
integrity sha512-aREkDwxmoIxBT4xJs00i7ghI9kCdKa7hmmDdCxw54lD0kI6aGLAHrwIeeYl+C19suyNH18duwuy1E/GYLfg5pA==
|
integrity sha512-Pdrlx1dYVe/nakC7geec8QOQwqi4hJaAgTpN18y+/a7Vk3wpzj+/q+vf03lt4BhUygAu9+3t5gAUDm0kzXq02g==
|
||||||
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.1":
|
"@cornerstonejs/core@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.7.1.tgz#409fad60fa933219f5b1e5757c9dbaead058338c"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.7.5.tgz#16572c18c4cdbf0ffeb6f39675025263ce2099bf"
|
||||||
integrity sha512-+I6rCCFW+Am5GRJoaFdl2mD8R+Z0UXRZOBUE7hfTs0F6S8+45nOrlUccIK0UJdRq3bUc+h+G2tHW/i04FFs/mg==
|
integrity sha512-AMzZrl4nTTcoZejI3qomi5f9LNPr8QkHGconRnNe7aEjuUHUiT9uwX3ieoltJ2IDNmmqhK3wVzJ19EKVqfuESQ==
|
||||||
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.1":
|
"@cornerstonejs/dicom-image-loader@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.7.1.tgz#c6744624387b5a5056f416d2adebafe0fdda8a48"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.7.5.tgz#ad010a5c066f4ae4c118c2ce52625d7ee3ad665e"
|
||||||
integrity sha512-mfbZ4PjLIGRh9CaMGxw0I4skI0y3sG+z0SlH40m/cwWvfKj18T5iqoLVSovSnYhqCcKdSyljM/ZTAj1t0vfRVQ==
|
integrity sha512-bDm4hx9NagD7tTU//ls+Z+U8duYgunOfLsAiU6SvNfB2vEINOSHVSnz7pAcnzfnE21ObJYnZnmH5aa8/sa/xCg==
|
||||||
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.1":
|
"@cornerstonejs/labelmap-interpolation@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.7.1.tgz#e82c887ffb3f2c3cba77c7ad84b26812aecd6a44"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.7.5.tgz#7947d909ff667484abaa484267965c1ad6f91da9"
|
||||||
integrity sha512-D9VwRPeWlIMfbGD9e5R+zPQLiqKmP0sz3kMN6pxEiDbHpJ6QirtgyJyzZRI3+Z68zL2mxUDNLbfw0GbYm9fhEg==
|
integrity sha512-mIdT8qzQpps1my6daRMAQDejhAAj6QGvkZyU4vbcqIHqqEnWezWFdKNWIlZhm6MX52Vy3Jnl7qBlQ8JtPd+5gQ==
|
||||||
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.1":
|
"@cornerstonejs/polymorphic-segmentation@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.7.1.tgz#364a25cd10fba06dc1667d6a53b2ccd91250ffc2"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.7.5.tgz#6c322de19dfb55cee9ca6a813821be906bea9fbb"
|
||||||
integrity sha512-CRmSSgngzQqfBIiOmVFLzcM9lmDw2ueH/Co44/RDuo437J8mTG3QfDBmKoRt0VhlkiWy+C/cVMKqHwZ63Xl7Og==
|
integrity sha512-+4T5yKjfd0b4dGqy/Tj/V5biuQgjvJVkUv7qe5xU8L/0f8irvr4XtfYoeX9Hoo/iFrYKxdI5LrC35rsKWJttpQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@icr/polyseg-wasm" "0.4.0"
|
"@icr/polyseg-wasm" "0.4.0"
|
||||||
|
|
||||||
"@cornerstonejs/tools@^3.7.1":
|
"@cornerstonejs/tools@^3.7.5":
|
||||||
version "3.7.1"
|
version "3.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.7.1.tgz#19458b127b4570314f1a35d04081f59850af5bdc"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.7.5.tgz#5ecdf5669640e0fc57cbae49650aa841decba313"
|
||||||
integrity sha512-OVLfmGmQBuR9Ig1ZKy35EjwRLv6zNs6q4hrXf9EoIysMSH/mYB+V4n9/FQsqnlVh4IN0DuBqkwoUmBaGSPkspQ==
|
integrity sha512-9GcUI0meHqsO8uzePwv7k99Knr1ta6Q0OCb5AmTKGP6u6ZSEAi1aj2pBSoFZPlG/2vhcXh2NYHkNmeLTYlTP1g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/offscreencanvas" "2019.7.3"
|
"@types/offscreencanvas" "2019.7.3"
|
||||||
comlink "^4.4.1"
|
comlink "^4.4.1"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user