All files / extensions/cornerstone/src/utils getDataIdForViewport.ts

100% Statements 6/6
71.42% Branches 5/7
100% Functions 2/2
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23                          1327x 1327x 917x   410x 410x 420x      
/**
 * Resolves the data ID (e.g. volumeId) for a viewport and display set.
 * For viewports with multiple volumes/actors, returns the id that matches the display set; otherwise undefined.
 * Use this to call viewport.getProperties(dataId) in a viewport-type-agnostic way.
 *
 * @param viewport - Viewport instance (stack, volume, or future types with optional getAllVolumeIds)
 * @param displaySetInstanceUID - Display set instance UID to match
 * @returns volumeId (or equivalent) for multi-actor viewports, undefined for single-actor
 */
export function getDataIdForViewport(
  viewport: unknown,
  displaySetInstanceUID: string
): string | undefined {
  const vp = viewport as { getAllVolumeIds?: () => string[] };
  if (typeof vp.getAllVolumeIds !== 'function') {
    return undefined;
  }
  const volumeIds = vp.getAllVolumeIds() || [];
  return volumeIds.length > 0
    ? volumeIds.find(id => id.includes(displaySetInstanceUID)) ?? undefined
    : undefined;
}