fix: prevent black viewport when navigating series with client-created segmentation (#5919)

This commit is contained in:
Ghadeer Albattarni 2026-03-28 19:20:49 -04:00 committed by GitHub
parent efac34dfe5
commit e66fb5a2b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 44 additions and 4 deletions

View File

@ -734,10 +734,11 @@ const commandsModule = ({
displaySetIndexToShow > -1 && displaySetIndexToShow < currentDisplaySets.length;
displaySetIndexToShow += direction
) {
if (
!excludeNonImageModalities ||
!nonImageModalities.includes(currentDisplaySets[displaySetIndexToShow].Modality)
) {
const nextDisplaySet = currentDisplaySets[displaySetIndexToShow];
if (nextDisplaySet.madeInClient) {
continue;
}
if (!excludeNonImageModalities || !nonImageModalities.includes(nextDisplaySet.Modality)) {
break;
}
}

View File

@ -0,0 +1,39 @@
import { test, visitStudy, expect } from './utils';
import { press } from './utils/keyboardUtils';
test.beforeEach(async ({ page }) => {
const studyInstanceUID = '1.2.840.113619.2.290.3.3767434740.226.1600859119.501';
const mode = 'segmentation';
await visitStudy(page, studyInstanceUID, mode, 2000);
});
test('should keep the viewport rendered when navigating series with Page Down after adding a segmentation', async ({
page,
leftPanelPageObject,
rightPanelPageObject,
viewportPageObject,
}) => {
// Study has 5 series; pressing 8 times verifies navigation remains stable even after
// reaching the client-created SEG display set appended by "Add Segmentation".
const minimumSeriesExpected = 5;
const totalPageDownPresses = minimumSeriesExpected + 3;
await rightPanelPageObject.labelMapSegmentationPanel.addSegmentationButton.click();
const thumbnailsLocator = leftPanelPageObject.thumbnails;
await expect
.poll(async () => {
return await thumbnailsLocator.count();
})
.toBeGreaterThanOrEqual(minimumSeriesExpected);
const activeViewport = await viewportPageObject.active;
await activeViewport.pane.click();
await activeViewport.pane.dblclick();
for (let i = 0; i < totalPageDownPresses; i++) {
await press({ page, key: 'PageDown' });
const currentActiveViewport = await viewportPageObject.active;
await expect(currentActiveViewport.overlayText.bottomRight.instanceNumber).toBeVisible();
}
});