@cornerstonejs/adapters 2.0.0-beta.8 → 2.0.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/esm/_virtual/_rollupPluginBabelHelpers.js +493 -0
- package/dist/esm/adapters/Cornerstone/Angle.d.ts +42 -0
- package/dist/esm/adapters/Cornerstone/Angle.js +93 -0
- package/dist/esm/adapters/Cornerstone/ArrowAnnotate.d.ts +49 -0
- package/dist/esm/adapters/Cornerstone/ArrowAnnotate.js +97 -0
- package/dist/esm/adapters/Cornerstone/Bidirectional.d.ts +89 -0
- package/dist/esm/adapters/Cornerstone/Bidirectional.js +170 -0
- package/dist/esm/adapters/Cornerstone/CircleRoi.d.ts +58 -0
- package/dist/esm/adapters/Cornerstone/CircleRoi.js +115 -0
- package/dist/esm/adapters/Cornerstone/CobbAngle.d.ts +49 -0
- package/dist/esm/adapters/Cornerstone/CobbAngle.js +98 -0
- package/dist/esm/adapters/Cornerstone/EllipticalRoi.d.ts +57 -0
- package/dist/esm/adapters/Cornerstone/EllipticalRoi.js +178 -0
- package/dist/esm/adapters/Cornerstone/FreehandRoi.d.ts +42 -0
- package/dist/esm/adapters/Cornerstone/FreehandRoi.js +89 -0
- package/dist/esm/adapters/Cornerstone/Length.d.ts +39 -0
- package/dist/esm/adapters/Cornerstone/Length.js +82 -0
- package/dist/esm/adapters/Cornerstone/MeasurementReport.d.ts +29 -0
- package/dist/esm/adapters/Cornerstone/MeasurementReport.js +276 -0
- package/dist/esm/adapters/Cornerstone/ParametricMap.d.ts +7 -0
- package/dist/esm/adapters/Cornerstone/ParametricMap.js +210 -0
- package/dist/esm/adapters/Cornerstone/RectangleRoi.d.ts +44 -0
- package/dist/esm/adapters/Cornerstone/RectangleRoi.js +97 -0
- package/dist/esm/adapters/Cornerstone/Segmentation.d.ts +7 -0
- package/dist/esm/adapters/Cornerstone/Segmentation.js +73 -0
- package/dist/esm/adapters/Cornerstone/Segmentation_3X.d.ts +13 -0
- package/dist/esm/adapters/Cornerstone/Segmentation_3X.js +411 -0
- package/dist/esm/adapters/Cornerstone/Segmentation_4X.d.ts +13 -0
- package/dist/esm/adapters/Cornerstone/Segmentation_4X.js +1152 -0
- package/dist/esm/adapters/Cornerstone/cornerstone4Tag.d.ts +2 -0
- package/dist/esm/adapters/Cornerstone/cornerstone4Tag.js +3 -0
- package/dist/esm/adapters/Cornerstone/index.d.ts +34 -0
- package/dist/esm/adapters/Cornerstone/index.js +33 -0
- package/dist/esm/adapters/Cornerstone3D/Angle.js +109 -0
- package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.d.ts +35 -0
- package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.js +123 -0
- package/dist/esm/adapters/Cornerstone3D/Bidirectional.js +147 -0
- package/dist/{types → esm}/adapters/Cornerstone3D/CircleROI.d.ts +0 -7
- package/dist/esm/adapters/Cornerstone3D/CircleROI.js +96 -0
- package/dist/esm/adapters/Cornerstone3D/CobbAngle.js +113 -0
- package/dist/esm/adapters/Cornerstone3D/CodingScheme.d.ts +9 -0
- package/dist/esm/adapters/Cornerstone3D/CodingScheme.js +15 -0
- package/dist/esm/adapters/Cornerstone3D/EllipticalROI.js +160 -0
- package/dist/esm/adapters/Cornerstone3D/Length.d.ts +41 -0
- package/dist/esm/adapters/Cornerstone3D/Length.js +101 -0
- package/dist/{types → esm}/adapters/Cornerstone3D/MeasurementReport.d.ts +1 -8
- package/dist/esm/adapters/Cornerstone3D/MeasurementReport.js +281 -0
- package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.d.ts +3 -0
- package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.js +11 -0
- package/dist/esm/adapters/Cornerstone3D/ParametricMap/index.d.ts +1 -0
- package/dist/esm/adapters/Cornerstone3D/ParametricMap/index.js +1 -0
- package/dist/{types → esm}/adapters/Cornerstone3D/PlanarFreehandROI.d.ts +0 -2
- package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js +126 -0
- package/dist/esm/adapters/Cornerstone3D/Probe.d.ts +33 -0
- package/dist/esm/adapters/Cornerstone3D/Probe.js +87 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.d.ts +67 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.js +175 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/index.js +6 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getPatientModule.d.ts +13 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getPatientModule.js +22 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTROIObservationsSequence.d.ts +6 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTROIObservationsSequence.js +10 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTSeriesModule.d.ts +4 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getRTSeriesModule.js +9 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.d.ts +11 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js +22 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.d.ts +4 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.js +27 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.d.ts +7 -0
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.js +12 -0
- package/dist/esm/adapters/Cornerstone3D/RectangleROI.js +94 -0
- package/dist/{types → esm}/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.d.ts +0 -6
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.js +34 -0
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.d.ts +2 -0
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.js +29 -0
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.d.ts +2 -0
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.js +9 -0
- package/dist/esm/adapters/Cornerstone3D/Segmentation/index.js +3 -0
- package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.js +93 -0
- package/dist/esm/adapters/Cornerstone3D/cornerstone3DTag.d.ts +2 -0
- package/dist/esm/adapters/Cornerstone3D/cornerstone3DTag.js +3 -0
- package/dist/{types → esm}/adapters/Cornerstone3D/index.d.ts +18 -6
- package/dist/esm/adapters/Cornerstone3D/index.js +45 -0
- package/dist/esm/adapters/Cornerstone3D/isValidCornerstoneTrackingIdentifier.js +18 -0
- package/dist/esm/adapters/VTKjs/Segmentation.d.ts +3 -0
- package/dist/esm/adapters/VTKjs/Segmentation.js +186 -0
- package/dist/esm/adapters/VTKjs/index.d.ts +5 -0
- package/dist/esm/adapters/VTKjs/index.js +7 -0
- package/dist/{types → esm}/adapters/enums/Events.d.ts +0 -6
- package/dist/esm/adapters/enums/Events.js +7 -0
- package/dist/esm/adapters/enums/index.js +1 -0
- package/dist/esm/adapters/helpers/checkIfPerpendicular.d.ts +1 -0
- package/dist/esm/adapters/helpers/checkIfPerpendicular.js +7 -0
- package/dist/esm/adapters/helpers/checkOrientation.d.ts +1 -0
- package/dist/esm/adapters/helpers/checkOrientation.js +22 -0
- package/dist/esm/adapters/helpers/codeMeaningEquals.d.ts +2 -0
- package/dist/esm/adapters/helpers/codeMeaningEquals.js +7 -0
- package/dist/esm/adapters/helpers/compareArrays.d.ts +1 -0
- package/dist/esm/adapters/helpers/compareArrays.js +16 -0
- package/dist/esm/adapters/helpers/downloadDICOMData.d.ts +5 -0
- package/dist/esm/adapters/helpers/downloadDICOMData.js +26 -0
- package/dist/esm/adapters/helpers/getDatasetsFromImages.d.ts +1 -0
- package/dist/esm/adapters/helpers/getDatasetsFromImages.js +33 -0
- package/dist/esm/adapters/helpers/graphicTypeEquals.d.ts +2 -0
- package/dist/esm/adapters/helpers/graphicTypeEquals.js +7 -0
- package/dist/esm/adapters/helpers/index.js +4 -0
- package/dist/esm/adapters/helpers/toArray.js +5 -0
- package/dist/esm/adapters/index.d.ts +66 -0
- package/dist/esm/adapters/index.js +24 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +5 -0
- package/dist/umd/adapters.umd.js +5769 -0
- package/dist/umd/adapters.umd.js.map +1 -0
- package/package.json +47 -11
- package/dist/adapters.es.js +0 -5585
- package/dist/adapters.es.js.map +0 -1
- package/dist/types/adapters/Cornerstone/index.d.ts +0 -16
- package/dist/types/adapters/Cornerstone3D/RTStruct/RTSS.d.ts +0 -26
- package/dist/types/adapters/Cornerstone3D/Segmentation/generateSegmentation.d.ts +0 -8
- package/dist/types/adapters/Cornerstone3D/Segmentation/generateToolState.d.ts +0 -16
- package/dist/types/adapters/VTKjs/index.d.ts +0 -4
- package/dist/types/adapters/helpers/codeMeaningEquals.d.ts +0 -9
- package/dist/types/adapters/helpers/downloadDICOMData.d.ts +0 -10
- package/dist/types/adapters/helpers/graphicTypeEquals.d.ts +0 -7
- package/dist/types/adapters/index.d.ts +0 -49
- package/dist/types/index.d.ts +0 -2
- /package/dist/{types → esm}/adapters/Cornerstone3D/Angle.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/Bidirectional.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/CobbAngle.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/EllipticalROI.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/RTStruct/index.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/RectangleROI.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/Segmentation/index.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/UltrasoundDirectional.d.ts +0 -0
- /package/dist/{types → esm}/adapters/Cornerstone3D/isValidCornerstoneTrackingIdentifier.d.ts +0 -0
- /package/dist/{types → esm}/adapters/enums/index.d.ts +0 -0
- /package/dist/{types → esm}/adapters/helpers/index.d.ts +0 -0
- /package/dist/{types → esm}/adapters/helpers/toArray.d.ts +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import MeasurementReport from "./MeasurementReport";
|
|
2
|
+
import Length from "./Length";
|
|
3
|
+
import FreehandRoi from "./FreehandRoi";
|
|
4
|
+
import Bidirectional from "./Bidirectional";
|
|
5
|
+
import EllipticalRoi from "./EllipticalRoi";
|
|
6
|
+
import CircleRoi from "./CircleRoi";
|
|
7
|
+
import ArrowAnnotate from "./ArrowAnnotate";
|
|
8
|
+
import CobbAngle from "./CobbAngle";
|
|
9
|
+
import Angle from "./Angle";
|
|
10
|
+
import RectangleRoi from "./RectangleRoi";
|
|
11
|
+
import * as Segmentation from "./Segmentation";
|
|
12
|
+
declare const CornerstoneSR: {
|
|
13
|
+
Length: typeof Length;
|
|
14
|
+
FreehandRoi: typeof FreehandRoi;
|
|
15
|
+
Bidirectional: typeof Bidirectional;
|
|
16
|
+
EllipticalRoi: typeof EllipticalRoi;
|
|
17
|
+
CircleRoi: typeof CircleRoi;
|
|
18
|
+
ArrowAnnotate: typeof ArrowAnnotate;
|
|
19
|
+
MeasurementReport: typeof MeasurementReport;
|
|
20
|
+
CobbAngle: typeof CobbAngle;
|
|
21
|
+
Angle: typeof Angle;
|
|
22
|
+
RectangleRoi: typeof RectangleRoi;
|
|
23
|
+
};
|
|
24
|
+
declare const CornerstoneSEG: {
|
|
25
|
+
Segmentation: typeof Segmentation;
|
|
26
|
+
};
|
|
27
|
+
declare const CornerstonePMAP: {
|
|
28
|
+
ParametricMap: {
|
|
29
|
+
generateToolState: (imageIds: any, arrayBuffer: any, metadataProvider: any, tolerance?: number) => Promise<{
|
|
30
|
+
pixelData: any;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export { CornerstoneSR, CornerstoneSEG, CornerstonePMAP };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
2
|
+
import Length from './Length.js';
|
|
3
|
+
import FreehandRoi from './FreehandRoi.js';
|
|
4
|
+
import Bidirectional from './Bidirectional.js';
|
|
5
|
+
import EllipticalRoi from './EllipticalRoi.js';
|
|
6
|
+
import CircleRoi from './CircleRoi.js';
|
|
7
|
+
import ArrowAnnotate from './ArrowAnnotate.js';
|
|
8
|
+
import CobbAngle from './CobbAngle.js';
|
|
9
|
+
import Angle from './Angle.js';
|
|
10
|
+
import RectangleRoi from './RectangleRoi.js';
|
|
11
|
+
import * as Segmentation from './Segmentation.js';
|
|
12
|
+
import ParametricMapObj from './ParametricMap.js';
|
|
13
|
+
|
|
14
|
+
var CornerstoneSR = {
|
|
15
|
+
Length: Length,
|
|
16
|
+
FreehandRoi: FreehandRoi,
|
|
17
|
+
Bidirectional: Bidirectional,
|
|
18
|
+
EllipticalRoi: EllipticalRoi,
|
|
19
|
+
CircleRoi: CircleRoi,
|
|
20
|
+
ArrowAnnotate: ArrowAnnotate,
|
|
21
|
+
MeasurementReport: MeasurementReport,
|
|
22
|
+
CobbAngle: CobbAngle,
|
|
23
|
+
Angle: Angle,
|
|
24
|
+
RectangleRoi: RectangleRoi
|
|
25
|
+
};
|
|
26
|
+
var CornerstoneSEG = {
|
|
27
|
+
Segmentation: Segmentation
|
|
28
|
+
};
|
|
29
|
+
var CornerstonePMAP = {
|
|
30
|
+
ParametricMap: ParametricMapObj
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { CornerstonePMAP, CornerstoneSEG, CornerstoneSR };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, defineProperty as _defineProperty, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
|
|
4
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
5
|
+
|
|
6
|
+
var _Angle;
|
|
7
|
+
var TID300CobbAngle = utilities.TID300.CobbAngle;
|
|
8
|
+
var MEASUREMENT_TYPE = "Angle";
|
|
9
|
+
var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(MEASUREMENT_TYPE);
|
|
10
|
+
var Angle = /*#__PURE__*/function () {
|
|
11
|
+
function Angle() {
|
|
12
|
+
_classCallCheck(this, Angle);
|
|
13
|
+
}
|
|
14
|
+
return _createClass(Angle, null, [{
|
|
15
|
+
key: "getMeasurementData",
|
|
16
|
+
value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
|
|
17
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, Angle.toolType),
|
|
18
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
19
|
+
NUMGroup = _MeasurementReport$ge.NUMGroup,
|
|
20
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
|
|
21
|
+
ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
|
|
22
|
+
var referencedImageId = defaultState.annotation.metadata.referencedImageId;
|
|
23
|
+
var GraphicData = SCOORDGroup.GraphicData;
|
|
24
|
+
var worldCoords = [];
|
|
25
|
+
for (var i = 0; i < GraphicData.length; i += 2) {
|
|
26
|
+
var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
|
|
27
|
+
worldCoords.push(point);
|
|
28
|
+
}
|
|
29
|
+
var state = defaultState;
|
|
30
|
+
state.annotation.data = {
|
|
31
|
+
handles: {
|
|
32
|
+
points: [worldCoords[0], worldCoords[1], worldCoords[3]],
|
|
33
|
+
activeHandleIndex: 0,
|
|
34
|
+
textBox: {
|
|
35
|
+
hasMoved: false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), {
|
|
39
|
+
angle: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : null
|
|
40
|
+
}),
|
|
41
|
+
frameNumber: ReferencedFrameNumber
|
|
42
|
+
};
|
|
43
|
+
return state;
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
key: "getTID300RepresentationArguments",
|
|
47
|
+
value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
|
|
48
|
+
var data = tool.data,
|
|
49
|
+
finding = tool.finding,
|
|
50
|
+
findingSites = tool.findingSites,
|
|
51
|
+
metadata = tool.metadata;
|
|
52
|
+
var _data$cachedStats = data.cachedStats,
|
|
53
|
+
cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats,
|
|
54
|
+
handles = data.handles;
|
|
55
|
+
var referencedImageId = metadata.referencedImageId;
|
|
56
|
+
if (!referencedImageId) {
|
|
57
|
+
throw new Error("Angle.getTID300RepresentationArguments: referencedImageId is not defined");
|
|
58
|
+
}
|
|
59
|
+
var start1 = worldToImageCoords(referencedImageId, handles.points[0]);
|
|
60
|
+
var middle = worldToImageCoords(referencedImageId, handles.points[1]);
|
|
61
|
+
var end = worldToImageCoords(referencedImageId, handles.points[2]);
|
|
62
|
+
var point1 = {
|
|
63
|
+
x: start1[0],
|
|
64
|
+
y: start1[1]
|
|
65
|
+
};
|
|
66
|
+
var point2 = {
|
|
67
|
+
x: middle[0],
|
|
68
|
+
y: middle[1]
|
|
69
|
+
};
|
|
70
|
+
var point3 = point2;
|
|
71
|
+
var point4 = {
|
|
72
|
+
x: end[0],
|
|
73
|
+
y: end[1]
|
|
74
|
+
};
|
|
75
|
+
var _ref = cachedStats["imageId:".concat(referencedImageId)] || {},
|
|
76
|
+
angle = _ref.angle;
|
|
77
|
+
return {
|
|
78
|
+
point1: point1,
|
|
79
|
+
point2: point2,
|
|
80
|
+
point3: point3,
|
|
81
|
+
point4: point4,
|
|
82
|
+
rAngle: angle,
|
|
83
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
84
|
+
finding: finding,
|
|
85
|
+
findingSites: findingSites || []
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}]);
|
|
89
|
+
}();
|
|
90
|
+
_Angle = Angle;
|
|
91
|
+
_Angle.toolType = MEASUREMENT_TYPE;
|
|
92
|
+
_Angle.utilityToolType = MEASUREMENT_TYPE;
|
|
93
|
+
_Angle.TID300Representation = TID300CobbAngle;
|
|
94
|
+
_Angle.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
95
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
99
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
100
|
+
cornerstone3DTag = _TrackingIdentifier$s2[0],
|
|
101
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
102
|
+
if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return toolType === MEASUREMENT_TYPE;
|
|
106
|
+
};
|
|
107
|
+
MeasurementReport.registerTool(Angle);
|
|
108
|
+
|
|
109
|
+
export { Angle as default };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export default ArrowAnnotate;
|
|
2
|
+
declare class ArrowAnnotate {
|
|
3
|
+
static getMeasurementData(MeasurementGroup: any, sopInstanceUIDToImageIdMap: any, imageToWorldCoords: any, metadata: any): {
|
|
4
|
+
description: any;
|
|
5
|
+
sopInstanceUid: any;
|
|
6
|
+
annotation: {
|
|
7
|
+
annotationUID: any;
|
|
8
|
+
metadata: {
|
|
9
|
+
toolName: any;
|
|
10
|
+
referencedImageId: any;
|
|
11
|
+
FrameOfReferenceUID: any;
|
|
12
|
+
label: string;
|
|
13
|
+
};
|
|
14
|
+
data: any;
|
|
15
|
+
};
|
|
16
|
+
finding: any;
|
|
17
|
+
findingSites: any[];
|
|
18
|
+
};
|
|
19
|
+
static getTID300RepresentationArguments(tool: any, worldToImageCoords: any): {
|
|
20
|
+
points: {
|
|
21
|
+
x: any;
|
|
22
|
+
y: any;
|
|
23
|
+
}[];
|
|
24
|
+
trackingIdentifierTextValue: string;
|
|
25
|
+
findingSites: any;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
declare namespace ArrowAnnotate {
|
|
29
|
+
export { ARROW_ANNOTATE as toolType };
|
|
30
|
+
export { ARROW_ANNOTATE as utilityToolType };
|
|
31
|
+
export { TID300Point as TID300Representation };
|
|
32
|
+
export function isValidCornerstoneTrackingIdentifier(TrackingIdentifier: any): boolean;
|
|
33
|
+
}
|
|
34
|
+
declare const ARROW_ANNOTATE: "ArrowAnnotate";
|
|
35
|
+
declare const TID300Point: any;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
3
|
+
import { utilities } from 'dcmjs';
|
|
4
|
+
import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
|
|
5
|
+
import CodingScheme from './CodingScheme.js';
|
|
6
|
+
|
|
7
|
+
var TID300Point = utilities.TID300.Point;
|
|
8
|
+
var ARROW_ANNOTATE = "ArrowAnnotate";
|
|
9
|
+
var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(ARROW_ANNOTATE);
|
|
10
|
+
var codeValues = CodingScheme.codeValues,
|
|
11
|
+
CodingSchemeDesignator = CodingScheme.CodingSchemeDesignator;
|
|
12
|
+
var ArrowAnnotate = /*#__PURE__*/function () {
|
|
13
|
+
function ArrowAnnotate() {
|
|
14
|
+
_classCallCheck(this, ArrowAnnotate);
|
|
15
|
+
}
|
|
16
|
+
return _createClass(ArrowAnnotate, null, [{
|
|
17
|
+
key: "getMeasurementData",
|
|
18
|
+
value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
|
|
19
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, ArrowAnnotate.toolType),
|
|
20
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
21
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
|
|
22
|
+
ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
|
|
23
|
+
var referencedImageId = defaultState.annotation.metadata.referencedImageId;
|
|
24
|
+
var text = defaultState.annotation.metadata.label;
|
|
25
|
+
var GraphicData = SCOORDGroup.GraphicData;
|
|
26
|
+
var worldCoords = [];
|
|
27
|
+
for (var i = 0; i < GraphicData.length; i += 2) {
|
|
28
|
+
var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
|
|
29
|
+
worldCoords.push(point);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Since the arrowAnnotate measurement is just a point, to generate the tool state
|
|
33
|
+
// we derive the second point based on the image size relative to the first point.
|
|
34
|
+
if (worldCoords.length === 1) {
|
|
35
|
+
var imagePixelModule = metadata.get("imagePixelModule", referencedImageId);
|
|
36
|
+
var xOffset = 10;
|
|
37
|
+
var yOffset = 10;
|
|
38
|
+
if (imagePixelModule) {
|
|
39
|
+
var columns = imagePixelModule.columns,
|
|
40
|
+
rows = imagePixelModule.rows;
|
|
41
|
+
xOffset = columns / 10;
|
|
42
|
+
yOffset = rows / 10;
|
|
43
|
+
}
|
|
44
|
+
var secondPoint = imageToWorldCoords(referencedImageId, [GraphicData[0] + xOffset, GraphicData[1] + yOffset]);
|
|
45
|
+
worldCoords.push(secondPoint);
|
|
46
|
+
}
|
|
47
|
+
var state = defaultState;
|
|
48
|
+
state.annotation.data = {
|
|
49
|
+
text: text,
|
|
50
|
+
handles: {
|
|
51
|
+
arrowFirst: true,
|
|
52
|
+
points: [worldCoords[0], worldCoords[1]],
|
|
53
|
+
activeHandleIndex: 0,
|
|
54
|
+
textBox: {
|
|
55
|
+
hasMoved: false
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
frameNumber: ReferencedFrameNumber
|
|
59
|
+
};
|
|
60
|
+
return state;
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "getTID300RepresentationArguments",
|
|
64
|
+
value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
|
|
65
|
+
var data = tool.data,
|
|
66
|
+
metadata = tool.metadata;
|
|
67
|
+
var finding = tool.finding,
|
|
68
|
+
findingSites = tool.findingSites;
|
|
69
|
+
var referencedImageId = metadata.referencedImageId;
|
|
70
|
+
if (!referencedImageId) {
|
|
71
|
+
throw new Error("ArrowAnnotate.getTID300RepresentationArguments: referencedImageId is not defined");
|
|
72
|
+
}
|
|
73
|
+
var _data$handles = data.handles,
|
|
74
|
+
points = _data$handles.points,
|
|
75
|
+
arrowFirst = _data$handles.arrowFirst;
|
|
76
|
+
var point;
|
|
77
|
+
if (arrowFirst) {
|
|
78
|
+
point = points[0];
|
|
79
|
+
} else {
|
|
80
|
+
point = points[1];
|
|
81
|
+
}
|
|
82
|
+
var pointImage = worldToImageCoords(referencedImageId, point);
|
|
83
|
+
var TID300RepresentationArguments = {
|
|
84
|
+
points: [{
|
|
85
|
+
x: pointImage[0],
|
|
86
|
+
y: pointImage[1]
|
|
87
|
+
}],
|
|
88
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
89
|
+
findingSites: findingSites || []
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// If freetext finding isn't present, add it from the tool text.
|
|
93
|
+
if (!finding || finding.CodeValue !== codeValues.CORNERSTONEFREETEXT) {
|
|
94
|
+
finding = {
|
|
95
|
+
CodeValue: codeValues.CORNERSTONEFREETEXT,
|
|
96
|
+
CodingSchemeDesignator: CodingSchemeDesignator,
|
|
97
|
+
CodeMeaning: data.text
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
TID300RepresentationArguments.finding = finding;
|
|
101
|
+
return TID300RepresentationArguments;
|
|
102
|
+
}
|
|
103
|
+
}]);
|
|
104
|
+
}();
|
|
105
|
+
ArrowAnnotate.toolType = ARROW_ANNOTATE;
|
|
106
|
+
ArrowAnnotate.utilityToolType = ARROW_ANNOTATE;
|
|
107
|
+
ArrowAnnotate.TID300Representation = TID300Point;
|
|
108
|
+
ArrowAnnotate.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
109
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
113
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
114
|
+
cornerstone3DTag = _TrackingIdentifier$s2[0],
|
|
115
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
116
|
+
if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return toolType === ARROW_ANNOTATE;
|
|
120
|
+
};
|
|
121
|
+
MeasurementReport.registerTool(ArrowAnnotate);
|
|
122
|
+
|
|
123
|
+
export { ArrowAnnotate as default };
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, defineProperty as _defineProperty, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
|
|
4
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
5
|
+
import { toArray } from '../helpers/toArray.js';
|
|
6
|
+
import '../helpers/downloadDICOMData.js';
|
|
7
|
+
|
|
8
|
+
var _Bidirectional;
|
|
9
|
+
var TID300Bidirectional = utilities.TID300.Bidirectional;
|
|
10
|
+
var BIDIRECTIONAL = "Bidirectional";
|
|
11
|
+
var LONG_AXIS = "Long Axis";
|
|
12
|
+
var SHORT_AXIS = "Short Axis";
|
|
13
|
+
var trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(BIDIRECTIONAL);
|
|
14
|
+
var Bidirectional = /*#__PURE__*/function () {
|
|
15
|
+
function Bidirectional() {
|
|
16
|
+
_classCallCheck(this, Bidirectional);
|
|
17
|
+
}
|
|
18
|
+
return _createClass(Bidirectional, null, [{
|
|
19
|
+
key: "getMeasurementData",
|
|
20
|
+
value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
|
|
21
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, Bidirectional.toolType),
|
|
22
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
23
|
+
ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
|
|
24
|
+
var referencedImageId = defaultState.annotation.metadata.referencedImageId;
|
|
25
|
+
var ContentSequence = MeasurementGroup.ContentSequence;
|
|
26
|
+
var longAxisNUMGroup = toArray(ContentSequence).find(function (group) {
|
|
27
|
+
return group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS;
|
|
28
|
+
});
|
|
29
|
+
var longAxisSCOORDGroup = toArray(longAxisNUMGroup.ContentSequence).find(function (group) {
|
|
30
|
+
return group.ValueType === "SCOORD";
|
|
31
|
+
});
|
|
32
|
+
var shortAxisNUMGroup = toArray(ContentSequence).find(function (group) {
|
|
33
|
+
return group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS;
|
|
34
|
+
});
|
|
35
|
+
var shortAxisSCOORDGroup = toArray(shortAxisNUMGroup.ContentSequence).find(function (group) {
|
|
36
|
+
return group.ValueType === "SCOORD";
|
|
37
|
+
});
|
|
38
|
+
var worldCoords = [];
|
|
39
|
+
[longAxisSCOORDGroup, shortAxisSCOORDGroup].forEach(function (group) {
|
|
40
|
+
var GraphicData = group.GraphicData;
|
|
41
|
+
for (var i = 0; i < GraphicData.length; i += 2) {
|
|
42
|
+
var point = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
|
|
43
|
+
worldCoords.push(point);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
var state = defaultState;
|
|
47
|
+
state.annotation.data = {
|
|
48
|
+
handles: {
|
|
49
|
+
points: [worldCoords[0], worldCoords[1], worldCoords[2], worldCoords[3]],
|
|
50
|
+
activeHandleIndex: 0,
|
|
51
|
+
textBox: {
|
|
52
|
+
hasMoved: false
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), {
|
|
56
|
+
length: longAxisNUMGroup.MeasuredValueSequence.NumericValue,
|
|
57
|
+
width: shortAxisNUMGroup.MeasuredValueSequence.NumericValue
|
|
58
|
+
}),
|
|
59
|
+
frameNumber: ReferencedFrameNumber
|
|
60
|
+
};
|
|
61
|
+
return state;
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: "getTID300RepresentationArguments",
|
|
65
|
+
value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
|
|
66
|
+
var data = tool.data,
|
|
67
|
+
finding = tool.finding,
|
|
68
|
+
findingSites = tool.findingSites,
|
|
69
|
+
metadata = tool.metadata;
|
|
70
|
+
var _data$cachedStats = data.cachedStats,
|
|
71
|
+
cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats,
|
|
72
|
+
handles = data.handles;
|
|
73
|
+
var referencedImageId = metadata.referencedImageId;
|
|
74
|
+
if (!referencedImageId) {
|
|
75
|
+
throw new Error("Bidirectional.getTID300RepresentationArguments: referencedImageId is not defined");
|
|
76
|
+
}
|
|
77
|
+
var _ref = cachedStats["imageId:".concat(referencedImageId)] || {},
|
|
78
|
+
length = _ref.length,
|
|
79
|
+
width = _ref.width;
|
|
80
|
+
var points = handles.points;
|
|
81
|
+
var firstPointPairs = [points[0], points[1]];
|
|
82
|
+
var secondPointPairs = [points[2], points[3]];
|
|
83
|
+
var firstPointPairsDistance = Math.sqrt(Math.pow(firstPointPairs[0][0] - firstPointPairs[1][0], 2) + Math.pow(firstPointPairs[0][1] - firstPointPairs[1][1], 2) + Math.pow(firstPointPairs[0][2] - firstPointPairs[1][2], 2));
|
|
84
|
+
var secondPointPairsDistance = Math.sqrt(Math.pow(secondPointPairs[0][0] - secondPointPairs[1][0], 2) + Math.pow(secondPointPairs[0][1] - secondPointPairs[1][1], 2) + Math.pow(secondPointPairs[0][2] - secondPointPairs[1][2], 2));
|
|
85
|
+
var shortAxisPoints;
|
|
86
|
+
var longAxisPoints;
|
|
87
|
+
if (firstPointPairsDistance > secondPointPairsDistance) {
|
|
88
|
+
shortAxisPoints = firstPointPairs;
|
|
89
|
+
longAxisPoints = secondPointPairs;
|
|
90
|
+
} else {
|
|
91
|
+
shortAxisPoints = secondPointPairs;
|
|
92
|
+
longAxisPoints = firstPointPairs;
|
|
93
|
+
}
|
|
94
|
+
var longAxisStartImage = worldToImageCoords(referencedImageId, shortAxisPoints[0]);
|
|
95
|
+
var longAxisEndImage = worldToImageCoords(referencedImageId, shortAxisPoints[1]);
|
|
96
|
+
var shortAxisStartImage = worldToImageCoords(referencedImageId, longAxisPoints[0]);
|
|
97
|
+
var shortAxisEndImage = worldToImageCoords(referencedImageId, longAxisPoints[1]);
|
|
98
|
+
return {
|
|
99
|
+
longAxis: {
|
|
100
|
+
point1: {
|
|
101
|
+
x: longAxisStartImage[0],
|
|
102
|
+
y: longAxisStartImage[1]
|
|
103
|
+
},
|
|
104
|
+
point2: {
|
|
105
|
+
x: longAxisEndImage[0],
|
|
106
|
+
y: longAxisEndImage[1]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
shortAxis: {
|
|
110
|
+
point1: {
|
|
111
|
+
x: shortAxisStartImage[0],
|
|
112
|
+
y: shortAxisStartImage[1]
|
|
113
|
+
},
|
|
114
|
+
point2: {
|
|
115
|
+
x: shortAxisEndImage[0],
|
|
116
|
+
y: shortAxisEndImage[1]
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
longAxisLength: length,
|
|
120
|
+
shortAxisLength: width,
|
|
121
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
122
|
+
finding: finding,
|
|
123
|
+
findingSites: findingSites || []
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}]);
|
|
127
|
+
}();
|
|
128
|
+
_Bidirectional = Bidirectional;
|
|
129
|
+
_Bidirectional.toolType = BIDIRECTIONAL;
|
|
130
|
+
_Bidirectional.utilityToolType = BIDIRECTIONAL;
|
|
131
|
+
_Bidirectional.TID300Representation = TID300Bidirectional;
|
|
132
|
+
_Bidirectional.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
133
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
137
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
138
|
+
cornerstone3DTag = _TrackingIdentifier$s2[0],
|
|
139
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
140
|
+
if (cornerstone3DTag !== CORNERSTONE_3D_TAG) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return toolType === BIDIRECTIONAL;
|
|
144
|
+
};
|
|
145
|
+
MeasurementReport.registerTool(Bidirectional);
|
|
146
|
+
|
|
147
|
+
export { Bidirectional as default };
|
|
@@ -5,7 +5,6 @@ declare class CircleROI {
|
|
|
5
5
|
static utilityToolType: string;
|
|
6
6
|
static TID300Representation: any;
|
|
7
7
|
static isValidCornerstoneTrackingIdentifier: typeof isValidCornerstoneTrackingIdentifier;
|
|
8
|
-
/** Gets the measurement data for cornerstone, given DICOM SR measurement data. */
|
|
9
8
|
static getMeasurementData(MeasurementGroup: any, sopInstanceUIDToImageIdMap: any, imageToWorldCoords: any, metadata: any): {
|
|
10
9
|
description: any;
|
|
11
10
|
sopInstanceUid: any;
|
|
@@ -22,12 +21,6 @@ declare class CircleROI {
|
|
|
22
21
|
finding: any;
|
|
23
22
|
findingSites: any[];
|
|
24
23
|
};
|
|
25
|
-
/**
|
|
26
|
-
* Gets the TID 300 representation of a circle, given the cornerstone representation.
|
|
27
|
-
*
|
|
28
|
-
* @param {Object} tool
|
|
29
|
-
* @returns
|
|
30
|
-
*/
|
|
31
24
|
static getTID300RepresentationArguments(tool: any, worldToImageCoords: any): {
|
|
32
25
|
area: any;
|
|
33
26
|
perimeter: number;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createClass as _createClass, defineProperty as _defineProperty, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
4
|
+
import CORNERSTONE_3D_TAG from './cornerstone3DTag.js';
|
|
5
|
+
import isValidCornerstoneTrackingIdentifier from './isValidCornerstoneTrackingIdentifier.js';
|
|
6
|
+
|
|
7
|
+
var _CircleROI;
|
|
8
|
+
var TID300Circle = utilities.TID300.Circle;
|
|
9
|
+
var CIRCLEROI = "CircleROI";
|
|
10
|
+
var CircleROI = /*#__PURE__*/function () {
|
|
11
|
+
function CircleROI() {
|
|
12
|
+
_classCallCheck(this, CircleROI);
|
|
13
|
+
}
|
|
14
|
+
return _createClass(CircleROI, null, [{
|
|
15
|
+
key: "getMeasurementData",
|
|
16
|
+
value: function getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, imageToWorldCoords, metadata) {
|
|
17
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, CircleROI.toolType),
|
|
18
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
19
|
+
NUMGroup = _MeasurementReport$ge.NUMGroup,
|
|
20
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
|
|
21
|
+
ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
|
|
22
|
+
var referencedImageId = defaultState.annotation.metadata.referencedImageId;
|
|
23
|
+
var GraphicData = SCOORDGroup.GraphicData;
|
|
24
|
+
var pointsWorld = [];
|
|
25
|
+
for (var i = 0; i < GraphicData.length; i += 2) {
|
|
26
|
+
var worldPos = imageToWorldCoords(referencedImageId, [GraphicData[i], GraphicData[i + 1]]);
|
|
27
|
+
pointsWorld.push(worldPos);
|
|
28
|
+
}
|
|
29
|
+
var state = defaultState;
|
|
30
|
+
state.annotation.data = {
|
|
31
|
+
handles: {
|
|
32
|
+
points: [].concat(pointsWorld),
|
|
33
|
+
activeHandleIndex: 0,
|
|
34
|
+
textBox: {
|
|
35
|
+
hasMoved: false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
cachedStats: _defineProperty({}, "imageId:".concat(referencedImageId), {
|
|
39
|
+
area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0,
|
|
40
|
+
radius: 0,
|
|
41
|
+
perimeter: 0
|
|
42
|
+
}),
|
|
43
|
+
frameNumber: ReferencedFrameNumber
|
|
44
|
+
};
|
|
45
|
+
return state;
|
|
46
|
+
}
|
|
47
|
+
}, {
|
|
48
|
+
key: "getTID300RepresentationArguments",
|
|
49
|
+
value: function getTID300RepresentationArguments(tool, worldToImageCoords) {
|
|
50
|
+
var data = tool.data,
|
|
51
|
+
finding = tool.finding,
|
|
52
|
+
findingSites = tool.findingSites,
|
|
53
|
+
metadata = tool.metadata;
|
|
54
|
+
var _data$cachedStats = data.cachedStats,
|
|
55
|
+
cachedStats = _data$cachedStats === void 0 ? {} : _data$cachedStats,
|
|
56
|
+
handles = data.handles;
|
|
57
|
+
var referencedImageId = metadata.referencedImageId;
|
|
58
|
+
if (!referencedImageId) {
|
|
59
|
+
throw new Error("CircleROI.getTID300RepresentationArguments: referencedImageId is not defined");
|
|
60
|
+
}
|
|
61
|
+
var center = worldToImageCoords(referencedImageId, handles.points[0]);
|
|
62
|
+
var end = worldToImageCoords(referencedImageId, handles.points[1]);
|
|
63
|
+
var points = [];
|
|
64
|
+
points.push({
|
|
65
|
+
x: center[0],
|
|
66
|
+
y: center[1]
|
|
67
|
+
});
|
|
68
|
+
points.push({
|
|
69
|
+
x: end[0],
|
|
70
|
+
y: end[1]
|
|
71
|
+
});
|
|
72
|
+
var _ref = cachedStats["imageId:".concat(referencedImageId)] || {},
|
|
73
|
+
area = _ref.area,
|
|
74
|
+
radius = _ref.radius;
|
|
75
|
+
var perimeter = 2 * Math.PI * radius;
|
|
76
|
+
return {
|
|
77
|
+
area: area,
|
|
78
|
+
perimeter: perimeter,
|
|
79
|
+
radius: radius,
|
|
80
|
+
points: points,
|
|
81
|
+
trackingIdentifierTextValue: this.trackingIdentifierTextValue,
|
|
82
|
+
finding: finding,
|
|
83
|
+
findingSites: findingSites || []
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}]);
|
|
87
|
+
}();
|
|
88
|
+
_CircleROI = CircleROI;
|
|
89
|
+
_CircleROI.trackingIdentifierTextValue = "".concat(CORNERSTONE_3D_TAG, ":").concat(CIRCLEROI);
|
|
90
|
+
_CircleROI.toolType = CIRCLEROI;
|
|
91
|
+
_CircleROI.utilityToolType = CIRCLEROI;
|
|
92
|
+
_CircleROI.TID300Representation = TID300Circle;
|
|
93
|
+
_CircleROI.isValidCornerstoneTrackingIdentifier = isValidCornerstoneTrackingIdentifier;
|
|
94
|
+
MeasurementReport.registerTool(CircleROI);
|
|
95
|
+
|
|
96
|
+
export { CircleROI as default };
|