@cornerstonejs/tools 0.17.2 → 0.18.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/enums/Events.d.ts +1 -0
- package/dist/cjs/enums/Events.js +1 -0
- package/dist/cjs/enums/Events.js.map +1 -1
- package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +3 -0
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
- package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js +7 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js +8 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +16 -6
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/cjs/tools/CrosshairsTool.js +6 -5
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/ZoomTool.js +1 -1
- package/dist/cjs/tools/ZoomTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -0
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js +20 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
- package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/types/BoundsIJK.d.ts +3 -0
- package/dist/cjs/types/BoundsIJK.js +3 -0
- package/dist/cjs/types/BoundsIJK.js.map +1 -0
- package/dist/cjs/types/EventTypes.d.ts +5 -1
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
- package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +13 -0
- package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +40 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
- package/dist/cjs/utilities/boundingBox/index.d.ts +3 -0
- package/dist/cjs/utilities/boundingBox/index.js +11 -0
- package/dist/cjs/utilities/boundingBox/index.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +3 -1
- package/dist/cjs/utilities/index.js +5 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.d.ts +1 -2
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +42 -12
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +51 -0
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
- package/dist/cjs/utilities/rectangleROITool/index.d.ts +2 -0
- package/dist/cjs/utilities/rectangleROITool/index.js +9 -0
- package/dist/cjs/utilities/rectangleROITool/index.js.map +1 -0
- package/dist/cjs/utilities/segmentation/index.d.ts +2 -2
- package/dist/cjs/utilities/segmentation/index.js +3 -4
- package/dist/cjs/utilities/segmentation/index.js.map +1 -1
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +42 -0
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +13 -69
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/esm/enums/Events.d.ts +1 -0
- package/dist/esm/enums/Events.js +1 -0
- package/dist/esm/enums/Events.js.map +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +3 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.js +7 -2
- package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +7 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +17 -7
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/esm/tools/CrosshairsTool.js +6 -5
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/ZoomTool.js +1 -1
- package/dist/esm/tools/ZoomTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -0
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +19 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/types/BoundsIJK.d.ts +3 -0
- package/dist/esm/types/BoundsIJK.js +2 -0
- package/dist/esm/types/BoundsIJK.js.map +1 -0
- package/dist/esm/types/EventTypes.d.ts +5 -1
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
- package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +11 -0
- package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +38 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
- package/dist/esm/utilities/boundingBox/index.d.ts +3 -0
- package/dist/esm/utilities/boundingBox/index.js +4 -0
- package/dist/esm/utilities/boundingBox/index.js.map +1 -0
- package/dist/esm/utilities/index.d.ts +3 -1
- package/dist/esm/utilities/index.js +3 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.d.ts +1 -2
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +40 -10
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +45 -0
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
- package/dist/esm/utilities/rectangleROITool/index.d.ts +2 -0
- package/dist/esm/utilities/rectangleROITool/index.js +3 -0
- package/dist/esm/utilities/rectangleROITool/index.js.map +1 -0
- package/dist/esm/utilities/segmentation/index.d.ts +2 -2
- package/dist/esm/utilities/segmentation/index.js +2 -2
- package/dist/esm/utilities/segmentation/index.js.map +1 -1
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +37 -0
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +13 -47
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js +0 -51
- package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
- package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js +0 -47
- package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const core_1 = require("@cornerstonejs/core");
|
|
7
|
+
const getBoundingBoxAroundShape_1 = __importDefault(require("../boundingBox/getBoundingBoxAroundShape"));
|
|
8
|
+
const extend2DBoundingBoxInViewAxis_1 = __importDefault(require("../boundingBox/extend2DBoundingBoxInViewAxis"));
|
|
9
|
+
function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, options = {}) {
|
|
10
|
+
const AllBoundsIJK = [];
|
|
11
|
+
annotations.forEach((annotation) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const { data } = annotation;
|
|
14
|
+
const { points } = data.handles;
|
|
15
|
+
const { imageData, dimensions } = referenceVolume;
|
|
16
|
+
let pointsToUse = points;
|
|
17
|
+
if ((_a = data.cachedStats) === null || _a === void 0 ? void 0 : _a.projectionPoints) {
|
|
18
|
+
const { projectionPoints } = data.cachedStats;
|
|
19
|
+
pointsToUse = [].concat(...projectionPoints);
|
|
20
|
+
}
|
|
21
|
+
const rectangleCornersIJK = pointsToUse.map((world) => core_1.utilities.transformWorldToIndex(imageData, world));
|
|
22
|
+
let boundsIJK = (0, getBoundingBoxAroundShape_1.default)(rectangleCornersIJK, dimensions);
|
|
23
|
+
if (options.numSlicesToProject && !((_b = data.cachedStats) === null || _b === void 0 ? void 0 : _b.projectionPoints)) {
|
|
24
|
+
boundsIJK = (0, extend2DBoundingBoxInViewAxis_1.default)(boundsIJK, options.numSlicesToProject);
|
|
25
|
+
}
|
|
26
|
+
AllBoundsIJK.push(boundsIJK);
|
|
27
|
+
});
|
|
28
|
+
if (AllBoundsIJK.length === 1) {
|
|
29
|
+
return AllBoundsIJK[0];
|
|
30
|
+
}
|
|
31
|
+
const boundsIJK = AllBoundsIJK.reduce((accumulator, currentValue) => {
|
|
32
|
+
return {
|
|
33
|
+
iMin: Math.min(accumulator.iMin, currentValue.iMin),
|
|
34
|
+
jMin: Math.min(accumulator.jMin, currentValue.jMin),
|
|
35
|
+
kMin: Math.min(accumulator.kMin, currentValue.kMin),
|
|
36
|
+
iMax: Math.max(accumulator.iMax, currentValue.iMax),
|
|
37
|
+
jMax: Math.max(accumulator.jMax, currentValue.jMax),
|
|
38
|
+
kMax: Math.max(accumulator.kMax, currentValue.kMax),
|
|
39
|
+
};
|
|
40
|
+
}, {
|
|
41
|
+
iMin: Infinity,
|
|
42
|
+
jMin: Infinity,
|
|
43
|
+
kMin: Infinity,
|
|
44
|
+
iMax: -Infinity,
|
|
45
|
+
jMax: -Infinity,
|
|
46
|
+
kMax: -Infinity,
|
|
47
|
+
});
|
|
48
|
+
return boundsIJK;
|
|
49
|
+
}
|
|
50
|
+
exports.default = getBoundsIJKFromRectangleAnnotations;
|
|
51
|
+
//# sourceMappingURL=getBoundsIJKFromRectangleAnnotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBoundsIJKFromRectangleAnnotations.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts"],"names":[],"mappings":";;;;;AAAA,8CAA2D;AAE3D,yGAAiF;AACjF,iHAAyF;AAMzF,SAAS,oCAAoC,CAC3C,WAAW,EACX,eAAe,EACf,UAAU,EAAa;IAEvB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;QAElD,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,IAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,gBAAgB,EAAE;YACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;SAC9C;QAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAiB,CAC3E,CAAC;QACF,IAAI,SAAS,GAAG,IAAA,mCAAyB,EAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAI3E,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,gBAAgB,CAAA,EAAE;YACrE,SAAS,GAAG,IAAA,uCAA6B,EACvC,SAAS,EACT,OAAO,CAAC,kBAAkB,CAC3B,CAAC;SACH;QAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAID,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACpD,CAAC;IACJ,CAAC,EACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;KAChB,CACF,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kBAAe,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getBoundsIJKFromRectangleAnnotations = void 0;
|
|
7
|
+
const getBoundsIJKFromRectangleAnnotations_1 = __importDefault(require("./getBoundsIJKFromRectangleAnnotations"));
|
|
8
|
+
exports.getBoundsIJKFromRectangleAnnotations = getBoundsIJKFromRectangleAnnotations_1.default;
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/index.ts"],"names":[],"mappings":";;;;;;AAAA,kHAA0F;AAEjF,+CAFF,8CAAoC,CAEE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getBoundingBoxAroundShape, extend2DBoundingBoxInViewAxis } from './getBoundingBoxUtils';
|
|
2
1
|
import thresholdVolumeByRange from './thresholdVolumeByRange';
|
|
2
|
+
import rectangleROIThresholdVolumeByRange from './rectangleROIThresholdVolumeByRange';
|
|
3
3
|
import createMergedLabelmapForIndex from './createMergedLabelmapForIndex';
|
|
4
4
|
import isValidRepresentationConfig from './isValidRepresentationConfig';
|
|
5
5
|
import getDefaultRepresentationConfig from './getDefaultRepresentationConfig';
|
|
6
6
|
import createLabelmapVolumeForViewport from './createLabelmapVolumeForViewport';
|
|
7
|
-
export {
|
|
7
|
+
export { thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, };
|
|
@@ -3,12 +3,11 @@ 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.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange =
|
|
7
|
-
const getBoundingBoxUtils_1 = require("./getBoundingBoxUtils");
|
|
8
|
-
Object.defineProperty(exports, "getBoundingBoxAroundShape", { enumerable: true, get: function () { return getBoundingBoxUtils_1.getBoundingBoxAroundShape; } });
|
|
9
|
-
Object.defineProperty(exports, "extend2DBoundingBoxInViewAxis", { enumerable: true, get: function () { return getBoundingBoxUtils_1.extend2DBoundingBoxInViewAxis; } });
|
|
6
|
+
exports.rectangleROIThresholdVolumeByRange = exports.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange = void 0;
|
|
10
7
|
const thresholdVolumeByRange_1 = __importDefault(require("./thresholdVolumeByRange"));
|
|
11
8
|
exports.thresholdVolumeByRange = thresholdVolumeByRange_1.default;
|
|
9
|
+
const rectangleROIThresholdVolumeByRange_1 = __importDefault(require("./rectangleROIThresholdVolumeByRange"));
|
|
10
|
+
exports.rectangleROIThresholdVolumeByRange = rectangleROIThresholdVolumeByRange_1.default;
|
|
12
11
|
const createMergedLabelmapForIndex_1 = __importDefault(require("./createMergedLabelmapForIndex"));
|
|
13
12
|
exports.createMergedLabelmapForIndex = createMergedLabelmapForIndex_1.default;
|
|
14
13
|
const isValidRepresentationConfig_1 = __importDefault(require("./isValidRepresentationConfig"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,sFAA8D;AAQ5D,iCARK,gCAAsB,CAQL;AAPxB,8GAAsF;AAYpF,6CAZK,4CAAkC,CAYL;AAXpC,kGAA0E;AAOxE,uCAPK,sCAA4B,CAOL;AAN9B,gGAAwE;AAOtE,sCAPK,qCAA2B,CAOL;AAN7B,sGAA8E;AAO5E,yCAPK,wCAA8B,CAOL;AANhC,wGAAgF;AAO9E,0CAPK,yCAA+B,CAOL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
export declare type ThresholdRangeOptions = {
|
|
3
|
+
lower: number;
|
|
4
|
+
upper: number;
|
|
5
|
+
numSlicesToProject?: number;
|
|
6
|
+
overwrite: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare type AnnotationForThresholding = {
|
|
9
|
+
data: {
|
|
10
|
+
handles: {
|
|
11
|
+
points: Types.Point3[];
|
|
12
|
+
};
|
|
13
|
+
cachedStats?: {
|
|
14
|
+
projectionPoints?: Types.Point3[][];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
declare function rectangleROIThresholdVolumeByRange(annotationUIDs: string[], segmentationVolume: Types.IImageVolume, referenceVolumes: Types.IImageVolume[], options: ThresholdRangeOptions): Types.IImageVolume;
|
|
19
|
+
export default rectangleROIThresholdVolumeByRange;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const annotation_1 = require("../../stateManagement/annotation");
|
|
7
|
+
const tools_1 = require("../../tools");
|
|
8
|
+
const thresholdVolumeByRange_1 = __importDefault(require("./thresholdVolumeByRange"));
|
|
9
|
+
const getBoundsIJKFromRectangleAnnotations_1 = __importDefault(require("../rectangleROITool/getBoundsIJKFromRectangleAnnotations"));
|
|
10
|
+
function rectangleROIThresholdVolumeByRange(annotationUIDs, segmentationVolume, referenceVolumes, options) {
|
|
11
|
+
if (referenceVolumes.length > 1) {
|
|
12
|
+
throw new Error('thresholding based on more than one reference volumes data is not supported yet');
|
|
13
|
+
}
|
|
14
|
+
const referenceVolume = referenceVolumes[0];
|
|
15
|
+
const annotations = annotationUIDs.map((annotationUID) => {
|
|
16
|
+
return annotation_1.state.getAnnotation(annotationUID);
|
|
17
|
+
});
|
|
18
|
+
_validateAnnotations(annotations);
|
|
19
|
+
const boundsIJK = (0, getBoundsIJKFromRectangleAnnotations_1.default)(annotations, referenceVolume, options);
|
|
20
|
+
const optionsToUse = {
|
|
21
|
+
lower: options.lower,
|
|
22
|
+
upper: options.upper,
|
|
23
|
+
overwrite: options.overwrite,
|
|
24
|
+
boundsIJK,
|
|
25
|
+
};
|
|
26
|
+
const outputSegmentationVolume = (0, thresholdVolumeByRange_1.default)(segmentationVolume, referenceVolume, optionsToUse);
|
|
27
|
+
return outputSegmentationVolume;
|
|
28
|
+
}
|
|
29
|
+
function _validateAnnotations(annotations) {
|
|
30
|
+
const validToolNames = [
|
|
31
|
+
tools_1.RectangleROIThresholdTool.toolName,
|
|
32
|
+
tools_1.RectangleROIStartEndThresholdTool.toolName,
|
|
33
|
+
];
|
|
34
|
+
for (const annotation of annotations) {
|
|
35
|
+
const name = annotation.metadata.toolName;
|
|
36
|
+
if (!validToolNames.includes(name)) {
|
|
37
|
+
throw new Error('rectangleROIThresholdVolumeByRange only supports RectangleROIThreshold and RectangleROIStartEndThreshold annotations');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.default = rectangleROIThresholdVolumeByRange;
|
|
42
|
+
//# sourceMappingURL=rectangleROIThresholdVolumeByRange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rectangleROIThresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/rectangleROIThresholdVolumeByRange.ts"],"names":[],"mappings":";;;;;AACA,iEAAyD;AACzD,uCAGqB;AAErB,sFAA8D;AAC9D,oIAA4G;AA+B5G,SAAS,kCAAkC,CACzC,cAAwB,EACxB,kBAAsC,EACtC,gBAAsC,EACtC,OAA8B;IAE9B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;KACH;IAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QACvD,OAAO,kBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,IAAA,8CAAoC,EACpD,WAAW,EACX,eAAe,EACf,OAAO,CACR,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC;IAEF,MAAM,wBAAwB,GAAG,IAAA,gCAAsB,EACrD,kBAAkB,EAClB,eAAe,EACf,YAAY,CACb,CAAC;IAEF,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAW;IACvC,MAAM,cAAc,GAAG;QACrB,iCAAyB,CAAC,QAAQ;QAClC,yCAAiC,CAAC,QAAQ;KAC3C,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;SACH;KACF;AACH,CAAC;AAED,kBAAe,kCAAkC,CAAC"}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
|
-
import {
|
|
2
|
+
import { BoundsIJK } from '../../types';
|
|
3
3
|
export declare type ThresholdRangeOptions = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
upper: number;
|
|
5
|
+
lower: number;
|
|
6
|
+
boundsIJK: BoundsIJK;
|
|
7
7
|
overwrite: boolean;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
metadata: {
|
|
11
|
-
enabledElement: Types.IEnabledElement;
|
|
12
|
-
};
|
|
13
|
-
data: {
|
|
14
|
-
handles: {
|
|
15
|
-
points: Types.Point3[];
|
|
16
|
-
};
|
|
17
|
-
cachedStats?: {
|
|
18
|
-
projectionPoints?: Types.Point3[][];
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
declare function thresholdVolumeByRange(annotations: AnnotationForThresholding[], referenceVolumes: Types.IImageVolume[], segmentationRepresentation: ToolGroupSpecificRepresentation, options: ThresholdRangeOptions): Types.IImageVolume;
|
|
23
|
-
export declare function extendBoundingBoxInSliceAxisIfNecessary(boundsIJK: [Types.Point2, Types.Point2, Types.Point2], numSlicesToProject: number): [Types.Point2, Types.Point2, Types.Point2];
|
|
9
|
+
declare function thresholdVolumeByRange(segmentationVolume: Types.IImageVolume, referenceVolume: Types.IImageVolume, options: ThresholdRangeOptions): Types.IImageVolume;
|
|
24
10
|
export default thresholdVolumeByRange;
|
|
@@ -1,84 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.extendBoundingBoxInSliceAxisIfNecessary = void 0;
|
|
23
|
-
const core_1 = require("@cornerstonejs/core");
|
|
24
|
-
const segmentation_1 = require("../segmentation");
|
|
25
3
|
const utilities_1 = require("../../utilities");
|
|
26
4
|
const triggerSegmentationEvents_1 = require("../../stateManagement/segmentation/triggerSegmentationEvents");
|
|
27
|
-
|
|
28
|
-
const { transformWorldToIndex } = core_1.utilities;
|
|
29
|
-
function thresholdVolumeByRange(annotations, referenceVolumes, segmentationRepresentation, options) {
|
|
30
|
-
if (referenceVolumes.length > 1) {
|
|
31
|
-
throw new Error('thresholding more than one volumes is not supported yet');
|
|
32
|
-
}
|
|
33
|
-
const segmentation = SegmentationState.getSegmentation(segmentationRepresentation.segmentationId);
|
|
34
|
-
const { segmentationId } = segmentationRepresentation;
|
|
35
|
-
if (!segmentation) {
|
|
36
|
-
throw new Error('No Segmentation Found');
|
|
37
|
-
}
|
|
38
|
-
const { type, representationData } = segmentation;
|
|
39
|
-
const { volumeId } = representationData[type];
|
|
40
|
-
const segmentationVolume = core_1.cache.getVolume(volumeId);
|
|
5
|
+
function thresholdVolumeByRange(segmentationVolume, referenceVolume, options) {
|
|
41
6
|
const { scalarData, imageData: segmentationImageData } = segmentationVolume;
|
|
42
|
-
const {
|
|
7
|
+
const { overwrite, boundsIJK, upper, lower } = options;
|
|
8
|
+
const { imageData } = referenceVolume;
|
|
9
|
+
const referenceValues = imageData.getPointData().getScalars().getData();
|
|
43
10
|
if (overwrite) {
|
|
44
11
|
for (let i = 0; i < scalarData.length; i++) {
|
|
45
12
|
scalarData[i] = 0;
|
|
46
13
|
}
|
|
47
14
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const { imageData, dimensions } = referenceVolume;
|
|
54
|
-
const values = imageData.getPointData().getScalars().getData();
|
|
55
|
-
let pointsToUse = points;
|
|
56
|
-
if ((_a = data.cachedStats) === null || _a === void 0 ? void 0 : _a.projectionPoints) {
|
|
57
|
-
const { projectionPoints } = data.cachedStats;
|
|
58
|
-
pointsToUse = [].concat(...projectionPoints);
|
|
15
|
+
const callback = ({ index, pointIJK }) => {
|
|
16
|
+
const offset = imageData.computeOffsetIndex(pointIJK);
|
|
17
|
+
const value = referenceValues[offset];
|
|
18
|
+
if (value <= lower || value >= upper) {
|
|
19
|
+
return;
|
|
59
20
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
const callback = ({ index, pointIJK }) => {
|
|
66
|
-
const offset = imageData.computeOffsetIndex(pointIJK);
|
|
67
|
-
const value = values[offset];
|
|
68
|
-
if (value <= lowerThreshold || value >= higherThreshold) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
scalarData[index] = 1;
|
|
72
|
-
};
|
|
73
|
-
(0, utilities_1.pointInShapeCallback)(segmentationImageData, () => true, callback, boundsIJK);
|
|
74
|
-
});
|
|
75
|
-
(0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId);
|
|
21
|
+
scalarData[index] = 1;
|
|
22
|
+
};
|
|
23
|
+
(0, utilities_1.pointInShapeCallback)(segmentationImageData, () => true, callback, boundsIJK);
|
|
24
|
+
(0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationVolume.volumeId);
|
|
76
25
|
return segmentationVolume;
|
|
77
26
|
}
|
|
78
|
-
function extendBoundingBoxInSliceAxisIfNecessary(boundsIJK, numSlicesToProject) {
|
|
79
|
-
const extendedBoundsIJK = (0, segmentation_1.extend2DBoundingBoxInViewAxis)(boundsIJK, numSlicesToProject);
|
|
80
|
-
return extendedBoundsIJK;
|
|
81
|
-
}
|
|
82
|
-
exports.extendBoundingBoxInSliceAxisIfNecessary = extendBoundingBoxInSliceAxisIfNecessary;
|
|
83
27
|
exports.default = thresholdVolumeByRange;
|
|
84
28
|
//# sourceMappingURL=thresholdVolumeByRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":";;AAEA,+CAAuD;AACvD,4GAA+G;AAkB/G,SAAS,sBAAsB,CAC7B,kBAAsC,EACtC,eAAmC,EACnC,OAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;IAC5E,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACtC,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;IAGxE,IAAI,SAAS,EAAE;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACnB;KACF;IAED,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;YACpC,OAAO;SACR;QAGD,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAA,gCAAoB,EAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE7E,IAAA,2DAA+B,EAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE7D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,kBAAe,sBAAsB,CAAC"}
|
|
@@ -10,6 +10,7 @@ declare enum Events {
|
|
|
10
10
|
SEGMENTATION_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",
|
|
11
11
|
SEGMENTATION_RENDERED = "CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",
|
|
12
12
|
SEGMENTATION_REPRESENTATION_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",
|
|
13
|
+
SEGMENTATION_REMOVED = "CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",
|
|
13
14
|
SEGMENTATION_REPRESENTATION_REMOVED = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",
|
|
14
15
|
SEGMENTATION_DATA_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",
|
|
15
16
|
KEY_DOWN = "CORNERSTONE_TOOLS_KEY_DOWN",
|
package/dist/esm/enums/Events.js
CHANGED
|
@@ -11,6 +11,7 @@ var Events;
|
|
|
11
11
|
Events["SEGMENTATION_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED";
|
|
12
12
|
Events["SEGMENTATION_RENDERED"] = "CORNERSTONE_TOOLS_SEGMENTATION_RENDERED";
|
|
13
13
|
Events["SEGMENTATION_REPRESENTATION_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED";
|
|
14
|
+
Events["SEGMENTATION_REMOVED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REMOVED";
|
|
14
15
|
Events["SEGMENTATION_REPRESENTATION_REMOVED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED";
|
|
15
16
|
Events["SEGMENTATION_DATA_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED";
|
|
16
17
|
Events["KEY_DOWN"] = "CORNERSTONE_TOOLS_KEY_DOWN";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAMA,IAAK,
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAMA,IAAK,MAgPJ;AAhPD,WAAK,MAAM;IAYT,iEAAuD,CAAA;IAQvD,yEAA+D,CAAA;IAQ/D,uEAA6D,CAAA;IAQ7D,qEAA2D,CAAA;IAQ3D,uFAA6E,CAAA;IAQ7E,6EAAmE,CAAA;IAQnE,yFAA+E,CAAA;IAQ/E,uEAA6D,CAAA;IAY7D,2EAAiE,CAAA;IAQjE,2EAAiE,CAAA;IAQjE,yGAA+F,CAAA;IAQ/F,yEAA+D,CAAA;IAQ/D,uGAA6F,CAAA;IAQ7F,qFAA2E,CAAA;IAY3E,iDAAuC,CAAA;IAQvC,6CAAmC,CAAA;IAYnC,qDAA2C,CAAA;IAQ3C,iDAAuC,CAAA;IASvC,uEAA6D,CAAA;IAQ7D,qDAA2C,CAAA;IAU3C,qDAA2C,CAAA;IAQ3C,uDAA6C,CAAA;IAQ7C,qEAA2D,CAAA;IAQ3D,uDAA6C,CAAA;AA6B/C,CAAC,EAhPI,MAAM,KAAN,MAAM,QAgPV;AAED,eAAe,MAAM,CAAC"}
|
package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmentationRepresentationRemovedEventListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,2CAA2C,CAAC;AAOlF,MAAM,8CAA8C,GAAG,UACrD,GAA+C;IAE/C,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"segmentationRepresentationRemovedEventListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,2CAA2C,CAAC;AAOlF,MAAM,8CAA8C,GAAG,UACrD,GAA+C;IAE/C,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAElE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,eAAe,8CAA8C,CAAC"}
|
|
@@ -14,6 +14,7 @@ export default class SegmentationStateManager {
|
|
|
14
14
|
getGlobalConfig(): SegmentationRepresentationConfig;
|
|
15
15
|
setGlobalConfig(config: SegmentationRepresentationConfig): void;
|
|
16
16
|
getSegmentationRepresentationByUID(toolGroupId: string, segmentationRepresentationUID: string): ToolGroupSpecificRepresentation | undefined;
|
|
17
|
+
removeSegmentation(segmentationId: string): void;
|
|
17
18
|
removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
|
|
18
19
|
setActiveSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
|
|
19
20
|
getToolGroupSpecificConfig(toolGroupId: string): SegmentationRepresentationConfig | undefined;
|
|
@@ -69,6 +69,9 @@ export default class SegmentationStateManager {
|
|
|
69
69
|
segmentationRepresentationUID);
|
|
70
70
|
return segmentationData;
|
|
71
71
|
}
|
|
72
|
+
removeSegmentation(segmentationId) {
|
|
73
|
+
this.state.segmentations = this.state.segmentations.filter((segmentation) => segmentation.segmentationId !== segmentationId);
|
|
74
|
+
}
|
|
72
75
|
removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID) {
|
|
73
76
|
const toolGroupSegmentationRepresentations = this.getSegmentationRepresentations(toolGroupId);
|
|
74
77
|
if (!toolGroupSegmentationRepresentations ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentationStateManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/SegmentationStateManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SegmentationStateManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/SegmentationStateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/normalizeSegmentationInput.ts"],"names":[],"mappings":"AAWA,SAAS,0BAA0B,CACjC,iBAA0C;IAE1C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;IAI7D,OAAO;QACL,cAAc;QACd,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"normalizeSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/normalizeSegmentationInput.ts"],"names":[],"mappings":"AAWA,SAAS,0BAA0B,CACjC,iBAA0C;IAE1C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;IAI7D,OAAO;QACL,cAAc;QACd,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE;YAClB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACrB,GAAG,cAAc,CAAC,IAAI;aACvB;SACF;KACF,CAAC;AACJ,CAAC;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -11,7 +11,8 @@ declare function addSegmentationRepresentation(toolGroupId: string, segmentation
|
|
|
11
11
|
declare function getGlobalConfig(): SegmentationRepresentationConfig;
|
|
12
12
|
declare function setGlobalConfig(config: SegmentationRepresentationConfig, suppressEvents?: boolean): void;
|
|
13
13
|
declare function getSegmentationRepresentationByUID(toolGroupId: string, segmentationRepresentationUID: string): ToolGroupSpecificRepresentation | undefined;
|
|
14
|
+
declare function removeSegmentation(segmentationId: string): void;
|
|
14
15
|
declare function removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
|
|
15
16
|
declare function getColorLUT(index: number): ColorLUT | undefined;
|
|
16
17
|
declare function addColorLUT(colorLUT: ColorLUT, index: number): void;
|
|
17
|
-
export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
|
|
18
|
+
export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, removeSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
-
import { triggerSegmentationRepresentationModified, triggerSegmentationModified, triggerSegmentationRepresentationRemoved, } from './triggerSegmentationEvents';
|
|
2
|
+
import { triggerSegmentationRepresentationModified, triggerSegmentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationRemoved, } from './triggerSegmentationEvents';
|
|
3
3
|
import { getDefaultRepresentationConfig } from '../../utilities/segmentation';
|
|
4
4
|
import normalizeSegmentationInput from './helpers/normalizeSegmentationInput';
|
|
5
5
|
function getDefaultSegmentationStateManager() {
|
|
@@ -75,6 +75,11 @@ function getSegmentationRepresentationByUID(toolGroupId, segmentationRepresentat
|
|
|
75
75
|
const segmentationStateManager = getDefaultSegmentationStateManager();
|
|
76
76
|
return segmentationStateManager.getSegmentationRepresentationByUID(toolGroupId, segmentationRepresentationUID);
|
|
77
77
|
}
|
|
78
|
+
function removeSegmentation(segmentationId) {
|
|
79
|
+
const segmentationStateManager = getDefaultSegmentationStateManager();
|
|
80
|
+
segmentationStateManager.removeSegmentation(segmentationId);
|
|
81
|
+
triggerSegmentationRemoved(segmentationId);
|
|
82
|
+
}
|
|
78
83
|
function removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID) {
|
|
79
84
|
const segmentationStateManager = getDefaultSegmentationStateManager();
|
|
80
85
|
segmentationStateManager.removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID);
|
|
@@ -99,5 +104,5 @@ function _initializeDefaultConfig(segmentation) {
|
|
|
99
104
|
};
|
|
100
105
|
setGlobalConfig(newGlobalConfig, suppressEvents);
|
|
101
106
|
}
|
|
102
|
-
export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
|
|
107
|
+
export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, removeSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
|
|
103
108
|
//# sourceMappingURL=segmentationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmentationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/segmentationState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EACL,yCAAyC,EACzC,2BAA2B,EAC3B,wCAAwC,
|
|
1
|
+
{"version":3,"file":"segmentationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/segmentationState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
declare function triggerSegmentationRemoved(segmentationId: string): void;
|
|
1
2
|
declare function triggerSegmentationRepresentationRemoved(toolGroupId: string, segmentationRepresentationUID: string): void;
|
|
2
3
|
declare function triggerSegmentationRepresentationModified(toolGroupId: string, segmentationRepresentationUID?: string): void;
|
|
3
4
|
declare function triggerSegmentationModified(segmentationId?: string): void;
|
|
4
5
|
declare function triggerSegmentationDataModified(segmentationId: string, modifiedSlicesToUse?: number[]): void;
|
|
5
|
-
export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, };
|
|
6
|
+
export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
2
|
import { Events } from '../../enums';
|
|
3
3
|
import { getSegmentationRepresentations, getSegmentations, } from '../../stateManagement/segmentation/segmentationState';
|
|
4
|
+
function triggerSegmentationRemoved(segmentationId) {
|
|
5
|
+
const eventDetail = {
|
|
6
|
+
segmentationId,
|
|
7
|
+
};
|
|
8
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_REMOVED, eventDetail);
|
|
9
|
+
}
|
|
4
10
|
function triggerSegmentationRepresentationRemoved(toolGroupId, segmentationRepresentationUID) {
|
|
5
11
|
const eventDetail = {
|
|
6
12
|
toolGroupId,
|
|
@@ -49,5 +55,5 @@ function triggerSegmentationDataModified(segmentationId, modifiedSlicesToUse) {
|
|
|
49
55
|
};
|
|
50
56
|
triggerEvent(eventTarget, Events.SEGMENTATION_DATA_MODIFIED, eventDetail);
|
|
51
57
|
}
|
|
52
|
-
export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, };
|
|
58
|
+
export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
|
|
53
59
|
//# sourceMappingURL=triggerSegmentationEvents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerSegmentationEvents.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/triggerSegmentationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"triggerSegmentationEvents.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/triggerSegmentationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;AAa9D,SAAS,0BAA0B,CAAC,cAAsB;IACxD,MAAM,WAAW,GAAmC;QAClD,cAAc;KACf,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AACtE,CAAC;AASD,SAAS,wCAAwC,CAC/C,WAAmB,EACnB,6BAAqC;IAErC,MAAM,WAAW,GAAiD;QAChE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,mCAAmC,EAC1C,WAAW,CACZ,CAAC;AACJ,CAAC;AAOD,SAAS,yCAAyC,CAChD,WAAmB,EACnB,6BAAsC;IAEtC,MAAM,WAAW,GAAkD;QACjE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,IAAI,6BAA6B,EAAE;QACjC,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;QACF,OAAO;KACR;IAMD,MAAM,2BAA2B,GAC/B,8BAA8B,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAEpD,2BAA2B,CAAC,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE;QACjE,MAAM,EAAE,6BAA6B,EAAE,GAAG,0BAA0B,CAAC;QACrE,MAAM,WAAW,GAAkD;YACjE,WAAW;YACX,6BAA6B;SAC9B,CAAC;QAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,SAAS,2BAA2B,CAAC,cAAuB;IAC1D,IAAI,eAAe,CAAC;IAEpB,IAAI,cAAc,EAAE;QAClB,eAAe,GAAG,CAAC,cAAc,CAAC,CAAC;KACpC;SAAM;QAEL,eAAe,GAAG,gBAAgB,EAAE,CAAC,GAAG,CACtC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,CACvC,CAAC;KACH;IAID,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QACzC,MAAM,WAAW,GAAoC;YACnD,cAAc;SACf,CAAC;QACF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AAQL,CAAC;AAMD,SAAS,+BAA+B,CACtC,cAAsB,EACtB,mBAA8B;IAE9B,MAAM,WAAW,GAAwC;QACvD,cAAc;QACd,mBAAmB;KACpB,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,OAAO,EAEL,yCAAyC,EACzC,wCAAwC,EAExC,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,GAC3B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getRenderingEngine, StackViewport, VolumeViewport, } from '@cornerstonejs/core';
|
|
1
|
+
import { getRenderingEngine, StackViewport, triggerEvent, Enums, VolumeViewport, } from '@cornerstonejs/core';
|
|
2
2
|
export default function voiSyncCallback(synchronizerInstance, sourceViewport, targetViewport, voiModifiedEvent) {
|
|
3
3
|
const eventDetail = voiModifiedEvent.detail;
|
|
4
4
|
const { volumeId, range } = eventDetail;
|
|
@@ -9,13 +9,23 @@ export default function voiSyncCallback(synchronizerInstance, sourceViewport, ta
|
|
|
9
9
|
const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
|
|
10
10
|
if (tViewport instanceof VolumeViewport) {
|
|
11
11
|
const actorEntry = tViewport.getActor(volumeId);
|
|
12
|
-
if (actorEntry) {
|
|
13
|
-
|
|
14
|
-
volumeActor
|
|
15
|
-
.getProperty()
|
|
16
|
-
.getRGBTransferFunction(0)
|
|
17
|
-
.setRange(range.lower, range.upper);
|
|
12
|
+
if (!actorEntry) {
|
|
13
|
+
return;
|
|
18
14
|
}
|
|
15
|
+
const volumeActor = actorEntry.actor;
|
|
16
|
+
volumeActor
|
|
17
|
+
.getProperty()
|
|
18
|
+
.getRGBTransferFunction(0)
|
|
19
|
+
.setRange(range.lower, range.upper);
|
|
20
|
+
const { element } = tViewport;
|
|
21
|
+
triggerEvent(element, Enums.Events.VOI_MODIFIED, {
|
|
22
|
+
volumeId,
|
|
23
|
+
viewportId: tViewport.id,
|
|
24
|
+
range: {
|
|
25
|
+
lower: range.lower,
|
|
26
|
+
upper: range.upper,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
19
29
|
}
|
|
20
30
|
else if (tViewport instanceof StackViewport) {
|
|
21
31
|
tViewport.setProperties({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voiSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/voiSyncCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,
|
|
1
|
+
{"version":3,"file":"voiSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/voiSyncCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EAEZ,KAAK,EACL,cAAc,GACf,MAAM,qBAAqB,CAAC;AAW7B,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,oBAAoB,EACpB,cAAiC,EACjC,cAAiC,EACjC,gBAAmD;IAEnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAExC,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7E,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,cAAc,CAAC,iBAAiB,EAAE,CACvE,CAAC;KACH;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzE,IAAI,SAAS,YAAY,cAAc,EAAE;QACvC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;QAC1D,WAAW;aACR,WAAW,EAAE;aACb,sBAAsB,CAAC,CAAC,CAAC;aACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAI9B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YAC/C,QAAQ;YACR,UAAU,EAAE,SAAS,CAAC,EAAE;YACxB,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CAAC;KACJ;SAAM,IAAI,SAAS,YAAY,aAAa,EAAE;QAC7C,SAAS,CAAC,aAAa,CAAC;YACtB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -211,11 +211,12 @@ export default class CrosshairsTool extends AnnotationTool {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
if (this.configuration.autoPan?.enabled) {
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
214
|
+
const toolGroup = getToolGroupForViewport(viewport.id, renderingEngine.id);
|
|
215
|
+
const otherViewportIds = toolGroup
|
|
216
|
+
.getViewportIds()
|
|
217
|
+
.filter((id) => id !== viewport.id);
|
|
218
|
+
otherViewportIds.forEach((viewportId) => {
|
|
219
|
+
this._autoPanViewportIfNecessary(viewportId, renderingEngine);
|
|
219
220
|
});
|
|
220
221
|
}
|
|
221
222
|
triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
|