Skip to content

Commit e66fb5a

Browse files
fix: prevent black viewport when navigating series with client-created segmentation (#5919)
1 parent efac34d commit e66fb5a

File tree

2 files changed

+44
-4
lines changed

2 files changed

+44
-4
lines changed

extensions/default/src/commandsModule.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -734,10 +734,11 @@ const commandsModule = ({
734734
displaySetIndexToShow > -1 && displaySetIndexToShow < currentDisplaySets.length;
735735
displaySetIndexToShow += direction
736736
) {
737-
if (
738-
!excludeNonImageModalities ||
739-
!nonImageModalities.includes(currentDisplaySets[displaySetIndexToShow].Modality)
740-
) {
737+
const nextDisplaySet = currentDisplaySets[displaySetIndexToShow];
738+
if (nextDisplaySet.madeInClient) {
739+
continue;
740+
}
741+
if (!excludeNonImageModalities || !nonImageModalities.includes(nextDisplaySet.Modality)) {
741742
break;
742743
}
743744
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { test, visitStudy, expect } from './utils';
2+
import { press } from './utils/keyboardUtils';
3+
4+
test.beforeEach(async ({ page }) => {
5+
const studyInstanceUID = '1.2.840.113619.2.290.3.3767434740.226.1600859119.501';
6+
const mode = 'segmentation';
7+
await visitStudy(page, studyInstanceUID, mode, 2000);
8+
});
9+
10+
test('should keep the viewport rendered when navigating series with Page Down after adding a segmentation', async ({
11+
page,
12+
leftPanelPageObject,
13+
rightPanelPageObject,
14+
viewportPageObject,
15+
}) => {
16+
// Study has 5 series; pressing 8 times verifies navigation remains stable even after
17+
// reaching the client-created SEG display set appended by "Add Segmentation".
18+
const minimumSeriesExpected = 5;
19+
const totalPageDownPresses = minimumSeriesExpected + 3;
20+
21+
await rightPanelPageObject.labelMapSegmentationPanel.addSegmentationButton.click();
22+
23+
const thumbnailsLocator = leftPanelPageObject.thumbnails;
24+
await expect
25+
.poll(async () => {
26+
return await thumbnailsLocator.count();
27+
})
28+
.toBeGreaterThanOrEqual(minimumSeriesExpected);
29+
30+
const activeViewport = await viewportPageObject.active;
31+
await activeViewport.pane.click();
32+
await activeViewport.pane.dblclick();
33+
34+
for (let i = 0; i < totalPageDownPresses; i++) {
35+
await press({ page, key: 'PageDown' });
36+
const currentActiveViewport = await viewportPageObject.active;
37+
await expect(currentActiveViewport.overlayText.bottomRight.instanceNumber).toBeVisible();
38+
}
39+
});

0 commit comments

Comments
 (0)