@cornerstonejs/tools 1.56.1 → 1.57.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/eventListeners/annotations/annotationRemovedListener.d.ts +2 -0
- package/dist/cjs/eventListeners/annotations/annotationRemovedListener.js +35 -0
- package/dist/cjs/eventListeners/annotations/annotationRemovedListener.js.map +1 -0
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +27 -19
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.d.ts +2 -0
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js +9 -0
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js.map +1 -0
- package/dist/cjs/eventListeners/annotations/contourSegmentation/index.d.ts +1 -0
- package/dist/cjs/eventListeners/annotations/contourSegmentation/index.js +3 -1
- package/dist/cjs/eventListeners/annotations/contourSegmentation/index.js.map +1 -1
- package/dist/cjs/eventListeners/annotations/index.d.ts +2 -1
- package/dist/cjs/eventListeners/annotations/index.js +3 -1
- package/dist/cjs/eventListeners/annotations/index.js.map +1 -1
- package/dist/cjs/eventListeners/index.d.ts +2 -2
- package/dist/cjs/eventListeners/index.js +2 -1
- package/dist/cjs/eventListeners/index.js.map +1 -1
- package/dist/cjs/init.js +1 -0
- package/dist/cjs/init.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +2 -0
- package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js +11 -0
- package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
- package/dist/cjs/types/ContourSegmentationAnnotation.d.ts +1 -1
- package/dist/cjs/utilities/getViewportForAnnotation.js +6 -13
- package/dist/cjs/utilities/getViewportForAnnotation.js.map +1 -1
- package/dist/cjs/utilities/getViewportsForAnnotation.d.ts +2 -0
- package/dist/cjs/utilities/getViewportsForAnnotation.js +20 -0
- package/dist/cjs/utilities/getViewportsForAnnotation.js.map +1 -0
- package/dist/esm/eventListeners/annotations/annotationRemovedListener.js +9 -0
- package/dist/esm/eventListeners/annotations/annotationRemovedListener.js.map +1 -0
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +25 -20
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js +6 -0
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js.map +1 -0
- package/dist/esm/eventListeners/annotations/contourSegmentation/index.js +1 -0
- package/dist/esm/eventListeners/annotations/contourSegmentation/index.js.map +1 -1
- package/dist/esm/eventListeners/annotations/index.js +2 -1
- package/dist/esm/eventListeners/annotations/index.js.map +1 -1
- package/dist/esm/eventListeners/index.js +2 -2
- package/dist/esm/eventListeners/index.js.map +1 -1
- package/dist/esm/init.js +2 -1
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js +11 -0
- package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
- package/dist/esm/utilities/getViewportForAnnotation.js +3 -13
- package/dist/esm/utilities/getViewportForAnnotation.js.map +1 -1
- package/dist/esm/utilities/getViewportsForAnnotation.js +17 -0
- package/dist/esm/utilities/getViewportsForAnnotation.js.map +1 -0
- package/dist/types/eventListeners/annotations/annotationRemovedListener.d.ts +3 -0
- package/dist/types/eventListeners/annotations/annotationRemovedListener.d.ts.map +1 -0
- package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts.map +1 -1
- package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.d.ts +3 -0
- package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.d.ts.map +1 -0
- package/dist/types/eventListeners/annotations/contourSegmentation/index.d.ts +1 -0
- package/dist/types/eventListeners/annotations/contourSegmentation/index.d.ts.map +1 -1
- package/dist/types/eventListeners/annotations/index.d.ts +2 -1
- package/dist/types/eventListeners/annotations/index.d.ts.map +1 -1
- package/dist/types/eventListeners/index.d.ts +2 -2
- package/dist/types/eventListeners/index.d.ts.map +1 -1
- package/dist/types/init.d.ts.map +1 -1
- package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +2 -0
- package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts.map +1 -1
- package/dist/types/types/ContourSegmentationAnnotation.d.ts +1 -1
- package/dist/types/types/ContourSegmentationAnnotation.d.ts.map +1 -1
- package/dist/types/utilities/getViewportForAnnotation.d.ts.map +1 -1
- package/dist/types/utilities/getViewportsForAnnotation.d.ts +3 -0
- package/dist/types/utilities/getViewportsForAnnotation.d.ts.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/eventListeners/annotations/annotationRemovedListener.ts +13 -0
- package/src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts +42 -24
- package/src/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.ts +11 -0
- package/src/eventListeners/annotations/contourSegmentation/index.ts +1 -0
- package/src/eventListeners/annotations/index.ts +2 -0
- package/src/eventListeners/index.ts +2 -0
- package/src/init.ts +6 -0
- package/src/tools/annotation/PlanarFreehandContourSegmentationTool.ts +25 -0
- package/src/types/ContourSegmentationAnnotation.ts +1 -1
- package/src/utilities/getViewportForAnnotation.ts +4 -16
- package/src/utilities/getViewportsForAnnotation.ts +31 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const contourSegUtils = __importStar(require("../../utilities/contourSegmentation"));
|
|
27
|
+
const contourSegmentation_1 = require("./contourSegmentation");
|
|
28
|
+
function annotationRemovedListener(evt) {
|
|
29
|
+
const annotation = evt.detail.annotation;
|
|
30
|
+
if (contourSegUtils.isContourSegmentationAnnotation(annotation)) {
|
|
31
|
+
(0, contourSegmentation_1.contourSegmentationRemoved)(evt);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = annotationRemovedListener;
|
|
35
|
+
//# sourceMappingURL=annotationRemovedListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationRemovedListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/annotations/annotationRemovedListener.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,qFAAuE;AACvE,+DAAmE;AAEnE,SAAwB,yBAAyB,CAC/C,GAA+B;IAE/B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;IAEzC,IAAI,eAAe,CAAC,+BAA+B,CAAC,UAAU,CAAC,EAAE;QAC/D,IAAA,gDAA0B,EAAC,GAAG,CAAC,CAAC;KACjC;AACH,CAAC;AARD,4CAQC"}
|
package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js
CHANGED
|
@@ -31,8 +31,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
34
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
38
|
const core_1 = require("@cornerstonejs/core");
|
|
39
|
+
const getViewportsForAnnotation_1 = __importDefault(require("../../../utilities/getViewportsForAnnotation"));
|
|
36
40
|
const utilities_1 = require("../../../utilities");
|
|
37
41
|
const viewportFilters_1 = require("../../../utilities/viewportFilters");
|
|
38
42
|
const annotationState_1 = require("../../../stateManagement/annotation/annotationState");
|
|
@@ -49,7 +53,7 @@ function contourSegmentationCompletedListener(evt) {
|
|
|
49
53
|
if (!contourSegUtils.isContourSegmentationAnnotation(sourceAnnotation)) {
|
|
50
54
|
return;
|
|
51
55
|
}
|
|
52
|
-
const viewport = (
|
|
56
|
+
const viewport = getViewport(sourceAnnotation);
|
|
53
57
|
const contourSegmentationAnnotations = getValidContourSegmentationAnnotations(sourceAnnotation);
|
|
54
58
|
if (!contourSegmentationAnnotations.length) {
|
|
55
59
|
return;
|
|
@@ -59,9 +63,6 @@ function contourSegmentationCompletedListener(evt) {
|
|
|
59
63
|
if (!targetAnnotationInfo) {
|
|
60
64
|
return;
|
|
61
65
|
}
|
|
62
|
-
if (!isFreehandContourSegToolRegistered(viewport)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
66
|
const { targetAnnotation, targetPolyline, isContourHole } = targetAnnotationInfo;
|
|
66
67
|
if (isContourHole) {
|
|
67
68
|
const { contourHoleProcessingEnabled = false } = evt.detail;
|
|
@@ -76,22 +77,25 @@ function contourSegmentationCompletedListener(evt) {
|
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
exports.default = contourSegmentationCompletedListener;
|
|
79
|
-
function
|
|
80
|
+
function isFreehandContourSegToolRegisteredForViewport(viewport, silent = false) {
|
|
80
81
|
const { toolName } = tools_1.PlanarFreehandContourSegmentationTool;
|
|
81
|
-
if (!(0, store_1.hasTool)(tools_1.PlanarFreehandContourSegmentationTool)) {
|
|
82
|
-
console.warn(`${toolName} is not registered in cornerstone`);
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
82
|
const toolGroup = store_1.ToolGroupManager.getToolGroupForViewport(viewport.id, viewport.renderingEngineId);
|
|
83
|
+
let errorMessage;
|
|
86
84
|
if (!toolGroup.hasTool(toolName)) {
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
errorMessage = `Tool ${toolName} not added to ${toolGroup.id} toolGroup`;
|
|
86
|
+
}
|
|
87
|
+
else if (!toolGroup.getToolOptions(toolName)) {
|
|
88
|
+
errorMessage = `Tool ${toolName} must be in active/passive state`;
|
|
89
89
|
}
|
|
90
|
-
if (!
|
|
91
|
-
console.warn(
|
|
92
|
-
return false;
|
|
90
|
+
if (errorMessage && !silent) {
|
|
91
|
+
console.warn(errorMessage);
|
|
93
92
|
}
|
|
94
|
-
return
|
|
93
|
+
return !errorMessage;
|
|
94
|
+
}
|
|
95
|
+
function getViewport(annotation) {
|
|
96
|
+
const viewports = (0, getViewportsForAnnotation_1.default)(annotation);
|
|
97
|
+
const viewportWithToolRegistered = viewports.find((viewport) => isFreehandContourSegToolRegisteredForViewport(viewport, true));
|
|
98
|
+
return viewportWithToolRegistered !== null && viewportWithToolRegistered !== void 0 ? viewportWithToolRegistered : viewports[0];
|
|
95
99
|
}
|
|
96
100
|
function convertContourPolylineToCanvasSpace(polyline, viewport) {
|
|
97
101
|
const numPoints = polyline.length;
|
|
@@ -103,10 +107,6 @@ function convertContourPolylineToCanvasSpace(polyline, viewport) {
|
|
|
103
107
|
}
|
|
104
108
|
function getValidContourSegmentationAnnotations(sourceAnnotation) {
|
|
105
109
|
const { annotationUID: sourceAnnotationUID } = sourceAnnotation;
|
|
106
|
-
const { FrameOfReferenceUID } = sourceAnnotation.metadata;
|
|
107
|
-
if (!FrameOfReferenceUID) {
|
|
108
|
-
return [];
|
|
109
|
-
}
|
|
110
110
|
const allAnnotations = (0, annotationState_1.getAllAnnotations)();
|
|
111
111
|
return allAnnotations.filter((targetAnnotation) => targetAnnotation.annotationUID &&
|
|
112
112
|
targetAnnotation.annotationUID !== sourceAnnotationUID &&
|
|
@@ -160,6 +160,13 @@ function getContourHolesData(viewport, annotation) {
|
|
|
160
160
|
}
|
|
161
161
|
function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline) {
|
|
162
162
|
var _a;
|
|
163
|
+
if (!(0, store_1.hasTool)(tools_1.PlanarFreehandContourSegmentationTool)) {
|
|
164
|
+
console.warn(`${tools_1.PlanarFreehandContourSegmentationTool.toolName} is not registered in cornerstone`);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (!isFreehandContourSegToolRegisteredForViewport(viewport)) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
163
170
|
const sourceStartPoint = sourcePolyline[0];
|
|
164
171
|
const mergePolylines = utilities_1.math.polyline.containsPoint(targetPolyline, sourceStartPoint);
|
|
165
172
|
const contourHolesData = getContourHolesData(viewport, targetAnnotation);
|
|
@@ -231,6 +238,7 @@ function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnno
|
|
|
231
238
|
targetWindingDirection: ContourAnnotation_1.ContourWindingDirection.Clockwise,
|
|
232
239
|
}, viewport);
|
|
233
240
|
(0, annotationState_1.addAnnotation)(newAnnotation, element);
|
|
241
|
+
contourSegUtils.addContourSegmentationAnnotation(newAnnotation);
|
|
234
242
|
(_a = reassignedContourHolesMap
|
|
235
243
|
.get(polyline)) === null || _a === void 0 ? void 0 : _a.forEach((holeData) => (0, annotationState_1.addChildAnnotation)(newAnnotation, holeData.annotation));
|
|
236
244
|
}
|
package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const contourSegmentation_1 = require("../../../utilities/contourSegmentation");
|
|
4
|
+
function contourSegmentationRemovedListener(evt) {
|
|
5
|
+
const annotation = evt.detail.annotation;
|
|
6
|
+
(0, contourSegmentation_1.removeContourSegmentationAnnotation)(annotation);
|
|
7
|
+
}
|
|
8
|
+
exports.default = contourSegmentationRemovedListener;
|
|
9
|
+
//# sourceMappingURL=contourSegmentationRemoved.js.map
|
package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contourSegmentationRemoved.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.ts"],"names":[],"mappings":";;AAEA,gFAA6F;AAE7F,SAAwB,kCAAkC,CACxD,GAA+B;IAE/B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAA2C,CAAC;IAE1E,IAAA,yDAAmC,EAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAND,qDAMC"}
|
|
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.contourSegmentationCompleted = void 0;
|
|
6
|
+
exports.contourSegmentationRemoved = exports.contourSegmentationCompleted = void 0;
|
|
7
7
|
var contourSegmentationCompleted_1 = require("./contourSegmentationCompleted");
|
|
8
8
|
Object.defineProperty(exports, "contourSegmentationCompleted", { enumerable: true, get: function () { return __importDefault(contourSegmentationCompleted_1).default; } });
|
|
9
|
+
var contourSegmentationRemoved_1 = require("./contourSegmentationRemoved");
|
|
10
|
+
Object.defineProperty(exports, "contourSegmentationRemoved", { enumerable: true, get: function () { return __importDefault(contourSegmentationRemoved_1).default; } });
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,+EAAyF;AAAhF,6JAAA,OAAO,OAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,+EAAyF;AAAhF,6JAAA,OAAO,OAAgC;AAChD,2EAAqF;AAA5E,yJAAA,OAAO,OAA8B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import annotationCompletedListener from './annotationCompletedListener';
|
|
2
2
|
import annotationSelectionListener from './annotationSelectionListener';
|
|
3
3
|
import annotationModifiedListener from './annotationModifiedListener';
|
|
4
|
-
|
|
4
|
+
import annotationRemovedListener from './annotationRemovedListener';
|
|
5
|
+
export { annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener, };
|
|
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.annotationModifiedListener = exports.annotationSelectionListener = exports.annotationCompletedListener = void 0;
|
|
6
|
+
exports.annotationRemovedListener = exports.annotationModifiedListener = exports.annotationSelectionListener = exports.annotationCompletedListener = void 0;
|
|
7
7
|
const annotationCompletedListener_1 = __importDefault(require("./annotationCompletedListener"));
|
|
8
8
|
exports.annotationCompletedListener = annotationCompletedListener_1.default;
|
|
9
9
|
const annotationSelectionListener_1 = __importDefault(require("./annotationSelectionListener"));
|
|
10
10
|
exports.annotationSelectionListener = annotationSelectionListener_1.default;
|
|
11
11
|
const annotationModifiedListener_1 = __importDefault(require("./annotationModifiedListener"));
|
|
12
12
|
exports.annotationModifiedListener = annotationModifiedListener_1.default;
|
|
13
|
+
const annotationRemovedListener_1 = __importDefault(require("./annotationRemovedListener"));
|
|
14
|
+
exports.annotationRemovedListener = annotationRemovedListener_1.default;
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/eventListeners/annotations/index.ts"],"names":[],"mappings":";;;;;;AAAA,gGAAwE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/eventListeners/annotations/index.ts"],"names":[],"mappings":";;;;;;AAAA,gGAAwE;AAMtE,sCANK,qCAA2B,CAML;AAL7B,gGAAwE;AAMtE,sCANK,qCAA2B,CAML;AAL7B,8FAAsE;AAMpE,qCANK,oCAA0B,CAML;AAL5B,4FAAoE;AAMlE,oCANK,mCAAyB,CAML"}
|
|
@@ -3,5 +3,5 @@ import touchEventListeners from './touch';
|
|
|
3
3
|
import wheelEventListener from './wheel';
|
|
4
4
|
import keyEventListener from './keyboard';
|
|
5
5
|
import { segmentationDataModifiedEventListener, segmentationRepresentationModifiedEventListener, segmentationRepresentationRemovedEventListener, segmentationModifiedListener, imageChangeEventListener } from './segmentation';
|
|
6
|
-
import { annotationCompletedListener, annotationSelectionListener, annotationModifiedListener } from './annotations';
|
|
7
|
-
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener, segmentationRepresentationModifiedEventListener, segmentationModifiedListener, segmentationRepresentationRemovedEventListener, segmentationDataModifiedEventListener, imageChangeEventListener, annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, };
|
|
6
|
+
import { annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener } from './annotations';
|
|
7
|
+
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener, segmentationRepresentationModifiedEventListener, segmentationModifiedListener, segmentationRepresentationRemovedEventListener, segmentationDataModifiedEventListener, imageChangeEventListener, annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener, };
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.annotationModifiedListener = exports.annotationSelectionListener = exports.annotationCompletedListener = exports.imageChangeEventListener = exports.segmentationDataModifiedEventListener = exports.segmentationRepresentationRemovedEventListener = exports.segmentationModifiedListener = exports.segmentationRepresentationModifiedEventListener = exports.keyEventListener = exports.wheelEventListener = exports.touchEventListeners = exports.mouseEventListeners = void 0;
|
|
6
|
+
exports.annotationRemovedListener = exports.annotationModifiedListener = exports.annotationSelectionListener = exports.annotationCompletedListener = exports.imageChangeEventListener = exports.segmentationDataModifiedEventListener = exports.segmentationRepresentationRemovedEventListener = exports.segmentationModifiedListener = exports.segmentationRepresentationModifiedEventListener = exports.keyEventListener = exports.wheelEventListener = exports.touchEventListeners = exports.mouseEventListeners = void 0;
|
|
7
7
|
const mouse_1 = __importDefault(require("./mouse"));
|
|
8
8
|
exports.mouseEventListeners = mouse_1.default;
|
|
9
9
|
const touch_1 = __importDefault(require("./touch"));
|
|
@@ -22,4 +22,5 @@ const annotations_1 = require("./annotations");
|
|
|
22
22
|
Object.defineProperty(exports, "annotationCompletedListener", { enumerable: true, get: function () { return annotations_1.annotationCompletedListener; } });
|
|
23
23
|
Object.defineProperty(exports, "annotationSelectionListener", { enumerable: true, get: function () { return annotations_1.annotationSelectionListener; } });
|
|
24
24
|
Object.defineProperty(exports, "annotationModifiedListener", { enumerable: true, get: function () { return annotations_1.annotationModifiedListener; } });
|
|
25
|
+
Object.defineProperty(exports, "annotationRemovedListener", { enumerable: true, get: function () { return annotations_1.annotationRemovedListener; } });
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eventListeners/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eventListeners/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA0C;AAoBxC,8BApBK,eAAmB,CAoBL;AAnBrB,oDAA0C;AAoBxC,8BApBK,eAAmB,CAoBL;AAnBrB,oDAAyC;AAoBvC,6BApBK,eAAkB,CAoBL;AAnBpB,0DAA0C;AAoBxC,2BApBK,kBAAgB,CAoBL;AAnBlB,iDAMwB;AAiBtB,sHAtBA,oDAAqC,OAsBA;AAHrC,gIAlBA,8DAA+C,OAkBA;AAE/C,+HAnBA,6DAA8C,OAmBA;AAD9C,6GAjBA,2CAA4B,OAiBA;AAG5B,yGAnBA,uCAAwB,OAmBA;AAjB1B,+CAKuB;AAarB,4GAjBA,yCAA2B,OAiBA;AAC3B,4GAjBA,yCAA2B,OAiBA;AAC3B,2GAjBA,wCAA0B,OAiBA;AAC1B,0GAjBA,uCAAyB,OAiBA"}
|
package/dist/cjs/init.js
CHANGED
|
@@ -76,6 +76,7 @@ function _addCornerstoneToolsEventListeners() {
|
|
|
76
76
|
core_1.eventTarget.addEventListener(enums_1.Events.ANNOTATION_MODIFIED, eventListeners_1.annotationModifiedListener);
|
|
77
77
|
core_1.eventTarget.addEventListener(enums_1.Events.ANNOTATION_SELECTION_CHANGE, eventListeners_1.annotationSelectionListener);
|
|
78
78
|
core_1.eventTarget.addEventListener(enums_1.Events.ANNOTATION_SELECTION_CHANGE, eventListeners_1.annotationSelectionListener);
|
|
79
|
+
core_1.eventTarget.addEventListener(enums_1.Events.ANNOTATION_REMOVED, eventListeners_1.annotationRemovedListener);
|
|
79
80
|
core_1.eventTarget.addEventListener(enums_1.Events.SEGMENTATION_MODIFIED, eventListeners_1.segmentationModifiedListener);
|
|
80
81
|
core_1.eventTarget.addEventListener(enums_1.Events.SEGMENTATION_DATA_MODIFIED, eventListeners_1.segmentationDataModifiedEventListener);
|
|
81
82
|
core_1.eventTarget.addEventListener(enums_1.Events.SEGMENTATION_REPRESENTATION_MODIFIED, eventListeners_1.segmentationRepresentationModifiedEventListener);
|
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,kFAAoF;AACpF,wFAAsG;AACtG,mCAAiD;AACjD,mCAAkE;AAClE,yCAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { PublicToolProps } from '../../types';
|
|
2
|
+
import type { AnnotationRenderContext } from '../../types';
|
|
2
3
|
import PlanarFreehandROITool from './PlanarFreehandROITool';
|
|
3
4
|
declare class PlanarFreehandContourSegmentationTool extends PlanarFreehandROITool {
|
|
4
5
|
static toolName: any;
|
|
5
6
|
constructor(toolProps: PublicToolProps);
|
|
6
7
|
protected isContourSegmentationTool(): boolean;
|
|
8
|
+
protected renderAnnotationInstance(renderContext: AnnotationRenderContext): boolean;
|
|
7
9
|
}
|
|
8
10
|
export default PlanarFreehandContourSegmentationTool;
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const core_1 = require("@cornerstonejs/core");
|
|
7
|
+
const triggerSegmentationEvents_1 = require("../../stateManagement/segmentation/triggerSegmentationEvents");
|
|
7
8
|
const PlanarFreehandROITool_1 = __importDefault(require("./PlanarFreehandROITool"));
|
|
8
9
|
class PlanarFreehandContourSegmentationTool extends PlanarFreehandROITool_1.default {
|
|
9
10
|
constructor(toolProps) {
|
|
@@ -18,6 +19,16 @@ class PlanarFreehandContourSegmentationTool extends PlanarFreehandROITool_1.defa
|
|
|
18
19
|
isContourSegmentationTool() {
|
|
19
20
|
return true;
|
|
20
21
|
}
|
|
22
|
+
renderAnnotationInstance(renderContext) {
|
|
23
|
+
const annotation = renderContext.annotation;
|
|
24
|
+
const { invalidated } = annotation;
|
|
25
|
+
const renderResult = super.renderAnnotationInstance(renderContext);
|
|
26
|
+
if (invalidated) {
|
|
27
|
+
const { segmentationId } = annotation.data.segmentation;
|
|
28
|
+
(0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId);
|
|
29
|
+
}
|
|
30
|
+
return renderResult;
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
33
|
PlanarFreehandContourSegmentationTool.toolName =
|
|
23
34
|
'PlanarFreehandContourSegmentationTool';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanarFreehandContourSegmentationTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/PlanarFreehandContourSegmentationTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAAgD;
|
|
1
|
+
{"version":3,"file":"PlanarFreehandContourSegmentationTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/PlanarFreehandContourSegmentationTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAAgD;AAIhD,4GAA+G;AAC/G,oFAA4D;AAE5D,MAAM,qCAAsC,SAAQ,+BAAqB;IAGvE,YAAY,SAA0B;QACpC,MAAM,YAAY,GAAG,gBAAS,CAAC,SAAS,CACtC;YACE,aAAa,EAAE;gBACb,cAAc,EAAE,KAAK;gBAMrB,iBAAiB,EAAE,KAAK;aACzB;SACF,EACD,SAAS,CACV,CAAC;QAEF,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC;IAES,yBAAyB;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,wBAAwB,CAChC,aAAsC;QAEtC,MAAM,UAAU,GACd,aAAa,CAAC,UAAyD,CAAC;QAC1E,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QAGnC,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAEnE,IAAI,WAAW,EAAE;YACf,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;YAKxD,IAAA,2DAA+B,EAAC,cAAc,CAAC,CAAC;SACjD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,qCAAqC,CAAC,QAAQ;IAC5C,uCAAuC,CAAC;AAE1C,kBAAe,qCAAqC,CAAC"}
|
|
@@ -11,7 +11,7 @@ export declare type ContourSegmentationAnnotationData = {
|
|
|
11
11
|
originalPolyline?: Types.Point3[];
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
handles
|
|
14
|
+
handles?: {
|
|
15
15
|
interpolationSources?: Types.PointsManager<Types.Point3>[];
|
|
16
16
|
};
|
|
17
17
|
onInterpolationComplete?: (annotation: ContourSegmentationAnnotation) => unknown;
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const { isEqual } = core_1.utilities;
|
|
6
|
+
const getViewportsForAnnotation_1 = __importDefault(require("./getViewportsForAnnotation"));
|
|
5
7
|
function getViewportForAnnotation(annotation) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
if (enabledElement.FrameOfReferenceUID === metadata.FrameOfReferenceUID) {
|
|
9
|
-
const viewport = enabledElement.viewport;
|
|
10
|
-
const { viewPlaneNormal, viewUp } = viewport.getCamera();
|
|
11
|
-
return (isEqual(viewPlaneNormal, metadata.viewPlaneNormal) &&
|
|
12
|
-
(!metadata.viewUp || isEqual(viewUp, metadata.viewUp)));
|
|
13
|
-
}
|
|
14
|
-
return;
|
|
15
|
-
});
|
|
16
|
-
return enabledElement === null || enabledElement === void 0 ? void 0 : enabledElement.viewport;
|
|
8
|
+
const viewports = (0, getViewportsForAnnotation_1.default)(annotation);
|
|
9
|
+
return viewports.length ? viewports[0] : undefined;
|
|
17
10
|
}
|
|
18
11
|
exports.default = getViewportForAnnotation;
|
|
19
12
|
//# sourceMappingURL=getViewportForAnnotation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewportForAnnotation.js","sourceRoot":"","sources":["../../../src/utilities/getViewportForAnnotation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getViewportForAnnotation.js","sourceRoot":"","sources":["../../../src/utilities/getViewportForAnnotation.ts"],"names":[],"mappings":";;;;;AACA,4FAAoE;AAWpE,SAAwB,wBAAwB,CAAC,UAAsB;IACrE,MAAM,SAAS,GAAG,IAAA,mCAAyB,EAAC,UAAU,CAAC,CAAC;IAExD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAJD,2CAIC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@cornerstonejs/core");
|
|
4
|
+
const { isEqual } = core_1.utilities;
|
|
5
|
+
function getViewportsForAnnotation(annotation) {
|
|
6
|
+
const { metadata } = annotation;
|
|
7
|
+
return (0, core_1.getEnabledElements)()
|
|
8
|
+
.filter((enabledElement) => {
|
|
9
|
+
if (enabledElement.FrameOfReferenceUID === metadata.FrameOfReferenceUID) {
|
|
10
|
+
const viewport = enabledElement.viewport;
|
|
11
|
+
const { viewPlaneNormal, viewUp } = viewport.getCamera();
|
|
12
|
+
return (isEqual(viewPlaneNormal, metadata.viewPlaneNormal) &&
|
|
13
|
+
(!metadata.viewUp || isEqual(viewUp, metadata.viewUp)));
|
|
14
|
+
}
|
|
15
|
+
return;
|
|
16
|
+
})
|
|
17
|
+
.map((enabledElement) => enabledElement.viewport);
|
|
18
|
+
}
|
|
19
|
+
exports.default = getViewportsForAnnotation;
|
|
20
|
+
//# sourceMappingURL=getViewportsForAnnotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getViewportsForAnnotation.js","sourceRoot":"","sources":["../../../src/utilities/getViewportsForAnnotation.ts"],"names":[],"mappings":";;AAAA,8CAA+E;AAG/E,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAO,CAAC;AAW5B,SAAwB,yBAAyB,CAAC,UAAsB;IACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAEhC,OAAO,IAAA,yBAAkB,GAAE;SACxB,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE;QACzB,IAAI,cAAc,CAAC,mBAAmB,KAAK,QAAQ,CAAC,mBAAmB,EAAE;YACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;YACzC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzD,OAAO,CACL,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC;gBAClD,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CACvD,CAAC;SACH;QACD,OAAO;IACT,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAhBD,4CAgBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as contourSegUtils from '../../utilities/contourSegmentation';
|
|
2
|
+
import { contourSegmentationRemoved } from './contourSegmentation';
|
|
3
|
+
export default function annotationRemovedListener(evt) {
|
|
4
|
+
const annotation = evt.detail.annotation;
|
|
5
|
+
if (contourSegUtils.isContourSegmentationAnnotation(annotation)) {
|
|
6
|
+
contourSegmentationRemoved(evt);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=annotationRemovedListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationRemovedListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/annotations/annotationRemovedListener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,GAA+B;IAE/B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;IAEzC,IAAI,eAAe,CAAC,+BAA+B,CAAC,UAAU,CAAC,EAAE;QAC/D,0BAA0B,CAAC,GAAG,CAAC,CAAC;KACjC;AACH,CAAC"}
|
package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getEnabledElement, utilities as csUtils, } from '@cornerstonejs/core';
|
|
2
|
-
import
|
|
2
|
+
import getViewportsForAnnotation from '../../../utilities/getViewportsForAnnotation';
|
|
3
|
+
import { math, triggerAnnotationRenderForViewportIds, } from '../../../utilities';
|
|
3
4
|
import { getViewportIdsWithToolToRender } from '../../../utilities/viewportFilters';
|
|
4
5
|
import { addAnnotation, removeAnnotation, getAllAnnotations, getChildAnnotations, addChildAnnotation, clearParentAnnotation, } from '../../../stateManagement/annotation/annotationState';
|
|
5
6
|
import * as contourUtils from '../../../utilities/contours';
|
|
@@ -14,7 +15,7 @@ export default async function contourSegmentationCompletedListener(evt) {
|
|
|
14
15
|
if (!contourSegUtils.isContourSegmentationAnnotation(sourceAnnotation)) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const viewport =
|
|
18
|
+
const viewport = getViewport(sourceAnnotation);
|
|
18
19
|
const contourSegmentationAnnotations = getValidContourSegmentationAnnotations(sourceAnnotation);
|
|
19
20
|
if (!contourSegmentationAnnotations.length) {
|
|
20
21
|
return;
|
|
@@ -24,9 +25,6 @@ export default async function contourSegmentationCompletedListener(evt) {
|
|
|
24
25
|
if (!targetAnnotationInfo) {
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
|
-
if (!isFreehandContourSegToolRegistered(viewport)) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
28
|
const { targetAnnotation, targetPolyline, isContourHole } = targetAnnotationInfo;
|
|
31
29
|
if (isContourHole) {
|
|
32
30
|
const { contourHoleProcessingEnabled = false } = evt.detail;
|
|
@@ -39,22 +37,25 @@ export default async function contourSegmentationCompletedListener(evt) {
|
|
|
39
37
|
combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline);
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
|
-
function
|
|
40
|
+
function isFreehandContourSegToolRegisteredForViewport(viewport, silent = false) {
|
|
43
41
|
const { toolName } = PlanarFreehandContourSegmentationTool;
|
|
44
|
-
if (!cstHasTool(PlanarFreehandContourSegmentationTool)) {
|
|
45
|
-
console.warn(`${toolName} is not registered in cornerstone`);
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
42
|
const toolGroup = ToolGroupManager.getToolGroupForViewport(viewport.id, viewport.renderingEngineId);
|
|
43
|
+
let errorMessage;
|
|
49
44
|
if (!toolGroup.hasTool(toolName)) {
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
errorMessage = `Tool ${toolName} not added to ${toolGroup.id} toolGroup`;
|
|
46
|
+
}
|
|
47
|
+
else if (!toolGroup.getToolOptions(toolName)) {
|
|
48
|
+
errorMessage = `Tool ${toolName} must be in active/passive state`;
|
|
52
49
|
}
|
|
53
|
-
if (!
|
|
54
|
-
console.warn(
|
|
55
|
-
return false;
|
|
50
|
+
if (errorMessage && !silent) {
|
|
51
|
+
console.warn(errorMessage);
|
|
56
52
|
}
|
|
57
|
-
return
|
|
53
|
+
return !errorMessage;
|
|
54
|
+
}
|
|
55
|
+
function getViewport(annotation) {
|
|
56
|
+
const viewports = getViewportsForAnnotation(annotation);
|
|
57
|
+
const viewportWithToolRegistered = viewports.find((viewport) => isFreehandContourSegToolRegisteredForViewport(viewport, true));
|
|
58
|
+
return viewportWithToolRegistered ?? viewports[0];
|
|
58
59
|
}
|
|
59
60
|
function convertContourPolylineToCanvasSpace(polyline, viewport) {
|
|
60
61
|
const numPoints = polyline.length;
|
|
@@ -66,10 +67,6 @@ function convertContourPolylineToCanvasSpace(polyline, viewport) {
|
|
|
66
67
|
}
|
|
67
68
|
function getValidContourSegmentationAnnotations(sourceAnnotation) {
|
|
68
69
|
const { annotationUID: sourceAnnotationUID } = sourceAnnotation;
|
|
69
|
-
const { FrameOfReferenceUID } = sourceAnnotation.metadata;
|
|
70
|
-
if (!FrameOfReferenceUID) {
|
|
71
|
-
return [];
|
|
72
|
-
}
|
|
73
70
|
const allAnnotations = getAllAnnotations();
|
|
74
71
|
return allAnnotations.filter((targetAnnotation) => targetAnnotation.annotationUID &&
|
|
75
72
|
targetAnnotation.annotationUID !== sourceAnnotationUID &&
|
|
@@ -122,6 +119,13 @@ function getContourHolesData(viewport, annotation) {
|
|
|
122
119
|
});
|
|
123
120
|
}
|
|
124
121
|
function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline) {
|
|
122
|
+
if (!cstHasTool(PlanarFreehandContourSegmentationTool)) {
|
|
123
|
+
console.warn(`${PlanarFreehandContourSegmentationTool.toolName} is not registered in cornerstone`);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (!isFreehandContourSegToolRegisteredForViewport(viewport)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
125
129
|
const sourceStartPoint = sourcePolyline[0];
|
|
126
130
|
const mergePolylines = math.polyline.containsPoint(targetPolyline, sourceStartPoint);
|
|
127
131
|
const contourHolesData = getContourHolesData(viewport, targetAnnotation);
|
|
@@ -198,6 +202,7 @@ function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnno
|
|
|
198
202
|
targetWindingDirection: ContourWindingDirection.Clockwise,
|
|
199
203
|
}, viewport);
|
|
200
204
|
addAnnotation(newAnnotation, element);
|
|
205
|
+
contourSegUtils.addContourSegmentationAnnotation(newAnnotation);
|
|
201
206
|
reassignedContourHolesMap
|
|
202
207
|
.get(polyline)
|
|
203
208
|
?.forEach((holeData) => addChildAnnotation(newAnnotation, holeData.annotation));
|
package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,IAAI,OAAO,GAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,
|
|
1
|
+
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"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"}
|