diff --git a/platform/viewer/src/components/ViewportGrid.jsx b/platform/viewer/src/components/ViewportGrid.jsx
index 03c11764f..7ceeeddd5 100644
--- a/platform/viewer/src/components/ViewportGrid.jsx
+++ b/platform/viewer/src/components/ViewportGrid.jsx
@@ -84,49 +84,30 @@ function ViewerViewportGrid(props) {
for (let i = 0; i < numViewportPanes; i++) {
const viewportIndex = i;
- const paneMeta = viewports[i];
- const isEmpty = !paneMeta || !paneMeta.displaySetInstanceUID;
+ const paneMetadata = viewports[i] || {};
+ const { displaySetInstanceUID } = paneMetadata;
+ const displaySet = DisplaySetService.getDisplaySetByUID(displaySetInstanceUID) || {};
+ const ViewportComponent = _getViewportComponent(
+ displaySet.SOPClassHandlerId,
+ viewportComponents
+ );
- if (isEmpty) {
- viewportPanes[i] = (
- { setActiveViewportIndex(viewportIndex); }}
- isActive={activeViewportIndex === viewportIndex}
- >
-
-
- );
- } else {
- const displaySet = DisplaySetService.getDisplaySetByUID(
- paneMeta.displaySetInstanceUID
- );
-
- const ViewportComponent = _getViewportComponent(
- displaySet,
- viewportComponents
- );
-
- viewportPanes[i] = (
- { setActiveViewportIndex(viewportIndex); }}
- isActive={activeViewportIndex === viewportIndex}
- >
-
-
- );
- }
+ viewportPanes[i] = (
+ { setActiveViewportIndex(viewportIndex); }}
+ isActive={activeViewportIndex === viewportIndex}
+ >
+
+
+ );
}
return viewportPanes;
@@ -154,8 +135,10 @@ ViewerViewportGrid.defaultProps = {
viewportComponents: [],
};
-function _getViewportComponent(displaySet, viewportComponents) {
- const { SOPClassHandlerId } = displaySet;
+function _getViewportComponent(SOPClassHandlerId, viewportComponents) {
+ if (!SOPClassHandlerId) {
+ return EmptyViewport;
+ }
for (let i = 0; i < viewportComponents.length; i++) {
if (