fix: Cornerstone3D 3.0 (#4816)

Co-authored-by: sedghi <ar.sedghi@gmail.com>
This commit is contained in:
Bill Wallace 2025-02-28 14:16:39 -05:00 committed by GitHub
parent 62abb3ac47
commit 24567c4e92
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
25 changed files with 326 additions and 342 deletions

View File

@ -1,6 +1,4 @@
// https://babeljs.io/docs/en/options#babelrcroots
const { extendDefaultPlugins } = require('svgo');
module.exports = {
babelrcRoots: ['./platform/*', './extensions/*', './modes/*'],
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript'],

318
bun.lock
View File

@ -32,7 +32,7 @@
},
"addOns/externals/devDependencies": {
"name": "@externals/devDependencies",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@kitware/vtk.js": "32.1.1",
@ -120,20 +120,20 @@
},
"addOns/externals/dicom-microscopy-viewer": {
"name": "@externals/dicom-microscopy-viewer",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"dicom-microscopy-viewer": "^0.46.1",
},
},
"extensions/cornerstone": {
"name": "@ohif/extension-cornerstone",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.19.14",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/tools": "^2.19.14",
"@icr/polyseg-wasm": "^0.4.0",
"@cornerstonejs/adapters": "^3.0.1",
"@cornerstonejs/core": "^3.0.1",
"@cornerstonejs/polymorphic-segmentation": "^3.0.1",
"@cornerstonejs/tools": "^3.0.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.1.1",
"html2canvas": "^1.4.1",
@ -150,9 +150,9 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.19.14",
"@ohif/core": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@cornerstonejs/dicom-image-loader": "^3.0.1",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8",
@ -164,19 +164,19 @@
},
"extensions/cornerstone-dicom-pmap": {
"name": "@ohif/extension-cornerstone-dicom-pmap",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.19.14",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/adapters": "^3.0.1",
"@cornerstonejs/core": "^3.0.1",
"@kitware/vtk.js": "32.1.1",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -187,16 +187,16 @@
},
"extensions/cornerstone-dicom-rt": {
"name": "@ohif/extension-cornerstone-dicom-rt",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -207,19 +207,19 @@
},
"extensions/cornerstone-dicom-seg": {
"name": "@ohif/extension-cornerstone-dicom-seg",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.19.14",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/adapters": "^3.0.1",
"@cornerstonejs/core": "^3.0.1",
"@kitware/vtk.js": "32.1.1",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -230,19 +230,19 @@
},
"extensions/cornerstone-dicom-sr": {
"name": "@ohif/extension-cornerstone-dicom-sr",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.19.14",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/tools": "^2.19.14",
"@cornerstonejs/adapters": "^3.0.1",
"@cornerstonejs/core": "^3.0.1",
"@cornerstonejs/tools": "^3.0.1",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-measurement-tracking": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-measurement-tracking": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -252,19 +252,19 @@
},
"extensions/cornerstone-dynamic-volume": {
"name": "@ohif/extension-cornerstone-dynamic-volume",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/tools": "^2.19.14",
"@cornerstonejs/core": "^3.0.1",
"@cornerstonejs/tools": "^3.0.1",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8",
@ -274,7 +274,7 @@
},
"extensions/default": {
"name": "@ohif/extension-default",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/calculate-suv": "^1.1.0",
@ -282,8 +282,8 @@
"lodash.uniqby": "^4.7.0",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"dcmjs": "*",
"dicomweb-client": "^0.10.4",
"prop-types": "^15.6.2",
@ -297,7 +297,7 @@
},
"extensions/dicom-microscopy": {
"name": "@ohif/extension-dicom-microscopy",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/codec-charls": "^1.2.3",
@ -308,10 +308,10 @@
"mathjs": "^12.4.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -322,14 +322,14 @@
},
"extensions/dicom-pdf": {
"name": "@ohif/extension-dicom-pdf",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -339,14 +339,14 @@
},
"extensions/dicom-video": {
"name": "@ohif/extension-dicom-video",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -356,20 +356,20 @@
},
"extensions/measurement-tracking": {
"name": "@ohif/extension-measurement-tracking",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.113",
"@xstate/react": "^3.2.2",
"xstate": "^4.10.0",
},
"peerDependencies": {
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/tools": "^2.19.14",
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@cornerstonejs/core": "^3.0.1",
"@cornerstonejs/tools": "^3.0.1",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"classnames": "^2.3.2",
"dcmjs": "*",
"lodash.debounce": "^4.0.8",
@ -382,14 +382,14 @@
},
"extensions/test-extension": {
"name": "@ohif/extension-test",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "0.38.0",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -399,14 +399,14 @@
},
"extensions/tmtv": {
"name": "@ohif/extension-tmtv",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -416,7 +416,7 @@
},
"modes/basic-dev-mode": {
"name": "@ohif/mode-basic-dev-mode",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -426,17 +426,17 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
},
},
"modes/basic-test-mode": {
"name": "@ohif/mode-test",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -446,19 +446,19 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/extension-measurement-tracking": "3.10.0-beta.108",
"@ohif/extension-test": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
"@ohif/extension-measurement-tracking": "3.10.0-beta.113",
"@ohif/extension-test": "3.10.0-beta.113",
},
},
"modes/longitudinal": {
"name": "@ohif/mode-longitudinal",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -468,32 +468,32 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/extension-measurement-tracking": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
"@ohif/extension-measurement-tracking": "3.10.0-beta.113",
},
},
"modes/microscopy": {
"name": "@ohif/mode-microscopy",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.113",
},
},
"modes/preclinical-4d": {
"name": "@ohif/mode-preclinical-4d",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
},
@ -502,17 +502,17 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-tmtv": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dynamic-volume": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-tmtv": "3.10.0-beta.113",
},
},
"modes/segmentation": {
"name": "@ohif/mode-segmentation",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -544,19 +544,19 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
},
},
"modes/tmtv": {
"name": "@ohif/mode-tmtv",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -566,43 +566,43 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/extension-measurement-tracking": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
"@ohif/extension-measurement-tracking": "3.10.0-beta.113",
},
},
"platform/app": {
"name": "@ohif/app",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/codec-charls": "^1.2.3",
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.19.14",
"@cornerstonejs/dicom-image-loader": "^3.0.1",
"@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0-beta.108",
"@ohif/extension-cornerstone": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.108",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.108",
"@ohif/extension-default": "3.10.0-beta.108",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.108",
"@ohif/extension-dicom-pdf": "3.10.0-beta.108",
"@ohif/extension-dicom-video": "3.10.0-beta.108",
"@ohif/extension-test": "3.10.0-beta.108",
"@ohif/i18n": "3.10.0-beta.108",
"@ohif/mode-basic-dev-mode": "3.10.0-beta.108",
"@ohif/mode-longitudinal": "3.10.0-beta.108",
"@ohif/mode-microscopy": "3.10.0-beta.108",
"@ohif/mode-test": "3.10.0-beta.108",
"@ohif/ui": "3.10.0-beta.108",
"@ohif/ui-next": "3.10.0-beta.108",
"@ohif/core": "3.10.0-beta.113",
"@ohif/extension-cornerstone": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.113",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.113",
"@ohif/extension-default": "3.10.0-beta.113",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.113",
"@ohif/extension-dicom-pdf": "3.10.0-beta.113",
"@ohif/extension-dicom-video": "3.10.0-beta.113",
"@ohif/extension-test": "3.10.0-beta.113",
"@ohif/i18n": "3.10.0-beta.113",
"@ohif/mode-basic-dev-mode": "3.10.0-beta.113",
"@ohif/mode-longitudinal": "3.10.0-beta.113",
"@ohif/mode-microscopy": "3.10.0-beta.113",
"@ohif/mode-test": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"@ohif/ui-next": "3.10.0-beta.113",
"@svgr/webpack": "^8.1.0",
"@types/react": "^18.3.3",
"classnames": "^2.3.2",
@ -643,7 +643,7 @@
},
"platform/cli": {
"name": "@ohif/cli",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"bin": {
"ohif-cli": "src/index.js"
},
@ -667,7 +667,7 @@
},
"platform/core": {
"name": "@ohif/core",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"dcmjs": "*",
@ -692,15 +692,15 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.19.14",
"@ohif/ui": "3.10.0-beta.108",
"@cornerstonejs/dicom-image-loader": "^3.0.1",
"@ohif/ui": "3.10.0-beta.113",
"cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21",
},
},
"platform/i18n": {
"name": "@ohif/i18n",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next-locize-backend": "^2.0.0",
@ -725,7 +725,7 @@
},
"platform/ui": {
"name": "@ohif/ui",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@testing-library/react": "^13.1.0",
"browser-detect": "^0.2.28",
@ -785,7 +785,7 @@
},
"platform/ui-next": {
"name": "@ohif/ui-next",
"version": "3.10.0-beta.108",
"version": "3.10.0-beta.113",
"dependencies": {
"@radix-ui/react-accordion": "^1.2.0",
"@radix-ui/react-checkbox": "^1.1.1",
@ -1092,7 +1092,7 @@
"@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="],
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@2.19.14", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.14", "@cornerstonejs/tools": "^2.19.14" } }, "sha512-tHk8y4c1GGS4kpkJMNEcLVnFL6GfA4JzAUviPnjdTRYHd6GgqoSUt3m3JLAaahYSLPh5lRV9HLU/OYYfkUOuyg=="],
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@3.0.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.0.1", "@cornerstonejs/tools": "^3.0.1" } }, "sha512-Ym6s4cTpMkojap5QZ8MXZ8hDbs2TMMN/ypqU7wKMwAY2LGoltoeGw0Z/7LL+iostbaSw3fVs+TZzJSKhKw8Bug=="],
"@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="],
@ -1104,11 +1104,13 @@
"@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="],
"@cornerstonejs/core": ["@cornerstonejs/core@2.19.14", "", { "dependencies": { "@kitware/vtk.js": "32.9.0", "comlink": "^4.4.1", "gl-matrix": "^3.4.3" } }, "sha512-nVL/rAXFJRfvTC7cHgiSGZiJjRL8vfwhNMnSc+zqx356Bq2FsAPRC9clFlLw1KqvbBGNL/uC+24TD1VtIm1V5w=="],
"@cornerstonejs/core": ["@cornerstonejs/core@3.0.1", "", { "dependencies": { "@kitware/vtk.js": "32.9.0", "comlink": "^4.4.1", "gl-matrix": "^3.4.3" } }, "sha512-K+cOoN/TzJIPRRoaWWNkhJ+2CdkBBX8BA64DG0aBVOthlwJPRqK2YQE6PTTVRx18mjMA4to/m3de0emFNKrTzQ=="],
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@2.19.14", "", { "dependencies": { "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "comlink": "^4.4.1", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.14", "dicom-parser": "^1.8.9" } }, "sha512-5X5Acw2S5D5gH5D30nNGjIeeEFpZkMIZovs043nP72HCTeprNekjalVe/s7n/rOBXb0MfrUvODqJDnYMSBgx6g=="],
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.0.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", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.0.1", "dicom-parser": "^1.8.9" } }, "sha512-t4bI6rVOt4J8YOHRR9Mh9ClInajc98qqI6fwsByiXmtc2Y4INrZ1uaRspFnOJBosbr+EwsJBV7iT2yt6Jk6CjA=="],
"@cornerstonejs/tools": ["@cornerstonejs/tools@2.19.14", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^2.19.14", "@kitware/vtk.js": "32.9.0", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-uZDhs5TXo9IvMqh+P2na4KiWb5NWCyKreaXN9HWPzv6P1QML9U7tvrfsXdYH3YnCCquddvZeLNwNraV/hWT5jw=="],
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.0.1", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.0.1", "@cornerstonejs/tools": "^3.0.1", "@kitware/vtk.js": "^32.9.0" } }, "sha512-oCT+U7iTv5oKDHOcEobtZ9gez2aNh/uJkyudO+edd5ndzwXpU+mXp/wre5D9xH5CBCigFG3nDJTZJrpzUHYKfg=="],
"@cornerstonejs/tools": ["@cornerstonejs/tools@3.0.1", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.0.1", "@kitware/vtk.js": "32.9.0", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-fRjoXJ46mdpYc5JZ/FUn0g1vCK4LohnNjgZl+O72HK2reMdc5/dQeCueJCT+tBMay04sJMUHm0tAke2DN10FBQ=="],
"@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=="],
@ -5370,6 +5372,8 @@
"@cornerstonejs/core/@kitware/vtk.js": ["@kitware/vtk.js@32.9.0", "", { "dependencies": { "@babel/runtime": "7.22.11", "@types/webxr": "^0.5.5", "commander": "9.2.0", "d3-scale": "4.0.2", "fast-deep-equal": "^3.1.3", "fflate": "0.7.3", "gl-matrix": "3.4.3", "globalthis": "1.0.3", "seedrandom": "3.0.5", "shader-loader": "1.3.1", "shelljs": "0.8.5", "spark-md5": "3.0.2", "stream-browserify": "3.0.0", "utif": "3.1.0", "webworker-promise": "0.5.0", "worker-loader": "3.0.8", "xmlbuilder2": "3.0.2" }, "peerDependencies": { "@babel/preset-env": "^7.17.10", "autoprefixer": "^10.4.7", "wslink": ">=1.1.0 || ^2.0.0" }, "bin": { "vtkDataConverter": "Utilities/DataGenerator/convert-cli.js", "xml2json": "Utilities/XMLConverter/xml2json-cli.js" } }, "sha512-Tk9O++q6J4Z47DQnYXMnSeTmSRTQeK0Wa3447iGivCt162swOkIFCHBRtiwwHjWbe8tKCS8N/7d+eHCxkK7JtA=="],
"@cornerstonejs/polymorphic-segmentation/@kitware/vtk.js": ["@kitware/vtk.js@32.9.0", "", { "dependencies": { "@babel/runtime": "7.22.11", "@types/webxr": "^0.5.5", "commander": "9.2.0", "d3-scale": "4.0.2", "fast-deep-equal": "^3.1.3", "fflate": "0.7.3", "gl-matrix": "3.4.3", "globalthis": "1.0.3", "seedrandom": "3.0.5", "shader-loader": "1.3.1", "shelljs": "0.8.5", "spark-md5": "3.0.2", "stream-browserify": "3.0.0", "utif": "3.1.0", "webworker-promise": "0.5.0", "worker-loader": "3.0.8", "xmlbuilder2": "3.0.2" }, "peerDependencies": { "@babel/preset-env": "^7.17.10", "autoprefixer": "^10.4.7", "wslink": ">=1.1.0 || ^2.0.0" }, "bin": { "vtkDataConverter": "Utilities/DataGenerator/convert-cli.js", "xml2json": "Utilities/XMLConverter/xml2json-cli.js" } }, "sha512-Tk9O++q6J4Z47DQnYXMnSeTmSRTQeK0Wa3447iGivCt162swOkIFCHBRtiwwHjWbe8tKCS8N/7d+eHCxkK7JtA=="],
"@cornerstonejs/tools/@kitware/vtk.js": ["@kitware/vtk.js@32.9.0", "", { "dependencies": { "@babel/runtime": "7.22.11", "@types/webxr": "^0.5.5", "commander": "9.2.0", "d3-scale": "4.0.2", "fast-deep-equal": "^3.1.3", "fflate": "0.7.3", "gl-matrix": "3.4.3", "globalthis": "1.0.3", "seedrandom": "3.0.5", "shader-loader": "1.3.1", "shelljs": "0.8.5", "spark-md5": "3.0.2", "stream-browserify": "3.0.0", "utif": "3.1.0", "webworker-promise": "0.5.0", "worker-loader": "3.0.8", "xmlbuilder2": "3.0.2" }, "peerDependencies": { "@babel/preset-env": "^7.17.10", "autoprefixer": "^10.4.7", "wslink": ">=1.1.0 || ^2.0.0" }, "bin": { "vtkDataConverter": "Utilities/DataGenerator/convert-cli.js", "xml2json": "Utilities/XMLConverter/xml2json-cli.js" } }, "sha512-Tk9O++q6J4Z47DQnYXMnSeTmSRTQeK0Wa3447iGivCt162swOkIFCHBRtiwwHjWbe8tKCS8N/7d+eHCxkK7JtA=="],
"@cypress/request/uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="],
@ -6574,6 +6578,8 @@
"@cornerstonejs/core/@kitware/vtk.js/@babel/runtime": ["@babel/runtime@7.22.11", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA=="],
"@cornerstonejs/polymorphic-segmentation/@kitware/vtk.js/@babel/runtime": ["@babel/runtime@7.22.11", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA=="],
"@cornerstonejs/tools/@kitware/vtk.js/@babel/runtime": ["@babel/runtime@7.22.11", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA=="],
"@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="],

View File

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

View File

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

View File

@ -324,10 +324,8 @@ const commandsModule = ({
const toolGroup = toolGroupService.getToolGroup(toolGroupId);
toolNames?.forEach(toolName => {
toolGroup.setToolConfiguration(toolName, {
strategySpecificConfiguration: {
THRESHOLD: {
threshold: value,
},
threshold: {
range: value,
},
});
});

View File

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

View File

@ -391,7 +391,12 @@ function _getStatusComponent({
switch (state) {
case 1:
StatusIcon = () => <Icons.ByName name="status-alert" />;
StatusIcon = () => (
<Icons.ByName
name="status-alert"
className="h-4 w-4"
/>
);
ToolTipMessage = () => (
<div>
@ -402,7 +407,12 @@ function _getStatusComponent({
);
break;
case 2:
StatusIcon = () => <Icons.ByName name="status-locked" />;
StatusIcon = () => (
<Icons.ByName
name="status-locked"
className="h-4 w-4"
/>
);
ToolTipMessage = () => (
<div>
@ -417,7 +427,7 @@ function _getStatusComponent({
case 3:
StatusIcon = () => (
<Icons.ByName
className="text-aqua-pale"
className="text-aqua-pale h-4 w-4"
name="status-untracked"
/>
);
@ -439,7 +449,7 @@ function _getStatusComponent({
return (
<div className="flex h-6 cursor-default text-sm leading-6 text-white">
<div className="bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1">
<StatusIcon />
<StatusIcon className="h-4 w-4" />
<span className="ml-1">SR</span>
</div>
{state === 3 && (

View File

@ -85,7 +85,8 @@ export default function hydrateStructuredReport(
}
});
const datasetToUse = _mapLegacyDataSet(instance);
// Mapping of legacy datasets is now directly handled by adapters module
const datasetToUse = instance;
// Use dcmjs to generate toolState.
let storedMeasurementByAnnotationType = MeasurementReport.generateToolState(
@ -237,62 +238,3 @@ export default function hydrateStructuredReport(
SeriesInstanceUIDs,
};
}
function _mapLegacyDataSet(dataset) {
const REPORT = 'Imaging Measurements';
const GROUP = 'Measurement Group';
const TRACKING_IDENTIFIER = 'Tracking Identifier';
// Identify the Imaging Measurements
const imagingMeasurementContent = toArray(dataset.ContentSequence).find(
codeMeaningEquals(REPORT)
);
// Retrieve the Measurements themselves
const measurementGroups = toArray(imagingMeasurementContent.ContentSequence).filter(
codeMeaningEquals(GROUP)
);
// For each of the supported measurement types, compute the measurement data
const measurementData = {};
const cornerstoneToolClasses = MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE;
const registeredToolClasses = [];
Object.keys(cornerstoneToolClasses).forEach(key => {
registeredToolClasses.push(cornerstoneToolClasses[key]);
measurementData[key] = [];
});
measurementGroups.forEach((measurementGroup, index) => {
const measurementGroupContentSequence = toArray(measurementGroup.ContentSequence);
const TrackingIdentifierGroup = measurementGroupContentSequence.find(
contentItem => contentItem.ConceptNameCodeSequence.CodeMeaning === TRACKING_IDENTIFIER
);
const TrackingIdentifier = TrackingIdentifierGroup.TextValue;
let [cornerstoneTag, toolName] = TrackingIdentifier.split(':');
if (supportedLegacyCornerstoneTags.includes(cornerstoneTag)) {
cornerstoneTag = CORNERSTONE_3D_TAG;
}
const mappedTrackingIdentifier = `${cornerstoneTag}:${toolName}`;
TrackingIdentifierGroup.TextValue = mappedTrackingIdentifier;
});
return dataset;
}
const toArray = function (x) {
return Array.isArray(x) ? x : [x];
};
const codeMeaningEquals = codeMeaningName => {
return contentItem => {
return contentItem.ConceptNameCodeSequence.CodeMeaning === codeMeaningName;
};
};

View File

@ -1,60 +0,0 @@
import { adaptersSR } from '@cornerstonejs/adapters';
const cornerstoneAdapters =
adaptersSR.Cornerstone3D.MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE;
const supportedLegacyCornerstoneTags = ['cornerstoneTools@^4.0.0'];
const CORNERSTONE_3D_TAG = adaptersSR.Cornerstone3D.CORNERSTONE_3D_TAG;
/**
* Checks if the given `displaySet`can be rehydrated into the `measurementService`.
*
* @param {object} displaySet The SR `displaySet` to check.
* @param {object[]} mappings The CornerstoneTools 4 mappings to the `measurementService`.
* @returns {boolean} True if the SR can be rehydrated into the `measurementService`.
*/
export default function isRehydratable(displaySet, mappings) {
if (!mappings || !mappings.length) {
return false;
}
const mappingDefinitions = mappings.map(m => m.annotationType);
const { measurements } = displaySet;
const adapterKeys = Object.keys(cornerstoneAdapters).filter(
adapterKey =>
typeof cornerstoneAdapters[adapterKey].isValidCornerstoneTrackingIdentifier === 'function'
);
const adapters = [];
adapterKeys.forEach(key => {
if (mappingDefinitions.includes(key)) {
// Must have both a dcmjs adapter and a measurementService
// Definition in order to be a candidate for import.
adapters.push(cornerstoneAdapters[key]);
}
});
for (let i = 0; i < measurements.length; i++) {
const { TrackingIdentifier } = measurements[i] || {};
const hydratable = adapters.some(adapter => {
let [cornerstoneTag, toolName] = TrackingIdentifier.split(':');
if (supportedLegacyCornerstoneTags.includes(cornerstoneTag)) {
cornerstoneTag = CORNERSTONE_3D_TAG;
}
const mappedTrackingIdentifier = `${cornerstoneTag}:${toolName}`;
return adapter.isValidCornerstoneTrackingIdentifier(mappedTrackingIdentifier);
});
if (hydratable) {
return true;
}
console.log('Measurement is not rehydratable', TrackingIdentifier, measurements[i]);
}
console.log('No measurements found which were rehydratable');
return false;
}

View File

@ -0,0 +1,41 @@
import { adaptersSR } from '@cornerstonejs/adapters';
const { MeasurementReport } = adaptersSR.Cornerstone3D;
/**
* Checks if the given `displaySet`can be rehydrated into the `measurementService`.
*
* @param {object} displaySet The SR `displaySet` to check.
* @param {object[]} mappings The CornerstoneTools 4 mappings to the `measurementService`.
* @returns {boolean} True if the SR can be rehydrated into the `measurementService`.
*/
export default function isRehydratable(displaySet, mappings) {
if (!mappings || !mappings.length) {
return false;
}
const mappingDefinitions = new Set<string>();
for (const m of mappings) {
mappingDefinitions.add(m.annotationType);
}
const { measurements } = displaySet;
for (let i = 0; i < measurements.length; i++) {
const { TrackingIdentifier } = measurements[i] || {};
if (!TrackingIdentifier) {
console.warn('No tracking identifier for measurement ', measurements[i]);
continue;
}
const adapter = MeasurementReport.getAdapterForTrackingIdentifier(TrackingIdentifier);
const hydratable = adapter && mappingDefinitions.has(adapter.toolType);
if (hydratable) {
return true;
}
console.log('Measurement is not rehydratable', TrackingIdentifier, measurements[i]);
}
console.log('No measurements found which were rehydratable');
return false;
}

View File

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

View File

@ -38,7 +38,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.19.14",
"@cornerstonejs/dicom-image-loader": "^3.0.1",
"@ohif/core": "3.10.0-beta.113",
"@ohif/ui": "3.10.0-beta.113",
"dcmjs": "*",
@ -51,10 +51,10 @@
},
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.19.14",
"@cornerstonejs/core": "^2.19.14",
"@cornerstonejs/tools": "^2.19.14",
"@icr/polyseg-wasm": "^0.4.0",
"@cornerstonejs/adapters": "^3.0.1",
"@cornerstonejs/core": "^3.0.1",
"@cornerstonejs/tools": "^3.0.1",
"@cornerstonejs/polymorphic-segmentation": "^3.0.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.1.1",
"html2canvas": "^1.4.1",

View File

@ -37,6 +37,7 @@ import {
OrientationMarkerTool,
WindowLevelRegionTool,
} from '@cornerstonejs/tools';
import * as polySeg from '@cornerstonejs/polymorphic-segmentation';
import CalibrationLineTool from './tools/CalibrationLineTool';
import ImageOverlayViewerTool from './tools/ImageOverlayViewerTool';
@ -47,7 +48,11 @@ export default function initCornerstoneTools(configuration = {}) {
AdvancedMagnifyTool.isAnnotation = false;
PlanarFreehandContourSegmentationTool.isAnnotation = false;
init(configuration);
init({
addons: {
polySeg,
},
});
addTool(PanTool);
addTool(WindowLevelTool);
addTool(StackScrollTool);

View File

@ -2,7 +2,8 @@ import SUPPORTED_TOOLS from './constants/supportedTools';
import { getIsLocked } from './utils/getIsLocked';
import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes';
import { getIsVisible } from './utils/getIsVisible';
const Length = {
const ArrowAnnotate = {
toAnnotation: measurement => {},
/**
@ -172,4 +173,4 @@ function _getReport(mappedAnnotations, points, FrameOfReferenceUID) {
values,
};
}
export default Length;
export default ArrowAnnotate;

View File

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

View File

@ -89,6 +89,15 @@ function TrackedMeasurementsContextProvider(
);
// Jump to the last tracked measurement - most recent
if (!trackedMeasurements?.length) {
console.warn(
"Didn't find any tracked measurements",
measurements,
trackedStudy,
trackedSeries
);
return;
}
const trackedMeasurement = trackedMeasurements[trackedMeasurements.length - 1];
const referencedDisplaySetUID = trackedMeasurement.displaySetInstanceUID;

View File

@ -1,4 +1,3 @@
import { hotkeys } from '@ohif/core';
import toolbarButtons from './toolbarButtons';
import { id } from './id';
import initToolGroups from './initToolGroups';

View File

@ -70,14 +70,9 @@ function createTools(utilityModule) {
// preview: {
// enabled: true,
// },
strategySpecificConfiguration: {
// to use the use the center segment index to determine
// if inside -> same segment, if outside -> eraser
// useCenterSegmentIndex: true,
THRESHOLD: {
isDynamic: true,
dynamicRadius: 3,
},
threshold: {
isDynamic: true,
dynamicRadius: 3,
},
},
},

View File

@ -105,14 +105,9 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
// preview: {
// enabled: true,
// },
strategySpecificConfiguration: {
// to use the use the center segment index to determine
// if inside -> same segment, if outside -> eraser
// useCenterSegmentIndex: true,
THRESHOLD: {
isDynamic: true,
dynamicRadius: 3,
},
threshold: {
isDynamic: true,
dynamicRadius: 3,
},
},
},

View File

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

View File

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

View File

@ -193,6 +193,7 @@ import Pencil from './Sources/Pencil';
import NotificationWarning from './Sources/NotificationWarning';
import ArrowRight from './Sources/ArrowRight';
import ChevronLeft from './Sources/ChevronLeft';
import StatusAlert from './Sources/StatusAlert';
//
//
type IconProps = React.HTMLAttributes<SVGElement>;
@ -681,7 +682,7 @@ export const Icons = {
'icon-transferring': (props: IconProps) => IconTransferring(props),
'icon-alert-small': (props: IconProps) => Alert(props),
'icon-alert-outline': (props: IconProps) => AlertOutline(props),
'status-alert': (props: IconProps) => Alert(props),
'status-alert': (props: IconProps) => StatusAlert(props),
info: (props: IconProps) => Info(props),
'notifications-info': (props: IconProps) => NotificationInfo(props),
'notificationwarning-diamond': (props: IconProps) => NotificationWarning(props),

View File

@ -0,0 +1,36 @@
import React from 'react';
import type { IconProps } from '../types';
export const StatusError = (props: IconProps) => (
<svg
width="16"
height="16"
viewBox="0 0 16 16"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g
fill="none"
fillRule="evenodd"
>
<path d="M0 0h16v16H0z" />
<rect
stroke="#7BB2CE"
fill="#0D0E24"
x=".5"
y=".5"
width="15"
height="15"
rx="7.5"
/>
<path
stroke="#FFF"
strokeLinecap="round"
strokeLinejoin="round"
d="M8.002 8.5v-5M7.989 11.5a.245.245 0 0 0-.237.255.254.254 0 0 0 .25.245h.009a.246.246 0 0 0 .237-.255.253.253 0 0 0-.246-.245"
/>
</g>
</svg>
);
export default StatusError;

View File

@ -6,6 +6,7 @@ export const StatusError = (props: IconProps) => (
width="24px"
height="24px"
viewBox="0 0 24 24"
{...props}
>
<g
id="StatusAlert"

View File

@ -1393,10 +1393,10 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
"@cornerstonejs/adapters@^2.19.14":
version "2.19.14"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.19.14.tgz#92eeddb53cae8a9be4b43182b8822de8e9c9c5f2"
integrity sha512-tHk8y4c1GGS4kpkJMNEcLVnFL6GfA4JzAUviPnjdTRYHd6GgqoSUt3m3JLAaahYSLPh5lRV9HLU/OYYfkUOuyg==
"@cornerstonejs/adapters@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.0.1.tgz#596e302d7155ee64b7c20bcfedc57ce6ca10d5fb"
integrity sha512-Ym6s4cTpMkojap5QZ8MXZ8hDbs2TMMN/ypqU7wKMwAY2LGoltoeGw0Z/7LL+iostbaSw3fVs+TZzJSKhKw8Bug==
dependencies:
"@babel/runtime-corejs2" "^7.17.8"
buffer "^6.0.3"
@ -1429,19 +1429,19 @@
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0"
integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg==
"@cornerstonejs/core@^2.19.14":
version "2.19.14"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.19.14.tgz#19dcafc347793ac7eb437f7ba9109d3244efc8d6"
integrity sha512-nVL/rAXFJRfvTC7cHgiSGZiJjRL8vfwhNMnSc+zqx356Bq2FsAPRC9clFlLw1KqvbBGNL/uC+24TD1VtIm1V5w==
"@cornerstonejs/core@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.0.1.tgz#8a938013c148d752d2c4f4eba7bd63048a6c814a"
integrity sha512-K+cOoN/TzJIPRRoaWWNkhJ+2CdkBBX8BA64DG0aBVOthlwJPRqK2YQE6PTTVRx18mjMA4to/m3de0emFNKrTzQ==
dependencies:
"@kitware/vtk.js" "32.9.0"
comlink "^4.4.1"
gl-matrix "^3.4.3"
"@cornerstonejs/dicom-image-loader@^2.19.14":
version "2.19.14"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.19.14.tgz#130b4b5e2511d3256d1851ac4b886b23e7c9fb0a"
integrity sha512-5X5Acw2S5D5gH5D30nNGjIeeEFpZkMIZovs043nP72HCTeprNekjalVe/s7n/rOBXb0MfrUvODqJDnYMSBgx6g==
"@cornerstonejs/dicom-image-loader@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.0.1.tgz#e18f716620ab176d88c25b9efd25fc0983bce180"
integrity sha512-t4bI6rVOt4J8YOHRR9Mh9ClInajc98qqI6fwsByiXmtc2Y4INrZ1uaRspFnOJBosbr+EwsJBV7iT2yt6Jk6CjA==
dependencies:
"@cornerstonejs/codec-charls" "^1.2.3"
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
@ -1452,10 +1452,17 @@
pako "^2.0.4"
uuid "^9.0.0"
"@cornerstonejs/tools@^2.19.14":
version "2.19.14"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.19.14.tgz#dbd54c7a93fefe6caef19b0a7f046d0a47199ac7"
integrity sha512-uZDhs5TXo9IvMqh+P2na4KiWb5NWCyKreaXN9HWPzv6P1QML9U7tvrfsXdYH3YnCCquddvZeLNwNraV/hWT5jw==
"@cornerstonejs/polymorphic-segmentation@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.0.1.tgz#3d3d3b1a186884cde576f54418a546f46b314bc2"
integrity sha512-oCT+U7iTv5oKDHOcEobtZ9gez2aNh/uJkyudO+edd5ndzwXpU+mXp/wre5D9xH5CBCigFG3nDJTZJrpzUHYKfg==
dependencies:
"@icr/polyseg-wasm" "0.4.0"
"@cornerstonejs/tools@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.0.1.tgz#4d707992283235d79532f35e60e8c763b174ccef"
integrity sha512-fRjoXJ46mdpYc5JZ/FUn0g1vCK4LohnNjgZl+O72HK2reMdc5/dQeCueJCT+tBMay04sJMUHm0tAke2DN10FBQ==
dependencies:
"@types/offscreencanvas" "2019.7.3"
comlink "^4.4.1"
@ -1924,7 +1931,7 @@
resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8"
integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==
"@icr/polyseg-wasm@^0.4.0":
"@icr/polyseg-wasm@0.4.0":
version "0.4.0"
resolved "https://registry.yarnpkg.com/@icr/polyseg-wasm/-/polyseg-wasm-0.4.0.tgz#755e23d07c3d8d8fca1113278c803c1ef0185da0"
integrity sha512-3sZmiwG8I0NaqPle0L7+V/ZexiR7IjIUFkUsaOoFI9rNuBGyyMMmxAxnCmqcDFtBDk9h+JEYJf6e3NnqlHi/HQ==