All files / packages/tools/src/eventListeners/segmentation segmentationModifiedEventListener.ts

100% Statements 8/8
50% Branches 1/2
100% Functions 3/3
100% Lines 8/8

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                      1x     20x   20x   20x 3x 3x 3x 3x                    
import { SegmentationModifiedEventType } from '../../types/EventTypes';
import {
  getToolGroupIdsWithSegmentation,
  getSegmentationRepresentations,
} from '../../stateManagement/segmentation/segmentationState';
import { triggerSegmentationRepresentationModified } from '../../stateManagement/segmentation/triggerSegmentationEvents';
 
/** A function that listens to the `segmentationModified` event and triggers
 * the triggerSegmentationRepresentationModified on each toolGroup that
 * has a representation of the given segmentationId.
 */
const segmentationModifiedListener = function (
  evt: SegmentationModifiedEventType
): void {
  const { segmentationId } = evt.detail;
 
  const toolGroupIds = getToolGroupIdsWithSegmentation(segmentationId);
 
  toolGroupIds.forEach((toolGroupId) => {
    const segRepresentations = getSegmentationRepresentations(toolGroupId);
    segRepresentations.forEach((representation) => {
      Eif (representation.segmentationId === segmentationId) {
        triggerSegmentationRepresentationModified(
          toolGroupId,
          representation.segmentationRepresentationUID
        );
      }
    });
  });
};
 
export default segmentationModifiedListener;