Add fallback to 2D loader in DICOM 3D setup on viewport enable failure
This commit is contained in:
@@ -548,13 +548,28 @@ async function setUpDicom3d(element) {
|
|||||||
console.log(renderingEngine)
|
console.log(renderingEngine)
|
||||||
|
|
||||||
const viewportInput = {
|
const viewportInput = {
|
||||||
viewportId,
|
viewportId,
|
||||||
type: Enums.ViewportType.STACK,
|
type: Enums.ViewportType.STACK,
|
||||||
element,
|
element,
|
||||||
//viewportType: Enums.ViewportType.STACK, // Stack viewport for slice stacks
|
//viewportType: Enums.ViewportType.STACK, // Stack viewport for slice stacks
|
||||||
};
|
};
|
||||||
|
|
||||||
renderingEngine.enableElement(viewportInput);
|
try {
|
||||||
|
renderingEngine.enableElement(viewportInput);
|
||||||
|
} catch (err) {
|
||||||
|
// Some bundlings / integrations (dv3d wrapper) may reject the provided
|
||||||
|
// viewport type (e.g. "Viewport is not a valid type"). In that case
|
||||||
|
// fall back to the 2D cornerstone loader which is more permissive.
|
||||||
|
console.warn('renderingEngine.enableElement failed, falling back to 2D loader:', err);
|
||||||
|
try {
|
||||||
|
dicomViewer.loadCornerstone($(element), null, images, undefined, images.length > 5);
|
||||||
|
element._cornerstone3d = { fallback: 'cornerstone2d', imageCount: images.length };
|
||||||
|
return element._cornerstone3d;
|
||||||
|
} catch (err2) {
|
||||||
|
console.error('2D fallback after enableElement failure also failed:', err2);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const viewport = renderingEngine.getViewport(viewportId);
|
const viewport = renderingEngine.getViewport(viewportId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user