All files / tools/src/stateManagement/segmentation SegmentationRepresentationDisplayRegistry.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 2/2
100% Lines 3/3

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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                              128x                 384x           2382x    
import type { Types } from '@cornerstonejs/core';
import type SegmentationRepresentations from '../../enums/SegmentationRepresentations';
import type { SegmentationRepresentation } from '../../types/SegmentationStateTypes';
 
type SegmentationRepresentationUpdateFunction = (
  segmentationId: string
) => Promise<void>;
 
export type SegmentationRepresentationDisplay = {
  getUpdateFunction: (
    viewport: Types.IVolumeViewport | Types.IStackViewport
  ) => SegmentationRepresentationUpdateFunction | void | null;
  render: (
    viewport: Types.IVolumeViewport | Types.IStackViewport,
    representation: SegmentationRepresentation
  ) => Promise<void>;
  removeRepresentation: (
    viewportId: string,
    segmentationId: string,
    renderImmediate?: boolean
  ) => void;
};
 
const segmentationRepresentationDisplays = new Map<
  SegmentationRepresentations,
  SegmentationRepresentationDisplay
>();
 
export function registerSegmentationRepresentationDisplay(
  representationType: SegmentationRepresentations,
  display: SegmentationRepresentationDisplay
): void {
  segmentationRepresentationDisplays.set(representationType, display);
}
 
export function getSegmentationRepresentationDisplay(
  representationType: SegmentationRepresentations
): SegmentationRepresentationDisplay | undefined {
  return segmentationRepresentationDisplays.get(representationType);
}