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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | 75x 75x 75x 75x 75x | import {
getEnabledElement,
triggerEvent,
eventTarget,
getEnabledElementByIds,
} from '@cornerstonejs/core';
import { Events } from '../../../enums';
import { Annotation } from '../../../types/AnnotationTypes';
import { getToolGroupsWithToolName } from '../../../store/ToolGroupManager';
import { AnnotationAddedEventDetail } from '../../../types/EventTypes';
/**
* It triggers an event for the element when an annotation is added
* @param annotation - Annotation - The annotation that was added.
* @param element - The element that the annotation was added to.
*/
function triggerAnnotationAddedForElement(
annotation: Annotation,
element: HTMLDivElement
) {
const enabledElement = getEnabledElement(element);
const { renderingEngine, viewportId } = enabledElement;
const eventType = Events.ANNOTATION_ADDED;
const eventDetail: AnnotationAddedEventDetail = {
annotation,
viewportId,
renderingEngineId: renderingEngine.id,
};
triggerEvent(eventTarget, eventType, eventDetail);
}
/**
* If the annotation has a FrameOfReferenceUID, it triggers the ANNOTATION_ADDED
* event for all the viewports that has the same FrameOfReferenceUID.
* @param annotation - Annotation - The annotation that was added
*/
function triggerAnnotationAddedForFOR(annotation: Annotation) {
const { toolName } = annotation.metadata;
const toolGroups = getToolGroupsWithToolName(toolName);
if (!toolGroups.length) {
return;
}
// Find the viewports in the toolGroups who has the same FrameOfReferenceUID
const viewportsToRender = [];
toolGroups.forEach((toolGroup) => {
toolGroup.viewportsInfo.forEach((viewportInfo) => {
const { renderingEngineId, viewportId } = viewportInfo;
const { FrameOfReferenceUID } = getEnabledElementByIds(
viewportId,
renderingEngineId
);
if (annotation.metadata.FrameOfReferenceUID === FrameOfReferenceUID) {
viewportsToRender.push(viewportInfo);
}
});
});
if (!viewportsToRender.length) {
return;
}
const eventType = Events.ANNOTATION_ADDED;
viewportsToRender.forEach(({ renderingEngineId, viewportId }) => {
const eventDetail: AnnotationAddedEventDetail = {
annotation,
viewportId,
renderingEngineId,
};
triggerEvent(eventTarget, eventType, eventDetail);
});
}
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR };
|