@cornerstonejs/tools 0.7.11 → 0.9.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/tools/MIPJumpToClickTool.js +6 -2
- package/dist/cjs/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/cjs/tools/StackScrollTool.js +2 -2
- package/dist/cjs/tools/StackScrollTool.js.map +1 -1
- package/dist/cjs/tools/StackScrollToolMouseWheelTool.js +6 -3
- package/dist/cjs/tools/StackScrollToolMouseWheelTool.js.map +1 -1
- package/dist/cjs/tools/WindowLevelTool.js +2 -1
- package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +3 -16
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +16 -25
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +3 -16
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.js +23 -27
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +16 -24
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationTool.d.ts +1 -0
- package/dist/cjs/tools/base/AnnotationTool.js +15 -1
- package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
- package/dist/cjs/tools/base/BaseTool.d.ts +1 -4
- package/dist/cjs/tools/base/BaseTool.js +13 -14
- package/dist/cjs/tools/base/BaseTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -5
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +3 -7
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/cjs/types/JumpToSliceOptions.d.ts +4 -0
- package/dist/cjs/types/JumpToSliceOptions.js +3 -0
- package/dist/cjs/types/JumpToSliceOptions.js.map +1 -0
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/utilities/index.d.ts +2 -1
- package/dist/cjs/utilities/index.js +3 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/planar/filterAnnotationsForDisplay.js +4 -1
- package/dist/cjs/utilities/planar/filterAnnotationsForDisplay.js.map +1 -1
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.d.ts +2 -2
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js +5 -3
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js.map +1 -1
- package/dist/cjs/utilities/viewport/jumpToSlice.d.ts +3 -0
- package/dist/cjs/utilities/viewport/jumpToSlice.js +20 -0
- package/dist/cjs/utilities/viewport/jumpToSlice.js.map +1 -0
- package/dist/esm/tools/MIPJumpToClickTool.js +6 -2
- package/dist/esm/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/esm/tools/StackScrollTool.js +2 -2
- package/dist/esm/tools/StackScrollTool.js.map +1 -1
- package/dist/esm/tools/StackScrollToolMouseWheelTool.js +6 -3
- package/dist/esm/tools/StackScrollToolMouseWheelTool.js.map +1 -1
- package/dist/esm/tools/WindowLevelTool.js +2 -1
- package/dist/esm/tools/WindowLevelTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +4 -17
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +17 -26
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +4 -17
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +24 -28
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +17 -25
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationTool.d.ts +1 -0
- package/dist/esm/tools/base/AnnotationTool.js +16 -2
- package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
- package/dist/esm/tools/base/BaseTool.d.ts +1 -4
- package/dist/esm/tools/base/BaseTool.js +13 -14
- package/dist/esm/tools/base/BaseTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -5
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +3 -7
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/esm/types/JumpToSliceOptions.d.ts +4 -0
- package/dist/esm/types/JumpToSliceOptions.js +2 -0
- package/dist/esm/types/JumpToSliceOptions.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/utilities/index.d.ts +2 -1
- package/dist/esm/utilities/index.js +2 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/planar/filterAnnotationsForDisplay.js +4 -1
- package/dist/esm/utilities/planar/filterAnnotationsForDisplay.js.map +1 -1
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.d.ts +2 -2
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js +6 -4
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js.map +1 -1
- package/dist/esm/utilities/viewport/jumpToSlice.d.ts +3 -0
- package/dist/esm/utilities/viewport/jumpToSlice.js +18 -0
- package/dist/esm/utilities/viewport/jumpToSlice.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -11,5 +11,6 @@ import type { AnnotationHandle, TextBoxHandle } from './ToolHandle';
|
|
|
11
11
|
import type InteractionTypes from './InteractionTypes';
|
|
12
12
|
import type { ToolProps, PublicToolProps } from './ToolProps';
|
|
13
13
|
import type { SVGCursorDescriptor, SVGPoint } from './CursorTypes';
|
|
14
|
+
import type JumpToSliceOptions from './JumpToSliceOptions';
|
|
14
15
|
import type { Color, ColorLUT, RepresentationConfig, SegmentationRepresentationConfig, SegmentationRepresentationData, Segmentation, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, SegmentationState, RepresentationPublicInput } from './SegmentationStateTypes';
|
|
15
|
-
export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
|
|
16
|
+
export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
|
|
@@ -5,6 +5,7 @@ import throttle from './throttle';
|
|
|
5
5
|
import isObject from './isObject';
|
|
6
6
|
import calibrateImageSpacing from './calibrateImageSpacing';
|
|
7
7
|
import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
|
|
8
|
+
import jumpToSlice from './viewport/jumpToSlice';
|
|
8
9
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
9
10
|
import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
|
|
10
11
|
import * as segmentation from './segmentation';
|
|
@@ -14,4 +15,4 @@ import * as planar from './planar';
|
|
|
14
15
|
import * as stackScrollTool from './stackScrollTool';
|
|
15
16
|
import * as viewportFilters from './viewportFilters';
|
|
16
17
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
17
|
-
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
|
|
18
|
+
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, };
|
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.stackScrollTool = exports.viewportFilters = exports.planar = exports.math = void 0;
|
|
25
|
+
exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.stackScrollTool = exports.viewportFilters = exports.planar = exports.math = void 0;
|
|
26
26
|
const getAnnotationNearPoint_1 = require("./getAnnotationNearPoint");
|
|
27
27
|
Object.defineProperty(exports, "getAnnotationNearPoint", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPoint; } });
|
|
28
28
|
Object.defineProperty(exports, "getAnnotationNearPointOnEnabledElement", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPointOnEnabledElement; } });
|
|
@@ -38,6 +38,8 @@ const calibrateImageSpacing_1 = __importDefault(require("./calibrateImageSpacing
|
|
|
38
38
|
exports.calibrateImageSpacing = calibrateImageSpacing_1.default;
|
|
39
39
|
const triggerAnnotationRenderForViewportIds_1 = __importDefault(require("./triggerAnnotationRenderForViewportIds"));
|
|
40
40
|
exports.triggerAnnotationRenderForViewportIds = triggerAnnotationRenderForViewportIds_1.default;
|
|
41
|
+
const jumpToSlice_1 = __importDefault(require("./viewport/jumpToSlice"));
|
|
42
|
+
exports.jumpToSlice = jumpToSlice_1.default;
|
|
41
43
|
const pointInShapeCallback_1 = __importDefault(require("./pointInShapeCallback"));
|
|
42
44
|
exports.pointInShapeCallback = pointInShapeCallback_1.default;
|
|
43
45
|
const pointInSurroundingSphereCallback_1 = __importDefault(require("./pointInSurroundingSphereCallback"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAyChC,uGA3CA,+CAAsB,OA2CA;AACtB,uHA3CA,+DAAsC,OA2CA;AAvCxC,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,4DAAoC;AA4BlC,oBA5BK,mBAAS,CA4BL;AA3BX,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,oFAA4D;AA6B1D,gCA7BK,+BAAqB,CA6BL;AA5BvB,oHAA4F;AA8B1F,gDA9BK,+CAAqC,CA8BL;AA7BvC,yEAAiD;AAkC/C,sBAlCK,qBAAW,CAkCL;AAhCb,kFAA0D;AA4BxD,+BA5BK,8BAAoB,CA4BL;AA3BtB,0GAAkF;AA4BhF,2CA5BK,0CAAgC,CA4BL;AAzBlC,6DAA+C;AAsB7C,oCAAY;AArBd,mDAAqC;AAcnC,0BAAO;AAbT,6CAA+B;AAS7B,oBAAI;AARN,iDAAmC;AASjC,wBAAM;AARR,mEAAqD;AAUnD,0CAAe;AATjB,mEAAqD;AAQnD,0CAAe;AALjB,8CAAmD;AAYjD,6FAZO,mBAAY,OAYP"}
|
|
@@ -11,7 +11,10 @@ function filterAnnotationsForDisplay(viewport, annotations) {
|
|
|
11
11
|
const colonIndex = imageId.indexOf(':');
|
|
12
12
|
const imageURI = imageId.substring(colonIndex + 1);
|
|
13
13
|
return annotations.filter((annotation) => {
|
|
14
|
-
|
|
14
|
+
const imageId = annotation.metadata.referencedImageId;
|
|
15
|
+
const colonIndex = imageId.indexOf(':');
|
|
16
|
+
const referenceImageURI = imageId.substring(colonIndex + 1);
|
|
17
|
+
return referenceImageURI === imageURI;
|
|
15
18
|
});
|
|
16
19
|
}
|
|
17
20
|
else if (viewport instanceof core_1.VolumeViewport) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterAnnotationsForDisplay.js","sourceRoot":"","sources":["../../../../src/utilities/planar/filterAnnotationsForDisplay.ts"],"names":[],"mappings":";;;;;AAAA,8CAK6B;AAE7B,kGAA0E;AAS1E,SAAwB,2BAA2B,CACjD,QAAyB,EACzB,WAAwB;IAExB,IAAI,QAAQ,YAAY,oBAAa,EAAE;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAK7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"filterAnnotationsForDisplay.js","sourceRoot":"","sources":["../../../../src/utilities/planar/filterAnnotationsForDisplay.ts"],"names":[],"mappings":";;;;;AAAA,8CAK6B;AAE7B,kGAA0E;AAS1E,SAAwB,2BAA2B,CACjD,QAAyB,EACzB,WAAwB;IAExB,IAAI,QAAQ,YAAY,oBAAa,EAAE;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAK7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAOnD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,iBAAiB,KAAK,QAAQ,CAAC;QACxC,CAAC,CAAC,CAAC;KACJ;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,MAAM,EAAE,wBAAwB,EAAE,GAChC,gBAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAGjE,OAAO,IAAA,sCAA4B,EACjC,WAAW,EACX,MAAM,EACN,wBAAwB,CACzB,CAAC;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC;KACjE;AACH,CAAC;AAxCD,8CAwCC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function scrollThroughStack(
|
|
1
|
+
import { Types } from '@cornerstonejs/core';
|
|
2
|
+
export default function scrollThroughStack(viewport: Types.IStackViewport | Types.IVolumeViewport, targetId: string, deltaFrames: number, invert?: boolean): void;
|
|
@@ -7,9 +7,7 @@ const core_1 = require("@cornerstonejs/core");
|
|
|
7
7
|
const clip_1 = __importDefault(require("../clip"));
|
|
8
8
|
const getSliceRange_1 = __importDefault(require("./getSliceRange"));
|
|
9
9
|
const snapFocalPointToSlice_1 = __importDefault(require("./snapFocalPointToSlice"));
|
|
10
|
-
function scrollThroughStack(
|
|
11
|
-
const { element } = evt.detail;
|
|
12
|
-
const { viewport } = (0, core_1.getEnabledElement)(element);
|
|
10
|
+
function scrollThroughStack(viewport, targetId, deltaFrames, invert = false) {
|
|
13
11
|
const { type: viewportType } = viewport;
|
|
14
12
|
const camera = viewport.getCamera();
|
|
15
13
|
const { focalPoint, viewPlaneNormal, position } = camera;
|
|
@@ -22,6 +20,10 @@ function scrollThroughStack(evt, deltaFrames, volumeId, invert = false) {
|
|
|
22
20
|
viewport.setImageIdIndex(newImageIdIndex);
|
|
23
21
|
}
|
|
24
22
|
else if (viewport instanceof core_1.VolumeViewport) {
|
|
23
|
+
if (!targetId.startsWith('volumeId')) {
|
|
24
|
+
throw new Error(`scrollThroughStack: targetId must start with 'volumeId' if viewport is a VolumeViewport`);
|
|
25
|
+
}
|
|
26
|
+
const volumeId = targetId.split('volumeId:')[1];
|
|
25
27
|
const { spacingInNormalDirection, imageVolume } = core_1.utilities.getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
|
|
26
28
|
if (!imageVolume) {
|
|
27
29
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":";;;;;AAAA,8CAK6B;AAC7B,mDAA2B;AAC3B,oEAA4C;AAC5C,oFAA4D;
|
|
1
|
+
{"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":";;;;;AAAA,8CAK6B;AAC7B,mDAA2B;AAC3B,oEAA4C;AAC5C,oFAA4D;AAc5D,SAAwB,kBAAkB,CACxC,QAAsD,EACtD,QAAgB,EAChB,WAAmB,EACnB,MAAM,GAAG,KAAK;IAEd,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IAElD,IAAI,QAAQ,YAAY,oBAAa,EAAE;QAErC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACrD,IAAI,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAClD,eAAe,GAAG,IAAA,cAAI,EAAC,eAAe,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE/D,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAGhD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,gBAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3E;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAA,uBAAa,EAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAE5E,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAA,+BAAqB,EAC1D,UAAU,EACV,QAAQ,EACR,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;QAEF,QAAQ,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC;AA9DD,qCA8DC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@cornerstonejs/core");
|
|
4
|
+
function jumpToSlice(element, options) {
|
|
5
|
+
const { imageIdIndex } = options;
|
|
6
|
+
if (imageIdIndex === undefined) {
|
|
7
|
+
throw new Error('Cannot jump to slice without an imageIdIndex yet');
|
|
8
|
+
}
|
|
9
|
+
const enabledElement = (0, core_1.getEnabledElement)(element);
|
|
10
|
+
if (!enabledElement) {
|
|
11
|
+
throw new Error('Element has been disabled');
|
|
12
|
+
}
|
|
13
|
+
const { viewport } = enabledElement;
|
|
14
|
+
if (!(viewport instanceof core_1.StackViewport)) {
|
|
15
|
+
throw new Error('Cannot scroll to slice on a non-stack viewport yet');
|
|
16
|
+
}
|
|
17
|
+
return viewport.setImageIdIndex(imageIdIndex);
|
|
18
|
+
}
|
|
19
|
+
exports.default = jumpToSlice;
|
|
20
|
+
//# sourceMappingURL=jumpToSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":";;AAAA,8CAAuE;AAcvE,SAAS,WAAW,CAClB,OAAuB,EACvB,OAA2B;IAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,IAAI,CAAC,CAAC,QAAQ,YAAY,oBAAa,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -15,7 +15,11 @@ export default class MIPJumpToClickTool extends BaseTool {
|
|
|
15
15
|
const { element, currentPoints } = evt.detail;
|
|
16
16
|
const enabledElement = getEnabledElement(element);
|
|
17
17
|
const { viewport, renderingEngine } = enabledElement;
|
|
18
|
-
const
|
|
18
|
+
const targetId = this.getTargetId(viewport);
|
|
19
|
+
if (!targetId.startsWith('volumeId')) {
|
|
20
|
+
throw new Error(`MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId`);
|
|
21
|
+
}
|
|
22
|
+
const volumeId = targetId.split('volumeId:')[1];
|
|
19
23
|
let maxIntensity = -Infinity;
|
|
20
24
|
const maxFn = (intensity, point) => {
|
|
21
25
|
if (intensity > maxIntensity) {
|
|
@@ -23,7 +27,7 @@ export default class MIPJumpToClickTool extends BaseTool {
|
|
|
23
27
|
return point;
|
|
24
28
|
}
|
|
25
29
|
};
|
|
26
|
-
const brightestPoint = getPointInLineOfSightWithCriteria(viewport, currentPoints.world,
|
|
30
|
+
const brightestPoint = getPointInLineOfSightWithCriteria(viewport, currentPoints.world, volumeId, maxFn);
|
|
27
31
|
if (!brightestPoint || !brightestPoint.length) {
|
|
28
32
|
return;
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MIPJumpToClickTool.js","sourceRoot":"","sources":["../../../src/tools/MIPJumpToClickTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,WAAW,MAAM,mCAAmC,CAAC;AAS5D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,QAAQ;IAKtD,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,iBAAiB,EAAE,EAAE;SACtB;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAWD,kBAAkB,CAAC,GAAG;QACpB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAG9C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;QAGrD,MAAM,
|
|
1
|
+
{"version":3,"file":"MIPJumpToClickTool.js","sourceRoot":"","sources":["../../../src/tools/MIPJumpToClickTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,WAAW,MAAM,mCAAmC,CAAC;AAS5D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,QAAQ;IAKtD,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,iBAAiB,EAAE,EAAE;SACtB;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAWD,kBAAkB,CAAC,GAAG;QACpB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAG9C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;QAGrD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAiC,CAAC,CAAC;QAErE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAGhD,IAAI,YAAY,GAAG,CAAC,QAAQ,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,SAAS,GAAG,YAAY,EAAE;gBAC5B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC;QAGF,MAAM,cAAc,GAAG,iCAAiC,CACtD,QAAiC,EACjC,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC7C,OAAO;SACR;QAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAGjD,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAGvC,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEzD,IAAI,QAAQ,YAAY,cAAc,EAAE;gBACtC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;aACvC;iBAAM;gBACL,OAAO,CAAC,IAAI,CACV,wFAAwF,CACzF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAhFM,2BAAQ,GAAG,oBAAoB,CAAC"}
|
|
@@ -16,9 +16,9 @@ export default class StackScrollTool extends BaseTool {
|
|
|
16
16
|
const { deltaPoints, viewportId, renderingEngineId } = evt.detail;
|
|
17
17
|
const deltaFrames = deltaPoints.canvas[1];
|
|
18
18
|
const { viewport } = getEnabledElementByIds(viewportId, renderingEngineId);
|
|
19
|
-
const
|
|
19
|
+
const targetId = this.getTargetId(viewport);
|
|
20
20
|
const { invert } = this.configuration;
|
|
21
|
-
scrollThroughStack(
|
|
21
|
+
scrollThroughStack(viewport, targetId, deltaFrames, invert);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
StackScrollTool.toolName = 'StackScroll';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackScrollTool.js","sourceRoot":"","sources":["../../../src/tools/StackScrollTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAOlE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ;IAKnD,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,MAAM,EAAE,KAAK;SACd;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,GAAkC;QAC9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAEtC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"StackScrollTool.js","sourceRoot":"","sources":["../../../src/tools/StackScrollTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAOlE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ;IAKnD,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,MAAM,EAAE,KAAK;SACd;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,GAAkC;QAC9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAEtC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;;AA3BM,wBAAQ,GAAG,aAAa,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseTool } from './base';
|
|
2
2
|
import { scrollThroughStack } from '../utilities/stackScrollTool';
|
|
3
|
+
import { getEnabledElement } from '@cornerstonejs/core';
|
|
3
4
|
export default class StackScrollMouseWheelTool extends BaseTool {
|
|
4
5
|
constructor(toolProps = {}, defaultToolProps = {
|
|
5
6
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -8,10 +9,12 @@ export default class StackScrollMouseWheelTool extends BaseTool {
|
|
|
8
9
|
super(toolProps, defaultToolProps);
|
|
9
10
|
}
|
|
10
11
|
mouseWheelCallback(evt) {
|
|
11
|
-
const { wheel } = evt.detail;
|
|
12
|
+
const { wheel, element } = evt.detail;
|
|
12
13
|
const { direction: deltaFrames } = wheel;
|
|
13
|
-
const { invert
|
|
14
|
-
|
|
14
|
+
const { invert } = this.configuration;
|
|
15
|
+
const { viewport } = getEnabledElement(element);
|
|
16
|
+
const targetId = this.getTargetId(viewport);
|
|
17
|
+
scrollThroughStack(viewport, targetId, deltaFrames, invert);
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
20
|
StackScrollMouseWheelTool.toolName = 'StackScrollMouseWheel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackScrollToolMouseWheelTool.js","sourceRoot":"","sources":["../../../src/tools/StackScrollToolMouseWheelTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"StackScrollToolMouseWheelTool.js","sourceRoot":"","sources":["../../../src/tools/StackScrollToolMouseWheelTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,QAAQ;IAK7D,YACE,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG;QACjB,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,MAAM,EAAE,KAAK;KACd;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,GAAwB;QACzC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;;AArBM,kCAAQ,GAAG,uBAAuB,CAAC"}
|
|
@@ -49,7 +49,8 @@ export default class WindowLevelTool extends BaseTool {
|
|
|
49
49
|
let volumeId, volumeActor, lower, upper, rgbTransferFunction, modality, newRange, viewportsContainingVolumeUID;
|
|
50
50
|
let useDynamicRange = false;
|
|
51
51
|
if (viewport instanceof VolumeViewport) {
|
|
52
|
-
|
|
52
|
+
const targetId = this.getTargetId(viewport);
|
|
53
|
+
volumeId = targetId.split('volumeId:')[1];
|
|
53
54
|
({ volumeActor } = viewport.getActor(volumeId));
|
|
54
55
|
rgbTransferFunction = volumeActor.getProperty().getRGBTransferFunction(0);
|
|
55
56
|
viewportsContainingVolumeUID =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,SAAS,EACT,KAAK,GACN,MAAM,qBAAqB,CAAC;AAK7B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,IAAI,CAAC;AAQhB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ;IAKnD,YACE,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG;QACjB,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC9C;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { vec2, vec3 } from 'gl-matrix';
|
|
2
|
-
import { Settings, getEnabledElement,
|
|
2
|
+
import { Settings, getEnabledElement, triggerEvent, eventTarget, utilities as csUtils, } from '@cornerstonejs/core';
|
|
3
3
|
import { AnnotationTool } from '../base';
|
|
4
4
|
import throttle from '../../utilities/throttle';
|
|
5
5
|
import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateManagement/annotation/annotationState';
|
|
@@ -554,7 +554,7 @@ export default class BidirectionalTool extends AnnotationTool {
|
|
|
554
554
|
const targetIds = Object.keys(cachedStats);
|
|
555
555
|
for (let i = 0; i < targetIds.length; i++) {
|
|
556
556
|
const targetId = targetIds[i];
|
|
557
|
-
const
|
|
557
|
+
const image = this.getTargetIdImage(targetId, renderingEngine);
|
|
558
558
|
const { imageData, dimensions } = image;
|
|
559
559
|
const dist1 = this._calculateLength(worldPos1, worldPos2);
|
|
560
560
|
const dist2 = this._calculateLength(worldPos3, worldPos4);
|
|
@@ -599,28 +599,15 @@ export default class BidirectionalTool extends AnnotationTool {
|
|
|
599
599
|
this.isDrawing = true;
|
|
600
600
|
const camera = viewport.getCamera();
|
|
601
601
|
const { viewPlaneNormal, viewUp } = camera;
|
|
602
|
-
|
|
603
|
-
if (viewport instanceof StackViewport) {
|
|
604
|
-
referencedImageId =
|
|
605
|
-
viewport.getCurrentImageId && viewport.getCurrentImageId();
|
|
606
|
-
}
|
|
607
|
-
else {
|
|
608
|
-
const volumeId = this.getTargetId(viewport);
|
|
609
|
-
const imageVolume = cache.getVolume(volumeId);
|
|
610
|
-
referencedImageId = csUtils.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
|
|
611
|
-
}
|
|
612
|
-
if (referencedImageId) {
|
|
613
|
-
const colonIndex = referencedImageId.indexOf(':');
|
|
614
|
-
referencedImageId = referencedImageId.substring(colonIndex + 1);
|
|
615
|
-
}
|
|
602
|
+
const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
|
|
616
603
|
const annotation = {
|
|
617
604
|
highlighted: true,
|
|
618
605
|
invalidated: true,
|
|
619
606
|
metadata: {
|
|
607
|
+
toolName: BidirectionalTool.toolName,
|
|
620
608
|
viewPlaneNormal: [...viewPlaneNormal],
|
|
621
609
|
viewUp: [...viewUp],
|
|
622
610
|
FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
|
|
623
|
-
toolName: BidirectionalTool.toolName,
|
|
624
611
|
referencedImageId,
|
|
625
612
|
},
|
|
626
613
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnnotationTool } from '../base';
|
|
2
|
-
import { getEnabledElement, Settings,
|
|
2
|
+
import { getEnabledElement, Settings, VolumeViewport, eventTarget, triggerEvent, utilities as csUtils, } from '@cornerstonejs/core';
|
|
3
3
|
import throttle from '../../utilities/throttle';
|
|
4
4
|
import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateManagement/annotation/annotationState';
|
|
5
5
|
import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
|
|
@@ -34,30 +34,16 @@ export default class EllipticalROITool extends AnnotationTool {
|
|
|
34
34
|
this.isDrawing = true;
|
|
35
35
|
const camera = viewport.getCamera();
|
|
36
36
|
const { viewPlaneNormal, viewUp } = camera;
|
|
37
|
-
|
|
38
|
-
if (viewport instanceof StackViewport) {
|
|
39
|
-
referencedImageId =
|
|
40
|
-
viewport.getCurrentImageId && viewport.getCurrentImageId();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const volumeId = this.getTargetId(viewport);
|
|
44
|
-
const imageVolume = cache.getVolume(volumeId);
|
|
45
|
-
referencedImageId = csUtils.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
|
|
46
|
-
}
|
|
47
|
-
if (referencedImageId) {
|
|
48
|
-
const colonIndex = referencedImageId.indexOf(':');
|
|
49
|
-
referencedImageId = referencedImageId.substring(colonIndex + 1);
|
|
50
|
-
}
|
|
51
|
-
this.isDrawing = true;
|
|
37
|
+
const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
|
|
52
38
|
const annotation = {
|
|
53
39
|
highlighted: true,
|
|
54
40
|
invalidated: true,
|
|
55
41
|
metadata: {
|
|
42
|
+
toolName: EllipticalROITool.toolName,
|
|
56
43
|
viewPlaneNormal: [...viewPlaneNormal],
|
|
57
44
|
viewUp: [...viewUp],
|
|
58
45
|
FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
|
|
59
46
|
referencedImageId,
|
|
60
|
-
toolName: EllipticalROITool.toolName,
|
|
61
47
|
},
|
|
62
48
|
data: {
|
|
63
49
|
label: '',
|
|
@@ -417,15 +403,20 @@ export default class EllipticalROITool extends AnnotationTool {
|
|
|
417
403
|
this._throttledCalculateCachedStats(annotation, viewport, renderingEngine, enabledElement);
|
|
418
404
|
if (viewport instanceof VolumeViewport) {
|
|
419
405
|
const { referencedImageId } = annotation.metadata;
|
|
420
|
-
const
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
406
|
+
for (const targetId in data.cachedStats) {
|
|
407
|
+
if (targetId.startsWith('imageId')) {
|
|
408
|
+
const viewports = renderingEngine.getStackViewports();
|
|
409
|
+
const invalidatedStack = viewports.find((vp) => {
|
|
410
|
+
const referencedImageURI = csUtils.imageIdToURI(referencedImageId);
|
|
411
|
+
const hasImageURI = vp.hasImageURI(referencedImageURI);
|
|
412
|
+
const currentImageURI = csUtils.imageIdToURI(vp.getCurrentImageId());
|
|
413
|
+
return hasImageURI && currentImageURI !== referencedImageURI;
|
|
414
|
+
});
|
|
415
|
+
if (invalidatedStack) {
|
|
416
|
+
delete data.cachedStats[targetId];
|
|
417
|
+
}
|
|
427
418
|
}
|
|
428
|
-
}
|
|
419
|
+
}
|
|
429
420
|
}
|
|
430
421
|
}
|
|
431
422
|
if (!viewport.getRenderingEngine()) {
|
|
@@ -521,7 +512,7 @@ export default class EllipticalROITool extends AnnotationTool {
|
|
|
521
512
|
const worldPos2 = bottomRightWorld;
|
|
522
513
|
for (let i = 0; i < targetIds.length; i++) {
|
|
523
514
|
const targetId = targetIds[i];
|
|
524
|
-
const
|
|
515
|
+
const image = this.getTargetIdImage(targetId, renderingEngine);
|
|
525
516
|
const { dimensions, imageData, metadata } = image;
|
|
526
517
|
const worldPos1Index = transformWorldToIndex(imageData, worldPos1);
|
|
527
518
|
worldPos1Index[0] = Math.floor(worldPos1Index[0]);
|