fix: make datasource selection work and UI fixes (#4952)

Co-authored-by: Pedro Köhler <pedrokohlerbh@gmail.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
This commit is contained in:
Alireza 2025-04-11 15:57:29 -04:00 committed by GitHub
parent 0b6e9cba76
commit aaba8bf1b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 288 additions and 282 deletions

296
bun.lock
View File

@ -33,7 +33,7 @@
},
"addOns/externals/devDependencies": {
"name": "@externals/devDependencies",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@kitware/vtk.js": "32.12.0",
@ -120,22 +120,22 @@
},
"addOns/externals/dicom-microscopy-viewer": {
"name": "@externals/dicom-microscopy-viewer",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"dicom-microscopy-viewer": "^0.46.1",
},
},
"extensions/cornerstone": {
"name": "@ohif/extension-cornerstone",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.9.5",
"@cornerstonejs/ai": "^3.9.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/labelmap-interpolation": "^3.9.5",
"@cornerstonejs/polymorphic-segmentation": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/adapters": "^3.10.1",
"@cornerstonejs/ai": "^3.10.1",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/labelmap-interpolation": "^3.10.1",
"@cornerstonejs/polymorphic-segmentation": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.12.0",
"html2canvas": "^1.4.1",
@ -152,9 +152,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": "^3.9.5",
"@ohif/core": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@ohif/core": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
"dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8",
@ -166,19 +166,19 @@
},
"extensions/cornerstone-dicom-pmap": {
"name": "@ohif/extension-cornerstone-dicom-pmap",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.9.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/adapters": "^3.10.1",
"@cornerstonejs/core": "^3.10.1",
"@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/i18n": "3.10.0",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -189,16 +189,16 @@
},
"extensions/cornerstone-dicom-rt": {
"name": "@ohif/extension-cornerstone-dicom-rt",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/i18n": "3.10.0",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -209,19 +209,19 @@
},
"extensions/cornerstone-dicom-seg": {
"name": "@ohif/extension-cornerstone-dicom-seg",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.9.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/adapters": "^3.10.1",
"@cornerstonejs/core": "^3.10.1",
"@kitware/vtk.js": "32.12.0",
"react-color": "^2.19.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/i18n": "3.10.0",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -232,19 +232,19 @@
},
"extensions/cornerstone-dicom-sr": {
"name": "@ohif/extension-cornerstone-dicom-sr",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.9.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/adapters": "^3.10.1",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-measurement-tracking": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-measurement-tracking": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -254,19 +254,19 @@
},
"extensions/cornerstone-dynamic-volume": {
"name": "@ohif/extension-cornerstone-dynamic-volume",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/i18n": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
"dicom-parser": "^1.8.21",
"hammerjs": "^2.0.8",
@ -276,7 +276,7 @@
},
"extensions/default": {
"name": "@ohif/extension-default",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/calculate-suv": "^1.1.0",
@ -284,8 +284,8 @@
"lodash.uniqby": "^4.7.0",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/i18n": "3.10.0",
"dcmjs": "*",
"dicomweb-client": "^0.10.4",
"prop-types": "^15.6.2",
@ -299,7 +299,7 @@
},
"extensions/dicom-microscopy": {
"name": "@ohif/extension-dicom-microscopy",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/codec-charls": "^1.2.3",
@ -310,10 +310,10 @@
"mathjs": "^12.4.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/i18n": "3.10.0",
"@ohif/ui": "3.10.0",
"prop-types": "^15.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
@ -324,14 +324,14 @@
},
"extensions/dicom-pdf": {
"name": "@ohif/extension-dicom-pdf",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -341,14 +341,14 @@
},
"extensions/dicom-video": {
"name": "@ohif/extension-dicom-video",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -358,20 +358,20 @@
},
"extensions/measurement-tracking": {
"name": "@ohif/extension-measurement-tracking",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/ui": "3.10.0",
"@xstate/react": "^3.2.2",
"xstate": "^4.10.0",
},
"peerDependencies": {
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/ui": "3.10.0",
"classnames": "^2.3.2",
"dcmjs": "*",
"lodash.debounce": "^4.0.8",
@ -384,14 +384,14 @@
},
"extensions/test-extension": {
"name": "@ohif/extension-test",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "0.38.0",
"dicom-parser": "^1.8.9",
"hammerjs": "^2.0.8",
@ -401,7 +401,7 @@
},
"extensions/tmtv": {
"name": "@ohif/extension-tmtv",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"classnames": "^2.3.2",
@ -418,7 +418,7 @@
},
"modes/basic-dev-mode": {
"name": "@ohif/mode-basic-dev-mode",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -428,17 +428,17 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/extension-dicom-pdf": "3.10.0-beta.158",
"@ohif/extension-dicom-video": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/extension-dicom-pdf": "3.10.0",
"@ohif/extension-dicom-video": "3.10.0",
},
},
"modes/basic-test-mode": {
"name": "@ohif/mode-test",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -448,19 +448,19 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/extension-dicom-pdf": "3.10.0-beta.158",
"@ohif/extension-dicom-video": "3.10.0-beta.158",
"@ohif/extension-measurement-tracking": "3.10.0-beta.158",
"@ohif/extension-test": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/extension-dicom-pdf": "3.10.0",
"@ohif/extension-dicom-video": "3.10.0",
"@ohif/extension-measurement-tracking": "3.10.0",
"@ohif/extension-test": "3.10.0",
},
},
"modes/longitudinal": {
"name": "@ohif/mode-longitudinal",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -470,32 +470,32 @@
"webpack-merge": "^5.7.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/extension-dicom-pdf": "3.10.0-beta.158",
"@ohif/extension-dicom-video": "3.10.0-beta.158",
"@ohif/extension-measurement-tracking": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/extension-dicom-pdf": "3.10.0",
"@ohif/extension-dicom-video": "3.10.0",
"@ohif/extension-measurement-tracking": "3.10.0",
},
},
"modes/microscopy": {
"name": "@ohif/mode-microscopy",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
},
"peerDependencies": {
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-dicom-microscopy": "3.10.0",
},
},
"modes/preclinical-4d": {
"name": "@ohif/mode-preclinical-4d",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
},
@ -514,7 +514,7 @@
},
"modes/segmentation": {
"name": "@ohif/mode-segmentation",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -558,7 +558,7 @@
},
"modes/tmtv": {
"name": "@ohif/mode-tmtv",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next": "^17.0.3",
@ -579,32 +579,32 @@
},
"platform/app": {
"name": "@ohif/app",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"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": "^3.9.5",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0-beta.158",
"@ohif/extension-cornerstone": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0-beta.158",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.158",
"@ohif/extension-default": "3.10.0-beta.158",
"@ohif/extension-dicom-microscopy": "3.10.0-beta.158",
"@ohif/extension-dicom-pdf": "3.10.0-beta.158",
"@ohif/extension-dicom-video": "3.10.0-beta.158",
"@ohif/extension-test": "3.10.0-beta.158",
"@ohif/i18n": "3.10.0-beta.158",
"@ohif/mode-basic-dev-mode": "3.10.0-beta.158",
"@ohif/mode-longitudinal": "3.10.0-beta.158",
"@ohif/mode-microscopy": "3.10.0-beta.158",
"@ohif/mode-test": "3.10.0-beta.158",
"@ohif/ui": "3.10.0-beta.158",
"@ohif/ui-next": "3.10.0-beta.158",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",
"@ohif/extension-cornerstone-dicom-rt": "3.10.0",
"@ohif/extension-cornerstone-dicom-seg": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",
"@ohif/extension-dicom-microscopy": "3.10.0",
"@ohif/extension-dicom-pdf": "3.10.0",
"@ohif/extension-dicom-video": "3.10.0",
"@ohif/extension-test": "3.10.0",
"@ohif/i18n": "3.10.0",
"@ohif/mode-basic-dev-mode": "3.10.0",
"@ohif/mode-longitudinal": "3.10.0",
"@ohif/mode-microscopy": "3.10.0",
"@ohif/mode-test": "3.10.0",
"@ohif/ui": "3.10.0",
"@ohif/ui-next": "3.10.0",
"@svgr/webpack": "^8.1.0",
"@types/react": "^18.3.3",
"classnames": "^2.3.2",
@ -645,7 +645,7 @@
},
"platform/cli": {
"name": "@ohif/cli",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"bin": {
"ohif-cli": "src/index.js",
},
@ -669,7 +669,7 @@
},
"platform/core": {
"name": "@ohif/core",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"dcmjs": "*",
@ -694,16 +694,16 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/dicom-image-loader": "^3.9.5",
"@ohif/ui": "3.10.0-beta.158",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@ohif/ui": "3.10.0",
"cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21",
},
},
"platform/i18n": {
"name": "@ohif/i18n",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@babel/runtime": "^7.20.13",
"i18next-locize-backend": "^2.0.0",
@ -728,7 +728,7 @@
},
"platform/ui": {
"name": "@ohif/ui",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@testing-library/react": "^13.1.0",
"browser-detect": "^0.2.28",
@ -788,7 +788,7 @@
},
"platform/ui-next": {
"name": "@ohif/ui-next",
"version": "3.10.0-beta.158",
"version": "3.10.0",
"dependencies": {
"@radix-ui/react-accordion": "^1.2.0",
"@radix-ui/react-checkbox": "^1.1.1",
@ -831,16 +831,16 @@
},
},
"overrides": {
"commander": "8.3.0",
"path-to-regexp": "0.1.12",
"nth-check": "^2.1.1",
"trim-newlines": "^5.0.0",
"glob-parent": "^6.0.2",
"trim": "^1.0.0",
"package-json": "^8.1.0",
"sharp": "^0.32.6",
"rollup": "2.79.2",
"body-parser": "1.20.3",
"commander": "8.3.0",
"glob-parent": "^6.0.2",
"nth-check": "^2.1.1",
"package-json": "^8.1.0",
"path-to-regexp": "0.1.12",
"rollup": "2.79.2",
"sharp": "^0.32.6",
"trim": "^1.0.0",
"trim-newlines": "^5.0.0",
},
"packages": {
"@adobe/css-tools": ["@adobe/css-tools@4.4.2", "", {}, "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A=="],
@ -1099,9 +1099,9 @@
"@colors/colors": ["@colors/colors@1.5.0", "", {}, "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="],
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@3.9.5", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "gl-matrix": "^3.4.3", "ndarray": "^1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "^3.9.5", "@cornerstonejs/tools": "^3.9.5" } }, "sha512-I8nPFmwNBqBwrH26w06gZfsJaHyZPN4nZC8GO7IerkVSkyYXgFEFC5iRdVuU+Kr94nWm8zPKyLqHx7hAeNudgw=="],
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@3.10.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.10.1", "@cornerstonejs/tools": "^3.10.1" } }, "sha512-uKic+EyF8SguEM9ahZK96r1oWetjO2GCCEM1oO15wl71iHVXFbW8lUYD1uqXtNW4fZet3X9rEke/te1zNVafxA=="],
"@cornerstonejs/ai": ["@cornerstonejs/ai@3.9.5", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "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": "^3.9.5", "@cornerstonejs/tools": "^3.9.5" } }, "sha512-AgVPLVoYJeefPcp6tf5UNfS8qoEJc8VxrqZab6f+LybhSa2se52h+57rCB5Ihd7SziNvWyIdux7v1Iy3GiZm+g=="],
"@cornerstonejs/ai": ["@cornerstonejs/ai@3.10.1", "", { "dependencies": { "@babel/runtime-corejs2": "^7.17.8", "buffer": "^6.0.3", "dcmjs": "^0.29.8", "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": "^3.10.1", "@cornerstonejs/tools": "^3.10.1" } }, "sha512-yEALz91yZCJdrRhk2R5Vn1yFefy07FL9g3ff4BgL19nTnGIu/3yUkVR9PY5js8T6E56GCFWxs9meWdeiCuRAcg=="],
"@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="],
@ -1113,15 +1113,15 @@
"@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="],
"@cornerstonejs/core": ["@cornerstonejs/core@3.9.5", "", { "dependencies": { "@kitware/vtk.js": "32.12.1", "comlink": "^4.4.1", "gl-matrix": "^3.4.3", "loglevel": "^1.9.2" } }, "sha512-EwXeTNSlL7UnXmj8o1DigNZOsVbhtNDKT2Bbi66jhnzZQm+rTPyYeTva+FnnqvpxBb/6QqwDEJ8gwlXwV0Rk5w=="],
"@cornerstonejs/core": ["@cornerstonejs/core@3.10.1", "", { "dependencies": { "@kitware/vtk.js": "32.12.1", "comlink": "^4.4.1", "gl-matrix": "^3.4.3", "loglevel": "^1.9.2" } }, "sha512-DMlE98A5Oa81G9K5J4ZD1917SbJYteh+j4oJTY60KHAI7p0GoGQRV/ZcxaL+FS8mWng/qejVss9w4fLoLJcErg=="],
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.9.5", "", { "dependencies": { "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "comlink": "^4.4.1", "dicom-parser": "^1.8.9", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.9.5" } }, "sha512-g0GZNkZ6PBRCl/dvi6NoQlmpmZhuLLeI4cdiFwV0Ug81HPkHdn8FQaqgy1XPOMknLSL6sJGZsJN2l2nW5COQSA=="],
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@3.10.1", "", { "dependencies": { "@cornerstonejs/codec-charls": "^1.2.3", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", "comlink": "^4.4.1", "dicom-parser": "^1.8.9", "jpeg-lossless-decoder-js": "^2.1.0", "pako": "^2.0.4", "uuid": "^9.0.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.10.1" } }, "sha512-w/55TI05KV3mP/RtL0ds+jfh19KlBZajJDgXystV489duvqJJUH27C+eZyrGFqbA3a+EDv4GYQa4jw/MDkGGqA=="],
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@3.9.5", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "^3.9.5", "@cornerstonejs/tools": "^3.9.5", "@kitware/vtk.js": "32.12.1" } }, "sha512-U7XnaqrrEHGvH3kKdTwGiwLYaydxp5GVo0aqVvZaRDXMXfP3tbOpCfMQcqD+bv4Sh+Rr0719O5aDJ0+ENpA/MA=="],
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@3.10.1", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "^3.10.1", "@cornerstonejs/tools": "^3.10.1", "@kitware/vtk.js": "32.12.1" } }, "sha512-hcAR83rWA6lBYKXgYOWR/3ofhV3mqh4RRLbj8QnS9e//qtmF+UxoZ4I0125ihPkCjFqFOWuYgn42BnRZNhvjxA=="],
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.9.5", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.9.5", "@cornerstonejs/tools": "^3.9.5", "@kitware/vtk.js": "32.12.1" } }, "sha512-6ucJkb0X5CBBx00g3CzJGuLd6x4T99bPyKXa+y9Bek3jC+RyKI4vySS5RRKtQ4N59yuealZkBvV7dT0FseE8og=="],
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@3.10.1", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "^3.10.1", "@cornerstonejs/tools": "^3.10.1", "@kitware/vtk.js": "32.12.1" } }, "sha512-HErrnX7kDs5CVfcuPW5pyWw3lJovqqqKiIfPJdEmZNEM4CVSv9pNpYIbSX8uv42zWq+biQFkP4TwYw12q/r7Og=="],
"@cornerstonejs/tools": ["@cornerstonejs/tools@3.9.5", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.9.5", "@kitware/vtk.js": "32.12.1", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-vdPsm4szolXmyBdDNTB1gyRCP5EEicsf+TOsTU5P6QYWR7cB+nyio7GeGK5zFQrUi0hb2a2qkVjjLQLQH9inAw=="],
"@cornerstonejs/tools": ["@cornerstonejs/tools@3.10.1", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "^4.4.1", "lodash.get": "^4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "^3.10.1", "@kitware/vtk.js": "32.12.1", "@types/d3-array": "^3.0.4", "@types/d3-interpolate": "^3.0.1", "d3-array": "^3.2.3", "d3-interpolate": "^3.0.1", "gl-matrix": "^3.4.3" } }, "sha512-L1z8JiDwgbSwz040BSV5KBMMEe7IZyS4xYVhbn6cpfzCxSfevp53EkUZMhLl4bFcYyRPgXu5/KJO6f9wGFhEvA=="],
"@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@1.1.1", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA=="],

View File

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

View File

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

View File

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

View File

@ -42,8 +42,8 @@
},
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/tools": "^3.10.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": "^3.9.5",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@ohif/core": "3.10.0",
"@ohif/ui": "3.10.0",
"dcmjs": "*",
@ -51,12 +51,12 @@
},
"dependencies": {
"@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^3.9.5",
"@cornerstonejs/ai": "^3.9.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/labelmap-interpolation": "^3.9.5",
"@cornerstonejs/polymorphic-segmentation": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/adapters": "^3.10.1",
"@cornerstonejs/ai": "^3.10.1",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/labelmap-interpolation": "^3.10.1",
"@cornerstonejs/polymorphic-segmentation": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
"@kitware/vtk.js": "32.12.0",
"html2canvas": "^1.4.1",

View File

@ -1,5 +1,5 @@
import React, { useEffect, useMemo, useState } from 'react';
import { InputDialog, cn } from '@ohif/ui-next';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { InputDialog } from '@ohif/ui-next';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@ohif/ui-next';
import { useSystem } from '@ohif/core';
@ -54,19 +54,19 @@ function ReportDialog({ dataSources, hide, onSave, onCancel }: ReportDialogProps
setReportName(newReportName);
}, [selectedSeries, seriesOptions]);
const handleSave = () => {
const handleSave = useCallback(() => {
onSave({
reportName,
dataSource: selectedDataSource,
series: selectedSeries,
});
hide();
};
}, [selectedDataSource, selectedSeries, reportName, hide, onSave]);
const handleCancel = () => {
const handleCancel = useCallback(() => {
onCancel();
hide();
};
}, [onCancel, hide]);
const showDataSourceSelect = dataSources?.length > 1;

View File

@ -40,7 +40,7 @@ async function promptSaveReport({ servicesManager, commandsManager, extensionMan
});
if (promptResult.action === PROMPT_RESPONSES.CREATE_REPORT) {
const dataSources = extensionManager.getDataSources();
const dataSources = extensionManager.getDataSources(promptResult.dataSourceName);
const dataSource = dataSources[0];
const measurementData = measurementService.getMeasurements(measurementFilter);

View File

@ -32,8 +32,8 @@
"start": "yarn run dev"
},
"peerDependencies": {
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/tools": "^3.9.5",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/tools": "^3.10.1",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0",
"@ohif/extension-default": "3.10.0",

View File

@ -1,6 +1,6 @@
import React from 'react';
import { utils } from '@ohif/core';
import { AccordionTrigger, MeasurementTable, useViewportGrid } from '@ohif/ui-next';
import { AccordionTrigger, MeasurementTable, ScrollArea, useViewportGrid } from '@ohif/ui-next';
import {
PanelMeasurement,
StudyMeasurements,
@ -83,29 +83,31 @@ function PanelMeasurementTableTracking(props) {
);
return (
<div data-cy="trackedMeasurements-panel">
<PanelMeasurement
measurementFilter={measurementFilter}
emptyComponent={EmptyComponent}
sourceChildren={props.children}
>
<StudyMeasurements grouping={props.grouping}>
<AccordionGroup.Trigger
key="trackingMeasurementsHeader"
asChild={true}
>
<Header key="trackingHeadChild" />
</AccordionGroup.Trigger>
<MeasurementsOrAdditionalFindings
key="measurementsOrAdditionalFindings"
activeStudyUID={trackedStudy}
customHeader={StudyMeasurementsActions}
measurementFilter={measurementFilter}
actions={actions}
/>
</StudyMeasurements>
</PanelMeasurement>
</div>
<ScrollArea>
<div data-cy="trackedMeasurements-panel">
<PanelMeasurement
measurementFilter={measurementFilter}
emptyComponent={EmptyComponent}
sourceChildren={props.children}
>
<StudyMeasurements grouping={props.grouping}>
<AccordionGroup.Trigger
key="trackingMeasurementsHeader"
asChild={true}
>
<Header key="trackingHeadChild" />
</AccordionGroup.Trigger>
<MeasurementsOrAdditionalFindings
key="measurementsOrAdditionalFindings"
activeStudyUID={trackedStudy}
customHeader={StudyMeasurementsActions}
measurementFilter={measurementFilter}
actions={actions}
/>
</StudyMeasurements>
</PanelMeasurement>
</div>
</ScrollArea>
);
}

View File

@ -53,7 +53,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": "^3.9.5",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0",
"@ohif/extension-cornerstone": "3.10.0",

View File

@ -37,8 +37,8 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/core": "^3.9.5",
"@cornerstonejs/dicom-image-loader": "^3.9.5",
"@cornerstonejs/core": "^3.10.1",
"@cornerstonejs/dicom-image-loader": "^3.10.1",
"@ohif/ui": "3.10.0",
"cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21"

View File

@ -87,9 +87,7 @@ export default class ExtensionManager extends PubSubService {
};
private dataSourceMap: Record<string, any>;
private dataSourceDefs: Record<string, any>;
private defaultDataSourceName: string;
private activeDataSource: string;
private peerImport: (moduleId) => Promise<any>;
private activeDataSourceName: string;
constructor({
commandsManager,
@ -117,20 +115,20 @@ export default class ExtensionManager extends PubSubService {
this.dataSourceMap = {};
this.dataSourceDefs = {};
this.defaultDataSourceName = appConfig.defaultDataSourceName;
this.activeDataSource = appConfig.defaultDataSourceName;
this.activeDataSourceName = appConfig.defaultDataSourceName;
this.peerImport = appConfig.peerImport;
}
public setActiveDataSource(dataSource: string): void {
if (this.activeDataSource === dataSource) {
if (this.activeDataSourceName === dataSource) {
return;
}
this.activeDataSource = dataSource;
this.activeDataSourceName = dataSource;
this._broadcastEvent(
ExtensionManager.EVENTS.ACTIVE_DATA_SOURCE_CHANGED,
this.dataSourceDefs[this.activeDataSource]
this.dataSourceDefs[this.activeDataSourceName]
);
}
@ -375,7 +373,7 @@ export default class ExtensionManager extends PubSubService {
getDataSources = dataSourceName => {
if (dataSourceName === undefined) {
// Default to the activeDataSource
dataSourceName = this.activeDataSource;
dataSourceName = this.activeDataSourceName;
}
// Note: this currently uses the data source name, which feels weird...
@ -387,7 +385,7 @@ export default class ExtensionManager extends PubSubService {
};
getActiveDataSource = () => {
return this.dataSourceMap[this.activeDataSource];
return this.dataSourceMap[this.activeDataSourceName];
};
/**
@ -400,7 +398,7 @@ export default class ExtensionManager extends PubSubService {
getDataSourceDefinition = dataSourceName => {
if (dataSourceName === undefined) {
// Default to the activeDataSource
dataSourceName = this.activeDataSource;
dataSourceName = this.activeDataSourceName;
}
return this.dataSourceDefs[dataSourceName];
@ -410,7 +408,7 @@ export default class ExtensionManager extends PubSubService {
* Gets the data source definition for the active data source.
*/
getActiveDataSourceDefinition = () => {
return this.getDataSourceDefinition(this.activeDataSource);
return this.getDataSourceDefinition(this.activeDataSourceName);
};
/**
@ -424,16 +422,21 @@ export default class ExtensionManager extends PubSubService {
return [];
}
return Object.keys(this.dataSourceMap)
.filter(ds => {
const configuration = this.dataSourceDefs[ds]?.configuration;
return configuration?.supportsStow ?? configuration?.wadoRoot;
})
.map(ds => ({
value: ds,
label: ds,
placeHolder: ds,
}));
const inactiveDataSourceNames = Object.keys(this.dataSourceMap).filter(ds => {
const configuration = this.dataSourceDefs[ds]?.configuration;
const isNotActiveDataSource =
this.dataSourceDefs[ds].sourceName !== this.activeDataSourceName;
const supportsStowOrWado = configuration?.supportsStow ?? configuration?.wadoRoot;
return supportsStowOrWado && isNotActiveDataSource;
});
const allDatasourcesForUI = [this.activeDataSourceName, ...inactiveDataSourceNames].map(ds => ({
value: ds,
label: ds,
placeHolder: ds,
}));
return allDatasourcesForUI;
};
/**
@ -555,7 +558,7 @@ export default class ExtensionManager extends PubSubService {
dataSourceDef.configuration = dataSourceConfiguration;
this._createDataSourceInstance(dataSourceDef);
if (this.activeDataSource === dataSourceName) {
if (this.activeDataSourceName === dataSourceName) {
// When the active data source is changed/set, fire an event to indicate that its configuration has changed.
this._broadcastEvent(ExtensionManager.EVENTS.ACTIVE_DATA_SOURCE_CHANGED, dataSourceDef);
}

View File

@ -57,7 +57,7 @@ const ScrollArea = React.forwardRef<
<ScrollAreaPrimitive.Root
ref={ref}
className={cn('relative h-full overflow-hidden', className)}
type={props.type || 'auto'}
type={props.type}
{...props}
>
<ScrollAreaPrimitive.Viewport

View File

@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
import { StudyItem } from '../StudyItem';
import { StudyBrowserSort } from '../StudyBrowserSort';
import { StudyBrowserViewOptions } from '../StudyBrowserViewOptions';
import { ScrollArea } from '../ScrollArea';
const noop = () => {};
@ -59,26 +60,28 @@ const StudyBrowser = ({
};
return (
<div
className="ohif-scrollbar invisible-scrollbar bg-bkg-low flex flex-1 flex-col gap-[4px] overflow-auto"
data-cy={'studyBrowser-panel'}
>
<div className="flex flex-col gap-[4px]">
{showSettings && (
<div className="w-100 bg-bkg-low flex h-[48px] items-center justify-center gap-[10px] px-[8px] py-[10px]">
<>
<StudyBrowserViewOptions
tabs={tabs}
onSelectTab={onClickTab}
activeTabName={activeTabName}
/>
<StudyBrowserSort servicesManager={servicesManager} />
</>
</div>
)}
{getTabContent()}
<ScrollArea>
<div
className="bg-bkg-low flex flex-1 flex-col gap-[4px]"
data-cy={'studyBrowser-panel'}
>
<div className="flex flex-col gap-[4px]">
{showSettings && (
<div className="w-100 bg-bkg-low flex h-[48px] items-center justify-center gap-[10px] px-[8px] py-[10px]">
<>
<StudyBrowserViewOptions
tabs={tabs}
onSelectTab={onClickTab}
activeTabName={activeTabName}
/>
<StudyBrowserSort servicesManager={servicesManager} />
</>
</div>
)}
{getTabContent()}
</div>
</div>
</div>
</ScrollArea>
);
};

View File

@ -63,7 +63,7 @@ const Thumbnail = ({
<div
className={classnames(
'flex h-full w-full flex-col items-center justify-center gap-[2px] p-[4px]',
isActive && 'bg-popover'
isActive && 'bg-popover rounded'
)}
>
<div className="h-[114px] w-[128px]">
@ -80,7 +80,7 @@ const Thumbnail = ({
)}
{/* bottom left */}
<div className="absolute bottom-0 left-0 flex h-[14px] items-center gap-[4px] rounded-tr pt-[10px] pb-[8px] pr-[6px] pl-[3px]">
<div className="absolute bottom-0 left-0 flex h-[14px] items-center gap-[4px] rounded-tr pt-[10px] pb-[10px] pr-[6px] pl-[5px]">
<div
className={classnames(
'h-[10px] w-[10px] rounded-[2px]',
@ -135,7 +135,7 @@ const Thumbnail = ({
</div>
</div>
</div>
<div className="flex h-[52px] w-[128px] flex-col justify-end">
<div className="flex h-[52px] w-[128px] flex-col justify-start pt-px">
<Tooltip>
<TooltipContent>{description}</TooltipContent>
<TooltipTrigger>
@ -167,18 +167,18 @@ const Thumbnail = ({
<div
className={classnames(
'flex h-full w-full items-center justify-between pr-[8px] pl-[8px] pt-[4px] pb-[4px]',
isActive && 'bg-popover'
isActive && 'bg-popover rounded'
)}
>
<div className="relative flex h-[32px] w-full items-center gap-[8px] overflow-hidden">
<div
className={classnames(
'h-[32px] w-[4px] min-w-[4px] rounded-[2px]',
'h-[32px] w-[4px] min-w-[4px] rounded',
isActive || isHydratedForDerivedDisplaySet ? 'bg-highlight' : 'bg-primary/65',
loadingProgress && loadingProgress < 1 && 'bg-primary/25'
)}
></div>
<div className="flex h-full w-[calc(100%-12px)] flex-col">
<div className="flex h-full w-[calc(100%-12px)] flex-col justify-start">
<div className="flex items-center gap-[7px]">
<div className="text-[13px] font-semibold text-white">{modality}</div>
<Tooltip>

View File

@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
import { Thumbnail } from '../Thumbnail';
import { useDynamicMaxHeight } from '../../hooks/useDynamicMaxHeight';
import { ScrollArea } from '../ScrollArea';
const ThumbnailList = ({
thumbnails,
@ -27,11 +26,10 @@ const ThumbnailList = ({
);
return (
<ScrollArea className="flex flex-col gap-[4px] pt-[4px] pr-[2.5px] pl-[5px] pb-[4px]">
<div className="flex flex-col">
<div
ref={ref}
style={{ maxHeight: maxHeight, minHeight: '300px' }}
className="flex flex-col gap-[4px] pt-[4px] pr-[2.5px] pl-[5px] pb-[4px]"
className="flex flex-col gap-[2px] pt-[4px] pr-[2.5px] pl-[5px] pb-[4px]"
>
{thumbnailItems.length > 0 && (
<div
@ -88,7 +86,7 @@ const ThumbnailList = ({
</div>
)}
</div>
</ScrollArea>
</div>
);
};

View File

@ -1 +1 @@
3.10.0
3.10.1

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@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.9.5.tgz#9957a97d22d79747a6deb4f2b4c2a86b8fe48331"
integrity sha512-I8nPFmwNBqBwrH26w06gZfsJaHyZPN4nZC8GO7IerkVSkyYXgFEFC5iRdVuU+Kr94nWm8zPKyLqHx7hAeNudgw==
"@cornerstonejs/adapters@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-3.10.1.tgz#a03c21d42c0f54b42b8886df54dec4823b867bd7"
integrity sha512-uKic+EyF8SguEM9ahZK96r1oWetjO2GCCEM1oO15wl71iHVXFbW8lUYD1uqXtNW4fZet3X9rEke/te1zNVafxA==
dependencies:
"@babel/runtime-corejs2" "^7.17.8"
buffer "^6.0.3"
@ -1404,10 +1404,10 @@
gl-matrix "^3.4.3"
ndarray "^1.0.19"
"@cornerstonejs/ai@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-3.9.5.tgz#40ac983158c325f204f605385d9bd4ad125d5844"
integrity sha512-AgVPLVoYJeefPcp6tf5UNfS8qoEJc8VxrqZab6f+LybhSa2se52h+57rCB5Ihd7SziNvWyIdux7v1Iy3GiZm+g==
"@cornerstonejs/ai@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-3.10.1.tgz#795ca5e69d94a7b868a765484d2a9b5ed943ef33"
integrity sha512-yEALz91yZCJdrRhk2R5Vn1yFefy07FL9g3ff4BgL19nTnGIu/3yUkVR9PY5js8T6E56GCFWxs9meWdeiCuRAcg==
dependencies:
"@babel/runtime-corejs2" "^7.17.8"
buffer "^6.0.3"
@ -1443,20 +1443,20 @@
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0"
integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg==
"@cornerstonejs/core@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.9.5.tgz#b42d8b93d2862b9673963f238e56109f299ca11e"
integrity sha512-EwXeTNSlL7UnXmj8o1DigNZOsVbhtNDKT2Bbi66jhnzZQm+rTPyYeTva+FnnqvpxBb/6QqwDEJ8gwlXwV0Rk5w==
"@cornerstonejs/core@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-3.10.1.tgz#074dd6412241ccb208b8615bb6a50db7527b0272"
integrity sha512-DMlE98A5Oa81G9K5J4ZD1917SbJYteh+j4oJTY60KHAI7p0GoGQRV/ZcxaL+FS8mWng/qejVss9w4fLoLJcErg==
dependencies:
"@kitware/vtk.js" "32.12.1"
comlink "^4.4.1"
gl-matrix "^3.4.3"
loglevel "^1.9.2"
"@cornerstonejs/dicom-image-loader@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.9.5.tgz#4ba9c97e2875fe67c524788833bdf2e38154869d"
integrity sha512-g0GZNkZ6PBRCl/dvi6NoQlmpmZhuLLeI4cdiFwV0Ug81HPkHdn8FQaqgy1XPOMknLSL6sJGZsJN2l2nW5COQSA==
"@cornerstonejs/dicom-image-loader@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-3.10.1.tgz#93744c03101135aa51324bce043ea1e40544ec5b"
integrity sha512-w/55TI05KV3mP/RtL0ds+jfh19KlBZajJDgXystV489duvqJJUH27C+eZyrGFqbA3a+EDv4GYQa4jw/MDkGGqA==
dependencies:
"@cornerstonejs/codec-charls" "^1.2.3"
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
@ -1468,25 +1468,25 @@
pako "^2.0.4"
uuid "^9.0.0"
"@cornerstonejs/labelmap-interpolation@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.9.5.tgz#159b4a9be8002d996ff8f1a5d39b0a9b90a3bbcc"
integrity sha512-U7XnaqrrEHGvH3kKdTwGiwLYaydxp5GVo0aqVvZaRDXMXfP3tbOpCfMQcqD+bv4Sh+Rr0719O5aDJ0+ENpA/MA==
"@cornerstonejs/labelmap-interpolation@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-3.10.1.tgz#fe5a6031ffabf916e70f1cc2edb2b45fc0ef5eee"
integrity sha512-hcAR83rWA6lBYKXgYOWR/3ofhV3mqh4RRLbj8QnS9e//qtmF+UxoZ4I0125ihPkCjFqFOWuYgn42BnRZNhvjxA==
dependencies:
"@itk-wasm/morphological-contour-interpolation" "1.1.0"
itk-wasm "1.0.0-b.165"
"@cornerstonejs/polymorphic-segmentation@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.9.5.tgz#d54145b90929f9e9e90f272acf5f416c28ca33e3"
integrity sha512-6ucJkb0X5CBBx00g3CzJGuLd6x4T99bPyKXa+y9Bek3jC+RyKI4vySS5RRKtQ4N59yuealZkBvV7dT0FseE8og==
"@cornerstonejs/polymorphic-segmentation@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-3.10.1.tgz#2ea4999bf10d4eb53a5fa2caca8ad4336ed9c9a9"
integrity sha512-HErrnX7kDs5CVfcuPW5pyWw3lJovqqqKiIfPJdEmZNEM4CVSv9pNpYIbSX8uv42zWq+biQFkP4TwYw12q/r7Og==
dependencies:
"@icr/polyseg-wasm" "0.4.0"
"@cornerstonejs/tools@^3.9.5":
version "3.9.5"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.9.5.tgz#65fa00b2e20f0442cde7f0383e96253393229bcf"
integrity sha512-vdPsm4szolXmyBdDNTB1gyRCP5EEicsf+TOsTU5P6QYWR7cB+nyio7GeGK5zFQrUi0hb2a2qkVjjLQLQH9inAw==
"@cornerstonejs/tools@^3.10.1":
version "3.10.1"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-3.10.1.tgz#8a49c5f61eeb619f42247bd422100e8d5b09af18"
integrity sha512-L1z8JiDwgbSwz040BSV5KBMMEe7IZyS4xYVhbn6cpfzCxSfevp53EkUZMhLl4bFcYyRPgXu5/KJO6f9wGFhEvA==
dependencies:
"@types/offscreencanvas" "2019.7.3"
comlink "^4.4.1"