fix(seg): prevent segmentations from spreading to all viewports before hydration confirmation in 3D four-up (#5967)

This commit is contained in:
Ghadeer Albattarni authored and GitHub committed 2026-04-27 12:55:12 -04:00
1 parent c9c4f11b82
commit f8ccf9ff2e
23 files changed
+558 -39

No files matched your search

@@ -67,8 +67,14 @@ export function configureViewportForLayerAddition(params: {
// If a viewport type was already set do not reset it.
if (!viewport.viewportOptions.viewportType) {
// Special handling for overlay display sets
if (requestedLayerDisplaySet.isOverlayDisplaySet) {
// If the live Cornerstone viewport is already orthographic (volume), keep it as
// 'volume'. Prevents accidentally downgrading a volume viewport to 'stack' when
// viewportOptions arrives without a viewportType (e.g. from the HP overlay path).
const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
if (csViewport?.type === 'orthographic') {
viewport.viewportOptions.viewportType = 'volume';
// Special handling for overlay display sets
} else if (requestedLayerDisplaySet.isOverlayDisplaySet) {
// Do not force volume for SEG and RTSTRUCT if it and all the current display sets are for the same display set
const isSameDisplaySet = currentDisplaySetUIDs.every(uid => {
const currentDisplaySet = displaySetService.getDisplaySetByUID(uid);
@@ -131,7 +137,9 @@ export function configureViewportForLayerRemoval(params: {
viewport.viewportOptions = {};
}
viewport.viewportOptions.viewportType = 'volume';
const csViewportOrthographic =
cornerstoneViewportService.getCornerstoneViewport(viewportId)?.type === 'orthographic';
viewport.viewportOptions.viewportType = csViewportOrthographic ? 'volume' : 'stack';
// orientation
if (!viewport.viewportOptions.orientation) {