Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15ef4c2e0f | ||
|
|
7a38903b19 | ||
|
|
40a472a9b1 | ||
|
|
d8d376edaf | ||
|
|
d0bab783c7 | ||
|
|
fe1ecfe0cc | ||
|
|
54d9ea39bf | ||
|
|
7b5d0ce40e | ||
|
|
15f14e34e4 | ||
|
|
d015b2e32a |
No files matched your search
@@ -3,6 +3,61 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **sr-hydration:** enable hydration and arrow navigation for 3D SR measurements ([#5887](https://github.com/OHIF/Viewers/issues/5887)) ([7a38903](https://github.com/OHIF/Viewers/commit/7a38903b1977b1cf0f3a0ba8a4a823fac5e8fdeb))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **security:** Bump flattened version to address CVE-2026-32141. ([#5897](https://github.com/OHIF/Viewers/issues/5897)) ([d8d376e](https://github.com/OHIF/Viewers/commit/d8d376edaf9c2b7af237182657e3e2203cca5abb))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **window level:** The window level value is not displayed by default on all the viewports when selecting common/custom layout and TMTV. ([#5865](https://github.com/OHIF/Viewers/issues/5865)) ([fe1ecfe](https://github.com/OHIF/Viewers/commit/fe1ecfe0cc5d1bcf82686d821f356da8936a8c4b))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **security:** Bump tar version to address CVE-2026-31802. ([#5893](https://github.com/OHIF/Viewers/issues/5893)) ([d015b2e](https://github.com/OHIF/Viewers/commit/d015b2e32a418042034c4f557c5a36499c72f702))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
|
||||
|
||||
+40
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@externals/devDependencies",
|
||||
"description": "External dev dependencies - put dev build dependencies here",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"engines": {
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@externals/dicom-microscopy-viewer",
|
||||
"description": "External reference to dicom-microscopy-viewer",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dicom-microscopy-viewer": "0.48.17"
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
"addOns/externals/devDependencies": {
|
||||
"name": "@externals/devDependencies",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
@@ -131,22 +131,22 @@
|
||||
},
|
||||
"addOns/externals/dicom-microscopy-viewer": {
|
||||
"name": "@externals/dicom-microscopy-viewer",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"dicom-microscopy-viewer": "0.48.17",
|
||||
},
|
||||
},
|
||||
"extensions/cornerstone": {
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/ai": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.18.2",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/ai": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.19.0",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@icr/polyseg-wasm": "0.4.0",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
@@ -164,9 +164,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.18.2",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -178,18 +178,18 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-pmap": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-pmap",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -200,15 +200,15 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-rt": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-rt",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -219,18 +219,18 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-seg": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-seg",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -241,19 +241,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-sr": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-sr",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -263,19 +263,19 @@
|
||||
},
|
||||
"extensions/cornerstone-dynamic-volume": {
|
||||
"name": "@ohif/extension-cornerstone-dynamic-volume",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -285,7 +285,7 @@
|
||||
},
|
||||
"extensions/default": {
|
||||
"name": "@ohif/extension-default",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/calculate-suv": "1.1.0",
|
||||
@@ -294,8 +294,8 @@
|
||||
"react-color": "2.19.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicomweb-client": "0.10.4",
|
||||
"prop-types": "15.8.1",
|
||||
@@ -309,7 +309,7 @@
|
||||
},
|
||||
"extensions/dicom-microscopy": {
|
||||
"name": "@ohif/extension-dicom-microscopy",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/codec-charls": "1.2.3",
|
||||
@@ -320,10 +320,10 @@
|
||||
"mathjs": "12.4.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -334,14 +334,14 @@
|
||||
},
|
||||
"extensions/dicom-pdf": {
|
||||
"name": "@ohif/extension-dicom-pdf",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -351,14 +351,14 @@
|
||||
},
|
||||
"extensions/dicom-video": {
|
||||
"name": "@ohif/extension-dicom-video",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -368,20 +368,20 @@
|
||||
},
|
||||
"extensions/measurement-tracking": {
|
||||
"name": "@ohif/extension-measurement-tracking",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"@xstate/react": "3.2.2",
|
||||
"xstate": "4.38.3",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"classnames": "2.5.1",
|
||||
"dcmjs": "0.49.4",
|
||||
"lodash.debounce": "4.0.8",
|
||||
@@ -394,14 +394,14 @@
|
||||
},
|
||||
"extensions/test-extension": {
|
||||
"name": "@ohif/extension-test",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -411,14 +411,14 @@
|
||||
},
|
||||
"extensions/tmtv": {
|
||||
"name": "@ohif/extension-tmtv",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -428,16 +428,16 @@
|
||||
},
|
||||
"extensions/usAnnotation": {
|
||||
"name": "@ohif/extension-ultrasound-pleura-bline",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/ui-next": "3.13.0-beta.32",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"@ohif/ui-next": "3.13.0-beta.39",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.0",
|
||||
@@ -476,7 +476,7 @@
|
||||
},
|
||||
"modes/basic": {
|
||||
"name": "@ohif/mode-basic",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@@ -485,19 +485,19 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/basic-dev-mode": {
|
||||
"name": "@ohif/mode-basic-dev-mode",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@@ -507,17 +507,17 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/basic-test-mode": {
|
||||
"name": "@ohif/mode-test",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@@ -527,19 +527,19 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.32",
|
||||
"@ohif/extension-test": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.39",
|
||||
"@ohif/extension-test": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/longitudinal": {
|
||||
"name": "@ohif/mode-longitudinal",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@@ -549,33 +549,33 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.32",
|
||||
"@ohif/mode-basic": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.39",
|
||||
"@ohif/mode-basic": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/microscopy": {
|
||||
"name": "@ohif/mode-microscopy",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/preclinical-4d": {
|
||||
"name": "@ohif/mode-preclinical-4d",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@@ -584,17 +584,17 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/segmentation": {
|
||||
"name": "@ohif/mode-segmentation",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@@ -623,20 +623,20 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/mode-basic": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
"@ohif/mode-basic": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/tmtv": {
|
||||
"name": "@ohif/mode-tmtv",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
@@ -646,25 +646,25 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.39",
|
||||
},
|
||||
},
|
||||
"modes/usAnnotation": {
|
||||
"name": "@ohif/mode-ultrasound-pleura-bline",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.32",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.39",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -693,34 +693,34 @@
|
||||
},
|
||||
"platform/app": {
|
||||
"name": "@ohif/app",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"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.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.32",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.32",
|
||||
"@ohif/extension-default": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.32",
|
||||
"@ohif/extension-test": "3.13.0-beta.32",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.32",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.32",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.32",
|
||||
"@ohif/mode-test": "3.13.0-beta.32",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@ohif/ui-next": "3.13.0-beta.32",
|
||||
"@ohif/core": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.39",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.39",
|
||||
"@ohif/extension-default": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.39",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.39",
|
||||
"@ohif/extension-test": "3.13.0-beta.39",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.39",
|
||||
"@ohif/i18n": "3.13.0-beta.39",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.39",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.39",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.39",
|
||||
"@ohif/mode-test": "3.13.0-beta.39",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.39",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"@ohif/ui-next": "3.13.0-beta.39",
|
||||
"@svgr/webpack": "8.1.0",
|
||||
"@types/react": "18.3.23",
|
||||
"classnames": "2.5.1",
|
||||
@@ -772,7 +772,7 @@
|
||||
},
|
||||
"platform/cli": {
|
||||
"name": "@ohif/cli",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"bin": {
|
||||
"ohif-cli": "src/index.js",
|
||||
},
|
||||
@@ -796,7 +796,7 @@
|
||||
},
|
||||
"platform/core": {
|
||||
"name": "@ohif/core",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"dcmjs": "0.49.4",
|
||||
@@ -821,16 +821,16 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@ohif/ui": "3.13.0-beta.39",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21",
|
||||
},
|
||||
},
|
||||
"platform/i18n": {
|
||||
"name": "@ohif/i18n",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next-locize-backend": "2.2.2",
|
||||
@@ -855,7 +855,7 @@
|
||||
},
|
||||
"platform/ui": {
|
||||
"name": "@ohif/ui",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@testing-library/react": "13.4.0",
|
||||
"browser-detect": "0.2.28",
|
||||
@@ -905,7 +905,7 @@
|
||||
},
|
||||
"platform/ui-next": {
|
||||
"name": "@ohif/ui-next",
|
||||
"version": "3.13.0-beta.32",
|
||||
"version": "3.13.0-beta.39",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-accordion": "1.2.11",
|
||||
"@radix-ui/react-checkbox": "1.3.2",
|
||||
@@ -959,6 +959,7 @@
|
||||
"cross-spawn": "7.0.6",
|
||||
"dcmjs": "0.49.4",
|
||||
"diff": "5.2.2",
|
||||
"flatted": "3.4.0",
|
||||
"glob-parent": "6.0.2",
|
||||
"lodash": "4.17.23",
|
||||
"lodash-es": "4.17.23",
|
||||
@@ -971,7 +972,7 @@
|
||||
"serialize-javascript": "7.0.4",
|
||||
"svgo": "3.3.3",
|
||||
"tapable": "2.2.2",
|
||||
"tar": "7.5.10",
|
||||
"tar": "7.5.11",
|
||||
"trim": "1.0.1",
|
||||
"trim-newlines": "5.0.0",
|
||||
"webpack": "5.105.0",
|
||||
@@ -1239,9 +1240,9 @@
|
||||
|
||||
"@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="],
|
||||
|
||||
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.18.2", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.49.4", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.18.2", "@cornerstonejs/tools": "4.18.2" } }, "sha512-8TnZuNIxKATEU+tii/bRbuYZFp4zZoZ18e/kT9ACN3SubnweJuJUK6U+ZRE+AElJQO5JsOZPn/hzlEzUq/uR4g=="],
|
||||
"@cornerstonejs/adapters": ["@cornerstonejs/adapters@4.19.0", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.49.4", "gl-matrix": "3.4.3", "ndarray": "1.0.19" }, "peerDependencies": { "@cornerstonejs/core": "4.19.0", "@cornerstonejs/tools": "4.19.0" } }, "sha512-321AA/3CNwe4bE7NHtKz1agTr6ckvxga1iM8ohIDPHL5GLc0Ooj4kRJMjEatTe+WmeDa4lug3VhV2FxmqCPjTg=="],
|
||||
|
||||
"@cornerstonejs/ai": ["@cornerstonejs/ai@4.18.2", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.49.4", "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.18.2", "@cornerstonejs/tools": "4.18.2" } }, "sha512-/RDRWl4Id2IxeHosZW3jf3Tk6GkMk79iIAMrPEMo7KS1J/l7wKPcB7ayKT6rY3+RdPWU0MYDZGc+6k1tScG3wg=="],
|
||||
"@cornerstonejs/ai": ["@cornerstonejs/ai@4.19.0", "", { "dependencies": { "@babel/runtime-corejs2": "7.26.10", "buffer": "6.0.3", "dcmjs": "0.49.4", "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.19.0", "@cornerstonejs/tools": "4.19.0" } }, "sha512-BWIbvUDLzmB0SEZhvFmhrhGEXdXplZkY5qEUfXCsbVcrUs9KsOrFrxLzTCRnTTnIX+Ybad9KoZWrwISmmMI3PQ=="],
|
||||
|
||||
"@cornerstonejs/calculate-suv": ["@cornerstonejs/calculate-suv@1.1.0", "", {}, "sha512-Q9XraiDJif9aMFArD2iEuDO/HXbcRVCqB7KfaHgDrdTTjgDFovS91Psbdim7crypRSvE6dh/+HKeFNHdvNkA6w=="],
|
||||
|
||||
@@ -1253,15 +1254,15 @@
|
||||
|
||||
"@cornerstonejs/codec-openjph": ["@cornerstonejs/codec-openjph@2.4.7", "", {}, "sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w=="],
|
||||
|
||||
"@cornerstonejs/core": ["@cornerstonejs/core@4.18.2", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-7+71R3g9KT4MqCQvG49vXp4EACbaTMh+aZ73kAG0dW7mItShLqni5IglodzM/jKHh/qoVbeX6zzaWn8Eq9OnOQ=="],
|
||||
"@cornerstonejs/core": ["@cornerstonejs/core@4.19.0", "", { "dependencies": { "@kitware/vtk.js": "34.15.1", "comlink": "4.4.2", "gl-matrix": "3.4.3", "loglevel": "1.9.2" } }, "sha512-t8v1JStDS+TJc50UA82BOCD0D9U4SD0VHuofRCXfPVd/LfDcLyUmcmoDuEeHTMCHGFm16j+nc3a/tqBiC0ZOxA=="],
|
||||
|
||||
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.18.2", "", { "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.18.2" } }, "sha512-wcV7NLU5WLwHah7x/b9PkfAuBjbNpE6/nZaC4PWcB8yX0gKuznU1B6bNn42XErB/WlPgFduKL0FKy37ys01tvg=="],
|
||||
"@cornerstonejs/dicom-image-loader": ["@cornerstonejs/dicom-image-loader@4.19.0", "", { "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.19.0" } }, "sha512-aW7tNpYAnLZcrx6x9pPs2lDm/K00/1vzlca7CBZ8ihTZcHb2qPpzEsIPZ3F48udzy/Onl/pcw8IDEWTGWDnRzg=="],
|
||||
|
||||
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.18.2", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.18.2", "@cornerstonejs/tools": "4.18.2", "@kitware/vtk.js": "34.15.1" } }, "sha512-MyD4dHouYu7eu0u8sS5+cUuRwpINouUD+c0GZCamEDJ37PSUslhz1gMkQCL7B61NMpx6cAEP0OVlyfVbd7YPmw=="],
|
||||
"@cornerstonejs/labelmap-interpolation": ["@cornerstonejs/labelmap-interpolation@4.19.0", "", { "dependencies": { "@itk-wasm/morphological-contour-interpolation": "1.1.0", "itk-wasm": "1.0.0-b.165" }, "peerDependencies": { "@cornerstonejs/core": "4.19.0", "@cornerstonejs/tools": "4.19.0", "@kitware/vtk.js": "34.15.1" } }, "sha512-nQgZhNACFsi1frS7kpFf8+wywweHZFQjYRZ27OuaILUhcd4c5Rcz+4t3mfnzdqTuxtg3+ewPG+7oKyCFIUMrgw=="],
|
||||
|
||||
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.18.2", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.18.2", "@cornerstonejs/tools": "4.18.2", "@kitware/vtk.js": "34.15.1" } }, "sha512-lwdcyUflm4tDZEUc2Eq8ot7C9tEnKDJnLk6oKClk9/32ExUIqnItWbKfxwF0yvBiFzVhvdnAsjXvsO1itaD+LA=="],
|
||||
"@cornerstonejs/polymorphic-segmentation": ["@cornerstonejs/polymorphic-segmentation@4.19.0", "", { "dependencies": { "@icr/polyseg-wasm": "0.4.0" }, "peerDependencies": { "@cornerstonejs/core": "4.19.0", "@cornerstonejs/tools": "4.19.0", "@kitware/vtk.js": "34.15.1" } }, "sha512-WmB938EDefT21YBYDC2rZReJyyI0fS9QsIoc9FkJOEky6GdDWbpFRulqz1X0XGbsr2jbAQUh9p1KJaraEtXkIw=="],
|
||||
|
||||
"@cornerstonejs/tools": ["@cornerstonejs/tools@4.18.2", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.18.2", "@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-dWbi29k/Y62TVBeK7zaU3mis9+UPjhr0nMGeG+C1PA7jYW07bLWFAL8vEk1oI1hGPOGKWU+Crpc9oRrOyzZkfw=="],
|
||||
"@cornerstonejs/tools": ["@cornerstonejs/tools@4.19.0", "", { "dependencies": { "@types/offscreencanvas": "2019.7.3", "comlink": "4.4.2", "lodash.get": "4.4.2" }, "peerDependencies": { "@cornerstonejs/core": "4.19.0", "@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-yDK3I3U4tYDUWhZh3/NNBWWwqBd5X5qAfkn6tba5KMwKMLtjSm11s+Wg5O4BWOooW/XRflwj28VtE+Kgivlsag=="],
|
||||
|
||||
"@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
|
||||
|
||||
@@ -3131,7 +3132,7 @@
|
||||
|
||||
"flatbuffers": ["flatbuffers@1.12.0", "", {}, "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ=="],
|
||||
|
||||
"flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="],
|
||||
"flatted": ["flatted@3.4.0", "", {}, "sha512-kC6Bb+ooptOIvWj5B63EQWkF0FEnNjV2ZNkLMLZRDDduIiWeFF4iKnslwhiWxjAdbg4NzTNo6h0qLuvFrcx+Sw=="],
|
||||
|
||||
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
|
||||
|
||||
@@ -4875,7 +4876,7 @@
|
||||
|
||||
"tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="],
|
||||
|
||||
"tar": ["tar@7.5.10", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw=="],
|
||||
"tar": ["tar@7.5.11", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ=="],
|
||||
|
||||
"tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
b83e978df8c9ffda3759378318267b8d0020653c
|
||||
7a38903b1977b1cf0f3a0ba8a4a823fac5e8fdeb
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone-dicom-pmap",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "DICOM Parametric Map read workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,10 +33,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@kitware/vtk.js": "34.15.1"
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone-dicom-rt",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "DICOM RT read workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,10 +33,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone-dicom-seg",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "DICOM SEG read workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,10 +33,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@kitware/vtk.js": "34.15.1"
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,52 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **sr-hydration:** enable hydration and arrow navigation for 3D SR measurements ([#5887](https://github.com/OHIF/Viewers/issues/5887)) ([7a38903](https://github.com/OHIF/Viewers/commit/7a38903b1977b1cf0f3a0ba8a4a823fac5e8fdeb))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone-dicom-sr",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for an SR Cornerstone Viewport",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -34,10 +34,10 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -46,9 +46,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
@@ -80,7 +80,7 @@ export default function hydrateStructuredReport(
|
||||
const { ReferencedSOPInstanceUID, imageId, frameNumber = 1 } = measurement;
|
||||
const key = `${ReferencedSOPInstanceUID}:${frameNumber}`;
|
||||
|
||||
if (!sopInstanceUIDToImageId[key]) {
|
||||
if (imageId && !sopInstanceUIDToImageId[key]) {
|
||||
sopInstanceUIDToImageId[key] = imageId;
|
||||
}
|
||||
});
|
||||
@@ -118,41 +118,17 @@ export default function hydrateStructuredReport(
|
||||
}
|
||||
});
|
||||
|
||||
// Set the series touched as tracked.
|
||||
const imageIds = [];
|
||||
|
||||
// TODO: notification if no hydratable?
|
||||
Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
|
||||
const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
|
||||
|
||||
toolDataForAnnotationType.forEach(toolData => {
|
||||
// Add the measurement to toolState
|
||||
// dcmjs and Cornerstone3D has structural defect in supporting multi-frame
|
||||
// files, and looking up the imageId from sopInstanceUIDToImageId results
|
||||
// in the wrong value.
|
||||
const frameNumber = toolData.annotation.data?.frameNumber || 1;
|
||||
const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
|
||||
|
||||
if (!imageIds.includes(imageId)) {
|
||||
imageIds.push(imageId);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let targetStudyInstanceUID;
|
||||
const SeriesInstanceUIDs = [];
|
||||
|
||||
for (let i = 0; i < imageIds.length; i++) {
|
||||
const imageId = imageIds[i];
|
||||
if (!imageId) {
|
||||
continue;
|
||||
}
|
||||
const { SeriesInstanceUID, StudyInstanceUID } = metaData.get('instance', imageId);
|
||||
// Set the series touched as tracked.
|
||||
const imageIds = getImageIds(hydratableMeasurementsInSR, sopInstanceUIDToImageId);
|
||||
|
||||
for (const imageId of imageIds) {
|
||||
const { SeriesInstanceUID, StudyInstanceUID } = metaData.get('instance', imageId);
|
||||
if (!SeriesInstanceUIDs.includes(SeriesInstanceUID)) {
|
||||
SeriesInstanceUIDs.push(SeriesInstanceUID);
|
||||
}
|
||||
|
||||
if (!targetStudyInstanceUID) {
|
||||
targetStudyInstanceUID = StudyInstanceUID;
|
||||
} else if (targetStudyInstanceUID !== StudyInstanceUID) {
|
||||
@@ -160,6 +136,31 @@ export default function hydrateStructuredReport(
|
||||
}
|
||||
}
|
||||
|
||||
// For 3d annotations there are no image IDs,
|
||||
// so we need to find the display sets by frame of reference to get the SeriesInstanceUIDs
|
||||
const frameOfReferenceUIDs = getFrameOfReferenceUIDs(
|
||||
hydratableMeasurementsInSR,
|
||||
sopInstanceUIDToImageId
|
||||
);
|
||||
|
||||
for (const FrameOfReferenceUID of frameOfReferenceUIDs) {
|
||||
const displaySetsFOR = displaySetService.getDisplaySetsBy(
|
||||
ds => ds.FrameOfReferenceUID === FrameOfReferenceUID && !ds.isDerivedDisplaySet
|
||||
);
|
||||
const ds = chooseDisplaySet(displaySetsFOR, FrameOfReferenceUID);
|
||||
if (!ds) {
|
||||
continue;
|
||||
}
|
||||
if (!SeriesInstanceUIDs.includes(ds.SeriesInstanceUID)) {
|
||||
SeriesInstanceUIDs.push(ds.SeriesInstanceUID);
|
||||
}
|
||||
if (!targetStudyInstanceUID) {
|
||||
targetStudyInstanceUID = ds.StudyInstanceUID;
|
||||
} else if (targetStudyInstanceUID !== ds.StudyInstanceUID) {
|
||||
console.warn('NO SUPPORT FOR SRs THAT HAVE MEASUREMENTS FROM MULTIPLE STUDIES.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets reference data for what frame of reference and the referenced
|
||||
* image id, or for 3d measurements, the volumeId to apply this annotation to.
|
||||
@@ -196,7 +197,7 @@ export default function hydrateStructuredReport(
|
||||
toolDataForAnnotationType.forEach(toolData => {
|
||||
toolData.uid = guid();
|
||||
const referenceData = getReferenceData(toolData);
|
||||
const { imageId } = referenceData;
|
||||
const { referencedImageId } = referenceData;
|
||||
|
||||
const annotation = {
|
||||
annotationUID: toolData.annotation.annotationUID,
|
||||
@@ -241,8 +242,8 @@ export default function hydrateStructuredReport(
|
||||
locking.setAnnotationLocked(newAnnotationUID, true);
|
||||
}
|
||||
|
||||
if (imageId && !imageIds.includes(imageId)) {
|
||||
imageIds.push(imageId);
|
||||
if (referencedImageId && !imageIds.includes(referencedImageId)) {
|
||||
imageIds.push(referencedImageId);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -255,15 +256,64 @@ export default function hydrateStructuredReport(
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the unique imageIds from hydratable measurements that have an imageId reference
|
||||
* (i.e., 2D/SCOORD annotations).
|
||||
*/
|
||||
function getImageIds(hydratableMeasurementsInSR, sopInstanceUIDToImageId): string[] {
|
||||
const imageIds: string[] = [];
|
||||
Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
|
||||
const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
|
||||
|
||||
toolDataForAnnotationType.forEach(toolData => {
|
||||
// Add the measurement to toolState
|
||||
// dcmjs and Cornerstone3D has structural defect in supporting multi-frame
|
||||
// files, and looking up the imageId from sopInstanceUIDToImageId results
|
||||
// in the wrong value.
|
||||
const frameNumber = toolData.annotation.data?.frameNumber || 1;
|
||||
const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
|
||||
|
||||
if (imageId && !imageIds.includes(imageId)) {
|
||||
imageIds.push(imageId);
|
||||
}
|
||||
});
|
||||
});
|
||||
return imageIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the unique FrameOfReferenceUIDs from hydratable measurements that have no imageId reference
|
||||
* (i.e., 3D/SCOORD3D annotations). This excludes annotations handled by the getImageIds function.
|
||||
*/
|
||||
function getFrameOfReferenceUIDs(hydratableMeasurementsInSR, sopInstanceUIDToImageId): string[] {
|
||||
const frameOfReferenceUIDs: string[] = [];
|
||||
|
||||
Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
|
||||
const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
|
||||
toolDataForAnnotationType.forEach(toolData => {
|
||||
const frameNumber = toolData.annotation.data?.frameNumber || 1;
|
||||
const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
|
||||
|
||||
if (!imageId) {
|
||||
const { FrameOfReferenceUID } = toolData.annotation.metadata;
|
||||
if (FrameOfReferenceUID && !frameOfReferenceUIDs.includes(FrameOfReferenceUID)) {
|
||||
frameOfReferenceUIDs.push(FrameOfReferenceUID);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
return frameOfReferenceUIDs;
|
||||
}
|
||||
|
||||
/**
|
||||
* For 3d annotations, there are often several display sets which could
|
||||
* be used to display the annotation. Choose the first annotation with the
|
||||
* same frame of reference that is reconstructable, or the first display set
|
||||
* otherwise.
|
||||
*/
|
||||
function chooseDisplaySet(displaySets, annotation) {
|
||||
function chooseDisplaySet(displaySets, reference) {
|
||||
if (!displaySets?.length) {
|
||||
console.warn('No display set found for', annotation);
|
||||
console.warn('No display set found for', reference);
|
||||
return;
|
||||
}
|
||||
if (displaySets.length === 1) {
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone-dynamic-volume",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for 4D volumes data",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -29,11 +29,11 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,52 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **window level:** The window level value is not displayed by default on all the viewports when selecting common/custom layout and TMTV. ([#5865](https://github.com/OHIF/Viewers/issues/5865)) ([fe1ecfe](https://github.com/OHIF/Viewers/commit/fe1ecfe0cc5d1bcf82686d821f356da8936a8c4b))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for Cornerstone",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -40,9 +40,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.18.2",
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -53,12 +53,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
"@cornerstonejs/ai": "4.18.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.18.2",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@cornerstonejs/adapters": "4.19.0",
|
||||
"@cornerstonejs/ai": "4.19.0",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.19.0",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@icr/polyseg-wasm": "0.4.0",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
|
||||
@@ -67,10 +67,9 @@ function CustomizableViewportOverlay({
|
||||
}) {
|
||||
const { cornerstoneViewportService, customizationService, toolGroupService, displaySetService } =
|
||||
servicesManager.services;
|
||||
const [voi, setVOI] = useState({ windowCenter: null, windowWidth: null });
|
||||
const [scale, setScale] = useState(1);
|
||||
const [annotationState, setAnnotationState] = useState(0);
|
||||
const { isViewportBackgroundLight: isLight } = useViewportRendering(viewportId);
|
||||
const { isViewportBackgroundLight: isLight, windowLevel: voi } = useViewportRendering(viewportId);
|
||||
const { imageIndex } = imageSliceData;
|
||||
|
||||
// Historical usage defined the overlays as separate items due to lack of
|
||||
@@ -110,30 +109,6 @@ function CustomizableViewportOverlay({
|
||||
};
|
||||
}, [viewportData, viewportId, instanceNumber, cornerstoneViewportService]);
|
||||
|
||||
/**
|
||||
* Updating the VOI when the viewport changes its voi
|
||||
*/
|
||||
useEffect(() => {
|
||||
const updateVOI = eventDetail => {
|
||||
const { range } = eventDetail.detail;
|
||||
|
||||
if (!range) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { lower, upper } = range;
|
||||
const { windowWidth, windowCenter } = utilities.windowLevel.toWindowLevel(lower, upper);
|
||||
|
||||
setVOI({ windowCenter, windowWidth });
|
||||
};
|
||||
|
||||
element.addEventListener(Enums.Events.VOI_MODIFIED, updateVOI);
|
||||
|
||||
return () => {
|
||||
element.removeEventListener(Enums.Events.VOI_MODIFIED, updateVOI);
|
||||
};
|
||||
}, [viewportId, viewportData, voi, element]);
|
||||
|
||||
const annotationModified = useCallback(evt => {
|
||||
if (evt.detail.annotation.metadata.toolName === UltrasoundPleuraBLineTool.toolName) {
|
||||
// Update the annotation state to trigger a re-render
|
||||
@@ -226,6 +201,7 @@ function CustomizableViewportOverlay({
|
||||
scale,
|
||||
instanceNumber,
|
||||
annotationState,
|
||||
isLight,
|
||||
]
|
||||
);
|
||||
|
||||
@@ -402,6 +378,7 @@ function OverlayItem(props) {
|
||||
*/
|
||||
function VOIOverlayItem({ voi, customization }: OverlayItemProps) {
|
||||
const { windowWidth, windowCenter } = voi;
|
||||
const { title } = customization;
|
||||
if (typeof windowCenter !== 'number' || typeof windowWidth !== 'number') {
|
||||
return null;
|
||||
}
|
||||
@@ -410,6 +387,7 @@ function VOIOverlayItem({ voi, customization }: OverlayItemProps) {
|
||||
<div
|
||||
className="overlay-item flex flex-row"
|
||||
style={{ color: customization?.color }}
|
||||
title={title}
|
||||
>
|
||||
<span className="mr-0.5 shrink-0 opacity-[0.70]">W:</span>
|
||||
<span className="mr-2.5 shrink-0">{windowWidth.toFixed(0)}</span>
|
||||
@@ -443,11 +421,13 @@ function InstanceNumberOverlayItem({
|
||||
customization,
|
||||
}: OverlayItemProps) {
|
||||
const { imageIndex, numberOfSlices } = imageSliceData;
|
||||
const { title } = customization;
|
||||
|
||||
return (
|
||||
<div
|
||||
className="overlay-item flex flex-row"
|
||||
style={{ color: (customization && customization.color) || undefined }}
|
||||
title={title}
|
||||
>
|
||||
<span>
|
||||
{instanceNumber !== undefined && instanceNumber !== null ? (
|
||||
|
||||
@@ -25,6 +25,7 @@ export default {
|
||||
{
|
||||
id: 'WindowLevel',
|
||||
inheritsFrom: 'ohif.overlayItem.windowLevel',
|
||||
title: 'Window Level',
|
||||
},
|
||||
{
|
||||
id: 'ZoomLevel',
|
||||
@@ -39,6 +40,7 @@ export default {
|
||||
{
|
||||
id: 'InstanceNumber',
|
||||
inheritsFrom: 'ohif.overlayItem.instanceNumber',
|
||||
title: 'Instance Number',
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
BaseVolumeViewport,
|
||||
cache,
|
||||
} from '@cornerstonejs/core';
|
||||
import { getDataIdForViewport } from '../utils/getDataIdForViewport';
|
||||
import { WindowLevelPreset } from '../types/WindowLevel';
|
||||
import { ColorbarPositionType, ColorbarOptions, ColorbarProperties } from '../types/Colorbar';
|
||||
import { VolumeRenderingConfig } from '../types/VolumeRenderingConfig';
|
||||
@@ -104,11 +105,6 @@ const opacityToLinear = (opacityValue: number): number => {
|
||||
return Math.pow(opacityValue, 1.0 / GAMMA);
|
||||
};
|
||||
|
||||
const is3DViewport = ({ viewportId, cornerstoneViewportService }) => {
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
return viewport instanceof VolumeViewport3D;
|
||||
};
|
||||
|
||||
/**
|
||||
* Hook to access window level functionality for a specific viewport
|
||||
*
|
||||
@@ -124,15 +120,17 @@ export function useViewportRendering(
|
||||
const { cornerstoneViewportService, colorbarService, customizationService } =
|
||||
servicesManager.services;
|
||||
|
||||
const [is3DVolume, setIs3DVolume] = useState(
|
||||
is3DViewport({ viewportId, cornerstoneViewportService })
|
||||
);
|
||||
const [hasColorbar, setHasColorbar] = useState(colorbarService.hasColorbar(viewportId));
|
||||
const [colorbarPosition, setColorbarPosition] = useState<ColorbarPositionType>(
|
||||
options?.location ? getPosition(options.location) : 'bottom'
|
||||
);
|
||||
const [voiRange, setVoiRange] = useState<{ lower: number; upper: number } | undefined>();
|
||||
const voiRangeRef = React.useRef<{ lower: number; upper: number } | undefined>();
|
||||
// Viewport from service; kept in state so we can subscribe to VIEWPORT_DATA_CHANGED when null and re-run effects when it becomes available
|
||||
const [viewport, setViewport] = useState<Types.IViewport | null>(() =>
|
||||
viewportId ? (cornerstoneViewportService.getCornerstoneViewport(viewportId) ?? null) : null
|
||||
);
|
||||
const [is3DVolume, setIs3DVolume] = useState(viewport instanceof VolumeViewport3D);
|
||||
const [opacity, setOpacityState] = useState<number | undefined>();
|
||||
const [opacityLinear, setOpacityLinearState] = useState<number | undefined>();
|
||||
const [threshold, setThresholdState] = useState<number | undefined>();
|
||||
@@ -178,6 +176,34 @@ export function useViewportRendering(
|
||||
);
|
||||
}, [viewportDisplaySets, presets]);
|
||||
|
||||
// Keep viewport in state; when not available, subscribe to VIEWPORT_DATA_CHANGED so we set it when the viewport is ready
|
||||
useEffect(() => {
|
||||
if (!viewportId) {
|
||||
setViewport(null);
|
||||
return;
|
||||
}
|
||||
const vp = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
setViewport(vp ?? null);
|
||||
if (vp) {
|
||||
return;
|
||||
}
|
||||
const { unsubscribe } = cornerstoneViewportService.subscribe(
|
||||
cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED,
|
||||
({ viewportId: eventViewportId }) => {
|
||||
if (eventViewportId !== viewportId) {
|
||||
return;
|
||||
}
|
||||
const next = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
if (next) {
|
||||
setViewport(next);
|
||||
}
|
||||
}
|
||||
);
|
||||
return () => {
|
||||
unsubscribe();
|
||||
};
|
||||
}, [viewportId, cornerstoneViewportService]);
|
||||
|
||||
// Calculate pixel value range for the active display set
|
||||
useEffect(() => {
|
||||
if (!activeDisplaySetInstanceUID) {
|
||||
@@ -189,17 +215,15 @@ export function useViewportRendering(
|
||||
return;
|
||||
}
|
||||
|
||||
const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
|
||||
if (!csViewport) {
|
||||
if (!viewport) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(csViewport instanceof BaseVolumeViewport)) {
|
||||
if (!(viewport instanceof BaseVolumeViewport)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const volumeIds = csViewport.getAllVolumeIds();
|
||||
const volumeIds = viewport.getAllVolumeIds();
|
||||
const volumeId = volumeIds.find(id => id.includes(activeDisplaySetInstanceUID));
|
||||
|
||||
if (!volumeId) {
|
||||
@@ -207,7 +231,7 @@ export function useViewportRendering(
|
||||
}
|
||||
|
||||
// only handle volume viewports for now
|
||||
const imageData = csViewport.getImageData(volumeId);
|
||||
const imageData = viewport.getImageData(volumeId);
|
||||
|
||||
if (!imageData) {
|
||||
return;
|
||||
@@ -220,7 +244,7 @@ export function useViewportRendering(
|
||||
const range = voxelManager.getRange();
|
||||
|
||||
setPixelValueRange({ min: range[0], max: range[1] });
|
||||
}, [activeDisplaySetInstanceUID, displaySetService, cornerstoneViewportService, viewportId]);
|
||||
}, [activeDisplaySetInstanceUID, displaySetService, viewport]);
|
||||
|
||||
// Get the presets specifically for the active display set
|
||||
const activeDisplaySetPresets = useMemo(() => {
|
||||
@@ -240,55 +264,47 @@ export function useViewportRendering(
|
||||
}, [allWindowLevelPresets, activeDisplaySetInstanceUID]);
|
||||
|
||||
useEffect(() => {
|
||||
setIs3DVolume(is3DViewport({ viewportId, cornerstoneViewportService }));
|
||||
setIs3DVolume(viewport instanceof VolumeViewport3D);
|
||||
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
|
||||
// Initialize the VOI range from the viewport
|
||||
if (viewport && activeDisplaySetInstanceUID) {
|
||||
try {
|
||||
let properties;
|
||||
|
||||
if (viewport instanceof StackViewport) {
|
||||
properties = viewport.getProperties();
|
||||
if (properties.voiRange) {
|
||||
setVoiRange(properties.voiRange);
|
||||
voiRangeRef.current = properties.voiRange;
|
||||
}
|
||||
} else if (viewport instanceof BaseVolumeViewport) {
|
||||
// For volume viewports, find the actor for the active display set
|
||||
const volumeIds = viewport.getAllVolumeIds();
|
||||
const volumeId = volumeIds.find(id => id.includes(activeDisplaySetInstanceUID));
|
||||
|
||||
if (volumeId) {
|
||||
properties = viewport.getProperties(volumeId);
|
||||
if (properties?.voiRange) {
|
||||
setVoiRange(properties.voiRange);
|
||||
voiRangeRef.current = properties.voiRange;
|
||||
}
|
||||
|
||||
// Get opacity from colormap if available
|
||||
if (properties?.colormap?.opacity !== undefined) {
|
||||
const isArray = Array.isArray(properties.colormap.opacity);
|
||||
const opacity = isArray
|
||||
? properties.colormap.opacity.reduce((max, current) => Math.max(max, current), 0)
|
||||
: properties.colormap.opacity;
|
||||
|
||||
setOpacityState(opacity);
|
||||
setOpacityLinearState(opacityToLinear(opacity));
|
||||
}
|
||||
|
||||
// Get threshold from colormap if available
|
||||
if (properties?.colormap && properties.colormap.threshold !== undefined) {
|
||||
setThresholdState(properties.colormap.threshold);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error initializing VOI range:', error);
|
||||
}
|
||||
if (!viewport || !activeDisplaySetInstanceUID) {
|
||||
return;
|
||||
}
|
||||
}, [cornerstoneViewportService, viewportId, activeDisplaySetInstanceUID]);
|
||||
try {
|
||||
const dataId = getDataIdForViewport(viewport as unknown, activeDisplaySetInstanceUID);
|
||||
|
||||
const properties =
|
||||
dataId != null
|
||||
? (viewport as Types.IBaseVolumeViewport).getProperties(dataId)
|
||||
: viewport.getProperties();
|
||||
|
||||
if (!properties) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (properties.voiRange) {
|
||||
setVoiRange(properties.voiRange);
|
||||
voiRangeRef.current = properties.voiRange;
|
||||
}
|
||||
|
||||
if (properties.colormap?.opacity !== undefined) {
|
||||
const opacityVal = properties.colormap.opacity;
|
||||
const opacity = Array.isArray(opacityVal)
|
||||
? (opacityVal as unknown as number[]).reduce(
|
||||
(max, current) => Math.max(max, current),
|
||||
0
|
||||
)
|
||||
: opacityVal;
|
||||
setOpacityState(opacity);
|
||||
setOpacityLinearState(opacityToLinear(opacity));
|
||||
}
|
||||
|
||||
if (properties.colormap?.threshold !== undefined) {
|
||||
setThresholdState(properties.colormap.threshold);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error initializing VOI range:', error);
|
||||
}
|
||||
}, [activeDisplaySetInstanceUID, viewport]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!viewportId) {
|
||||
@@ -313,19 +329,11 @@ export function useViewportRendering(
|
||||
}, [colorbarService, viewportId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!viewportId || !activeDisplaySetInstanceUID) {
|
||||
return;
|
||||
}
|
||||
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
if (!viewport) {
|
||||
if (!activeDisplaySetInstanceUID || !viewport?.element) {
|
||||
return;
|
||||
}
|
||||
|
||||
const element = viewport.element;
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
|
||||
const updateVOI = eventDetail => {
|
||||
const { range } = eventDetail.detail;
|
||||
@@ -369,7 +377,7 @@ export function useViewportRendering(
|
||||
element.removeEventListener(Enums.Events.VOI_MODIFIED, updateVOI);
|
||||
element.removeEventListener(Enums.Events.COLORMAP_MODIFIED, updateColormap);
|
||||
};
|
||||
}, [viewportId, activeDisplaySetInstanceUID, cornerstoneViewportService, opacityToLinear]);
|
||||
}, [activeDisplaySetInstanceUID, viewport, opacityToLinear]);
|
||||
|
||||
const validateActiveDisplaySet = useCallback(() => {
|
||||
if (!activeDisplaySetInstanceUID) {
|
||||
@@ -560,16 +568,11 @@ export function useViewportRendering(
|
||||
context: 'CORNERSTONE',
|
||||
});
|
||||
},
|
||||
[commandsManager, viewportId, validateActiveDisplaySet]
|
||||
[commandsManager, validateActiveDisplaySet, viewport, viewportId]
|
||||
);
|
||||
|
||||
const setOpacity = useCallback(
|
||||
(opacityValue: number) => {
|
||||
if (!viewportId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
if (!viewport || !(viewport instanceof BaseVolumeViewport)) {
|
||||
return;
|
||||
}
|
||||
@@ -607,7 +610,7 @@ export function useViewportRendering(
|
||||
|
||||
viewport.render();
|
||||
},
|
||||
[cornerstoneViewportService, viewportId, validateActiveDisplaySet, opacityToLinear]
|
||||
[validateActiveDisplaySet, opacityToLinear, viewport]
|
||||
);
|
||||
|
||||
const setOpacityLinear = useCallback(
|
||||
@@ -621,11 +624,6 @@ export function useViewportRendering(
|
||||
|
||||
const setThreshold = useCallback(
|
||||
(thresholdValue: number) => {
|
||||
if (!viewportId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
if (!viewport || !(viewport instanceof BaseVolumeViewport)) {
|
||||
return;
|
||||
}
|
||||
@@ -653,18 +651,16 @@ export function useViewportRendering(
|
||||
|
||||
viewport.render();
|
||||
},
|
||||
[cornerstoneViewportService, viewportId, validateActiveDisplaySet]
|
||||
[validateActiveDisplaySet, viewport]
|
||||
);
|
||||
|
||||
// Get the current colormap for the active display set
|
||||
const colormap = useMemo(() => {
|
||||
if (!viewportId || !activeDisplaySetInstanceUID || !viewportDisplaySets?.length) {
|
||||
if (!activeDisplaySetInstanceUID || !viewportDisplaySets?.length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
||||
|
||||
if (!viewport) {
|
||||
return null;
|
||||
}
|
||||
@@ -711,13 +707,7 @@ export function useViewportRendering(
|
||||
colorbarProperties?.colormaps?.[0]
|
||||
);
|
||||
}
|
||||
}, [
|
||||
cornerstoneViewportService,
|
||||
viewportId,
|
||||
activeDisplaySetInstanceUID,
|
||||
viewportDisplaySets,
|
||||
colorbarProperties?.colormaps,
|
||||
]);
|
||||
}, [activeDisplaySetInstanceUID, viewportDisplaySets, colorbarProperties?.colormaps, viewport]);
|
||||
|
||||
// 3D volume rendering functions
|
||||
const setVolumeRenderingPreset = useCallback(
|
||||
@@ -801,7 +791,9 @@ export function useViewportRendering(
|
||||
setWindowLevel,
|
||||
setVOIRange,
|
||||
voiRange,
|
||||
windowLevel: utilities.windowLevel.toWindowLevel(voiRange?.lower, voiRange?.upper),
|
||||
windowLevel: voiRange
|
||||
? utilities.windowLevel.toWindowLevel(voiRange?.lower, voiRange?.upper)
|
||||
: { windowCenter: null, windowWidth: null },
|
||||
|
||||
// Colorbar functions
|
||||
hasColorbar,
|
||||
|
||||
@@ -9,7 +9,7 @@ import { useSystem } from '@ohif/core';
|
||||
const excludedModalities = ['SM', 'OT', 'DOC', 'ECG'];
|
||||
|
||||
function mapSegmentationToDisplay(segmentation, customizationService) {
|
||||
const { label, segments } = segmentation;
|
||||
const { label, segments, fallbackLabel } = segmentation;
|
||||
|
||||
// Get the readable text mapping once
|
||||
const readableTextMap = customizationService.getCustomization('panelSegmentation.readableText');
|
||||
@@ -76,6 +76,7 @@ function mapSegmentationToDisplay(segmentation, customizationService) {
|
||||
return {
|
||||
...segmentation,
|
||||
label,
|
||||
fallbackLabel,
|
||||
segments: updatedSegments,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { PubSubService, Types as OhifTypes } from '@ohif/core';
|
||||
import { RENDERING_ENGINE_ID } from '../ViewportService/constants';
|
||||
import { getRenderingEngine } from '@cornerstonejs/core';
|
||||
import { getDataIdForViewport } from '../../utils/getDataIdForViewport';
|
||||
import { ColorbarOptions, ChangeTypes } from '../../types/Colorbar';
|
||||
|
||||
export default class ColorbarService extends PubSubService {
|
||||
@@ -38,25 +39,6 @@ export default class ColorbarService extends PubSubService {
|
||||
this.servicesManager = servicesManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the appropriate data ID for a viewport and display set
|
||||
* @param viewport - The viewport instance
|
||||
* @param displaySetInstanceUID - The display set instance UID to identify data
|
||||
* @returns The appropriate data ID for the viewport type (volumeId for volume viewports, undefined for stack)
|
||||
*/
|
||||
private getDataIdForViewport(viewport, displaySetInstanceUID: string): string | undefined {
|
||||
// For volume viewports, find the matching volumeId
|
||||
if (viewport.getAllVolumeIds) {
|
||||
const volumeIds = viewport.getAllVolumeIds() || [];
|
||||
return volumeIds.length > 0
|
||||
? volumeIds.find(id => id.includes(displaySetInstanceUID)) || undefined
|
||||
: undefined;
|
||||
}
|
||||
|
||||
// For other viewports, no specific dataId is needed for now
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a colorbar to a specific viewport identified by `viewportId`, using the provided `displaySetInstanceUIDs` and `options`.
|
||||
* This method prepares the colorbar state that will be used by the ViewportColorbarsContainer component.
|
||||
@@ -92,7 +74,7 @@ export default class ColorbarService extends PubSubService {
|
||||
return;
|
||||
}
|
||||
|
||||
const dataId = this.getDataIdForViewport(viewport, displaySetInstanceUID);
|
||||
const dataId = getDataIdForViewport(viewport, displaySetInstanceUID);
|
||||
const properties = dataId ? viewport.getProperties(dataId) : viewport.getProperties();
|
||||
const colormap = properties?.colormap;
|
||||
|
||||
@@ -246,7 +228,7 @@ export default class ColorbarService extends PubSubService {
|
||||
}
|
||||
|
||||
// Get the appropriate dataId for this viewport/displaySet combination
|
||||
const dataId = this.getDataIdForViewport(viewport, displaySetInstanceUID);
|
||||
const dataId = getDataIdForViewport(viewport, displaySetInstanceUID);
|
||||
|
||||
// Set properties with or without dataId based on what the viewport supports
|
||||
viewport.setProperties({ colormap }, dataId);
|
||||
|
||||
+10
-1
@@ -1120,6 +1120,7 @@ describe('SegmentationService', () => {
|
||||
isDynamicVolume: false,
|
||||
SeriesNumber: 1,
|
||||
SeriesDescription: 'Series Description',
|
||||
Modality: 'SEG',
|
||||
} as unknown as AppTypes.DisplaySet;
|
||||
|
||||
jest
|
||||
@@ -1145,6 +1146,7 @@ describe('SegmentationService', () => {
|
||||
info: 'S1: Series Description',
|
||||
},
|
||||
label: 'Segmentation 2',
|
||||
fallbackLabel: 'S:1 SEG',
|
||||
segments: {
|
||||
'1': {
|
||||
active: true,
|
||||
@@ -1175,6 +1177,7 @@ describe('SegmentationService', () => {
|
||||
dynamicVolumeInfo: {
|
||||
timePoints: ['timePoint1', 'timePoint2', 'timePoint3'],
|
||||
},
|
||||
Modality: 'SEG',
|
||||
} as unknown as AppTypes.DisplaySet;
|
||||
|
||||
jest
|
||||
@@ -1212,6 +1215,7 @@ describe('SegmentationService', () => {
|
||||
info: 'S1: Series Description',
|
||||
},
|
||||
label: 'Segmentation 2',
|
||||
fallbackLabel: 'S:1 SEG',
|
||||
segments: {
|
||||
'1': {
|
||||
active: true,
|
||||
@@ -1320,6 +1324,8 @@ describe('SegmentationService', () => {
|
||||
},
|
||||
SeriesDate: '2025-01-01',
|
||||
SeriesDescription: 'Series Description',
|
||||
Modality: 'SEG',
|
||||
SeriesNumber: 1,
|
||||
};
|
||||
|
||||
const referencedDisplaySet = {
|
||||
@@ -1379,6 +1385,7 @@ describe('SegmentationService', () => {
|
||||
const expectedSegmentation = {
|
||||
config: {
|
||||
label: segDisplaySet.SeriesDescription,
|
||||
fallbackLabel: 'S:1 SEG',
|
||||
segments: {
|
||||
'1': {
|
||||
active: false,
|
||||
@@ -1534,7 +1541,7 @@ describe('SegmentationService', () => {
|
||||
it('should create a segmentation for a RTSTRUCT display set', async () => {
|
||||
const segmentationId = 'segmentationId';
|
||||
const rtStructDisplaySet = {
|
||||
modality: 'RTSTRUCT',
|
||||
Modality: 'RTSTRUCT',
|
||||
displaySetInstanceUID: 'display-set-uid',
|
||||
referencedDisplaySetInstanceUID: 'existent-display-set-uid',
|
||||
SeriesDate: '2025-01-01',
|
||||
@@ -1544,6 +1551,7 @@ describe('SegmentationService', () => {
|
||||
ROIContours: [{}, {}, {}],
|
||||
frameOfReferenceUID: 'frameOfReferenceUID',
|
||||
},
|
||||
SeriesNumber: 1,
|
||||
};
|
||||
|
||||
const referencedDisplaySet = {
|
||||
@@ -1650,6 +1658,7 @@ describe('SegmentationService', () => {
|
||||
const expectedSegmentation = {
|
||||
config: {
|
||||
label: rtStructDisplaySet.SeriesDescription,
|
||||
fallbackLabel: 'S:1 RTSTRUCT',
|
||||
segments: {
|
||||
'1': {
|
||||
active: false,
|
||||
|
||||
@@ -55,6 +55,7 @@ export type SegmentationRepresentation = cstTypes.SegmentationRepresentation & {
|
||||
viewportId: string;
|
||||
id: string;
|
||||
label: string;
|
||||
fallbackLabel?: string;
|
||||
styles: cstTypes.RepresentationStyle;
|
||||
segments: {
|
||||
[key: number]: SegmentRepresentation;
|
||||
@@ -430,6 +431,7 @@ class SegmentationService extends PubSubService {
|
||||
},
|
||||
config: {
|
||||
label,
|
||||
fallbackLabel: `S:${displaySet.SeriesNumber} ${displaySet.Modality}`,
|
||||
segments:
|
||||
options?.segments && Object.keys(options.segments).length > 0
|
||||
? options.segments
|
||||
@@ -583,6 +585,7 @@ class SegmentationService extends PubSubService {
|
||||
},
|
||||
config: {
|
||||
label: segDisplaySet.SeriesDescription,
|
||||
fallbackLabel: `S:${segDisplaySet.SeriesNumber} ${segDisplaySet.Modality}`,
|
||||
segments,
|
||||
},
|
||||
};
|
||||
@@ -664,6 +667,7 @@ class SegmentationService extends PubSubService {
|
||||
},
|
||||
config: {
|
||||
label: rtDisplaySet.SeriesDescription,
|
||||
fallbackLabel: `S:${rtDisplaySet.SeriesNumber} ${rtDisplaySet.Modality}`,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1842,6 +1846,7 @@ class SegmentationService extends PubSubService {
|
||||
id: id,
|
||||
segmentationId,
|
||||
label: segmentation.label,
|
||||
fallbackLabel: segmentation.fallbackLabel,
|
||||
active,
|
||||
type,
|
||||
visible,
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Resolves the data ID (e.g. volumeId) for a viewport and display set.
|
||||
* For viewports with multiple volumes/actors, returns the id that matches the display set; otherwise undefined.
|
||||
* Use this to call viewport.getProperties(dataId) in a viewport-type-agnostic way.
|
||||
*
|
||||
* @param viewport - Viewport instance (stack, volume, or future types with optional getAllVolumeIds)
|
||||
* @param displaySetInstanceUID - Display set instance UID to match
|
||||
* @returns volumeId (or equivalent) for multi-actor viewports, undefined for single-actor
|
||||
*/
|
||||
export function getDataIdForViewport(
|
||||
viewport: unknown,
|
||||
displaySetInstanceUID: string
|
||||
): string | undefined {
|
||||
const vp = viewport as { getAllVolumeIds?: () => string[] };
|
||||
if (typeof vp.getAllVolumeIds !== 'function') {
|
||||
return undefined;
|
||||
}
|
||||
const volumeIds = vp.getAllVolumeIds() || [];
|
||||
return volumeIds.length > 0
|
||||
? volumeIds.find(id => id.includes(displaySetInstanceUID)) ?? undefined
|
||||
: undefined;
|
||||
}
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-default",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Common/default features and functionality for basic image viewing",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -34,8 +34,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicomweb-client": "0.10.4",
|
||||
"prop-types": "15.8.1",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-microscopy",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for DICOM microscopy",
|
||||
"author": "Bill Wallace, md-prog",
|
||||
"license": "MIT",
|
||||
@@ -30,10 +30,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-pdf",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for PDF display",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -30,8 +30,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-video",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for video display",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -30,8 +30,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-measurement-tracking",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Tracking features and functionality for basic image viewing",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -32,12 +32,12 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"classnames": "2.5.1",
|
||||
"dcmjs": "0.49.4",
|
||||
"lodash.debounce": "4.0.8",
|
||||
@@ -49,7 +49,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"@xstate/react": "3.2.2",
|
||||
"xstate": "4.38.3"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-test",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension used inside e2e testing",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -30,8 +30,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-tmtv",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF extension for Total Metabolic Tumor Volume",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -30,8 +30,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-ultrasound-pleura-bline",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "",
|
||||
"author": "Rodrigo Basilio",
|
||||
"license": "MIT",
|
||||
@@ -42,13 +42,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/ui-next": "3.13.0-beta.36"
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"@ohif/ui-next": "3.13.0-beta.41"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.0",
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"packages": ["extensions/*", "platform/*", "modes/*", "addOns/externals/*"],
|
||||
"npmClient": "yarn"
|
||||
}
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-basic-dev-mode",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Basic OHIF Viewer Using Cornerstone",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -31,12 +31,12 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-test",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Basic mode for testing",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -34,14 +34,14 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.36",
|
||||
"@ohif/extension-test": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.41",
|
||||
"@ohif/extension-test": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-basic",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "A basic mode used to build other modes on top of",
|
||||
"author": "OHIF Contributors",
|
||||
"license": "MIT",
|
||||
@@ -21,14 +21,14 @@
|
||||
"yarn": ">=1.16.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2"
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-longitudinal",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Longitudinal Workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -34,16 +34,16 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.36",
|
||||
"@ohif/mode-basic": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.41",
|
||||
"@ohif/mode-basic": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-microscopy",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF mode for DICOM microscopy",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -35,8 +35,8 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-preclinical-4d",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "4D Workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,12 +33,12 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2"
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-segmentation",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export",
|
||||
"author": "@ohif",
|
||||
"license": "MIT",
|
||||
@@ -35,15 +35,15 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36",
|
||||
"@ohif/mode-basic": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41",
|
||||
"@ohif/mode-basic": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-tmtv",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Total Metabolic Tumor Volume Workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -34,13 +34,13 @@
|
||||
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.36"
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-ultrasound-pleura-bline",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Allows users to annotate ultrasound images with pleura B-line annotations.",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -34,11 +34,11 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.36",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/tools": "4.19.0",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.41",
|
||||
"i18next": "17.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
+3
-2
@@ -157,9 +157,10 @@
|
||||
"lodash-es": "4.17.23",
|
||||
"diff": "5.2.2",
|
||||
"webpack": "5.105.0",
|
||||
"tar": "7.5.10",
|
||||
"tar": "7.5.11",
|
||||
"serialize-javascript": "7.0.4",
|
||||
"svgo": "3.3.3"
|
||||
"svgo": "3.3.3",
|
||||
"flatted": "3.4.0"
|
||||
},
|
||||
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
||||
}
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
+21
-21
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/app",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"productVersion": "3.4.0",
|
||||
"description": "OHIF Viewer",
|
||||
"author": "OHIF Contributors",
|
||||
@@ -54,27 +54,27 @@
|
||||
"@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.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.36",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.36",
|
||||
"@ohif/extension-default": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.36",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.36",
|
||||
"@ohif/extension-test": "3.13.0-beta.36",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.36",
|
||||
"@ohif/i18n": "3.13.0-beta.36",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.36",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.36",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.36",
|
||||
"@ohif/mode-test": "3.13.0-beta.36",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.36",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@ohif/ui-next": "3.13.0-beta.36",
|
||||
"@ohif/core": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.41",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.41",
|
||||
"@ohif/extension-default": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.41",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.41",
|
||||
"@ohif/extension-test": "3.13.0-beta.41",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.41",
|
||||
"@ohif/i18n": "3.13.0-beta.41",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.41",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.41",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.41",
|
||||
"@ohif/mode-test": "3.13.0-beta.41",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.41",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"@ohif/ui-next": "3.13.0-beta.41",
|
||||
"@svgr/webpack": "8.1.0",
|
||||
"@types/react": "18.3.23",
|
||||
"classnames": "2.5.1",
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/cli",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "A CLI to bootstrap new OHIF extension or mode",
|
||||
"type": "module",
|
||||
"main": "src/index.js",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/core",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Generic business logic for web-based medical imaging applications",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -37,9 +37,9 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@ohif/ui": "3.13.0-beta.36",
|
||||
"@cornerstonejs/core": "4.19.0",
|
||||
"@cornerstonejs/dicom-image-loader": "4.19.0",
|
||||
"@ohif/ui": "3.13.0-beta.41",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ohif-docs",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/i18n",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Internationalization library for The OHIF Viewer",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -64,5 +64,6 @@
|
||||
"Not available on the current viewport": "Not available on the current viewport",
|
||||
"Add segment to enable this tool": "Add segment to enable this tool",
|
||||
"Segment Bidirectional": "Segment Bidirectional",
|
||||
"Draw a segment before using bidirectional measurement": "Draw a segment before using bidirectional measurement"
|
||||
"Draw a segment before using bidirectional measurement": "Draw a segment before using bidirectional measurement",
|
||||
"No description": "No description"
|
||||
}
|
||||
@@ -64,5 +64,6 @@
|
||||
"Not available on the current viewport": "Test Not available on the current viewport",
|
||||
"Add segment to enable this tool": "Test Add segment to enable this tool",
|
||||
"Segment Bidirectional": "Test Segment Bidirectional",
|
||||
"Draw a segment before using bidirectional measurement": "Test Draw a segment before using bidirectional measurement"
|
||||
"Draw a segment before using bidirectional measurement": "Test Draw a segment before using bidirectional measurement",
|
||||
"No description": "Test No description"
|
||||
}
|
||||
@@ -3,6 +3,49 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** Display "No description S:{series number} {modality}" for segmentations with no label. ([#5874](https://github.com/OHIF/Viewers/issues/5874)) ([7b5d0ce](https://github.com/OHIF/Viewers/commit/7b5d0ce40e5422ccfce6091ac3d7559586cbe57e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/ui-next",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "Next version of OHIF Viewers UI, more customizable using shadcn/ui",
|
||||
"main": "dist/ohif-ui-next.umd.js",
|
||||
"module": "src/index.ts",
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
SegmentationExpandedProvider,
|
||||
useSegmentationExpanded,
|
||||
} from './contexts';
|
||||
import { SegmentationLabel } from './SegmentationLabel';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import {
|
||||
Button,
|
||||
@@ -56,7 +57,7 @@ const SegmentationCollapsedDropdownMenu = ({ children }: { children: React.React
|
||||
|
||||
// Selector component - for the segmentation selection dropdown
|
||||
const SegmentationCollapsedSelector = () => {
|
||||
const { t } = useTranslation('SegmentationPanel.HeaderCollapsed');
|
||||
const { t } = useTranslation('SegmentationPanel');
|
||||
const { data, onSegmentationClick, segmentationRepresentationTypes } =
|
||||
useSegmentationTableContext('SegmentationCollapsedSelector');
|
||||
const { segmentation } = useSegmentationExpanded('SegmentationCollapsedSelector');
|
||||
@@ -74,16 +75,28 @@ const SegmentationCollapsedSelector = () => {
|
||||
)
|
||||
.map(seg => ({
|
||||
id: seg.segmentation.segmentationId,
|
||||
label: seg.segmentation.label,
|
||||
segmentation: seg.segmentation,
|
||||
}));
|
||||
|
||||
const dataCyTypeSuffix = segmentationRepresentationTypes
|
||||
? `-${segmentationRepresentationTypes[0]}`
|
||||
: '';
|
||||
|
||||
return (
|
||||
<Select
|
||||
onValueChange={value => onSegmentationClick(value)}
|
||||
value={segmentation?.segmentationId}
|
||||
>
|
||||
<SelectTrigger className="w-full overflow-hidden">
|
||||
<SelectValue placeholder={t('Select a segmentation')} />
|
||||
<SelectTrigger
|
||||
className="w-full overflow-hidden"
|
||||
data-cy={`segmentation-select${dataCyTypeSuffix}`}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('Select a segmentation')}
|
||||
data-cy={`segmentation-select-value${dataCyTypeSuffix}`}
|
||||
>
|
||||
<SegmentationLabel segmentation={segmentation} />
|
||||
</SelectValue>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{segmentations.map(seg => (
|
||||
@@ -91,7 +104,7 @@ const SegmentationCollapsedSelector = () => {
|
||||
key={seg.id}
|
||||
value={seg.id}
|
||||
>
|
||||
{seg.label}
|
||||
<SegmentationLabel segmentation={seg.segmentation} />
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
||||
@@ -11,6 +11,7 @@ import { DropdownMenu, DropdownMenuTrigger } from '../DropdownMenu';
|
||||
import { Tooltip, TooltipTrigger, TooltipContent } from '../Tooltip/Tooltip';
|
||||
import { ScrollArea } from '../../components';
|
||||
import { useDynamicMaxHeight } from '../../hooks/useDynamicMaxHeight';
|
||||
import { SegmentationLabel } from './SegmentationLabel';
|
||||
|
||||
// The Header container component
|
||||
const SegmentationExpandedHeader = ({ children }: { children: React.ReactNode }) => {
|
||||
@@ -53,7 +54,11 @@ const SegmentationExpandedDropdownMenu = ({ children }: { children: React.ReactN
|
||||
const SegmentationExpandedLabel = () => {
|
||||
const { segmentation } = useSegmentationExpanded('SegmentationExpandedLabel');
|
||||
|
||||
return <div className="pl-1.5">{segmentation.label}</div>;
|
||||
return (
|
||||
<div className="pl-1.5">
|
||||
<SegmentationLabel segmentation={segmentation} />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
// Info component - for the info tooltip
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Segmentation } from './contexts/SegmentationTableContext';
|
||||
|
||||
/**
|
||||
* Displays the segmentation label. When the label is blank, shows a translated
|
||||
* "No description" with the series/modality suffix styled in a lighter, muted font.
|
||||
*/
|
||||
export const SegmentationLabel = ({ segmentation }: { segmentation: Segmentation }) => {
|
||||
const { t } = useTranslation('SegmentationPanel');
|
||||
|
||||
if (!segmentation) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (segmentation.label) {
|
||||
return <>{segmentation.label}</>;
|
||||
}
|
||||
|
||||
const suffix = segmentation.fallbackLabel;
|
||||
return (
|
||||
<>
|
||||
<span>{t('No description')}</span>
|
||||
{suffix && <span className="text-muted-foreground text-xxs"> {suffix}</span>}
|
||||
</>
|
||||
);
|
||||
};
|
||||
+1
@@ -17,6 +17,7 @@ export interface Segmentation {
|
||||
segmentationId: string;
|
||||
label: string;
|
||||
cachedStats: SegmentStats;
|
||||
fallbackLabel?: string;
|
||||
segments: Record<number, Segment>;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,46 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [3.13.0-beta.41](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.40...v3.13.0-beta.41) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.40](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.39...v3.13.0-beta.40) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.39](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.38...v3.13.0-beta.39) (2026-03-13)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.38](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.37...v3.13.0-beta.38) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.37](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.36...v3.13.0-beta.37) (2026-03-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.36](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.35...v3.13.0-beta.36) (2026-03-11)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/ui",
|
||||
"version": "3.13.0-beta.36",
|
||||
"version": "3.13.0-beta.41",
|
||||
"description": "A set of React components for Medical Imaging Viewers",
|
||||
"author": "OHIF Contributors",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -117,7 +117,7 @@ test('checks if image would jump when clicked on a measurement item', async ({
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const viewportInfoBottomRight = viewportPageObject.active.overlayText.bottomRight;
|
||||
const viewportInfoBottomRight = viewportPageObject.active.overlayText.bottomRight.instanceNumber;
|
||||
|
||||
// Image loads on slice 1, confirm on slice 1 then add measurement
|
||||
await expect(viewportInfoBottomRight).toContainText('1/', { timeout: 10000 });
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
import { expect, navigateWithViewportArrow, test, visitStudy } from './utils';
|
||||
import { expectRowSelected } from './utils/assertions';
|
||||
import { press } from './utils/keyboardUtils';
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
const studyInstanceUID = '1.3.6.1.4.1.14519.5.2.1.7310.5101.860473186348887719777907797922';
|
||||
const mode = 'viewer';
|
||||
await visitStudy(page, studyInstanceUID, mode, 2000);
|
||||
});
|
||||
|
||||
test('should navigate SR measurements with next/prev arrows after hydration for 3D SR', async ({
|
||||
page,
|
||||
DOMOverlayPageObject,
|
||||
leftPanelPageObject,
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
await rightPanelPageObject.toggle();
|
||||
await rightPanelPageObject.measurementsPanel.select();
|
||||
await leftPanelPageObject.loadSeriesByModality('SR');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const measurementCount = await rightPanelPageObject.measurementsPanel.panel.getMeasurementCount();
|
||||
expect(measurementCount).toBeGreaterThan(1);
|
||||
|
||||
// Navigate to first image
|
||||
await viewportPageObject.active.pane.click();
|
||||
await press({ page, key: 'Home' });
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
// first arrow click should navigate to second measurement
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
|
||||
await expectRowSelected(rightPanelPageObject.measurementsPanel.panel.nthMeasurement(1));
|
||||
|
||||
await expect(viewportPageObject.active.svg('circle')).toBeVisible();
|
||||
|
||||
const secondAnnotation = viewportPageObject.active.nthAnnotation(0);
|
||||
await expect(secondAnnotation.locator).toBeVisible();
|
||||
await expect(secondAnnotation.text.locator).toBeVisible();
|
||||
|
||||
// navigate back to first measurement
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
|
||||
await expectRowSelected(rightPanelPageObject.measurementsPanel.panel.nthMeasurement(0));
|
||||
|
||||
await expect(viewportPageObject.active.svg('circle')).toBeVisible();
|
||||
|
||||
const firstAnnotation = viewportPageObject.active.nthAnnotation(0);
|
||||
await expect(firstAnnotation.locator).toBeVisible();
|
||||
await expect(firstAnnotation.text.locator).toBeVisible();
|
||||
});
|
||||
|
||||
test('should keep arrows visible and functional after clicking measurement in right panel', async ({
|
||||
page,
|
||||
DOMOverlayPageObject,
|
||||
leftPanelPageObject,
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
await rightPanelPageObject.toggle();
|
||||
await rightPanelPageObject.measurementsPanel.select();
|
||||
await leftPanelPageObject.loadSeriesByModality('SR');
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
const measurementCount = await rightPanelPageObject.measurementsPanel.panel.getMeasurementCount();
|
||||
expect(measurementCount).toBeGreaterThan(1);
|
||||
|
||||
// click on first measurement
|
||||
await rightPanelPageObject.measurementsPanel.panel.nthMeasurement(0).click();
|
||||
|
||||
await expect(viewportPageObject.active.nthAnnotation(0).locator).toBeVisible();
|
||||
|
||||
await expect(viewportPageObject.active.navigationArrows.next.button).toBeVisible();
|
||||
await expect(viewportPageObject.active.navigationArrows.prev.button).toBeVisible();
|
||||
|
||||
// navigate to second measurement
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
|
||||
await expectRowSelected(rightPanelPageObject.measurementsPanel.panel.nthMeasurement(1));
|
||||
await expect(viewportPageObject.active.nthAnnotation(0).locator).toBeVisible();
|
||||
|
||||
// navigate back to first measurement
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
|
||||
await expectRowSelected(rightPanelPageObject.measurementsPanel.panel.nthMeasurement(0));
|
||||
await expect(viewportPageObject.active.nthAnnotation(0).locator).toBeVisible();
|
||||
});
|
||||
@@ -44,7 +44,7 @@ test('checks saved segmentations loads and jumps to slices', async ({
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const viewportInfoBottomRight = viewportPageObject.active.overlayText.bottomRight;
|
||||
const viewportInfoBottomRight = viewportPageObject.active.overlayText.bottomRight.instanceNumber;
|
||||
// Image loads on slice 1, confirm on slice 1
|
||||
await expect(viewportInfoBottomRight).toContainText('1/', { timeout: 10000 });
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import { expect, test, visitStudy } from './utils';
|
||||
|
||||
test('checks that segmentations created from series with no series description are labelled as "No description S:{series number} {modality}"', async ({
|
||||
rightPanelPageObject,
|
||||
leftPanelPageObject,
|
||||
DOMOverlayPageObject,
|
||||
page,
|
||||
}) => {
|
||||
const studyInstanceUID = '1.3.6.1.4.1.32722.99.99.62087908186665265759322018723889952421';
|
||||
const mode = 'segmentation'; // To also test add/remove
|
||||
await visitStudy(page, studyInstanceUID, mode, 2000);
|
||||
|
||||
const segmentationPanel = rightPanelPageObject.contourSegmentationPanel.menuButton;
|
||||
|
||||
// Switch to contour tab.
|
||||
await segmentationPanel.click();
|
||||
|
||||
await leftPanelPageObject.loadSeriesByModality('RTSTRUCT');
|
||||
await page.waitForTimeout(5000);
|
||||
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
|
||||
|
||||
expect(rightPanelPageObject.contourSegmentationPanel.segmentationSelect.selectedValue).toHaveText(
|
||||
'No description S:4 RTSTRUCT'
|
||||
);
|
||||
|
||||
expect(
|
||||
await rightPanelPageObject.contourSegmentationPanel.segmentationSelect.nthSegmentation(0)
|
||||
).toHaveText('No description S:4 RTSTRUCT');
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import { expect, test, visitStudy } from './utils';
|
||||
|
||||
test('should display the window level text as an overlay in various viewport layouts', async ({
|
||||
page,
|
||||
mainToolbarPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const studyInstanceUID = '1.3.6.1.4.1.25403.345050719074.3824.20170125095258.1';
|
||||
const mode = 'viewer';
|
||||
await visitStudy(page, studyInstanceUID, mode, 2000);
|
||||
|
||||
await expect(viewportPageObject.getNth(0).overlayText.bottomLeft.windowLevel).toBeVisible();
|
||||
|
||||
await mainToolbarPageObject.layoutSelection.click();
|
||||
await page.getByTestId('Layout-3-0').click();
|
||||
|
||||
for (let i = 0; i < 3; i++) {
|
||||
await expect(viewportPageObject.getNth(i).overlayText.bottomLeft.windowLevel).toBeVisible();
|
||||
}
|
||||
|
||||
await mainToolbarPageObject.layoutSelection.click();
|
||||
await page.getByTestId('Layout-1-1').click();
|
||||
|
||||
for (let i = 0; i < 3; i++) {
|
||||
await expect(viewportPageObject.getNth(i).overlayText.bottomLeft.windowLevel).toBeVisible();
|
||||
}
|
||||
});
|
||||
|
||||
test('should display the window level text as an overlay in the various TMTV viewports', async ({
|
||||
page,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const studyInstanceUID = '1.3.6.1.4.1.14519.5.2.1.7009.2403.871108593056125491804754960339';
|
||||
const mode = 'tmtv';
|
||||
await visitStudy(page, studyInstanceUID, mode, 2000);
|
||||
|
||||
for (let i = 0; i < 9; i++) {
|
||||
await expect(viewportPageObject.getNth(i).overlayText.bottomLeft.windowLevel).toBeVisible();
|
||||
}
|
||||
});
|
||||
@@ -126,6 +126,31 @@ export class RightPanelPageObject {
|
||||
};
|
||||
}
|
||||
|
||||
private getSegmentationSelect(type: string) {
|
||||
const page = this.page;
|
||||
const suffix = type ? `-${type}` : '';
|
||||
const locator = page.getByTestId(`segmentation-select${suffix}`);
|
||||
const selectedValue = page.getByTestId(`segmentation-select-value${suffix}`);
|
||||
|
||||
const nthSegmentation = async (n: number) => {
|
||||
await locator.click();
|
||||
return page.getByRole('option').nth(n);
|
||||
};
|
||||
|
||||
return {
|
||||
/** The SelectTrigger button element */
|
||||
locator,
|
||||
/** The span showing the currently selected segmentation label */
|
||||
selectedValue,
|
||||
/** Opens the dropdown and returns a locator for the nth option (0-based) */
|
||||
nthSegmentation,
|
||||
/** Opens the dropdown and clicks the nth segmentation (0-based) */
|
||||
selectNthSegmentation: async (n: number) => {
|
||||
await (await nthSegmentation(n)).click();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
private get addSegmentationButton() {
|
||||
const button = this.page.getByTestId('addSegmentation');
|
||||
return {
|
||||
@@ -163,11 +188,13 @@ export class RightPanelPageObject {
|
||||
const addSegmentationButton = this.addSegmentationButton;
|
||||
const panel = this.getSegmentationPanel('Contour');
|
||||
const menuButton = page.getByTestId('panelSegmentationWithToolsContour-btn');
|
||||
const segmentationSelect = this.getSegmentationSelect('Contour');
|
||||
|
||||
return {
|
||||
addSegmentationButton,
|
||||
menuButton,
|
||||
panel,
|
||||
segmentationSelect,
|
||||
select: async () => {
|
||||
await menuButton.click();
|
||||
},
|
||||
@@ -178,11 +205,13 @@ export class RightPanelPageObject {
|
||||
const addSegmentationButton = this.addSegmentationButton;
|
||||
const panel = this.getSegmentationPanel('Labelmap');
|
||||
const menuButton = page.getByTestId('panelSegmentationWithToolsLabelMap-btn');
|
||||
const segmentationSelect = this.getSegmentationSelect('Labelmap');
|
||||
|
||||
return {
|
||||
addSegmentationButton,
|
||||
menuButton,
|
||||
panel,
|
||||
segmentationSelect,
|
||||
select: async () => {
|
||||
await menuButton.click();
|
||||
},
|
||||
|
||||
@@ -17,6 +17,23 @@ type NormalizedDragParams = {
|
||||
config?: { button?: 'left' | 'right' | 'middle'; delay?: number; steps?: number };
|
||||
};
|
||||
|
||||
export interface IOverlayText {
|
||||
get windowLevel(): Locator;
|
||||
get instanceNumber(): Locator;
|
||||
}
|
||||
|
||||
function overlayTextFactory(viewport: Locator, id: string): IOverlayText {
|
||||
const locator = viewport.getByTestId(id);
|
||||
return {
|
||||
get windowLevel() {
|
||||
return locator.getByTitle('Window Level');
|
||||
},
|
||||
get instanceNumber() {
|
||||
return locator.getByTitle('Instance Number');
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export interface IViewportPageObject {
|
||||
nthAnnotation(nth: number): {
|
||||
locator: Locator;
|
||||
@@ -46,10 +63,10 @@ export interface IViewportPageObject {
|
||||
bottomMid: Locator;
|
||||
};
|
||||
overlayText: {
|
||||
topLeft: Locator;
|
||||
topRight: Locator;
|
||||
bottomLeft: Locator;
|
||||
bottomRight: Locator;
|
||||
topLeft: IOverlayText;
|
||||
topRight: IOverlayText;
|
||||
bottomLeft: IOverlayText;
|
||||
bottomRight: IOverlayText;
|
||||
};
|
||||
overlayMenu: {
|
||||
dataOverlay: DataOverlayPageObject;
|
||||
@@ -122,10 +139,10 @@ export class ViewportPageObject {
|
||||
|
||||
private getOverlayText(viewport: Locator) {
|
||||
return {
|
||||
topLeft: viewport.getByTestId('viewport-overlay-top-left'),
|
||||
topRight: viewport.getByTestId('viewport-overlay-top-right'),
|
||||
bottomLeft: viewport.getByTestId('viewport-overlay-bottom-left'),
|
||||
bottomRight: viewport.getByTestId('viewport-overlay-bottom-right'),
|
||||
topLeft: overlayTextFactory(viewport, 'viewport-overlay-top-left'),
|
||||
topRight: overlayTextFactory(viewport, 'viewport-overlay-top-right'),
|
||||
bottomLeft: overlayTextFactory(viewport, 'viewport-overlay-bottom-left'),
|
||||
bottomRight: overlayTextFactory(viewport, 'viewport-overlay-bottom-right'),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"version": "3.13.0-beta.36",
|
||||
"commit": "b83e978df8c9ffda3759378318267b8d0020653c"
|
||||
"version": "3.13.0-beta.41",
|
||||
"commit": "7a38903b1977b1cf0f3a0ba8a4a823fac5e8fdeb"
|
||||
}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.13.0-beta.36
|
||||
3.13.0-beta.41
|
||||
@@ -1946,10 +1946,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||
|
||||
"@cornerstonejs/adapters@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.18.2.tgz#e18c8d1304e41430a7e1782fe6c8d6c71f5e360f"
|
||||
integrity sha512-8TnZuNIxKATEU+tii/bRbuYZFp4zZoZ18e/kT9ACN3SubnweJuJUK6U+ZRE+AElJQO5JsOZPn/hzlEzUq/uR4g==
|
||||
"@cornerstonejs/adapters@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-4.19.0.tgz#6e1035a0617ddcb6938eaf6100ef5f86e7df398b"
|
||||
integrity sha512-321AA/3CNwe4bE7NHtKz1agTr6ckvxga1iM8ohIDPHL5GLc0Ooj4kRJMjEatTe+WmeDa4lug3VhV2FxmqCPjTg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs2" "7.26.10"
|
||||
buffer "6.0.3"
|
||||
@@ -1957,10 +1957,10 @@
|
||||
gl-matrix "3.4.3"
|
||||
ndarray "1.0.19"
|
||||
|
||||
"@cornerstonejs/ai@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.18.2.tgz#c5e2a0486f59e3d8cdd1c59aad0737a651f1db69"
|
||||
integrity sha512-/RDRWl4Id2IxeHosZW3jf3Tk6GkMk79iIAMrPEMo7KS1J/l7wKPcB7ayKT6rY3+RdPWU0MYDZGc+6k1tScG3wg==
|
||||
"@cornerstonejs/ai@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/ai/-/ai-4.19.0.tgz#04d44c620632c095fda5987c7a5d07e2c26a9389"
|
||||
integrity sha512-BWIbvUDLzmB0SEZhvFmhrhGEXdXplZkY5qEUfXCsbVcrUs9KsOrFrxLzTCRnTTnIX+Ybad9KoZWrwISmmMI3PQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs2" "7.26.10"
|
||||
buffer "6.0.3"
|
||||
@@ -1996,20 +1996,20 @@
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.7.tgz#784394d05d8cf735640e9c3baa206535ee8e0376"
|
||||
integrity sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w==
|
||||
|
||||
"@cornerstonejs/core@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.18.2.tgz#1e215790566f7def9a4a1a3eae8c4664192811b1"
|
||||
integrity sha512-7+71R3g9KT4MqCQvG49vXp4EACbaTMh+aZ73kAG0dW7mItShLqni5IglodzM/jKHh/qoVbeX6zzaWn8Eq9OnOQ==
|
||||
"@cornerstonejs/core@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-4.19.0.tgz#45406e3ae5dfb07727b090f9e33b234c035b31c9"
|
||||
integrity sha512-t8v1JStDS+TJc50UA82BOCD0D9U4SD0VHuofRCXfPVd/LfDcLyUmcmoDuEeHTMCHGFm16j+nc3a/tqBiC0ZOxA==
|
||||
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.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.18.2.tgz#e43e10271a7adbfd4e5eb257714da94b53730957"
|
||||
integrity sha512-wcV7NLU5WLwHah7x/b9PkfAuBjbNpE6/nZaC4PWcB8yX0gKuznU1B6bNn42XErB/WlPgFduKL0FKy37ys01tvg==
|
||||
"@cornerstonejs/dicom-image-loader@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-4.19.0.tgz#426d65626d1c68208ab22d85763da528a16c118e"
|
||||
integrity sha512-aW7tNpYAnLZcrx6x9pPs2lDm/K00/1vzlca7CBZ8ihTZcHb2qPpzEsIPZ3F48udzy/Onl/pcw8IDEWTGWDnRzg==
|
||||
dependencies:
|
||||
"@cornerstonejs/codec-charls" "1.2.3"
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit" "1.2.2"
|
||||
@@ -2021,25 +2021,25 @@
|
||||
pako "2.1.0"
|
||||
uuid "9.0.1"
|
||||
|
||||
"@cornerstonejs/labelmap-interpolation@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.18.2.tgz#ad9dec8d51db1520535625d5d7da5c1fbb0e1e5d"
|
||||
integrity sha512-MyD4dHouYu7eu0u8sS5+cUuRwpINouUD+c0GZCamEDJ37PSUslhz1gMkQCL7B61NMpx6cAEP0OVlyfVbd7YPmw==
|
||||
"@cornerstonejs/labelmap-interpolation@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/labelmap-interpolation/-/labelmap-interpolation-4.19.0.tgz#101cb6f7f7eb64ee9a2933cfe2ef71af66abfa05"
|
||||
integrity sha512-nQgZhNACFsi1frS7kpFf8+wywweHZFQjYRZ27OuaILUhcd4c5Rcz+4t3mfnzdqTuxtg3+ewPG+7oKyCFIUMrgw==
|
||||
dependencies:
|
||||
"@itk-wasm/morphological-contour-interpolation" "1.1.0"
|
||||
itk-wasm "1.0.0-b.165"
|
||||
|
||||
"@cornerstonejs/polymorphic-segmentation@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.18.2.tgz#744e0349ec84edbd3e341bc217f4d2b4e2c62ac5"
|
||||
integrity sha512-lwdcyUflm4tDZEUc2Eq8ot7C9tEnKDJnLk6oKClk9/32ExUIqnItWbKfxwF0yvBiFzVhvdnAsjXvsO1itaD+LA==
|
||||
"@cornerstonejs/polymorphic-segmentation@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/polymorphic-segmentation/-/polymorphic-segmentation-4.19.0.tgz#79491ee8293c53008973286b59bc38b88426ebba"
|
||||
integrity sha512-WmB938EDefT21YBYDC2rZReJyyI0fS9QsIoc9FkJOEky6GdDWbpFRulqz1X0XGbsr2jbAQUh9p1KJaraEtXkIw==
|
||||
dependencies:
|
||||
"@icr/polyseg-wasm" "0.4.0"
|
||||
|
||||
"@cornerstonejs/tools@4.18.2":
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.18.2.tgz#7be4a08b76b73fa3cea9839d879c5826f5d4bf34"
|
||||
integrity sha512-dWbi29k/Y62TVBeK7zaU3mis9+UPjhr0nMGeG+C1PA7jYW07bLWFAL8vEk1oI1hGPOGKWU+Crpc9oRrOyzZkfw==
|
||||
"@cornerstonejs/tools@4.19.0":
|
||||
version "4.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-4.19.0.tgz#1db6bd62988c6fd4fb2497bedadffdbe16109c04"
|
||||
integrity sha512-yDK3I3U4tYDUWhZh3/NNBWWwqBd5X5qAfkn6tba5KMwKMLtjSm11s+Wg5O4BWOooW/XRflwj28VtE+Kgivlsag==
|
||||
dependencies:
|
||||
"@types/offscreencanvas" "2019.7.3"
|
||||
comlink "4.4.2"
|
||||
@@ -10217,10 +10217,10 @@ flatbuffers@^1.12.0:
|
||||
resolved "https://registry.yarnpkg.com/flatbuffers/-/flatbuffers-1.12.0.tgz#72e87d1726cb1b216e839ef02658aa87dcef68aa"
|
||||
integrity sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==
|
||||
|
||||
flatted@^3.2.9:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
|
||||
integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
|
||||
flatted@3.4.0, flatted@^3.2.9:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.0.tgz#92ab2efec9b272eb85a3a25a106c3afbbc990d8b"
|
||||
integrity sha512-kC6Bb+ooptOIvWj5B63EQWkF0FEnNjV2ZNkLMLZRDDduIiWeFF4iKnslwhiWxjAdbg4NzTNo6h0qLuvFrcx+Sw==
|
||||
|
||||
follow-redirects@^1.0.0:
|
||||
version "1.15.9"
|
||||
@@ -18678,10 +18678,10 @@ tar-stream@~2.2.0:
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^3.1.1"
|
||||
|
||||
tar@7.5.10, tar@7.5.7, tar@^6.1.13, tar@^7.4.3, tar@^7.5.4:
|
||||
version "7.5.10"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.10.tgz#2281541123f5507db38bc6eb22619f4bbaef73ad"
|
||||
integrity sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw==
|
||||
tar@7.5.11, tar@7.5.7, tar@^6.1.13, tar@^7.4.3, tar@^7.5.4:
|
||||
version "7.5.11"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.11.tgz#1250fae45d98806b36d703b30973fa8e0a6d8868"
|
||||
integrity sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==
|
||||
dependencies:
|
||||
"@isaacs/fs-minipass" "^4.0.0"
|
||||
chownr "^3.0.0"
|
||||
|
||||
Reference in new issue
Block a user