Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c842642341 | ||
|
|
70f76aeba1 | ||
|
|
30bb5d0652 | ||
|
|
2358a73c3c | ||
|
|
df22109013 | ||
|
|
7e10830d58 | ||
|
|
6db0bc2d4c | ||
|
|
be8e266a80 | ||
|
|
b3e5f64694 | ||
|
|
f2ed4c9e6f |
No files matched your search
@@ -132,8 +132,10 @@ jobs:
|
||||
|
||||
# Define ignored vulnerabilities with comments
|
||||
IGNORED_VULNS=(
|
||||
"GHSA-3ppc-4f35-3m26" # CVE-2026-26996 - OHIF's use of minimatch via glob is safe because it does NOT use the CLI
|
||||
# CVE-2026-26996 - OHIF's other uses of minimatch are strictly for building and CI/CD purposes
|
||||
"GHSA-3ppc-4f35-3m26" # CVE-2026-26996 - minimatch via itk-wasm and glob is safe because it does NOT use the CLI
|
||||
# CVE-2026-26996 - minimatch via other packages are strictly for building and CI/CD purposes; no user supplied expressions are passed to minimatch
|
||||
"GHSA-7r86-cg39-jmmj" # CVE-2026-27903 - minimatch same as above
|
||||
"GHSA-23c5-xmqv-rm74" # CVE-2026-27904 - minimatch same as above
|
||||
)
|
||||
|
||||
# Build ignore flags
|
||||
|
||||
@@ -3,6 +3,58 @@
|
||||
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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **ecg:** add DICOM ECG waveform extension ([#5856](https://github.com/OHIF/Viewers/issues/5856)) ([70f76ae](https://github.com/OHIF/Viewers/commit/70f76aeba1b27f8e4de5ec73a7b831428e38e3d2))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **microscopy:** rename measurement in microscopy mode ([#5866](https://github.com/OHIF/Viewers/issues/5866)) ([2358a73](https://github.com/OHIF/Viewers/commit/2358a73c3cd24953430064480fb9e66bfe36ea69))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** segment bidirectional tool error and show toast notification when no segment is drawn ([#5861](https://github.com/OHIF/Viewers/issues/5861)) ([7e10830](https://github.com/OHIF/Viewers/commit/7e10830d5802e22bda4df6a3f8008e9a414b4cd4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **security:** Address various security vulnerabilities. ([#5869](https://github.com/OHIF/Viewers/issues/5869)) ([be8e266](https://github.com/OHIF/Viewers/commit/be8e266a80f13d03ce9dc4a21a0227d3e1bc36ac))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package ohif-monorepo-root
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package ohif-monorepo-root
|
||||
|
||||
@@ -49,6 +49,7 @@ provided by the <a href="https://ohif.org/">Open Health Imaging Foundation (OHIF
|
||||
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-4d.webp?raw=true" alt="4D" width="350"/> | 4D | [Demo](https://viewer.ohif.org/dynamic-volume?StudyInstanceUIDs=2.25.232704420736447710317909004159492840763) |
|
||||
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-video.webp?raw=true" alt="VIDEO" width="350"/> | Video | [Demo](https://viewer.ohif.org/viewer?StudyInstanceUIDs=2.25.96975534054447904995905761963464388233) |
|
||||
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/microscopy.webp?raw=true" alt="microscopy" width="350"/> | Slide Microscopy | [Demo](https://viewer.ohif.org/microscopy?StudyInstanceUIDs=2.25.141277760791347900862109212450152067508) |
|
||||
| <img src="https://github.com/OHIF/Viewers/blob/master/platform/docs/docs/assets/img/demo-ecg.webp?raw=true" alt="ECG" width="350"/> | ECG Waveform | [Demo](https://viewer-dev.ohif.org/viewer?StudyInstanceUIDs=2.25.209974489360710696739324151261716440238) |
|
||||
|
||||
## About
|
||||
|
||||
|
||||
+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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @externals/devDependencies
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @externals/dicom-microscopy-viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dicom-microscopy-viewer": "0.48.17"
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
},
|
||||
"addOns/externals/devDependencies": {
|
||||
"name": "@externals/devDependencies",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
@@ -131,14 +131,14 @@
|
||||
},
|
||||
"addOns/externals/dicom-microscopy-viewer": {
|
||||
"name": "@externals/dicom-microscopy-viewer",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"dicom-microscopy-viewer": "0.48.17",
|
||||
},
|
||||
},
|
||||
"extensions/cornerstone": {
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
@@ -165,8 +165,8 @@
|
||||
"@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.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -178,7 +178,7 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-pmap": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-pmap",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
@@ -186,10 +186,10 @@
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -219,7 +219,7 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-seg": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-seg",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
@@ -227,10 +227,10 @@
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
@@ -241,7 +241,7 @@
|
||||
},
|
||||
"extensions/cornerstone-dicom-sr": {
|
||||
"name": "@ohif/extension-cornerstone-dicom-sr",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.18.2",
|
||||
@@ -250,10 +250,10 @@
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
@@ -263,7 +263,7 @@
|
||||
},
|
||||
"extensions/cornerstone-dynamic-volume": {
|
||||
"name": "@ohif/extension-cornerstone-dynamic-volume",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
@@ -271,11 +271,11 @@
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@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.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"classnames": "2.5.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/ui-next": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui-next": "3.13.0-beta.27",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.0",
|
||||
@@ -476,7 +476,7 @@
|
||||
},
|
||||
"modes/basic": {
|
||||
"name": "@ohif/mode-basic",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@@ -485,19 +485,19 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/basic-dev-mode": {
|
||||
"name": "@ohif/mode-basic-dev-mode",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/basic-test-mode": {
|
||||
"name": "@ohif/mode-test",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.24",
|
||||
"@ohif/extension-test": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/extension-test": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/longitudinal": {
|
||||
"name": "@ohif/mode-longitudinal",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.24",
|
||||
"@ohif/mode-basic": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/microscopy": {
|
||||
"name": "@ohif/mode-microscopy",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/preclinical-4d": {
|
||||
"name": "@ohif/mode-preclinical-4d",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
},
|
||||
@@ -584,17 +584,17 @@
|
||||
"webpack-merge": "5.10.0",
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/segmentation": {
|
||||
"name": "@ohif/mode-segmentation",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/mode-basic": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/tmtv": {
|
||||
"name": "@ohif/mode-tmtv",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
},
|
||||
},
|
||||
"modes/usAnnotation": {
|
||||
"name": "@ohif/mode-ultrasound-pleura-bline",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"i18next": "17.3.1",
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -693,7 +693,7 @@
|
||||
},
|
||||
"platform/app": {
|
||||
"name": "@ohif/app",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/codec-charls": "1.2.3",
|
||||
@@ -702,25 +702,25 @@
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.24",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.24",
|
||||
"@ohif/extension-default": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.24",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.24",
|
||||
"@ohif/extension-test": "3.13.0-beta.24",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.24",
|
||||
"@ohif/i18n": "3.13.0-beta.24",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.24",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.24",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.24",
|
||||
"@ohif/mode-test": "3.13.0-beta.24",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/ui-next": "3.13.0-beta.24",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-test": "3.13.0-beta.27",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.27",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.27",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.27",
|
||||
"@ohif/mode-test": "3.13.0-beta.27",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/ui-next": "3.13.0-beta.27",
|
||||
"@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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"bin": {
|
||||
"ohif-cli": "src/index.js",
|
||||
},
|
||||
@@ -796,7 +796,7 @@
|
||||
},
|
||||
"platform/core": {
|
||||
"name": "@ohif/core",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"dcmjs": "0.49.4",
|
||||
@@ -823,14 +823,14 @@
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@ohif/ui": "3.13.0-beta.24",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21",
|
||||
},
|
||||
},
|
||||
"platform/i18n": {
|
||||
"name": "@ohif/i18n",
|
||||
"version": "3.13.0-beta.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"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.24",
|
||||
"version": "3.13.0-beta.27",
|
||||
"dependencies": {
|
||||
"@radix-ui/react-accordion": "1.2.11",
|
||||
"@radix-ui/react-checkbox": "1.3.2",
|
||||
@@ -968,6 +968,7 @@
|
||||
"path-to-regexp": "0.1.12",
|
||||
"qs": "6.14.1",
|
||||
"rollup": "2.80.0",
|
||||
"serialize-javascript": "7.0.4",
|
||||
"tapable": "2.2.2",
|
||||
"tar": "7.5.9",
|
||||
"trim": "1.0.1",
|
||||
@@ -4671,7 +4672,7 @@
|
||||
|
||||
"send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="],
|
||||
|
||||
"serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="],
|
||||
"serialize-javascript": ["serialize-javascript@7.0.4", "", {}, "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg=="],
|
||||
|
||||
"serve": ["serve@14.2.5", "", { "dependencies": { "@zeit/schemas": "2.36.0", "ajv": "8.12.0", "arg": "5.0.2", "boxen": "7.0.0", "chalk": "5.0.1", "chalk-template": "0.4.0", "clipboardy": "3.0.0", "compression": "1.8.1", "is-port-reachable": "4.0.0", "serve-handler": "6.1.6", "update-check": "1.5.4" }, "bin": { "serve": "build/main.js" } }, "sha512-Qn/qMkzCcMFVPb60E/hQy+iRLpiU8PamOfOSYoAHmmF+fFFmpPpqa6Oci2iWYpTdOUM3VF+TINud7CfbQnsZbA=="],
|
||||
|
||||
@@ -6063,8 +6064,6 @@
|
||||
|
||||
"oidc-client/acorn": ["acorn@7.4.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="],
|
||||
|
||||
"oidc-client/serialize-javascript": ["serialize-javascript@4.0.0", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw=="],
|
||||
|
||||
"ora/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
||||
|
||||
"ora/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
|
||||
@@ -6145,8 +6144,6 @@
|
||||
|
||||
"rollup-plugin-terser/jest-worker": ["jest-worker@26.6.2", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" } }, "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="],
|
||||
|
||||
"rollup-plugin-terser/serialize-javascript": ["serialize-javascript@4.0.0", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw=="],
|
||||
|
||||
"schema-utils/ajv": ["ajv@8.12.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA=="],
|
||||
|
||||
"send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
92011c587f2d1bc9312197fa9ff4e2bf39e268e4
|
||||
70f76aeba1b27f8e4de5ec73a7b831428e38e3d2
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-pmap
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "DICOM RT read workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,10 +33,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-seg
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "DICOM SEG read workflow",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -33,10 +33,10 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dicom-sr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone-dynamic-volume
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **ecg:** add DICOM ECG waveform extension ([#5856](https://github.com/OHIF/Viewers/issues/5856)) ([70f76ae](https://github.com/OHIF/Viewers/commit/70f76aeba1b27f8e4de5ec73a7b831428e38e3d2))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** segment bidirectional tool error and show toast notification when no segment is drawn ([#5861](https://github.com/OHIF/Viewers/issues/5861)) ([7e10830](https://github.com/OHIF/Viewers/commit/7e10830d5802e22bda4df6a3f8008e9a414b4cd4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "OHIF extension for Cornerstone",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -41,8 +41,8 @@
|
||||
"@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.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicom-parser": "1.8.21",
|
||||
"hammerjs": "2.0.8",
|
||||
|
||||
@@ -398,12 +398,31 @@ function commandsModule({
|
||||
|
||||
const { segmentationId: targetId, segmentIndex: targetIndex } = targetSegmentation;
|
||||
|
||||
// Check if the segment has voxels before computing bidirectional measurement
|
||||
const uniqueSegmentIndices = cstUtils.segmentation.getUniqueSegmentIndices(targetId);
|
||||
const hasVoxels = uniqueSegmentIndices.includes(targetIndex);
|
||||
|
||||
if (!hasVoxels) {
|
||||
uiNotificationService.show({
|
||||
title: i18n.t('SegmentationPanel:Segment Bidirectional'),
|
||||
message: i18n.t(
|
||||
'SegmentationPanel:Draw a segment before using bidirectional measurement'
|
||||
),
|
||||
type: 'warning',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Get bidirectional measurement data
|
||||
const bidirectionalData = await cstUtils.segmentation.getSegmentLargestBidirectional({
|
||||
segmentationId: targetId,
|
||||
segmentIndices: [targetIndex],
|
||||
});
|
||||
|
||||
if (!bidirectionalData.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const activeViewportId = viewportGridService.getActiveViewportId();
|
||||
|
||||
// Process each bidirectional measurement
|
||||
|
||||
@@ -3,6 +3,7 @@ import i18n from '@ohif/i18n';
|
||||
import { utilities as csUtils, Enums as csEnums } from '@cornerstonejs/core';
|
||||
import dcmjs from 'dcmjs';
|
||||
import { dicomWebUtils } from '@ohif/extension-default';
|
||||
import { buildEcgModule } from './utils/ecgMetadata';
|
||||
|
||||
const { MetadataModules } = csEnums;
|
||||
const { utils } = OHIF;
|
||||
@@ -155,6 +156,84 @@ export function getDicomMicroscopySopClassHandler({ servicesManager, extensionMa
|
||||
};
|
||||
}
|
||||
|
||||
export function getSopClassHandlerModule(params) {
|
||||
return [getDicomMicroscopySopClassHandler(params)];
|
||||
/**
|
||||
* DICOM Waveform SOP Class UIDs for ECG / cardiac electrophysiology.
|
||||
* Reference: https://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html
|
||||
*/
|
||||
const ECG_SOP_CLASS_UIDS = {
|
||||
TWELVE_LEAD_ECG_WAVEFORM_STORAGE: '1.2.840.10008.5.1.4.1.1.9.1.1',
|
||||
GENERAL_ECG_WAVEFORM_STORAGE: '1.2.840.10008.5.1.4.1.1.9.1.2',
|
||||
AMBULATORY_ECG_WAVEFORM_STORAGE: '1.2.840.10008.5.1.4.1.1.9.1.3',
|
||||
HEMODYNAMIC_WAVEFORM_STORAGE: '1.2.840.10008.5.1.4.1.1.9.2.1',
|
||||
CARDIAC_ELECTROPHYSIOLOGY_WAVEFORM_STORAGE: '1.2.840.10008.5.1.4.1.1.9.3.1',
|
||||
};
|
||||
|
||||
const ecgSopClassUids = Object.values(ECG_SOP_CLASS_UIDS);
|
||||
|
||||
const DicomEcgSOPClassHandlerId =
|
||||
'@ohif/extension-cornerstone.sopClassHandlerModule.DicomEcgSopClassHandler';
|
||||
|
||||
function _getEcgDisplaySetsFromSeries(instances, servicesManager) {
|
||||
const { userAuthenticationService } = servicesManager.services;
|
||||
|
||||
return instances.map(instance => {
|
||||
const { Modality, SOPInstanceUID } = instance;
|
||||
const { SeriesDescription, SeriesNumber, SeriesDate } = instance;
|
||||
const { SeriesInstanceUID, StudyInstanceUID, SOPClassUID } = instance;
|
||||
const imageId = instance.imageId;
|
||||
|
||||
// Register ECG metadata in the OHIF metadata provider so that
|
||||
// Cornerstone's ECGViewport can retrieve it via metaData.get('ecgModule', imageId).
|
||||
if (imageId) {
|
||||
const ecgModule = buildEcgModule(instance, userAuthenticationService);
|
||||
if (ecgModule) {
|
||||
csUtils.genericMetadataProvider.addRaw(imageId, {
|
||||
type: MetadataModules.ECG,
|
||||
metadata: ecgModule,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
Modality,
|
||||
displaySetInstanceUID: utils.guid(),
|
||||
SeriesDescription,
|
||||
SeriesNumber,
|
||||
SeriesDate,
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
StudyInstanceUID,
|
||||
SOPClassHandlerId: DicomEcgSOPClassHandlerId,
|
||||
SOPClassUID,
|
||||
referencedImages: null,
|
||||
measurements: null,
|
||||
viewportType: csEnums.ViewportType.ECG,
|
||||
instances: [instance],
|
||||
instance,
|
||||
thumbnailSrc: null,
|
||||
isDerivedDisplaySet: false,
|
||||
isLoaded: false,
|
||||
sopClassUids: ecgSopClassUids,
|
||||
numImageFrames: 0,
|
||||
numInstances: 1,
|
||||
imageIds: imageId ? [imageId] : [],
|
||||
supportsWindowLevel: false,
|
||||
label: SeriesDescription || 'ECG',
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
export function getDicomEcgSopClassHandler({ servicesManager }) {
|
||||
const getDisplaySetsFromSeries = instances =>
|
||||
_getEcgDisplaySetsFromSeries(instances, servicesManager);
|
||||
|
||||
return {
|
||||
name: 'DicomEcgSopClassHandler',
|
||||
sopClassUids: ecgSopClassUids,
|
||||
getDisplaySetsFromSeries,
|
||||
};
|
||||
}
|
||||
|
||||
export function getSopClassHandlerModule(params) {
|
||||
return [getDicomMicroscopySopClassHandler(params), getDicomEcgSopClassHandler(params)];
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
utilities as csUtils,
|
||||
VolumeViewport,
|
||||
VolumeViewport3D,
|
||||
ECGViewport,
|
||||
cache,
|
||||
Enums as csEnums,
|
||||
BaseVolumeViewport,
|
||||
@@ -778,6 +779,19 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
||||
/**
|
||||
* Sets the image data for the given viewport.
|
||||
*/
|
||||
private async _setEcgViewport(
|
||||
viewport: Types.IECGViewport,
|
||||
viewportData: StackViewportData
|
||||
): Promise<void> {
|
||||
const [displaySet] = viewportData.data;
|
||||
const imageId = displaySet.imageIds?.[0];
|
||||
if (!imageId) {
|
||||
console.error('[CornerstoneViewportService] ECG display set has no imageId');
|
||||
return;
|
||||
}
|
||||
return viewport.setEcg(imageId);
|
||||
}
|
||||
|
||||
private async _setOtherViewport(
|
||||
viewport: Types.IStackViewport,
|
||||
viewportData: StackViewportData,
|
||||
@@ -1257,6 +1271,10 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
||||
);
|
||||
}
|
||||
|
||||
if (viewport instanceof ECGViewport) {
|
||||
return this._setEcgViewport(viewport as unknown as Types.IECGViewport, viewportData as StackViewportData);
|
||||
}
|
||||
|
||||
return this._setOtherViewport(
|
||||
viewport,
|
||||
viewportData as StackViewportData,
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
import { decodeInt16Multiplex, base64ToArrayBuffer, buildEcgModule } from './ecgMetadata';
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// decodeInt16Multiplex
|
||||
// ---------------------------------------------------------------------------
|
||||
describe('decodeInt16Multiplex', () => {
|
||||
it('demultiplexes 2 channels correctly', () => {
|
||||
// Interleaved layout: [ch0_s0, ch1_s0, ch0_s1, ch1_s1, ch0_s2, ch1_s2]
|
||||
const interleaved = new Int16Array([10, 20, 30, 40, 50, 60]);
|
||||
const channels = decodeInt16Multiplex(interleaved.buffer, 2, 3);
|
||||
|
||||
expect(channels).toHaveLength(2);
|
||||
expect(Array.from(channels[0])).toEqual([10, 30, 50]);
|
||||
expect(Array.from(channels[1])).toEqual([20, 40, 60]);
|
||||
});
|
||||
|
||||
it('handles a single channel', () => {
|
||||
const data = new Int16Array([100, 200, 300]);
|
||||
const channels = decodeInt16Multiplex(data.buffer, 1, 3);
|
||||
|
||||
expect(channels).toHaveLength(1);
|
||||
expect(Array.from(channels[0])).toEqual([100, 200, 300]);
|
||||
});
|
||||
|
||||
it('handles negative values (signed short)', () => {
|
||||
const data = new Int16Array([-1000, -2000, -3000]);
|
||||
const channels = decodeInt16Multiplex(data.buffer, 1, 3);
|
||||
|
||||
expect(Array.from(channels[0])).toEqual([-1000, -2000, -3000]);
|
||||
});
|
||||
|
||||
it('returns empty arrays when numberOfChannels or numberOfSamples is 0', () => {
|
||||
const emptyBuffer = new Int16Array([]).buffer;
|
||||
|
||||
expect(decodeInt16Multiplex(emptyBuffer, 0, 0)).toHaveLength(0);
|
||||
expect(decodeInt16Multiplex(emptyBuffer, 0, 10)).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('produces Int16Array instances for each channel', () => {
|
||||
const data = new Int16Array([1, 2]);
|
||||
const channels = decodeInt16Multiplex(data.buffer, 2, 1);
|
||||
|
||||
expect(channels[0]).toBeInstanceOf(Int16Array);
|
||||
expect(channels[1]).toBeInstanceOf(Int16Array);
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// base64ToArrayBuffer
|
||||
// ---------------------------------------------------------------------------
|
||||
describe('base64ToArrayBuffer', () => {
|
||||
it('decodes a simple base64 string to the correct bytes', () => {
|
||||
// "ABC" in ASCII = [65, 66, 67]; base64 of that is 'QUJD'
|
||||
const buffer = base64ToArrayBuffer('QUJD');
|
||||
const bytes = new Uint8Array(buffer);
|
||||
|
||||
expect(bytes).toHaveLength(3);
|
||||
expect(Array.from(bytes)).toEqual([65, 66, 67]);
|
||||
});
|
||||
|
||||
it('round-trips an Int16Array through base64', () => {
|
||||
const original = new Int16Array([500, -300, 0, 32767]);
|
||||
const base64 = btoa(String.fromCharCode(...new Uint8Array(original.buffer)));
|
||||
const recovered = new Int16Array(base64ToArrayBuffer(base64));
|
||||
|
||||
expect(Array.from(recovered)).toEqual(Array.from(original));
|
||||
});
|
||||
|
||||
it('returns an ArrayBuffer', () => {
|
||||
const result = base64ToArrayBuffer('AA=='); // single zero byte
|
||||
expect(result).toBeInstanceOf(ArrayBuffer);
|
||||
expect(result.byteLength).toBe(1);
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// buildEcgModule
|
||||
// ---------------------------------------------------------------------------
|
||||
describe('buildEcgModule', () => {
|
||||
const makeInstance = (overrides = {}) => ({
|
||||
WaveformSequence: [
|
||||
{
|
||||
NumberOfWaveformChannels: 12,
|
||||
NumberOfWaveformSamples: 5000,
|
||||
SamplingFrequency: 500,
|
||||
WaveformBitsAllocated: 16,
|
||||
WaveformSampleInterpretation: 'SS',
|
||||
MultiplexGroupLabel: '12 Lead ECG',
|
||||
ChannelDefinitionSequence: [
|
||||
{ ChannelSourceSequence: [{ CodeMeaning: 'Lead I' }] },
|
||||
{ ChannelSourceSequence: [{ CodeMeaning: 'Lead II' }] },
|
||||
],
|
||||
WaveformData: { InlineBinary: btoa('\x00\x01') },
|
||||
},
|
||||
],
|
||||
...overrides,
|
||||
});
|
||||
|
||||
it('returns null when WaveformSequence is absent', () => {
|
||||
expect(buildEcgModule({})).toBeNull();
|
||||
expect(buildEcgModule({ WaveformSequence: [] })).toBeNull();
|
||||
});
|
||||
|
||||
it('returns a valid ecgModule for a complete instance', () => {
|
||||
const module = buildEcgModule(makeInstance());
|
||||
|
||||
expect(module).not.toBeNull();
|
||||
expect(module!.numberOfWaveformChannels).toBe(12);
|
||||
expect(module!.numberOfWaveformSamples).toBe(5000);
|
||||
expect(module!.samplingFrequency).toBe(500);
|
||||
expect(module!.waveformBitsAllocated).toBe(16);
|
||||
expect(module!.waveformSampleInterpretation).toBe('SS');
|
||||
expect(module!.multiplexGroupLabel).toBe('12 Lead ECG');
|
||||
expect(module!.channelDefinitionSequence).toHaveLength(2);
|
||||
expect(module!.channelDefinitionSequence[0].channelSourceSequence.codeMeaning).toBe('Lead I');
|
||||
expect(typeof module!.waveformData.retrieveBulkData).toBe('function');
|
||||
});
|
||||
|
||||
it('applies defaults for missing optional fields', () => {
|
||||
const instance = {
|
||||
WaveformSequence: [
|
||||
{
|
||||
// No explicit values — all defaults
|
||||
WaveformData: { InlineBinary: btoa('\x00\x00') },
|
||||
},
|
||||
],
|
||||
};
|
||||
const module = buildEcgModule(instance);
|
||||
|
||||
expect(module!.numberOfWaveformChannels).toBe(0);
|
||||
expect(module!.numberOfWaveformSamples).toBe(0);
|
||||
expect(module!.samplingFrequency).toBe(1);
|
||||
expect(module!.waveformBitsAllocated).toBe(16);
|
||||
expect(module!.waveformSampleInterpretation).toBe('SS');
|
||||
expect(module!.multiplexGroupLabel).toBe('');
|
||||
expect(module!.channelDefinitionSequence).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('retrieveBulkData decodes InlineBinary data correctly', async () => {
|
||||
const samples = new Int16Array([10, 20, 30]);
|
||||
const base64 = btoa(String.fromCharCode(...new Uint8Array(samples.buffer)));
|
||||
|
||||
const instance = {
|
||||
WaveformSequence: [
|
||||
{
|
||||
NumberOfWaveformChannels: 1,
|
||||
NumberOfWaveformSamples: 3,
|
||||
WaveformData: { InlineBinary: base64 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const module = buildEcgModule(instance);
|
||||
const channels = await module!.waveformData.retrieveBulkData();
|
||||
|
||||
expect(channels).toHaveLength(1);
|
||||
expect(Array.from(channels[0])).toEqual([10, 20, 30]);
|
||||
});
|
||||
|
||||
it('retrieveBulkData returns [] when WaveformData is absent', async () => {
|
||||
const instance = {
|
||||
WaveformSequence: [
|
||||
{ NumberOfWaveformChannels: 1, NumberOfWaveformSamples: 1 },
|
||||
],
|
||||
};
|
||||
const module = buildEcgModule(instance);
|
||||
const channels = await module!.waveformData.retrieveBulkData();
|
||||
|
||||
expect(channels).toEqual([]);
|
||||
});
|
||||
|
||||
it('retrieveBulkData fetches BulkDataURI with auth header when provided', async () => {
|
||||
const samples = new Int16Array([1, 2]);
|
||||
global.fetch = jest.fn().mockResolvedValue({
|
||||
ok: true,
|
||||
arrayBuffer: () => Promise.resolve(samples.buffer),
|
||||
});
|
||||
|
||||
const userAuthenticationService = {
|
||||
getAuthorizationHeader: () => ({ Authorization: 'Bearer token123' }),
|
||||
};
|
||||
const instance = {
|
||||
WaveformSequence: [
|
||||
{
|
||||
NumberOfWaveformChannels: 1,
|
||||
NumberOfWaveformSamples: 2,
|
||||
WaveformData: { BulkDataURI: 'http://example.com/waveform' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const module = buildEcgModule(instance, userAuthenticationService);
|
||||
await module!.waveformData.retrieveBulkData();
|
||||
|
||||
expect(global.fetch).toHaveBeenCalledWith('http://example.com/waveform', {
|
||||
headers: {
|
||||
Accept: 'application/octet-stream',
|
||||
Authorization: 'Bearer token123',
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('retrieveBulkData throws when BulkDataURI response is not ok', async () => {
|
||||
global.fetch = jest.fn().mockResolvedValue({ ok: false, status: 403 });
|
||||
|
||||
const instance = {
|
||||
WaveformSequence: [
|
||||
{
|
||||
WaveformData: { BulkDataURI: 'http://example.com/waveform' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const module = buildEcgModule(instance);
|
||||
await expect(module!.waveformData.retrieveBulkData()).rejects.toThrow('403');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,129 @@
|
||||
/**
|
||||
* Decode a multiplexed Int16 buffer into per-channel arrays.
|
||||
* Layout: sample0ch0, sample0ch1 ... sample0chN, sample1ch0, …
|
||||
* Note: DICOM ECG data is canonically SS (signed short). The sampleInterpretation
|
||||
* field is forwarded to ECGViewport for its own use; the raw buffer is always
|
||||
* treated as Int16 because Cornerstone ECGViewport expects Int16Array[].
|
||||
*/
|
||||
export function decodeInt16Multiplex(
|
||||
buffer: ArrayBuffer,
|
||||
numberOfChannels: number,
|
||||
numberOfSamples: number
|
||||
): Int16Array[] {
|
||||
const src = new Int16Array(buffer);
|
||||
const channels: Int16Array[] = [];
|
||||
for (let ch = 0; ch < numberOfChannels; ch++) {
|
||||
const out = new Int16Array(numberOfSamples);
|
||||
for (let s = 0; s < numberOfSamples; s++) {
|
||||
out[s] = src[s * numberOfChannels + ch];
|
||||
}
|
||||
channels.push(out);
|
||||
}
|
||||
return channels;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode a base64 InlineBinary string into a raw ArrayBuffer.
|
||||
*/
|
||||
export function base64ToArrayBuffer(base64: string): ArrayBuffer {
|
||||
const binaryStr = atob(base64);
|
||||
const bytes = new Uint8Array(binaryStr.length);
|
||||
for (let i = 0; i < binaryStr.length; i++) {
|
||||
bytes[i] = binaryStr.charCodeAt(i);
|
||||
}
|
||||
return bytes.buffer;
|
||||
}
|
||||
|
||||
export type EcgModule = {
|
||||
numberOfWaveformChannels: number;
|
||||
numberOfWaveformSamples: number;
|
||||
samplingFrequency: number;
|
||||
waveformBitsAllocated: number;
|
||||
waveformSampleInterpretation: string;
|
||||
multiplexGroupLabel: string;
|
||||
channelDefinitionSequence: Array<{ channelSourceSequence: { codeMeaning: string } }>;
|
||||
waveformData: { retrieveBulkData: () => Promise<Int16Array[]> };
|
||||
};
|
||||
|
||||
/**
|
||||
* Parse the naturalized DICOM instance's WaveformSequence and build the ecgModule
|
||||
* that Cornerstone's ECGViewport.setEcg() expects via
|
||||
* metaData.get(MetadataModules.ECG, imageId).
|
||||
*
|
||||
* Returns null if the instance has no WaveformSequence.
|
||||
*/
|
||||
export function buildEcgModule(
|
||||
instance: any,
|
||||
userAuthenticationService?: any
|
||||
): EcgModule | null {
|
||||
const waveformGroups = instance?.WaveformSequence;
|
||||
if (!waveformGroups?.length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Use the first (and typically only) multiplex group
|
||||
const group = waveformGroups[0];
|
||||
|
||||
const numberOfChannels = group.NumberOfWaveformChannels ?? 0;
|
||||
const numberOfSamples = group.NumberOfWaveformSamples ?? 0;
|
||||
const samplingFrequency = group.SamplingFrequency ?? 1;
|
||||
const bitsAllocated = group.WaveformBitsAllocated ?? 16;
|
||||
const sampleInterpretation = group.WaveformSampleInterpretation ?? 'SS';
|
||||
const multiplexGroupLabel = group.MultiplexGroupLabel ?? '';
|
||||
|
||||
const channelDefinitionSequence = (group.ChannelDefinitionSequence ?? []).map(ch => ({
|
||||
channelSourceSequence: {
|
||||
codeMeaning:
|
||||
ch?.ChannelSourceSequence?.[0]?.CodeMeaning ??
|
||||
ch?.ChannelSourceSequence?.[0]?.codeMeaning ??
|
||||
'',
|
||||
},
|
||||
}));
|
||||
|
||||
const retrieveBulkData = async (): Promise<Int16Array[]> => {
|
||||
const waveformData = group.WaveformData;
|
||||
|
||||
if (!waveformData) {
|
||||
console.warn('[ECGViewport] No WaveformData found on instance');
|
||||
return [];
|
||||
}
|
||||
|
||||
let buffer: ArrayBuffer;
|
||||
|
||||
if (waveformData.InlineBinary) {
|
||||
buffer = base64ToArrayBuffer(waveformData.InlineBinary);
|
||||
} else if (waveformData.BulkDataURI) {
|
||||
const headers: Record<string, string> = {
|
||||
Accept: 'application/octet-stream',
|
||||
};
|
||||
const authHeader = userAuthenticationService?.getAuthorizationHeader?.();
|
||||
if (authHeader) {
|
||||
Object.assign(headers, authHeader);
|
||||
}
|
||||
|
||||
const response = await fetch(waveformData.BulkDataURI, { headers });
|
||||
if (!response.ok) {
|
||||
throw new Error(
|
||||
`[ECGViewport] Failed to fetch waveform BulkDataURI: ${response.status}`
|
||||
);
|
||||
}
|
||||
buffer = await response.arrayBuffer();
|
||||
} else {
|
||||
console.warn('[ECGViewport] WaveformData has no InlineBinary or BulkDataURI');
|
||||
return [];
|
||||
}
|
||||
|
||||
return decodeInt16Multiplex(buffer, numberOfChannels, numberOfSamples);
|
||||
};
|
||||
|
||||
return {
|
||||
numberOfWaveformChannels: numberOfChannels,
|
||||
numberOfWaveformSamples: numberOfSamples,
|
||||
samplingFrequency,
|
||||
waveformBitsAllocated: bitsAllocated,
|
||||
waveformSampleInterpretation: sampleInterpretation,
|
||||
multiplexGroupLabel,
|
||||
channelDefinitionSequence,
|
||||
waveformData: { retrieveBulkData },
|
||||
};
|
||||
}
|
||||
@@ -10,6 +10,7 @@ jest.mock('@cornerstonejs/core', () => ({
|
||||
WHOLE_SLIDE: 'wholeslide',
|
||||
ORTHOGRAPHIC: 'orthographic',
|
||||
VOLUME_3D: 'volume3d',
|
||||
ECG: 'ecg',
|
||||
},
|
||||
},
|
||||
}));
|
||||
@@ -50,9 +51,14 @@ describe('getCornerstoneViewportType', () => {
|
||||
expect(result).toBe(Enums.ViewportType.VOLUME_3D);
|
||||
});
|
||||
|
||||
it('should return ECG when viewportType is ecg', () => {
|
||||
const result = getCornerstoneViewportType('ecg');
|
||||
expect(result).toBe(Enums.ViewportType.ECG);
|
||||
});
|
||||
|
||||
it('should throw error for invalid viewport type', () => {
|
||||
expect(() => getCornerstoneViewportType('invalid')).toThrow(
|
||||
'Invalid viewport type: invalid. Valid types are: stack, volume, video, wholeslide'
|
||||
'Invalid viewport type: invalid. Valid types are: stack, volume, video, wholeslide, ecg'
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ const ORTHOGRAPHIC = 'orthographic';
|
||||
const VOLUME_3D = 'volume3d';
|
||||
const VIDEO = 'video';
|
||||
const WHOLESLIDE = 'wholeslide';
|
||||
const ECG = 'ecg';
|
||||
|
||||
export default function getCornerstoneViewportType(
|
||||
viewportType: string,
|
||||
@@ -25,6 +26,10 @@ export default function getCornerstoneViewportType(
|
||||
return Enums.ViewportType.WHOLE_SLIDE;
|
||||
}
|
||||
|
||||
if (lowerViewportType === ECG) {
|
||||
return Enums.ViewportType.ECG;
|
||||
}
|
||||
|
||||
if (lowerViewportType === VOLUME || lowerViewportType === ORTHOGRAPHIC) {
|
||||
return Enums.ViewportType.ORTHOGRAPHIC;
|
||||
}
|
||||
@@ -34,6 +39,6 @@ export default function getCornerstoneViewportType(
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`Invalid viewport type: ${viewportType}. Valid types are: stack, volume, video, wholeslide`
|
||||
`Invalid viewport type: ${viewportType}. Valid types are: stack, volume, video, wholeslide, ecg`
|
||||
);
|
||||
}
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-default
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-default",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/i18n": "3.13.0-beta.32",
|
||||
"dcmjs": "0.49.4",
|
||||
"dicomweb-client": "0.10.4",
|
||||
"prop-types": "15.8.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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **microscopy:** rename measurement in microscopy mode ([#5866](https://github.com/OHIF/Viewers/issues/5866)) ([2358a73](https://github.com/OHIF/Viewers/commit/2358a73c3cd24953430064480fb9e66bfe36ea69))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-microscopy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-microscopy",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { CommandsManager, ExtensionManager } from '@ohif/core';
|
||||
import { callInputDialog } from '@ohif/extension-default';
|
||||
import styles from './utils/styles';
|
||||
import i18n from '@ohif/i18n';
|
||||
|
||||
export default function getCommandsModule({
|
||||
servicesManager,
|
||||
@@ -24,16 +25,22 @@ export default function getCommandsModule({
|
||||
}
|
||||
},
|
||||
|
||||
setLabel: ({ uid }) => {
|
||||
setLabel: async ({ uid }) => {
|
||||
const roiAnnotation = microscopyService.getAnnotation(uid);
|
||||
callInputDialog({
|
||||
if (!roiAnnotation) {
|
||||
return;
|
||||
}
|
||||
const value = await callInputDialog({
|
||||
uiDialogService,
|
||||
defaultValue: '',
|
||||
onSave: (value: string) => {
|
||||
roiAnnotation.setLabel(value);
|
||||
microscopyService.triggerRelabel(roiAnnotation);
|
||||
},
|
||||
title: i18n.t('Tools:Edit Measurement Label'),
|
||||
placeholder: roiAnnotation.label || i18n.t('Tools:Enter new label'),
|
||||
defaultValue: roiAnnotation.label,
|
||||
});
|
||||
|
||||
if (value != null) {
|
||||
roiAnnotation.setLabel(value);
|
||||
microscopyService.triggerRelabel(roiAnnotation);
|
||||
}
|
||||
},
|
||||
|
||||
setToolActive: ({ toolName, toolGroupId = 'MICROSCOPY' }) => {
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-pdf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-pdf",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-video
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-video",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-measurement-tracking
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-measurement-tracking",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "Tracking features and functionality for basic image viewing",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -34,10 +34,10 @@
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"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.27",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"@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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-test
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-test",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-tmtv
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-tmtv",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "",
|
||||
"author": "Rodrigo Basilio",
|
||||
"license": "MIT",
|
||||
@@ -44,11 +44,11 @@
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/ui-next": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.0",
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic-dev-mode
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-test
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-test",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/extension-test": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **ecg:** add DICOM ECG waveform extension ([#5856](https://github.com/OHIF/Viewers/issues/5856)) ([70f76ae](https://github.com/OHIF/Viewers/commit/70f76aeba1b27f8e4de5ec73a7b831428e38e3d2))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-basic
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-basic",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2"
|
||||
|
||||
@@ -15,7 +15,7 @@ const { structuredCloneWithFunctions } = utils;
|
||||
* This list used to include SM, for whole slide imaging, but this is now supported
|
||||
* by cornerstone. Others of these may get added.
|
||||
*/
|
||||
export const NON_IMAGE_MODALITIES = ['ECG', 'SEG', 'RTSTRUCT', 'RTPLAN', 'PR', 'SR'];
|
||||
export const NON_IMAGE_MODALITIES = ['SEG', 'RTSTRUCT', 'RTPLAN', 'PR', 'SR'];
|
||||
|
||||
export const ohif = {
|
||||
layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
|
||||
@@ -47,6 +47,10 @@ export const dicomvideo = {
|
||||
viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',
|
||||
};
|
||||
|
||||
export const dicomecg = {
|
||||
sopClassHandler: '@ohif/extension-cornerstone.sopClassHandlerModule.DicomEcgSopClassHandler',
|
||||
};
|
||||
|
||||
export const dicompdf = {
|
||||
sopClassHandler: '@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf',
|
||||
viewport: '@ohif/extension-dicom-pdf.viewportModule.dicom-pdf',
|
||||
@@ -86,6 +90,7 @@ export const extensionDependencies = {
|
||||
|
||||
export const sopClassHandlers = [
|
||||
dicomvideo.sopClassHandler,
|
||||
dicomecg.sopClassHandler,
|
||||
dicomSeg.sopClassHandler,
|
||||
dicomPmap.sopClassHandler,
|
||||
ohif.sopClassHandler,
|
||||
@@ -291,6 +296,7 @@ export const basicLayout = {
|
||||
ohif.sopClassHandler,
|
||||
dicomvideo.sopClassHandler,
|
||||
ohif.wsiSopClassHandler,
|
||||
dicomecg.sopClassHandler,
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-longitudinal
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-longitudinal",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-microscopy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-microscopy",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.27"
|
||||
"@ohif/core": "3.13.0-beta.32",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.32"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-preclinical-4d
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-preclinical-4d",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dynamic-volume": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-tmtv": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-segmentation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-segmentation",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-tmtv
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/mode-tmtv",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"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.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-measurement-tracking": "3.13.0-beta.27"
|
||||
"@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"
|
||||
},
|
||||
"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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/mode-ultrasound-pleura-bline
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**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.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "Allows users to annotate ultrasound images with pleura B-line annotations.",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -36,9 +36,9 @@
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/tools": "4.18.2",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"i18next": "17.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
+3
-2
@@ -49,7 +49,7 @@
|
||||
"install:update-lockfile": "yarn install && bun install --config=./bunfig.update-lockfile.toml",
|
||||
"install:yarn:frozen-lockfile": "echo Deprecated - use install:frozen && yarn install --frozen-lockfile",
|
||||
"install:frozen": "yarn install --frozen-lockfile",
|
||||
"audit": "bun audit --ignore=GHSA-3ppc-4f35-3m26",
|
||||
"audit": "bun audit --ignore=GHSA-3ppc-4f35-3m26 --ignore=GHSA-7r86-cg39-jmmj --ignore=GHSA-23c5-xmqv-rm74",
|
||||
"preinstall": "node preinstall.js",
|
||||
"start": "yarn run dev",
|
||||
"test": "yarn run test:unit",
|
||||
@@ -157,7 +157,8 @@
|
||||
"lodash-es": "4.17.23",
|
||||
"diff": "5.2.2",
|
||||
"webpack": "5.105.0",
|
||||
"tar": "7.5.9"
|
||||
"tar": "7.5.9",
|
||||
"serialize-javascript": "7.0.4"
|
||||
},
|
||||
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
||||
}
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/app
|
||||
|
||||
+20
-20
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/app",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"productVersion": "3.4.0",
|
||||
"description": "OHIF Viewer",
|
||||
"author": "OHIF Contributors",
|
||||
@@ -56,25 +56,25 @@
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@emotion/serialize": "1.3.3",
|
||||
"@ohif/core": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.27",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.27",
|
||||
"@ohif/extension-default": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-microscopy": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-pdf": "3.13.0-beta.27",
|
||||
"@ohif/extension-dicom-video": "3.13.0-beta.27",
|
||||
"@ohif/extension-test": "3.13.0-beta.27",
|
||||
"@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"@ohif/i18n": "3.13.0-beta.27",
|
||||
"@ohif/mode-basic-dev-mode": "3.13.0-beta.27",
|
||||
"@ohif/mode-longitudinal": "3.13.0-beta.27",
|
||||
"@ohif/mode-microscopy": "3.13.0-beta.27",
|
||||
"@ohif/mode-test": "3.13.0-beta.27",
|
||||
"@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/ui-next": "3.13.0-beta.27",
|
||||
"@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",
|
||||
"@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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/cli
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/cli",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "A CLI to bootstrap new OHIF extension or mode",
|
||||
"type": "module",
|
||||
"main": "src/index.js",
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/core",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "Generic business logic for web-based medical imaging applications",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -39,7 +39,7 @@
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/core": "4.18.2",
|
||||
"@cornerstonejs/dicom-image-loader": "4.18.2",
|
||||
"@ohif/ui": "3.13.0-beta.27",
|
||||
"@ohif/ui": "3.13.0-beta.32",
|
||||
"cornerstone-math": "0.1.9",
|
||||
"dicom-parser": "1.8.21"
|
||||
},
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **security:** Address various security vulnerabilities. ([#5869](https://github.com/OHIF/Viewers/issues/5869)) ([be8e266](https://github.com/OHIF/Viewers/commit/be8e266a80f13d03ce9dc4a21a0227d3e1bc36ac))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package ohif-docs
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ohif-docs",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
@@ -100,6 +100,8 @@
|
||||
"qs": "6.14.1",
|
||||
"lodash": "4.17.23",
|
||||
"webpack": "5.105.0",
|
||||
"sharp": "0.34.5"
|
||||
"sharp": "0.34.5",
|
||||
"serialize-javascript": "7.0.4",
|
||||
"rollup": "2.80.0"
|
||||
}
|
||||
}
|
||||
+9
-18
@@ -10255,13 +10255,6 @@ quick-lru@^5.1.1:
|
||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
||||
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
|
||||
|
||||
randombytes@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
||||
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
||||
dependencies:
|
||||
safe-buffer "^5.1.0"
|
||||
|
||||
range-parser@1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
|
||||
@@ -10895,10 +10888,10 @@ rimraf@^3.0.2:
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rollup@^2.43.1:
|
||||
version "2.79.2"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090"
|
||||
integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
|
||||
rollup@2.80.0, rollup@^2.43.1:
|
||||
version "2.80.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.80.0.tgz#a82efc15b748e986a7c76f0f771221b1fa108a2c"
|
||||
integrity sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
@@ -10930,7 +10923,7 @@ safe-array-concat@^1.1.3:
|
||||
has-symbols "^1.1.0"
|
||||
isarray "^2.0.5"
|
||||
|
||||
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
|
||||
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@~5.2.0:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||
@@ -11074,12 +11067,10 @@ send@0.19.0:
|
||||
range-parser "~1.2.1"
|
||||
statuses "2.0.1"
|
||||
|
||||
serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
|
||||
integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
serialize-javascript@7.0.4, serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2:
|
||||
version "7.0.4"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-7.0.4.tgz#c517735bd5b7631dd1fc191ee19cbb713ff8e05c"
|
||||
integrity sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==
|
||||
|
||||
serve-handler@^6.1.6:
|
||||
version "6.1.6"
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **segmentation:** segment bidirectional tool error and show toast notification when no segment is drawn ([#5861](https://github.com/OHIF/Viewers/issues/5861)) ([7e10830](https://github.com/OHIF/Viewers/commit/7e10830d5802e22bda4df6a3f8008e9a414b4cd4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/i18n
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/i18n",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "Internationalization library for The OHIF Viewer",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -42,8 +42,7 @@
|
||||
"Export": "Export",
|
||||
"CSV Report": "CSV Report",
|
||||
"DICOM SEG": "DICOM SEG",
|
||||
"DICOM RTSS": "DICOM RTSS"
|
||||
,
|
||||
"DICOM RTSS": "DICOM RTSS",
|
||||
"Fill contour holes": "Fill contour holes",
|
||||
"Fill Holes": "Fill Holes",
|
||||
"Remove Small Contours": "Remove Small Contours",
|
||||
@@ -63,5 +62,7 @@
|
||||
"New segment name": "New segment name",
|
||||
"No segmentations available": "No segmentations available",
|
||||
"Not available on the current viewport": "Not available on the current viewport",
|
||||
"Add segment to enable this tool": "Add segment to enable this tool"
|
||||
"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"
|
||||
}
|
||||
@@ -62,5 +62,7 @@
|
||||
"New segment name": "Test New segment name",
|
||||
"No segmentations available": "Test No segmentations available",
|
||||
"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"
|
||||
"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"
|
||||
}
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **microscopy:** rename measurement in microscopy mode ([#5866](https://github.com/OHIF/Viewers/issues/5866)) ([2358a73](https://github.com/OHIF/Viewers/commit/2358a73c3cd24953430064480fb9e66bfe36ea69))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui-next
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/ui-next",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "Next version of OHIF Viewers UI, more customizable using shadcn/ui",
|
||||
"main": "dist/ohif-ui-next.umd.js",
|
||||
"module": "src/index.ts",
|
||||
|
||||
@@ -280,6 +280,7 @@ const DataRowComponent = React.forwardRef<HTMLDivElement, DataRowProps>(
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
<span
|
||||
data-cy="data-row-title"
|
||||
className={`cursor-default text-base ${
|
||||
isSelected ? 'text-highlight' : 'text-muted-foreground'
|
||||
} [overflow:hidden] [display:-webkit-box] [-webkit-line-clamp:2] [-webkit-box-orient:vertical]`}
|
||||
@@ -296,6 +297,7 @@ const DataRowComponent = React.forwardRef<HTMLDivElement, DataRowProps>(
|
||||
</Tooltip>
|
||||
) : (
|
||||
<span
|
||||
data-cy="data-row-title"
|
||||
className={`text-base ${
|
||||
isSelected ? 'text-highlight' : 'text-muted-foreground'
|
||||
} [overflow:hidden] [display:-webkit-box] [-webkit-line-clamp:2] [-webkit-box-orient:vertical]`}
|
||||
|
||||
@@ -12,11 +12,20 @@ const arrowClasses =
|
||||
*/
|
||||
function ViewportActionArrows({ onArrowsClick, className }) {
|
||||
return (
|
||||
<div className={classNames(className, 'flex')}>
|
||||
<div className={arrowClasses}>
|
||||
<div
|
||||
data-cy="viewport-action-arrows"
|
||||
className={classNames(className, 'flex')}
|
||||
>
|
||||
<div
|
||||
data-cy="viewport-action-arrows-left"
|
||||
className={arrowClasses}
|
||||
>
|
||||
<Icons.ArrowLeftBold onClick={() => onArrowsClick(-1)} />
|
||||
</div>
|
||||
<div className={arrowClasses}>
|
||||
<div
|
||||
data-cy="viewport-action-arrows-right"
|
||||
className={arrowClasses}
|
||||
>
|
||||
<Icons.ArrowRightBold onClick={() => onArrowsClick(1)} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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.32](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.31...v3.13.0-beta.32) (2026-03-05)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.31](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.30...v3.13.0-beta.31) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.30](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.29...v3.13.0-beta.30) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.29](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.28...v3.13.0-beta.29) (2026-03-04)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.28](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.27...v3.13.0-beta.28) (2026-03-03)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [3.13.0-beta.27](https://github.com/OHIF/Viewers/compare/v3.13.0-beta.26...v3.13.0-beta.27) (2026-03-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/ui
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/ui",
|
||||
"version": "3.13.0-beta.27",
|
||||
"version": "3.13.0-beta.32",
|
||||
"description": "A set of React components for Medical Imaging Viewers",
|
||||
"author": "OHIF Contributors",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
import { expect, test, visitStudy, getSvgPath, navigateWithViewportArrow } from './utils';
|
||||
import { expectRowSelected } from './utils/assertions';
|
||||
|
||||
const studyInstanceUID = '1.2.840.113619.2.290.3.3767434740.226.1600859119.501';
|
||||
|
||||
test.beforeEach(async ({
|
||||
page,
|
||||
leftPanelPageObject,
|
||||
DOMOverlayPageObject,
|
||||
rightPanelPageObject
|
||||
}) => {
|
||||
const mode = 'segmentation';
|
||||
await visitStudy(page, studyInstanceUID, mode, 2000);
|
||||
await leftPanelPageObject.loadSeriesByModality('RTSTRUCT');
|
||||
await page.waitForTimeout(5000);
|
||||
await DOMOverlayPageObject.viewport.segmentationHydration.yes.click();
|
||||
// Click segment 0 in the right panel to establish a known starting position
|
||||
await rightPanelPageObject.contourSegmentationPanel.panel.nthSegment(0).click();
|
||||
await page.waitForTimeout(5000);
|
||||
});
|
||||
|
||||
test('should navigate the contours when clicking each segments in the right panel', async ({
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const getSegment = (index: number) =>
|
||||
rightPanelPageObject.contourSegmentationPanel.panel.nthSegment(index);
|
||||
|
||||
const seg0 = await getSvgPath(viewportPageObject);
|
||||
expect(seg0, 'Segment at index 0: expected a non-null SVG path').not.toBeNull();
|
||||
|
||||
await getSegment(3).click();
|
||||
const seg3 = await getSvgPath(viewportPageObject);
|
||||
expect(seg3, 'Segment at index 3: expected a non-null SVG path').not.toBeNull();
|
||||
await expectRowSelected(getSegment(3));
|
||||
|
||||
await getSegment(2).click();
|
||||
const seg2 = await getSvgPath(viewportPageObject);
|
||||
expect(seg2, 'Segment at index 2: expected a non-null SVG path').not.toBeNull();
|
||||
await expectRowSelected(getSegment(2));
|
||||
|
||||
await getSegment(1).click();
|
||||
const seg1 = await getSvgPath(viewportPageObject);
|
||||
expect(seg1, 'Segment at index 1: expected a non-null SVG path').not.toBeNull();
|
||||
await expectRowSelected(getSegment(1));
|
||||
|
||||
// Clicking segments again should return the original paths
|
||||
await getSegment(2).click();
|
||||
const seg2Again = await getSvgPath(viewportPageObject);
|
||||
expect(seg2Again, 'Segment 2 again: expected to match the original segment 2 path').toBe(seg2);
|
||||
await expectRowSelected(getSegment(2));
|
||||
|
||||
await getSegment(1).click();
|
||||
const seg1Again = await getSvgPath(viewportPageObject);
|
||||
expect(seg1Again, 'Segment 1 again: expected to match the original segment 1 path').toBe(seg1);
|
||||
await expectRowSelected(getSegment(1));
|
||||
|
||||
await getSegment(0).click();
|
||||
const seg0Again = await getSvgPath(viewportPageObject);
|
||||
expect(seg0Again, 'Segment 0 again: expected to match the original segment 0 path').toBe(seg0);
|
||||
await expectRowSelected(getSegment(0));
|
||||
|
||||
await getSegment(3).click();
|
||||
const seg3Again = await getSvgPath(viewportPageObject);
|
||||
expect(seg3Again, 'Segment 3 again: expected to match the original segment 3 path').toBe(seg3);
|
||||
await expectRowSelected(getSegment(3));
|
||||
});
|
||||
|
||||
test('should navigate the segmentations using the Viewport arrow buttons', async ({
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const getSegment = (index: number) =>
|
||||
rightPanelPageObject.contourSegmentationPanel.panel.nthSegment(index);
|
||||
|
||||
const initialSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(initialSvgPath, 'Segment at index 0: expected a non-null SVG path').not.toBeNull();
|
||||
// Expect the correct segment to be selected in the right panel
|
||||
await expectRowSelected(getSegment(0));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
const secondSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(secondSvgPath, 'Segment at index 1: expected a different SVG path from segment 0').not.toBe(initialSvgPath);
|
||||
await expectRowSelected(getSegment(1));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
const thirdSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(thirdSvgPath, 'Segment at index 2: expected a different SVG path from segment 1').not.toBe(secondSvgPath);
|
||||
await expectRowSelected(getSegment(2));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
const fourthSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(fourthSvgPath, 'Segment at index 3: expected a different SVG path from segment 2').not.toBe(thirdSvgPath);
|
||||
await expectRowSelected(getSegment(3));
|
||||
|
||||
// Wraparound test — next from last should return to first segment
|
||||
await navigateWithViewportArrow(viewportPageObject, 'next');
|
||||
const svgPathWraparoundWithNext = await getSvgPath(viewportPageObject);
|
||||
expect(
|
||||
svgPathWraparoundWithNext,
|
||||
'Expected svg path to match the initial svg path after wrapping around with next navigation'
|
||||
).toBe(initialSvgPath);
|
||||
await expectRowSelected(getSegment(0));
|
||||
|
||||
// Wraparound test — prev from first should return to last segment
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
const svgPathWraparoundWithPrev = await getSvgPath(viewportPageObject);
|
||||
expect(
|
||||
svgPathWraparoundWithPrev,
|
||||
'Expected svg path to match the fourth svg path after wrapping around with prev navigation'
|
||||
).toBe(fourthSvgPath);
|
||||
await expectRowSelected(getSegment(3));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
const backToThirdSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(backToThirdSvgPath, 'Expected path to match third segment after going prev from fourth').toBe(thirdSvgPath);
|
||||
await expectRowSelected(getSegment(2));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
const backToSecondSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(backToSecondSvgPath, 'Expected path to match second segment after going prev from third').toBe(secondSvgPath);
|
||||
await expectRowSelected(getSegment(1));
|
||||
|
||||
await navigateWithViewportArrow(viewportPageObject, 'prev');
|
||||
const backToFirstSvgPath = await getSvgPath(viewportPageObject);
|
||||
expect(backToFirstSvgPath, 'Expected path to match first segment after going prev from second').toBe(initialSvgPath);
|
||||
await expectRowSelected(getSegment(0));
|
||||
});
|
||||
@@ -0,0 +1,33 @@
|
||||
import { test, visitStudy, expect } from './utils';
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
const studyInstanceUID = '1.2.276.0.7230010.3.1.2.296485376.1.1665793212.499772';
|
||||
const mode = 'microscopy';
|
||||
await visitStudy(page, studyInstanceUID, mode, 5000);
|
||||
});
|
||||
test('should rename a microscopy measurement label', async ({
|
||||
page,
|
||||
mainToolbarPageObject,
|
||||
DOMOverlayPageObject,
|
||||
rightPanelPageObject,
|
||||
viewportPageObject,
|
||||
}) => {
|
||||
const newLabel = 'Renamed Measurement';
|
||||
|
||||
await mainToolbarPageObject.measurementTools.line.click();
|
||||
|
||||
await viewportPageObject.active.clickAt([{ x: 400, y: 200 }]);
|
||||
await page.waitForTimeout(200);
|
||||
await viewportPageObject.active.clickAt([{ x: 550, y: 250 }]);
|
||||
|
||||
const measurementRow = rightPanelPageObject.microscopyPanel.nthMeasurement(0);
|
||||
await expect(measurementRow.locator).toBeVisible();
|
||||
|
||||
await expect(measurementRow.title).toHaveText('(empty)');
|
||||
|
||||
await measurementRow.actions.rename(newLabel);
|
||||
|
||||
await expect(DOMOverlayPageObject.dialog.input.locator).toBeHidden();
|
||||
|
||||
await expect(measurementRow.title).toHaveText(newLabel);
|
||||
});
|
||||
@@ -194,7 +194,6 @@ export class MainToolbarPageObject {
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
get freehandROI() {
|
||||
const button = page.getByTestId('PlanarFreehandROI');
|
||||
return {
|
||||
@@ -205,6 +204,21 @@ export class MainToolbarPageObject {
|
||||
},
|
||||
};
|
||||
},
|
||||
/* microscopy specific tools */
|
||||
// `.last()` targets the menu item inside the dropdown, not the active-tool
|
||||
// indicator inside the split-button primary
|
||||
// because both share the same data-cy value (e.g. "line")
|
||||
// Other microscopy tools might follow the same pattern
|
||||
get line() {
|
||||
const button = page.getByTestId('line').last();
|
||||
return {
|
||||
button,
|
||||
async click() {
|
||||
await measurementTools.click();
|
||||
await button.click();
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,9 @@ export class RightPanelPageObject {
|
||||
get actions() {
|
||||
return getActionsMenu(row);
|
||||
},
|
||||
get title() {
|
||||
return row.getByTestId('data-row-title');
|
||||
},
|
||||
click: async () => {
|
||||
await row.click();
|
||||
},
|
||||
@@ -246,6 +249,16 @@ export class RightPanelPageObject {
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
get segmentBidirectional() {
|
||||
const button = page.getByTestId('SegmentBidirectional');
|
||||
return {
|
||||
button,
|
||||
click: async () => {
|
||||
await button.click();
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -313,4 +326,23 @@ export class RightPanelPageObject {
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
get microscopyPanel() {
|
||||
const page = this.page;
|
||||
const getMeasurementByIdx = (index: number) => this.getPanelRowByIdx(index);
|
||||
const getMeasurementByText = (text: string) => this.getPanelRowByText(text);
|
||||
|
||||
return {
|
||||
locator: page.getByTestId('measurements-panel'),
|
||||
getMeasurementCount: async () => {
|
||||
return await page.getByTestId('data-row').count();
|
||||
},
|
||||
nthMeasurement(index: number) {
|
||||
return getMeasurementByIdx(index);
|
||||
},
|
||||
measurementByText(text: string) {
|
||||
return getMeasurementByText(text);
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -64,6 +64,17 @@ export interface IViewportPageObject {
|
||||
};
|
||||
pane: Locator;
|
||||
svg: (innerElement?: SvgInnerElement) => Locator;
|
||||
navigationArrows: {
|
||||
locator: Locator;
|
||||
prev: {
|
||||
button: Locator;
|
||||
click: () => Promise<void>;
|
||||
};
|
||||
next: {
|
||||
button: Locator;
|
||||
click: () => Promise<void>;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export class ViewportPageObject {
|
||||
@@ -146,6 +157,27 @@ export class ViewportPageObject {
|
||||
return viewport.locator(`svg.svg-layer${innerElement ? ` ${innerElement}` : ''}`);
|
||||
}
|
||||
|
||||
private getNavigationArrows(viewport: Locator) {
|
||||
const container = viewport.getByTestId('viewport-action-arrows');
|
||||
const prevButton = viewport.getByTestId('viewport-action-arrows-left');
|
||||
const nextButton = viewport.getByTestId('viewport-action-arrows-right');
|
||||
return {
|
||||
locator: container,
|
||||
prev: {
|
||||
button: prevButton,
|
||||
click: async () => {
|
||||
await prevButton.click();
|
||||
},
|
||||
},
|
||||
next: {
|
||||
button: nextButton,
|
||||
click: async () => {
|
||||
await nextButton.click();
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
private viewportPageObjectFactory(viewport: Locator): IViewportPageObject {
|
||||
return {
|
||||
nthAnnotation: (nth: number) => this.getAnnotation(viewport, nth),
|
||||
@@ -189,6 +221,7 @@ export class ViewportPageObject {
|
||||
svg: (innerElement?: SvgInnerElement) => {
|
||||
return this.getSvg(viewport, innerElement);
|
||||
},
|
||||
navigationArrows: this.getNavigationArrows(viewport),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -61,3 +61,7 @@ export async function assertBoundingBoxIsContainedWithin({
|
||||
`${innerBoxLabel} bottom edge should be within ${outerBoxLabel}`
|
||||
).toBeLessThanOrEqual(outerBox.y + outerBox.height);
|
||||
}
|
||||
|
||||
export async function expectRowSelected(rowObject) {
|
||||
await expect(rowObject.locator).toContainClass('bg-popover');
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { ViewportPageObject } from '../pages/ViewportPageObject';
|
||||
|
||||
const getSvgPath = async (viewportPageObject: ViewportPageObject, viewportId = 'default') => {
|
||||
return viewportPageObject
|
||||
.getById(viewportId)
|
||||
.svg('path')
|
||||
.first()
|
||||
.getAttribute('d');
|
||||
};
|
||||
|
||||
export { getSvgPath };
|
||||
@@ -16,6 +16,8 @@ import { clearAllAnnotations } from './clearAllAnnotations';
|
||||
import { scrollVolumeViewport } from './scrollVolumeViewport';
|
||||
import { attemptAction } from './attemptAction';
|
||||
import { addLengthMeasurement } from './addLengthMeasurement';
|
||||
import { getSvgPath } from './getSvgPath';
|
||||
import { navigateWithViewportArrow } from './navigateWithViewportArrow';
|
||||
import { test, expect } from './fixture';
|
||||
import { subscribeToMeasurementAdded } from './subscribeToMeasurement';
|
||||
|
||||
@@ -38,6 +40,8 @@ export {
|
||||
attemptAction,
|
||||
addLengthMeasurement,
|
||||
subscribeToMeasurementAdded,
|
||||
getSvgPath,
|
||||
navigateWithViewportArrow,
|
||||
test,
|
||||
expect,
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
import { ViewportPageObject } from '../pages/ViewportPageObject';
|
||||
|
||||
const navigateWithViewportArrow = async (
|
||||
viewportPageObject: ViewportPageObject,
|
||||
direction: 'next' | 'prev',
|
||||
viewportId = 'default'
|
||||
) => {
|
||||
const viewport = viewportPageObject.getById(viewportId);
|
||||
await viewport.navigationArrows[direction].click();
|
||||
};
|
||||
|
||||
export { navigateWithViewportArrow };
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"version": "3.13.0-beta.27",
|
||||
"commit": "92011c587f2d1bc9312197fa9ff4e2bf39e268e4"
|
||||
"version": "3.13.0-beta.32",
|
||||
"commit": "70f76aeba1b27f8e4de5ec73a7b831428e38e3d2"
|
||||
}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.13.0-beta.27
|
||||
3.13.0-beta.32
|
||||
@@ -17719,19 +17719,10 @@ send@0.19.0:
|
||||
range-parser "~1.2.1"
|
||||
statuses "2.0.1"
|
||||
|
||||
serialize-javascript@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
|
||||
integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
serialize-javascript@^6.0.0, serialize-javascript@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
|
||||
integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
serialize-javascript@7.0.4, serialize-javascript@^4.0.0, serialize-javascript@^6.0.0, serialize-javascript@^6.0.2:
|
||||
version "7.0.4"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-7.0.4.tgz#c517735bd5b7631dd1fc191ee19cbb713ff8e05c"
|
||||
integrity sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==
|
||||
|
||||
serve-handler@6.1.6:
|
||||
version "6.1.6"
|
||||
|
||||
Reference in new issue
Block a user