fix: prevent annotation from appearing in active viewport when switching series with different Frame of Reference UID (#5630)
* fix: prevent annotation from appearing in active viewport when switching series with different Frame of Reference UID * refactor: extract viewport update strategies * Update version and use nearest orientation viewport --------- Co-authored-by: trenser-belbin <belbin.kunjumon@prenuvo.com> Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
This commit is contained in:
parent
0af4c2ae47
commit
658994c854
330
bun.lock
330
bun.lock
@ -52,7 +52,7 @@
|
||||
},
|
||||
"addOns/externals/devDependencies": {
|
||||
"name": "@externals/devDependencies",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
@ -137,22 +137,22 @@
|
||||
},
|
||||
"addOns/externals/dicom-microscopy-viewer": {
|
||||
"name": "@externals/dicom-microscopy-viewer",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"dicom-microscopy-viewer": "0.48.6",
|
||||
},
|
||||
},
|
||||
"extensions/cornerstone": {
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/ai": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.14.4",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/ai": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.14.5",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"html2canvas": "1.4.1",
|
||||
@ -169,9 +169,9 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -183,19 +183,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-pmap": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-pmap",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@ -206,16 +206,16 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-rt": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-rt",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"react-color": "2.19.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@ -226,19 +226,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-seg": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-seg",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@ -249,19 +249,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-sr": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-sr",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -271,19 +271,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dynamic-volume": {
|
||||
"name": "@ohif/extension-cornerstone-dynamic-volume",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -293,7 +293,7 @@
|
||||
},
|
||||
"extensions/default": {
|
||||
"name": "@ohif/extension-default",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/calculate-suv": "1.1.0",
|
||||
@ -301,8 +301,8 @@
|
||||
"lodash.uniqby": "4.7.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicomweb-client": "0.10.4",
|
||||
"prop-types": "15.8.1",
|
||||
@ -316,7 +316,7 @@
|
||||
},
|
||||
"extensions/dicom-microscopy": {
|
||||
"name": "@ohif/extension-dicom-microscopy",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/codec-charls": "1.2.3",
|
||||
@ -327,10 +327,10 @@
|
||||
"mathjs": "12.4.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@ -341,14 +341,14 @@
|
||||
},
|
||||
"extensions/dicom-pdf": {
|
||||
"name": "@ohif/extension-dicom-pdf",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -358,14 +358,14 @@
|
||||
},
|
||||
"extensions/dicom-video": {
|
||||
"name": "@ohif/extension-dicom-video",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -375,20 +375,20 @@
|
||||
},
|
||||
"extensions/measurement-tracking": {
|
||||
"name": "@ohif/extension-measurement-tracking",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"@xstate/react": "3.2.2",
|
||||
"xstate": "4.38.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"classnames": "2.5.1",
|
||||
"dcmjs": "0.45.0",
|
||||
"lodash.debounce": "4.0.8",
|
||||
@ -401,14 +401,14 @@
|
||||
},
|
||||
"extensions/test-extension": {
|
||||
"name": "@ohif/extension-test",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"dcmjs": "0.45.0",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@ -418,7 +418,7 @@
|
||||
},
|
||||
"extensions/tmtv": {
|
||||
"name": "@ohif/extension-tmtv",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
@ -435,16 +435,16 @@
|
||||
},
|
||||
"extensions/usAnnotation": {
|
||||
"name": "@ohif/extension-ultrasound-pleura-bline",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/ui-next": "3.12.0-beta.105",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"@ohif/ui-next": "3.12.0-beta.107",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.0",
|
||||
@ -487,7 +487,7 @@
|
||||
},
|
||||
"modes/basic": {
|
||||
"name": "@ohif/mode-basic",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@ -496,19 +496,19 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.107",
|
||||
},
|
||||
},
|
||||
"modes/basic-dev-mode": {
|
||||
"name": "@ohif/mode-basic-dev-mode",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@ -518,17 +518,17 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.107",
|
||||
},
|
||||
},
|
||||
"modes/basic-test-mode": {
|
||||
"name": "@ohif/mode-test",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@ -538,19 +538,19 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.105",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.105",
|
||||
"@ohif/extension-test": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.107",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.107",
|
||||
"@ohif/extension-test": "3.12.0-beta.107",
|
||||
},
|
||||
},
|
||||
"modes/longitudinal": {
|
||||
"name": "@ohif/mode-longitudinal",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@ -560,33 +560,33 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.105",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.105",
|
||||
"@ohif/mode-basic": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.107",
|
||||
"@ohif/extension-measurement-tracking": "3.12.0-beta.107",
|
||||
"@ohif/mode-basic": "3.12.0-beta.107",
|
||||
},
|
||||
},
|
||||
"modes/microscopy": {
|
||||
"name": "@ohif/mode-microscopy",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-microscopy": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-microscopy": "3.12.0-beta.107",
|
||||
},
|
||||
},
|
||||
"modes/preclinical-4d": {
|
||||
"name": "@ohif/mode-preclinical-4d",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@ -605,7 +605,7 @@
|
||||
},
|
||||
"modes/segmentation": {
|
||||
"name": "@ohif/mode-segmentation",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@ -650,7 +650,7 @@
|
||||
},
|
||||
"modes/tmtv": {
|
||||
"name": "@ohif/mode-tmtv",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@ -671,14 +671,14 @@
|
||||
},
|
||||
"modes/usAnnotation": {
|
||||
"name": "@ohif/mode-ultrasound-pleura-bline",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.105",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.107",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -710,34 +710,34 @@
|
||||
},
|
||||
"platform/app": {
|
||||
"name": "@ohif/app",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/codec-charls": "1.2.3",
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-microscopy": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.105",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.105",
|
||||
"@ohif/extension-test": "3.12.0-beta.105",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.105",
|
||||
"@ohif/i18n": "3.12.0-beta.105",
|
||||
"@ohif/mode-basic-dev-mode": "3.12.0-beta.105",
|
||||
"@ohif/mode-longitudinal": "3.12.0-beta.105",
|
||||
"@ohif/mode-microscopy": "3.12.0-beta.105",
|
||||
"@ohif/mode-test": "3.12.0-beta.105",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@ohif/ui-next": "3.12.0-beta.105",
|
||||
"@ohif/core": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.12.0-beta.107",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.107",
|
||||
"@ohif/extension-default": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-microscopy": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-pdf": "3.12.0-beta.107",
|
||||
"@ohif/extension-dicom-video": "3.12.0-beta.107",
|
||||
"@ohif/extension-test": "3.12.0-beta.107",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.107",
|
||||
"@ohif/i18n": "3.12.0-beta.107",
|
||||
"@ohif/mode-basic-dev-mode": "3.12.0-beta.107",
|
||||
"@ohif/mode-longitudinal": "3.12.0-beta.107",
|
||||
"@ohif/mode-microscopy": "3.12.0-beta.107",
|
||||
"@ohif/mode-test": "3.12.0-beta.107",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.12.0-beta.107",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"@ohif/ui-next": "3.12.0-beta.107",
|
||||
"@svgr/webpack": "8.1.0",
|
||||
"@types/react": "18.3.23",
|
||||
"classnames": "2.5.1",
|
||||
@ -789,7 +789,7 @@
|
||||
},
|
||||
"platform/cli": {
|
||||
"name": "@ohif/cli",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"bin": {
|
||||
"ohif-cli": "src/index.js",
|
||||
},
|
||||
@ -813,7 +813,7 @@
|
||||
},
|
||||
"platform/core": {
|
||||
"name": "@ohif/core",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"dcmjs": "0.45.0",
|
||||
@ -838,16 +838,16 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@ohif/ui": "3.12.0-beta.107",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21",
|
||||
},
|
||||
},
|
||||
"platform/i18n": {
|
||||
"name": "@ohif/i18n",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next-locize-backend": "2.2.2",
|
||||
@ -872,7 +872,7 @@
|
||||
},
|
||||
"platform/ui": {
|
||||
"name": "@ohif/ui",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@testing-library/react": "13.4.0",
|
||||
"browser-detect": "0.2.28",
|
||||
@ -923,7 +923,7 @@
|
||||
},
|
||||
"platform/ui-next": {
|
||||
"name": "@ohif/ui-next",
|
||||
"version": "3.12.0-beta.105",
|
||||
"version": "3.12.0-beta.107",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-accordion": "1.2.11",
|
||||
"@radix-ui/react-checkbox": "1.3.2",
|
||||
@ -1231,9 +1231,9 @@
|
||||
|
||||
"@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="],
|
||||
|
||||
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.14.4", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.45.0", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4", "@cornerstonejs/tools": "4.14.4" } }, "sha512-4Xn30/01yjFK7YjiNBB0IOKzdUiD31AM3Yd45zLOsYzRv+UeIQNMWFJQpKOBGetP16Z5sfRJil2T1HOHDFPjJw=="],
|
||||
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.14.5", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.45.0", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5", "@cornerstonejs/tools": "4.14.5" } }, "sha512-PA1w4RT+2FRoSRo+br2m+evB9MMJwcybgCUP2sLpD2Aj+2ZM/VyoIvraBz5ioUchqirRzwoVwx53YSfcg0RR5Q=="],
|
||||
|
||||
"@cornerstonejs/ai": ["@cornerstonejs/ai@4.14.4", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.45.0", "gl-matrix": "3.4.3", "lodash.clonedeep": "4.5.0", "ndarray": "1.0.19", "onnxruntime-common": "1.17.1", "onnxruntime-web": "1.17.1" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4", "@cornerstonejs/tools": "4.14.4" } }, "sha512-DyMaElHNeS2KltJzfb0v3Ox0A9ns75Ubh7E9Bs3SKPTFNSGkIyP7ysz05LaJ1D+HkpDFw8Uo9Uadky2na/5sDQ=="],
|
||||
"@cornerstonejs/ai": ["@cornerstonejs/ai@4.14.5", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.45.0", "gl-matrix": "3.4.3", "lodash.clonedeep": "4.5.0", "ndarray": "1.0.19", "onnxruntime-common": "1.17.1", "onnxruntime-web": "1.17.1" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5", "@cornerstonejs/tools": "4.14.5" } }, "sha512-l5fLdtwgU0HqJ12dzO2CJlNqZKAQVSIbt0n70HodrijPLlgph+43JEXyTiDLcl9czHJSA9EJoQ8y+0y3irkCGw=="],
|
||||
|
||||
"@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="],
|
||||
|
||||
@ -1245,15 +1245,15 @@
|
||||
|
||||
"@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="],
|
||||
|
||||
"@cornerstonejs/core": ["@cornerstonejs/core@4.14.4", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-KNd648mwqzNqniRONyp2QkOpi1UMnDtDfUdJRLpbJKVdNzNkDG+nq3uNrWG8+YBWyeunUIB3ydrCHnKmxVs1RQ=="],
|
||||
"@cornerstonejs/core": ["@cornerstonejs/core@4.14.5", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-GZOQpkbbb1ocZyApF3SB1Nd1zn0f/BgkInuLu/ovCPjjft+sobzomr/sKZP0OA+5hdymjghI+jOZrZNAwgFezw=="],
|
||||
|
||||
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.14.4", "", { "dependencies": { "@cornerstonejs/codec-charls": "1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", "comlink": "4.4.2", "dicom-parser": "1.8.21", "jpeg-lossless-decoder-js": "2.1.2", "pako": "2.1.0", "uuid": "9.0.1" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4" } }, "sha512-cxw1tD2gLBZkiWhty23Pi4PlPzrug33cbwcYcQ4PbcH7/MvLGR5pRVeclpbbDpN6IwLb3D3UNY4+oUx520gQ0w=="],
|
||||
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.14.5", "", { "dependencies": { "@cornerstonejs/codec-charls": "1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2", "@cornerstonejs/codec-openjpeg": "1.3.0", "@cornerstonejs/codec-openjph": "2.4.7", "comlink": "4.4.2", "dicom-parser": "1.8.21", "jpeg-lossless-decoder-js": "2.1.2", "pako": "2.1.0", "uuid": "9.0.1" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5" } }, "sha512-fCcAraxsGcfwlwbzK2fznL5bhsAsGRYdugCvlugLQg7cYxXi90djIotRO1KFHmAMQ/SkeywR9BwqrorcCWaLiQ=="],
|
||||
|
||||
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.14.4", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4", "@cornerstonejs/tools": "4.14.4", "@kitware/vtk.js": "34.15.1" } }, "sha512-0NK136qCyljm4LRiY5tE09VAGIKw1Ei7oFFL6g509exYzc4XgqKi6qfO8dR4m0m6WRFz/o1Na6w+KhO6umUpNw=="],
|
||||
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.14.5", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5", "@cornerstonejs/tools": "4.14.5", "@kitware/vtk.js": "34.15.1" } }, "sha512-P37hUjOn43mCwkIWTX0v+r0gQPTUj+c6efjkz/lqM0qAJ3KIu3EkZa9eGmUyBD9Y0Htxda20TifL8oo/qkveew=="],
|
||||
|
||||
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.14.4", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4", "@cornerstonejs/tools": "4.14.4", "@kitware/vtk.js": "34.15.1" } }, "sha512-RJBtqair3EX09K5lRgPGkF5qVNLb5ArtvSZCz/TZ52xMmaUww8yKeXbuqawUQwj9iAdQRlyCfrlfhNpwHeYybA=="],
|
||||
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.14.5", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5", "@cornerstonejs/tools": "4.14.5", "@kitware/vtk.js": "34.15.1" } }, "sha512-q5y5+uTW55FSbeG1tQZ3oPbiZqA+H7i6uopGtaXCqcwxXxzDj5SGb6RGh2fdI96osyCpi+g5YSCob31fWUtq2A=="],
|
||||
|
||||
"@cornerstonejs/tools": ["@cornerstonejs/tools@4.14.4", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.14.4", "@kitware/vtk.js": "34.15.1", "@types/d3-array": "3.2.1", "@types/d3-interpolate": "3.0.4", "d3-array": "3.2.4", "d3-interpolate": "3.0.1", "gl-matrix": "3.4.3" } }, "sha512-Ej4lnOiDgGdUmf8h0P3xpMMbnWbcrUHYjA0tCq1qa3MTBIrfU4dktiRdg5gJJqayfaUwV56DxSHMrx+VLN9N7A=="],
|
||||
"@cornerstonejs/tools": ["@cornerstonejs/tools@4.14.5", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.14.5", "@kitware/vtk.js": "34.15.1", "@types/d3-array": "3.2.1", "@types/d3-interpolate": "3.0.4", "d3-array": "3.2.4", "d3-interpolate": "3.0.1", "gl-matrix": "3.4.3" } }, "sha512-Wcyy8C9UVA3tD6d6xWVpYgYVhrdrys4fa9BfNyqMnkTPMfWwCRU8+DPl7nMtxBvxlqQcX7Z0Cb8mUUBQwNzOHg=="],
|
||||
|
||||
"@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
|
||||
|
||||
|
||||
@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3"
|
||||
}
|
||||
|
||||
@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3"
|
||||
}
|
||||
|
||||
@ -46,9 +46,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.109",
|
||||
"@ohif/ui": "3.12.0-beta.109",
|
||||
"dcmjs": "0.45.0",
|
||||
@ -53,12 +53,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/ai": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.14.4",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/adapters": "4.14.5",
|
||||
"@cornerstonejs/ai": "4.14.5",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.14.5",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"html2canvas": "1.4.1",
|
||||
|
||||
@ -37,6 +37,7 @@ import { useLutPresentationStore } from '../../stores/useLutPresentationStore';
|
||||
import { usePositionPresentationStore } from '../../stores/usePositionPresentationStore';
|
||||
import { useSynchronizersStore } from '../../stores/useSynchronizersStore';
|
||||
import { useSegmentationPresentationStore } from '../../stores/useSegmentationPresentationStore';
|
||||
import getClosestOrientationFromIOP from '../../utils/isReferenceViewable';
|
||||
|
||||
const EVENTS = {
|
||||
VIEWPORT_DATA_CHANGED: 'event::cornerstoneViewportService:viewportDataChanged',
|
||||
@ -634,67 +635,118 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
||||
|
||||
/**
|
||||
* Figures out which viewport to update when the viewport type needs to change.
|
||||
* This may not be the active viewport if there is already a viewport showing
|
||||
* the display set, but in the wrong orientation.
|
||||
*
|
||||
* The viewport will need to update the viewport type and/or display set to
|
||||
* display the resulting data.
|
||||
*
|
||||
* The first choice will be a viewport already showing the correct display set,
|
||||
* but showing it as a stack.
|
||||
*
|
||||
* Second choice is to see if there is a viewport already showing the right
|
||||
* orientation for the image, but the wrong display set. This fixes the
|
||||
* case where the user is in MPR and a viewport other than active should be
|
||||
* the one to change to display the iamge.
|
||||
*
|
||||
* Final choice is to use the provide activeViewportId. This will cover
|
||||
* changes to/from video and wsi viewports and other cases where no
|
||||
* viewport is really even close to being able to display the measurement.
|
||||
* Orchestrates the search strategies in order of preference.
|
||||
*/
|
||||
public findUpdateableViewportConfiguration(activeViewportId: string, measurement) {
|
||||
const { metadata, displaySetInstanceUID } = measurement;
|
||||
const { volumeId, referencedImageId } = metadata;
|
||||
const { displaySetService, viewportGridService } = this.servicesManager.services;
|
||||
const { displaySetService } = this.servicesManager.services;
|
||||
const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
||||
|
||||
// 1. Determine the target Viewport Type (Stack vs Volume)
|
||||
const viewportType = this.determineTargetViewportType(displaySet, metadata);
|
||||
|
||||
// 2. Strategy: Find viewport already showing this volume
|
||||
const volumeMatch = this.findViewportShowingVolume(
|
||||
metadata,
|
||||
displaySetInstanceUID,
|
||||
viewportType
|
||||
);
|
||||
if (volumeMatch) {
|
||||
return volumeMatch;
|
||||
}
|
||||
|
||||
// 3. Strategy: Find viewport with compatible orientation (even if different display set)
|
||||
const compatibleMatch = this.findViewportConvertibleToVolume(
|
||||
metadata,
|
||||
displaySetInstanceUID,
|
||||
viewportType
|
||||
);
|
||||
if (compatibleMatch) {
|
||||
return compatibleMatch;
|
||||
}
|
||||
|
||||
// 4. Strategy: Find viewport with matching orientation via IOP
|
||||
const orientationMatch = this.findViewportWithMatchingOrientation(
|
||||
displaySetInstanceUID,
|
||||
viewportType
|
||||
);
|
||||
if (orientationMatch) {
|
||||
return orientationMatch;
|
||||
}
|
||||
|
||||
// 5. Fallback: Use the active viewport
|
||||
return {
|
||||
viewportId: activeViewportId,
|
||||
displaySetInstanceUID,
|
||||
viewportOptions: { viewportType },
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the viewport should be what is specified in
|
||||
* the viewportType of the display set, or stack if the display
|
||||
* set isn't reconstructable and there is a referenced image id, otherwise
|
||||
* volume.
|
||||
*
|
||||
* Expect there to be more rules in the future for different types of annotations/settings
|
||||
* such as 3d annotations.
|
||||
*/
|
||||
public determineTargetViewportType(displaySet, metadata): string {
|
||||
let { viewportType } = displaySet;
|
||||
|
||||
if (!viewportType) {
|
||||
if (referencedImageId && !displaySet.isReconstructable) {
|
||||
if (metadata.referencedImageId && !displaySet.isReconstructable) {
|
||||
viewportType = csEnums.ViewportType.STACK;
|
||||
} else if (volumeId) {
|
||||
} else if (metadata.volumeId) {
|
||||
viewportType = 'volume';
|
||||
}
|
||||
}
|
||||
return viewportType;
|
||||
}
|
||||
|
||||
// Find viewports that could be updated to be volumes to show this view
|
||||
// That prefers a viewport already showing the right display set.
|
||||
if (volumeId) {
|
||||
for (const id of this.viewportsById.keys()) {
|
||||
const viewport = this.getCornerstoneViewport(id);
|
||||
if (viewport?.isReferenceViewable(metadata, { asVolume: true, withNavigation: true })) {
|
||||
return {
|
||||
viewportId: id,
|
||||
displaySetInstanceUID,
|
||||
viewportOptions: { viewportType },
|
||||
};
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Find viewports that could be updated to be volumes to show this view.
|
||||
* Prefers a viewport already showing the right display set.
|
||||
*/
|
||||
public findViewportShowingVolume(metadata, displaySetInstanceUID, viewportType) {
|
||||
if (!metadata.volumeId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Find a viewport in the correct orientation showing a different display set
|
||||
// which could be used to display the annotation.
|
||||
for (const id of this.viewportsById.keys()) {
|
||||
const viewport = this.getCornerstoneViewport(id);
|
||||
if (viewport?.isReferenceViewable(metadata, { asVolume: true, withNavigation: true })) {
|
||||
return {
|
||||
viewportId: id,
|
||||
displaySetInstanceUID,
|
||||
viewportOptions: { viewportType },
|
||||
};
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a viewport that could be converted to a volume to show this annotation,
|
||||
* already showing the right display set.
|
||||
*/
|
||||
public findViewportConvertibleToVolume(metadata, displaySetInstanceUID, viewportType) {
|
||||
const { viewportGridService } = this.servicesManager.services;
|
||||
const altMetadata = { ...metadata, volumeId: null, referencedImageId: null };
|
||||
|
||||
for (const id of this.viewportsById.keys()) {
|
||||
const viewport = this.getCornerstoneViewport(id);
|
||||
const viewportDisplaySetUID = viewportGridService.getDisplaySetsUIDsForViewport(id)?.[0];
|
||||
|
||||
if (!viewportDisplaySetUID || !viewport) {
|
||||
continue;
|
||||
}
|
||||
if (volumeId) {
|
||||
|
||||
if (metadata.volumeId) {
|
||||
altMetadata.volumeId = viewportDisplaySetUID;
|
||||
}
|
||||
altMetadata.FrameOfReferenceUID = this._getFrameOfReferenceUID(viewportDisplaySetUID);
|
||||
|
||||
if (viewport.isReferenceViewable(altMetadata, { asVolume: true, withNavigation: true })) {
|
||||
return {
|
||||
viewportId: id,
|
||||
@ -703,13 +755,22 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
||||
};
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Just display in the active viewport
|
||||
return {
|
||||
viewportId: activeViewportId,
|
||||
displaySetInstanceUID,
|
||||
viewportOptions: { viewportType },
|
||||
};
|
||||
/**
|
||||
* Find a viewport with the closest orientation but on a different display set.
|
||||
*/
|
||||
public findViewportWithMatchingOrientation(metadata, displaySetInstanceUID, viewportType) {
|
||||
const viewportAlignmentData = this.getViewportAlignmentData(metadata);
|
||||
if (viewportAlignmentData?.length) {
|
||||
return {
|
||||
...viewportAlignmentData[0],
|
||||
displaySetInstanceUID,
|
||||
viewportOptions: { viewportType },
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -32,8 +32,8 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.109",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.109",
|
||||
"@ohif/extension-default": "3.12.0-beta.109",
|
||||
|
||||
@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.109",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.109",
|
||||
"@ohif/extension-default": "3.12.0-beta.109",
|
||||
|
||||
@ -34,8 +34,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/tools": "4.14.5",
|
||||
"@ohif/core": "3.12.0-beta.109",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.109",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.12.0-beta.109",
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.12.0-beta.109",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.109",
|
||||
|
||||
@ -37,8 +37,8 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.5",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.5",
|
||||
"@ohif/ui": "3.12.0-beta.109",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21"
|
||||
|
||||
56
yarn.lock
56
yarn.lock
@ -1278,10 +1278,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||
|
||||
"@cornerstonejs/adapters@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.14.4.tgz#ee7084f9da5acdae8a27c7f29276a4159e15de76"
|
||||
integrity sha512-4Xn30/01yjFK7YjiNBB0IOKzdUiD31AM3Yd45zLOsYzRv+UeIQNMWFJQpKOBGetP16Z5sfRJil2T1HOHDFPjJw==
|
||||
"@cornerstonejs/adapters@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.14.5.tgz#3f473bafc663add7cc4ba5c3e93a221454340f9b"
|
||||
integrity sha512-PA1w4RT+2FRoSRo+br2m+evB9MMJwcybgCUP2sLpD2Aj+2ZM/VyoIvraBz5ioUchqirRzwoVwx53YSfcg0RR5Q==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs2" "7.26.10"
|
||||
buffer "6.0.3"
|
||||
@ -1289,10 +1289,10 @@
|
||||
gl-matrix "3.4.3"
|
||||
ndarray "1.0.19"
|
||||
|
||||
"@cornerstonejs/ai@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.14.4.tgz#a55a2a36f0067da1f402443db8f53d4f09d57f3b"
|
||||
integrity sha512-DyMaElHNeS2KltJzfb0v3Ox0A9ns75Ubh7E9Bs3SKPTFNSGkIyP7ysz05LaJ1D+HkpDFw8Uo9Uadky2na/5sDQ==
|
||||
"@cornerstonejs/ai@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.14.5.tgz#97385d959ce802d15cae604be75d98819abd3c19"
|
||||
integrity sha512-l5fLdtwgU0HqJ12dzO2CJlNqZKAQVSIbt0n70HodrijPLlgph+43JEXyTiDLcl9czHJSA9EJoQ8y+0y3irkCGw==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs2" "7.26.10"
|
||||
buffer "6.0.3"
|
||||
@ -1328,20 +1328,20 @@
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.7.tgz#784394d05d8cf735640e9c3baa206535ee8e0376"
|
||||
integrity sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w==
|
||||
|
||||
"@cornerstonejs/core@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.14.4.tgz#08c2b50c45f22698e052244a682a43f0e1c5c244"
|
||||
integrity sha512-KNd648mwqzNqniRONyp2QkOpi1UMnDtDfUdJRLpbJKVdNzNkDG+nq3uNrWG8+YBWyeunUIB3ydrCHnKmxVs1RQ==
|
||||
"@cornerstonejs/core@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.14.5.tgz#8fd74a8851ca369ad2beeab542d27007e2a05b6d"
|
||||
integrity sha512-GZOQpkbbb1ocZyApF3SB1Nd1zn0f/BgkInuLu/ovCPjjft+sobzomr/sKZP0OA+5hdymjghI+jOZrZNAwgFezw==
|
||||
dependencies:
|
||||
"@kitware/vtk.js" "34.15.1"
|
||||
comlink "4.4.2"
|
||||
gl-matrix "3.4.3"
|
||||
loglevel "1.9.2"
|
||||
|
||||
"@cornerstonejs/dicom-image-loader@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.14.4.tgz#f3df2ea31a8b527de47bce445f543609fb56af0c"
|
||||
integrity sha512-cxw1tD2gLBZkiWhty23Pi4PlPzrug33cbwcYcQ4PbcH7/MvLGR5pRVeclpbbDpN6IwLb3D3UNY4+oUx520gQ0w==
|
||||
"@cornerstonejs/dicom-image-loader@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.14.5.tgz#f2ffa77f57819091a2ee1dbd4507de017cb336dc"
|
||||
integrity sha512-fCcAraxsGcfwlwbzK2fznL5bhsAsGRYdugCvlugLQg7cYxXi90djIotRO1KFHmAMQ/SkeywR9BwqrorcCWaLiQ==
|
||||
dependencies:
|
||||
"@cornerstonejs/codec-charls" "1.2.3"
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit" "1.2.2"
|
||||
@ -1353,25 +1353,25 @@
|
||||
pako "2.1.0"
|
||||
uuid "9.0.1"
|
||||
|
||||
"@cornerstonejs/labelmap-interpolation@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.14.4.tgz#aa24b44fe450905145c27045b27be3b0eb9b975b"
|
||||
integrity sha512-0NK136qCyljm4LRiY5tE09VAGIKw1Ei7oFFL6g509exYzc4XgqKi6qfO8dR4m0m6WRFz/o1Na6w+KhO6umUpNw==
|
||||
"@cornerstonejs/labelmap-interpolation@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.14.5.tgz#d1c4bcaf6d43be3d4557d782f2c419acaadac167"
|
||||
integrity sha512-P37hUjOn43mCwkIWTX0v+r0gQPTUj+c6efjkz/lqM0qAJ3KIu3EkZa9eGmUyBD9Y0Htxda20TifL8oo/qkveew==
|
||||
dependencies:
|
||||
"@itk-wasm/morphological-contour-interpolation" "1.1.0"
|
||||
itk-wasm "1.0.0-b.165"
|
||||
|
||||
"@cornerstonejs/polymorphic-segmentation@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.14.4.tgz#a0aa1d45b44b4932fc8b4e974e7d8a66b40a53cd"
|
||||
integrity sha512-RJBtqair3EX09K5lRgPGkF5qVNLb5ArtvSZCz/TZ52xMmaUww8yKeXbuqawUQwj9iAdQRlyCfrlfhNpwHeYybA==
|
||||
"@cornerstonejs/polymorphic-segmentation@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.14.5.tgz#20dafd9c37f3cf7b7cd81c29c9ac3e4de403a86c"
|
||||
integrity sha512-q5y5+uTW55FSbeG1tQZ3oPbiZqA+H7i6uopGtaXCqcwxXxzDj5SGb6RGh2fdI96osyCpi+g5YSCob31fWUtq2A==
|
||||
dependencies:
|
||||
"@icr/polyseg-wasm" "0.4.0"
|
||||
|
||||
"@cornerstonejs/tools@4.14.4":
|
||||
version "4.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.14.4.tgz#eb353f96e472dc264de2229fd56bc5725496da38"
|
||||
integrity sha512-Ej4lnOiDgGdUmf8h0P3xpMMbnWbcrUHYjA0tCq1qa3MTBIrfU4dktiRdg5gJJqayfaUwV56DxSHMrx+VLN9N7A==
|
||||
"@cornerstonejs/tools@4.14.5":
|
||||
version "4.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.14.5.tgz#813a3a110ad7098d5fee770242fbc4d6601e16a4"
|
||||
integrity sha512-Wcyy8C9UVA3tD6d6xWVpYgYVhrdrys4fa9BfNyqMnkTPMfWwCRU8+DPl7nMtxBvxlqQcX7Z0Cb8mUUBQwNzOHg==
|
||||
dependencies:
|
||||
"@types/offscreencanvas" "2019.7.3"
|
||||
comlink "4.4.2"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user