fix(wsi): mount WSI/SM viewports via setDisplaySets (#6107)
This commit is contained in:
1 parent
cb6cdafd24
commit
38214f26de
15 files changed
+975
-263
No files matched your search
@@ -41,8 +41,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/adapters": "5.0.2",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/adapters": "5.1.3",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@kitware/vtk.js": "35.5.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/adapters": "5.0.2",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/adapters": "5.1.3",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@kitware/vtk.js": "35.5.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/adapters": "5.0.2",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/tools": "5.0.2",
|
||||
"@cornerstonejs/adapters": "5.1.3",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@cornerstonejs/tools": "5.1.3",
|
||||
"classnames": "2.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/tools": "5.0.2",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@cornerstonejs/tools": "5.1.3",
|
||||
"classnames": "2.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "5.0.2",
|
||||
"@cornerstonejs/dicom-image-loader": "5.1.3",
|
||||
"@ohif/core": "workspace:*",
|
||||
"@ohif/extension-default": "workspace:*",
|
||||
"@ohif/ui": "workspace:*",
|
||||
@@ -52,13 +52,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/adapters": "5.0.2",
|
||||
"@cornerstonejs/ai": "5.0.2",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/labelmap-interpolation": "5.0.2",
|
||||
"@cornerstonejs/metadata": "5.0.2",
|
||||
"@cornerstonejs/polymorphic-segmentation": "5.0.2",
|
||||
"@cornerstonejs/tools": "5.0.2",
|
||||
"@cornerstonejs/adapters": "5.1.3",
|
||||
"@cornerstonejs/ai": "5.1.3",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@cornerstonejs/labelmap-interpolation": "5.1.3",
|
||||
"@cornerstonejs/metadata": "5.1.3",
|
||||
"@cornerstonejs/polymorphic-segmentation": "5.1.3",
|
||||
"@cornerstonejs/tools": "5.1.3",
|
||||
"@icr/polyseg-wasm": "0.4.0",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "35.5.3",
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
utilities as csUtils,
|
||||
cache,
|
||||
Enums as csEnums,
|
||||
metaData,
|
||||
} from '@cornerstonejs/core';
|
||||
|
||||
import { utilities as csToolsUtils, Enums as csToolsEnums } from '@cornerstonejs/tools';
|
||||
@@ -849,10 +850,21 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
||||
_presentations: Presentations = {}
|
||||
): Promise<void> {
|
||||
const [displaySet] = viewportData.data;
|
||||
// CS3D's "redo viewports" replaced setDataIds with the generic
|
||||
// setDisplaySets({ displaySetId }) API; the legacy adapters key off
|
||||
// imageIds[0] as the displaySetId, so do the same here.
|
||||
await viewport.setDisplaySets({ displaySetId: displaySet.imageIds[0] });
|
||||
const displaySetId = displaySet.imageIds[0];
|
||||
// Register the WSI dataset so the viewport can resolve its imageIds +
|
||||
// webClient by display-set id, then mount via setDisplaySets. The webClient
|
||||
// was registered under the WADO_WEB_CLIENT module (keyed by imageIds[0]) by
|
||||
// the SM SOP class handler. CS3D's "redo viewports" reads this same registry
|
||||
// (genericViewportDisplaySetMetadataProvider) from its WSI data provider;
|
||||
// without this entry setDisplaySets throws "No registered WSI dataset" and
|
||||
// the viewport renders gray.
|
||||
const webClient = metaData.get(csEnums.MetadataModules.WADO_WEB_CLIENT, displaySetId);
|
||||
csUtils.genericViewportDisplaySetMetadataProvider.add(displaySetId, {
|
||||
imageIds: displaySet.imageIds,
|
||||
kind: 'wsi',
|
||||
options: { webClient },
|
||||
});
|
||||
await viewport.setDisplaySets({ displaySetId });
|
||||
const viewReference = viewportInfo.getViewReference();
|
||||
if (viewReference) {
|
||||
viewport.setViewReference(viewReference);
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
"start": "pnpm run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/tools": "5.0.2",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@cornerstonejs/tools": "5.1.3",
|
||||
"@ohif/core": "workspace:*",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "workspace:*",
|
||||
"@ohif/extension-default": "workspace:*",
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.29.7",
|
||||
"@cornerstonejs/core": "5.0.2",
|
||||
"@cornerstonejs/tools": "5.0.2",
|
||||
"@cornerstonejs/core": "5.1.3",
|
||||
"@cornerstonejs/tools": "5.1.3",
|
||||
"@ohif/core": "workspace:*",
|
||||
"@ohif/extension-cornerstone": "workspace:*",
|
||||
"@ohif/extension-default": "workspace:*",
|
||||
|
||||
Reference in new issue
Block a user