@cornerstonejs/tools 0.47.0 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/init.js +1 -1
- package/dist/cjs/init.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +98 -90
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/annotationState.d.ts +11 -10
- package/dist/cjs/stateManagement/annotation/annotationState.js +40 -45
- package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -0
- package/dist/cjs/stateManagement/annotation/helpers/state.js +49 -0
- package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -0
- package/dist/cjs/stateManagement/index.d.ts +4 -3
- package/dist/cjs/stateManagement/index.js +4 -3
- package/dist/cjs/stateManagement/index.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +23 -0
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
- package/dist/cjs/store/ToolGroupManager/index.d.ts +2 -1
- package/dist/cjs/store/ToolGroupManager/index.js +3 -1
- package/dist/cjs/store/ToolGroupManager/index.js.map +1 -1
- package/dist/cjs/store/filterToolsWithAnnotationsForElement.js +2 -2
- package/dist/cjs/store/filterToolsWithAnnotationsForElement.js.map +1 -1
- package/dist/cjs/store/removeEnabledElement.js +1 -1
- package/dist/cjs/store/removeEnabledElement.js.map +1 -1
- package/dist/cjs/tools/CrosshairsTool.d.ts +1 -0
- package/dist/cjs/tools/CrosshairsTool.js +19 -17
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/ReferenceCursors.d.ts +0 -1
- package/dist/cjs/tools/ReferenceCursors.js +10 -12
- package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
- package/dist/cjs/tools/ReferenceLinesTool.js +3 -2
- package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/cjs/tools/ScaleOverlayTool.js +7 -8
- package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/cjs/tools/annotation/AngleTool.js +5 -4
- package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +8 -7
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +5 -4
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/CobbAngleTool.js +5 -4
- package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -4
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +5 -4
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -3
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.js +5 -4
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +5 -4
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationDisplayTool.js +2 -2
- package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +4 -3
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/cjs/types/AnnotationGroupSelector.d.ts +2 -0
- package/dist/cjs/types/AnnotationGroupSelector.js +3 -0
- package/dist/cjs/types/AnnotationGroupSelector.js.map +1 -0
- package/dist/cjs/types/AnnotationTypes.d.ts +4 -4
- package/dist/cjs/types/IAnnotationManager.d.ts +14 -0
- package/dist/cjs/types/IAnnotationManager.js +3 -0
- package/dist/cjs/types/IAnnotationManager.js.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/utilities/getAnnotationNearPoint.js +5 -4
- package/dist/cjs/utilities/getAnnotationNearPoint.js.map +1 -1
- package/dist/esm/init.js +2 -2
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +100 -91
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
- package/dist/esm/stateManagement/annotation/annotationState.d.ts +11 -10
- package/dist/esm/stateManagement/annotation/annotationState.js +38 -44
- package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/esm/stateManagement/annotation/helpers/state.d.ts +4 -0
- package/dist/esm/stateManagement/annotation/helpers/state.js +45 -0
- package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -0
- package/dist/esm/stateManagement/index.d.ts +4 -3
- package/dist/esm/stateManagement/index.js +2 -2
- package/dist/esm/stateManagement/index.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +21 -0
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
- package/dist/esm/store/ToolGroupManager/index.d.ts +2 -1
- package/dist/esm/store/ToolGroupManager/index.js +2 -1
- package/dist/esm/store/ToolGroupManager/index.js.map +1 -1
- package/dist/esm/store/filterToolsWithAnnotationsForElement.js +2 -2
- package/dist/esm/store/filterToolsWithAnnotationsForElement.js.map +1 -1
- package/dist/esm/store/removeEnabledElement.js +1 -1
- package/dist/esm/store/removeEnabledElement.js.map +1 -1
- package/dist/esm/tools/CrosshairsTool.d.ts +1 -0
- package/dist/esm/tools/CrosshairsTool.js +19 -17
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/ReferenceCursors.d.ts +0 -1
- package/dist/esm/tools/ReferenceCursors.js +10 -12
- package/dist/esm/tools/ReferenceCursors.js.map +1 -1
- package/dist/esm/tools/ReferenceLinesTool.js +3 -2
- package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/esm/tools/ScaleOverlayTool.js +7 -8
- package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/esm/tools/annotation/AngleTool.js +5 -4
- package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +8 -7
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +5 -4
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/CobbAngleTool.js +5 -4
- package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +5 -4
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +5 -4
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -3
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +5 -4
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +5 -4
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -3
- package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +4 -3
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/esm/types/AnnotationGroupSelector.d.ts +2 -0
- package/dist/esm/types/AnnotationGroupSelector.js +2 -0
- package/dist/esm/types/AnnotationGroupSelector.js.map +1 -0
- package/dist/esm/types/AnnotationTypes.d.ts +4 -4
- package/dist/esm/types/IAnnotationManager.d.ts +14 -0
- package/dist/esm/types/IAnnotationManager.js +2 -0
- package/dist/esm/types/IAnnotationManager.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -2
- package/dist/esm/utilities/getAnnotationNearPoint.js +3 -2
- package/dist/esm/utilities/getAnnotationNearPoint.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/init.js
CHANGED
|
@@ -47,7 +47,7 @@ function destroy() {
|
|
|
47
47
|
_removeCornerstoneToolsEventListeners();
|
|
48
48
|
ToolGroupManager.destroy();
|
|
49
49
|
(0, state_1.resetCornerstoneToolsState)();
|
|
50
|
-
const annotationManager = (0, annotationState_1.
|
|
50
|
+
const annotationManager = (0, annotationState_1.getAnnotationManager)();
|
|
51
51
|
const segmentationStateManager = (0, segmentationState_1.getDefaultSegmentationStateManager)();
|
|
52
52
|
annotationManager.restoreAnnotations({});
|
|
53
53
|
segmentationStateManager.resetState();
|
package/dist/cjs/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import { Annotation, Annotations,
|
|
1
|
+
import { Annotation, Annotations, AnnotationState, GroupSpecificAnnotations } from '../../types/AnnotationTypes';
|
|
2
|
+
import { AnnotationGroupSelector, IAnnotationManager } from '../../types';
|
|
2
3
|
import { Types } from '@cornerstonejs/core';
|
|
3
|
-
|
|
4
|
-
FrameOfReferenceUID?: string;
|
|
5
|
-
toolName?: string;
|
|
6
|
-
}
|
|
7
|
-
export default class FrameOfReferenceSpecificAnnotationManager {
|
|
4
|
+
declare class FrameOfReferenceSpecificAnnotationManager implements IAnnotationManager {
|
|
8
5
|
private annotations;
|
|
9
6
|
readonly uid: string;
|
|
10
7
|
constructor(uid?: string);
|
|
8
|
+
getGroupKey: (annotationGroupSelector: AnnotationGroupSelector) => string;
|
|
11
9
|
_imageVolumeModifiedHandler: (evt: Types.EventTypes.ImageVolumeModifiedEvent) => void;
|
|
12
10
|
getFramesOfReference: () => Array<string>;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
getAnnotations: (groupKey: string, toolName?: string) => GroupSpecificAnnotations | Annotations;
|
|
12
|
+
getAnnotation: (annotationUID: string) => Annotation | undefined;
|
|
13
|
+
getNumberOfAnnotations: (groupKey: string, toolName?: string) => number;
|
|
14
|
+
addAnnotation: (annotation: Annotation, groupKey?: string) => void;
|
|
15
|
+
removeAnnotation: (annotationUID: string) => void;
|
|
16
|
+
removeAnnotations: (groupKey: string, toolName?: string) => void;
|
|
17
|
+
saveAnnotations: (groupKey?: string, toolName?: string) => AnnotationState | GroupSpecificAnnotations | Annotations;
|
|
18
|
+
restoreAnnotations: (state: AnnotationState | GroupSpecificAnnotations | Annotations, groupKey?: string, toolName?: string) => void;
|
|
19
|
+
getNumberOfAllAnnotations: () => number;
|
|
22
20
|
removeAllAnnotations: () => void;
|
|
23
|
-
private _getToolSpecificAnnotationsAndIndex;
|
|
24
21
|
}
|
|
25
22
|
declare const defaultFrameOfReferenceSpecificAnnotationManager: FrameOfReferenceSpecificAnnotationManager;
|
|
26
23
|
export { defaultFrameOfReferenceSpecificAnnotationManager };
|
|
24
|
+
export default FrameOfReferenceSpecificAnnotationManager;
|
|
@@ -10,6 +10,17 @@ const annotationLocking_1 = require("./annotationLocking");
|
|
|
10
10
|
const annotationVisibility_1 = require("./annotationVisibility");
|
|
11
11
|
class FrameOfReferenceSpecificAnnotationManager {
|
|
12
12
|
constructor(uid) {
|
|
13
|
+
this.getGroupKey = (annotationGroupSelector) => {
|
|
14
|
+
if (typeof annotationGroupSelector === 'string') {
|
|
15
|
+
return annotationGroupSelector;
|
|
16
|
+
}
|
|
17
|
+
const element = annotationGroupSelector;
|
|
18
|
+
const enabledElement = (0, core_1.getEnabledElement)(element);
|
|
19
|
+
if (!enabledElement) {
|
|
20
|
+
throw new Error('Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID');
|
|
21
|
+
}
|
|
22
|
+
return enabledElement.FrameOfReferenceUID;
|
|
23
|
+
};
|
|
13
24
|
this._imageVolumeModifiedHandler = (evt) => {
|
|
14
25
|
const eventDetail = evt.detail;
|
|
15
26
|
const { FrameOfReferenceUID } = eventDetail;
|
|
@@ -31,53 +42,53 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
31
42
|
this.getFramesOfReference = () => {
|
|
32
43
|
return Object.keys(this.annotations);
|
|
33
44
|
};
|
|
34
|
-
this.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
return;
|
|
45
|
+
this.getAnnotations = (groupKey, toolName) => {
|
|
46
|
+
const annotations = this.annotations;
|
|
47
|
+
if (!annotations[groupKey]) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
if (toolName) {
|
|
51
|
+
return annotations[groupKey][toolName];
|
|
41
52
|
}
|
|
42
|
-
return
|
|
53
|
+
return annotations[groupKey];
|
|
43
54
|
};
|
|
44
|
-
this.getAnnotation = (annotationUID
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
55
|
+
this.getAnnotation = (annotationUID) => {
|
|
56
|
+
const annotations = this.annotations;
|
|
57
|
+
for (const frameOfReferenceUID in annotations) {
|
|
58
|
+
const frameOfReferenceAnnotations = annotations[frameOfReferenceUID];
|
|
59
|
+
for (const toolName in frameOfReferenceAnnotations) {
|
|
60
|
+
const toolSpecificAnnotations = frameOfReferenceAnnotations[toolName];
|
|
61
|
+
for (const annotation of toolSpecificAnnotations) {
|
|
62
|
+
if (annotationUID === annotation.annotationUID) {
|
|
63
|
+
return annotation;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
48
67
|
}
|
|
49
|
-
const { toolSpecificAnnotations, index } = toolSpecificAnnotationsAndIndex;
|
|
50
|
-
return toolSpecificAnnotations[index];
|
|
51
68
|
};
|
|
52
|
-
this.
|
|
53
|
-
const annotations = this.
|
|
54
|
-
if (!annotations) {
|
|
69
|
+
this.getNumberOfAnnotations = (groupKey, toolName) => {
|
|
70
|
+
const annotations = this.getAnnotations(groupKey, toolName);
|
|
71
|
+
if (!annotations.length) {
|
|
55
72
|
return 0;
|
|
56
73
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return 0;
|
|
74
|
+
if (toolName) {
|
|
75
|
+
return annotations.length;
|
|
60
76
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
const framesOfReference = this.getFramesOfReference();
|
|
68
|
-
return framesOfReference.reduce((acc, frameOfReferenceUID) => {
|
|
69
|
-
const numberOfAnnotations = this.getNumberOfAnnotationsInFrameOfReference(toolName, frameOfReferenceUID);
|
|
70
|
-
return acc + numberOfAnnotations;
|
|
71
|
-
}, 0);
|
|
77
|
+
let total = 0;
|
|
78
|
+
for (const toolName in annotations) {
|
|
79
|
+
total += annotations[toolName].length;
|
|
80
|
+
}
|
|
81
|
+
return total;
|
|
72
82
|
};
|
|
73
|
-
this.addAnnotation = (annotation) => {
|
|
83
|
+
this.addAnnotation = (annotation, groupKey) => {
|
|
74
84
|
const { metadata } = annotation;
|
|
75
85
|
const { FrameOfReferenceUID, toolName } = metadata;
|
|
86
|
+
groupKey = groupKey || FrameOfReferenceUID;
|
|
76
87
|
const annotations = this.annotations;
|
|
77
|
-
let frameOfReferenceSpecificAnnotations = annotations[
|
|
88
|
+
let frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
78
89
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
79
|
-
annotations[
|
|
80
|
-
frameOfReferenceSpecificAnnotations = annotations[
|
|
90
|
+
annotations[groupKey] = {};
|
|
91
|
+
frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
81
92
|
}
|
|
82
93
|
let toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
83
94
|
if (!toolSpecificAnnotations) {
|
|
@@ -88,52 +99,81 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
88
99
|
(0, annotationLocking_1.checkAndDefineIsLockedProperty)(annotation);
|
|
89
100
|
(0, annotationVisibility_1.checkAndDefineIsVisibleProperty)(annotation);
|
|
90
101
|
};
|
|
91
|
-
this.removeAnnotation = (annotationUID
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
this.removeAnnotation = (annotationUID) => {
|
|
103
|
+
const { annotations } = this;
|
|
104
|
+
for (const groupKey in annotations) {
|
|
105
|
+
const groupAnnotations = annotations[groupKey];
|
|
106
|
+
for (const toolName in groupAnnotations) {
|
|
107
|
+
const toolAnnotations = groupAnnotations[toolName];
|
|
108
|
+
const index = toolAnnotations.findIndex((annotation) => annotation.annotationUID === annotationUID);
|
|
109
|
+
if (index !== -1) {
|
|
110
|
+
toolAnnotations.splice(index, 1);
|
|
111
|
+
if (toolAnnotations.length === 0) {
|
|
112
|
+
delete groupAnnotations[toolName];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (Object.keys(groupAnnotations).length === 0) {
|
|
117
|
+
delete annotations[groupKey];
|
|
118
|
+
}
|
|
95
119
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
120
|
+
};
|
|
121
|
+
this.removeAnnotations = (groupKey, toolName) => {
|
|
122
|
+
const annotations = this.annotations;
|
|
123
|
+
if (annotations[groupKey]) {
|
|
124
|
+
if (toolName) {
|
|
125
|
+
delete annotations[groupKey][toolName];
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
delete annotations[groupKey];
|
|
129
|
+
}
|
|
102
130
|
}
|
|
103
131
|
};
|
|
104
|
-
this.saveAnnotations = (
|
|
132
|
+
this.saveAnnotations = (groupKey, toolName) => {
|
|
105
133
|
const annotations = this.annotations;
|
|
106
|
-
if (
|
|
107
|
-
const frameOfReferenceSpecificAnnotations = annotations[
|
|
134
|
+
if (groupKey && toolName) {
|
|
135
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
108
136
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
109
137
|
return;
|
|
110
138
|
}
|
|
111
139
|
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
112
140
|
return (0, lodash_clonedeep_1.default)(toolSpecificAnnotations);
|
|
113
141
|
}
|
|
114
|
-
else if (
|
|
115
|
-
const frameOfReferenceSpecificAnnotations = annotations[
|
|
142
|
+
else if (groupKey) {
|
|
143
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
116
144
|
return (0, lodash_clonedeep_1.default)(frameOfReferenceSpecificAnnotations);
|
|
117
145
|
}
|
|
118
146
|
return (0, lodash_clonedeep_1.default)(annotations);
|
|
119
147
|
};
|
|
120
|
-
this.restoreAnnotations = (state,
|
|
148
|
+
this.restoreAnnotations = (state, groupKey, toolName) => {
|
|
121
149
|
const annotations = this.annotations;
|
|
122
|
-
if (
|
|
123
|
-
let frameOfReferenceSpecificAnnotations = annotations[
|
|
150
|
+
if (groupKey && toolName) {
|
|
151
|
+
let frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
124
152
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
125
|
-
annotations[
|
|
126
|
-
frameOfReferenceSpecificAnnotations = annotations[
|
|
153
|
+
annotations[groupKey] = {};
|
|
154
|
+
frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
127
155
|
}
|
|
128
156
|
frameOfReferenceSpecificAnnotations[toolName] = state;
|
|
129
157
|
}
|
|
130
|
-
else if (
|
|
131
|
-
annotations[
|
|
158
|
+
else if (groupKey) {
|
|
159
|
+
annotations[groupKey] = state;
|
|
132
160
|
}
|
|
133
161
|
else {
|
|
134
162
|
this.annotations = (0, lodash_clonedeep_1.default)(state);
|
|
135
163
|
}
|
|
136
164
|
};
|
|
165
|
+
this.getNumberOfAllAnnotations = () => {
|
|
166
|
+
let count = 0;
|
|
167
|
+
const annotations = this.annotations;
|
|
168
|
+
for (const groupKey in annotations) {
|
|
169
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
170
|
+
for (const toolName in frameOfReferenceSpecificAnnotations) {
|
|
171
|
+
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
172
|
+
count += toolSpecificAnnotations.length;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return count;
|
|
176
|
+
};
|
|
137
177
|
this.removeAllAnnotations = () => {
|
|
138
178
|
this.annotations = {};
|
|
139
179
|
};
|
|
@@ -144,40 +184,8 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
144
184
|
this.uid = uid;
|
|
145
185
|
core_1.eventTarget.addEventListener(core_1.Enums.Events.IMAGE_VOLUME_MODIFIED, this._imageVolumeModifiedHandler);
|
|
146
186
|
}
|
|
147
|
-
_getToolSpecificAnnotationsAndIndex(annotationUID, filter) {
|
|
148
|
-
const { toolName, FrameOfReferenceUID } = filter;
|
|
149
|
-
const annotations = this.annotations;
|
|
150
|
-
let frameOfReferenceUIDKeys;
|
|
151
|
-
if (FrameOfReferenceUID) {
|
|
152
|
-
frameOfReferenceUIDKeys = [FrameOfReferenceUID];
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
frameOfReferenceUIDKeys = Object.keys(annotations);
|
|
156
|
-
}
|
|
157
|
-
const numFrameOfReferenceUIDKeys = frameOfReferenceUIDKeys.length;
|
|
158
|
-
for (let i = 0; i < numFrameOfReferenceUIDKeys; i++) {
|
|
159
|
-
const frameOfReferenceUID = frameOfReferenceUIDKeys[i];
|
|
160
|
-
const frameOfReferenceSpecificAnnotations = annotations[frameOfReferenceUID];
|
|
161
|
-
let toolNameKeys;
|
|
162
|
-
if (toolName) {
|
|
163
|
-
toolNameKeys = [toolName];
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
toolNameKeys = Object.keys(frameOfReferenceSpecificAnnotations);
|
|
167
|
-
}
|
|
168
|
-
const numToolNameKeys = toolNameKeys.length;
|
|
169
|
-
for (let j = 0; j < numToolNameKeys; j++) {
|
|
170
|
-
const toolName = toolNameKeys[j];
|
|
171
|
-
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
172
|
-
const index = toolSpecificAnnotations.findIndex((annotation) => annotation.annotationUID === annotationUID);
|
|
173
|
-
if (index !== -1) {
|
|
174
|
-
return { toolSpecificAnnotations, index };
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
187
|
}
|
|
180
|
-
exports.default = FrameOfReferenceSpecificAnnotationManager;
|
|
181
188
|
const defaultFrameOfReferenceSpecificAnnotationManager = new FrameOfReferenceSpecificAnnotationManager('DEFAULT');
|
|
182
189
|
exports.defaultFrameOfReferenceSpecificAnnotationManager = defaultFrameOfReferenceSpecificAnnotationManager;
|
|
190
|
+
exports.default = FrameOfReferenceSpecificAnnotationManager;
|
|
183
191
|
//# sourceMappingURL=FrameOfReferenceSpecificAnnotationManager.js.map
|
package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameOfReferenceSpecificAnnotationManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"FrameOfReferenceSpecificAnnotationManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { Types } from '@cornerstonejs/core';
|
|
2
1
|
import { Annotations, Annotation } from '../../types/AnnotationTypes';
|
|
3
|
-
|
|
4
|
-
declare function
|
|
5
|
-
declare function
|
|
6
|
-
declare function
|
|
7
|
-
declare function
|
|
8
|
-
declare function
|
|
9
|
-
declare function
|
|
10
|
-
declare function
|
|
11
|
-
|
|
2
|
+
import { AnnotationGroupSelector } from '../../types';
|
|
3
|
+
declare function getAnnotationManager(): import("./FrameOfReferenceSpecificAnnotationManager").default;
|
|
4
|
+
declare function setAnnotationManager(annotationManager: any): void;
|
|
5
|
+
declare function resetAnnotationManager(): void;
|
|
6
|
+
declare function getAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): Annotations;
|
|
7
|
+
declare function addAnnotation(annotation: Annotation, annotationGroupSelector: AnnotationGroupSelector): string;
|
|
8
|
+
declare function getNumberOfAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): number;
|
|
9
|
+
declare function removeAnnotation(annotationUID: string): void;
|
|
10
|
+
declare function getAnnotation(annotationUID: string): Annotation;
|
|
11
|
+
declare function removeAllAnnotations(): void;
|
|
12
|
+
export { getAnnotations, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, };
|
|
@@ -1,78 +1,73 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.resetAnnotationManager = exports.getAnnotationManager = exports.setAnnotationManager = exports.removeAllAnnotations = exports.removeAnnotation = exports.getAnnotation = exports.addAnnotation = exports.getNumberOfAnnotations = exports.getAnnotations = void 0;
|
|
4
4
|
const core_1 = require("@cornerstonejs/core");
|
|
5
5
|
const enums_1 = require("../../enums");
|
|
6
6
|
const FrameOfReferenceSpecificAnnotationManager_1 = require("./FrameOfReferenceSpecificAnnotationManager");
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const state_1 = require("./helpers/state");
|
|
8
|
+
let defaultManager = FrameOfReferenceSpecificAnnotationManager_1.defaultFrameOfReferenceSpecificAnnotationManager;
|
|
9
|
+
function getAnnotationManager() {
|
|
10
|
+
return defaultManager;
|
|
9
11
|
}
|
|
10
|
-
exports.
|
|
11
|
-
function
|
|
12
|
-
|
|
12
|
+
exports.getAnnotationManager = getAnnotationManager;
|
|
13
|
+
function setAnnotationManager(annotationManager) {
|
|
14
|
+
defaultManager = annotationManager;
|
|
13
15
|
}
|
|
14
|
-
exports.
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
exports.setAnnotationManager = setAnnotationManager;
|
|
17
|
+
function resetAnnotationManager() {
|
|
18
|
+
defaultManager = FrameOfReferenceSpecificAnnotationManager_1.defaultFrameOfReferenceSpecificAnnotationManager;
|
|
19
|
+
}
|
|
20
|
+
exports.resetAnnotationManager = resetAnnotationManager;
|
|
21
|
+
function getAnnotations(toolName, annotationGroupSelector) {
|
|
22
|
+
const manager = getAnnotationManager();
|
|
23
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
24
|
+
return manager.getAnnotations(groupKey, toolName);
|
|
20
25
|
}
|
|
21
26
|
exports.getAnnotations = getAnnotations;
|
|
22
|
-
function addAnnotation(
|
|
23
|
-
const annotationManager = getViewportSpecificAnnotationManager(element);
|
|
27
|
+
function addAnnotation(annotation, annotationGroupSelector) {
|
|
24
28
|
if (annotation.annotationUID === undefined) {
|
|
25
29
|
annotation.annotationUID = core_1.utilities.uuidv4();
|
|
26
30
|
}
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
viewportId,
|
|
35
|
-
renderingEngineId: renderingEngine.id,
|
|
36
|
-
};
|
|
37
|
-
(0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
|
|
31
|
+
const manager = getAnnotationManager();
|
|
32
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
33
|
+
manager.addAnnotation(annotation, groupKey);
|
|
34
|
+
if (annotationGroupSelector instanceof HTMLDivElement) {
|
|
35
|
+
(0, state_1.triggerAnnotationAddedForElement)(annotation, annotationGroupSelector);
|
|
36
|
+
}
|
|
37
|
+
(0, state_1.triggerAnnotationAddedForFOR)(annotation);
|
|
38
38
|
return annotation.annotationUID;
|
|
39
39
|
}
|
|
40
40
|
exports.addAnnotation = addAnnotation;
|
|
41
|
-
function getNumberOfAnnotations(toolName,
|
|
42
|
-
const
|
|
43
|
-
|
|
41
|
+
function getNumberOfAnnotations(toolName, annotationGroupSelector) {
|
|
42
|
+
const manager = getAnnotationManager();
|
|
43
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
44
|
+
return manager.getNumberOfAnnotations(groupKey, toolName);
|
|
44
45
|
}
|
|
45
46
|
exports.getNumberOfAnnotations = getNumberOfAnnotations;
|
|
46
|
-
function removeAnnotation(annotationUID
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
annotationManager = getViewportSpecificAnnotationManager(element);
|
|
50
|
-
}
|
|
51
|
-
const annotation = annotationManager.getAnnotation(annotationUID);
|
|
47
|
+
function removeAnnotation(annotationUID) {
|
|
48
|
+
const manager = getAnnotationManager();
|
|
49
|
+
const annotation = manager.getAnnotation(annotationUID);
|
|
52
50
|
if (!annotation) {
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
|
-
|
|
53
|
+
manager.removeAnnotation(annotationUID);
|
|
56
54
|
const eventType = enums_1.Events.ANNOTATION_REMOVED;
|
|
57
55
|
const eventDetail = {
|
|
58
56
|
annotation,
|
|
59
|
-
annotationManagerUID:
|
|
57
|
+
annotationManagerUID: manager.uid,
|
|
60
58
|
};
|
|
61
59
|
(0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
|
|
62
60
|
}
|
|
63
61
|
exports.removeAnnotation = removeAnnotation;
|
|
64
|
-
function getAnnotation(annotationUID
|
|
65
|
-
const
|
|
66
|
-
const annotation =
|
|
62
|
+
function getAnnotation(annotationUID) {
|
|
63
|
+
const manager = getAnnotationManager();
|
|
64
|
+
const annotation = manager.getAnnotation(annotationUID);
|
|
67
65
|
return annotation;
|
|
68
66
|
}
|
|
69
67
|
exports.getAnnotation = getAnnotation;
|
|
70
|
-
function removeAllAnnotations(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
annotationManager = getViewportSpecificAnnotationManager(element);
|
|
74
|
-
}
|
|
75
|
-
annotationManager.removeAllAnnotations();
|
|
68
|
+
function removeAllAnnotations() {
|
|
69
|
+
const manager = getAnnotationManager();
|
|
70
|
+
manager.removeAllAnnotations();
|
|
76
71
|
}
|
|
77
72
|
exports.removeAllAnnotations = removeAllAnnotations;
|
|
78
73
|
//# sourceMappingURL=annotationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":";;;AAAA,8CAI6B;AAC7B,uCAAqC;AACrC,2GAA+G;AAI/G,2CAGyB;AAGzB,IAAI,cAAc,GAAG,4FAAgD,CAAC;AAMtE,SAAS,oBAAoB;IAC3B,OAAO,cAAc,CAAC;AACxB,CAAC;AAyJC,oDAAoB;AAnJtB,SAAS,oBAAoB,CAAC,iBAAiB;IAC7C,cAAc,GAAG,iBAAiB,CAAC;AACrC,CAAC;AAgJC,oDAAoB;AA7ItB,SAAS,sBAAsB;IAC7B,cAAc,GAAG,4FAAgD,CAAC;AACpE,CAAC;AA6IC,wDAAsB;AA9HxB,SAAS,cAAc,CACrB,QAAgB,EAChB,uBAAgD;IAEhD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAgB,CAAC;AACnE,CAAC;AA8GC,wCAAc;AAhGhB,SAAS,aAAa,CACpB,UAAsB,EACtB,uBAAgD;IAEhD,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE;QAC1C,UAAU,CAAC,aAAa,GAAG,gBAAO,CAAC,MAAM,EAAY,CAAC;KACvD;IAED,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE9D,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAI5C,IAAI,uBAAuB,YAAY,cAAc,EAAE;QACrD,IAAA,wCAAgC,EAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;KACvE;IAKD,IAAA,oCAA4B,EAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC,CAAC;AAyEC,sCAAa;AA1Df,SAAS,sBAAsB,CAC7B,QAAgB,EAChB,uBAAgD;IAEhD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAiDC,wDAAsB;AA3CxB,SAAS,gBAAgB,CAAC,aAAqB;IAC7C,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAGxD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAGxC,MAAM,SAAS,GAAG,cAAM,CAAC,kBAAkB,CAAC;IAE5C,MAAM,WAAW,GAAiC;QAChD,UAAU;QACV,oBAAoB,EAAE,OAAO,CAAC,GAAG;KAClC,CAAC;IAEF,IAAA,mBAAY,EAAC,kBAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AA0BC,4CAAgB;AApBlB,SAAS,aAAa,CAAC,aAAqB;IAC1C,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO,UAAU,CAAC;AACpB,CAAC;AAcC,sCAAa;AATf,SAAS,oBAAoB;IAC3B,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACjC,CAAC;AAQC,oDAAoB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Annotation } from '../../../types/AnnotationTypes';
|
|
2
|
+
declare function triggerAnnotationAddedForElement(annotation: Annotation, element: HTMLDivElement): void;
|
|
3
|
+
declare function triggerAnnotationAddedForFOR(annotation: Annotation): void;
|
|
4
|
+
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.triggerAnnotationAddedForFOR = exports.triggerAnnotationAddedForElement = void 0;
|
|
4
|
+
const core_1 = require("@cornerstonejs/core");
|
|
5
|
+
const enums_1 = require("../../../enums");
|
|
6
|
+
const ToolGroupManager_1 = require("../../../store/ToolGroupManager");
|
|
7
|
+
function triggerAnnotationAddedForElement(annotation, element) {
|
|
8
|
+
const enabledElement = (0, core_1.getEnabledElement)(element);
|
|
9
|
+
const { renderingEngine, viewportId } = enabledElement;
|
|
10
|
+
const eventType = enums_1.Events.ANNOTATION_ADDED;
|
|
11
|
+
const eventDetail = {
|
|
12
|
+
annotation,
|
|
13
|
+
viewportId,
|
|
14
|
+
renderingEngineId: renderingEngine.id,
|
|
15
|
+
};
|
|
16
|
+
(0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
|
|
17
|
+
}
|
|
18
|
+
exports.triggerAnnotationAddedForElement = triggerAnnotationAddedForElement;
|
|
19
|
+
function triggerAnnotationAddedForFOR(annotation) {
|
|
20
|
+
const { toolName } = annotation.metadata;
|
|
21
|
+
const toolGroups = (0, ToolGroupManager_1.getToolGroupsWithToolName)(toolName);
|
|
22
|
+
if (!toolGroups.length) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const viewportsToRender = [];
|
|
26
|
+
toolGroups.forEach((toolGroup) => {
|
|
27
|
+
toolGroup.viewportsInfo.forEach((viewportInfo) => {
|
|
28
|
+
const { renderingEngineId, viewportId } = viewportInfo;
|
|
29
|
+
const { FrameOfReferenceUID } = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
30
|
+
if (annotation.metadata.FrameOfReferenceUID === FrameOfReferenceUID) {
|
|
31
|
+
viewportsToRender.push(viewportInfo);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
if (!viewportsToRender.length) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const eventType = enums_1.Events.ANNOTATION_ADDED;
|
|
39
|
+
viewportsToRender.forEach(({ renderingEngineId, viewportId }) => {
|
|
40
|
+
const eventDetail = {
|
|
41
|
+
annotation,
|
|
42
|
+
viewportId,
|
|
43
|
+
renderingEngineId,
|
|
44
|
+
};
|
|
45
|
+
(0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
exports.triggerAnnotationAddedForFOR = triggerAnnotationAddedForFOR;
|
|
49
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/stateManagement/annotation/helpers/state.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAC7B,0CAAwC;AAExC,sEAA4E;AAQ5E,SAAS,gCAAgC,CACvC,UAAsB,EACtB,OAAuB;IAEvB,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;IAClD,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IAEvD,MAAM,SAAS,GAAG,cAAM,CAAC,gBAAgB,CAAC;IAE1C,MAAM,WAAW,GAA+B;QAC9C,UAAU;QACV,UAAU;QACV,iBAAiB,EAAE,eAAe,CAAC,EAAE;KACtC,CAAC;IAEF,IAAA,mBAAY,EAAC,kBAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAkDQ,4EAAgC;AA3CzC,SAAS,4BAA4B,CAAC,UAAsB;IAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;IAEzC,MAAM,UAAU,GAAG,IAAA,4CAAyB,EAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,OAAO;KACR;IAGD,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAE7B,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/C,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;YACvD,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAA,6BAAsB,EACpD,UAAU,EACV,iBAAiB,CAClB,CAAC;YAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,KAAK,mBAAmB,EAAE;gBACnE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAC7B,OAAO;KACR;IAED,MAAM,SAAS,GAAG,cAAM,CAAC,gBAAgB,CAAC;IAE1C,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9D,MAAM,WAAW,GAA+B;YAC9C,UAAU;YACV,UAAU;YACV,iBAAiB;SAClB,CAAC;QAEF,IAAA,mBAAY,EAAC,kBAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAE0C,oEAA4B"}
|
|
@@ -6,9 +6,10 @@ import { getAnnotations } from "./annotation/annotationState";
|
|
|
6
6
|
import { addAnnotation } from "./annotation/annotationState";
|
|
7
7
|
import { getNumberOfAnnotations } from "./annotation/annotationState";
|
|
8
8
|
import { removeAnnotation } from "./annotation/annotationState";
|
|
9
|
-
import { getDefaultAnnotationManager } from "./annotation/annotationState";
|
|
10
|
-
import { getViewportSpecificAnnotationManager } from "./annotation/annotationState";
|
|
11
9
|
import { getAnnotation } from "./annotation/annotationState";
|
|
10
|
+
import { setAnnotationManager } from "./annotation/annotationState";
|
|
11
|
+
import { getAnnotationManager } from "./annotation/annotationState";
|
|
12
|
+
import { resetAnnotationManager } from "./annotation/annotationState";
|
|
12
13
|
import { addSegmentationRepresentations } from "./segmentation";
|
|
13
14
|
import { removeSegmentationsFromToolGroup } from "./segmentation";
|
|
14
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation,
|
|
15
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, addSegmentationRepresentations, removeSegmentationsFromToolGroup };
|