@cornerstonejs/adapters 2.0.0-beta.7 → 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 -5623
- 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,97 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, objectSpread2 as _objectSpread2, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
4
|
+
import CORNERSTONE_4_TAG from './cornerstone4Tag.js';
|
|
5
|
+
|
|
6
|
+
var TID300Point = utilities.TID300.Point;
|
|
7
|
+
var ARROW_ANNOTATE = "ArrowAnnotate";
|
|
8
|
+
var CORNERSTONEFREETEXT = "CORNERSTONEFREETEXT";
|
|
9
|
+
var ArrowAnnotate = /*#__PURE__*/function () {
|
|
10
|
+
function ArrowAnnotate() {
|
|
11
|
+
_classCallCheck(this, ArrowAnnotate);
|
|
12
|
+
}
|
|
13
|
+
return _createClass(ArrowAnnotate, null, [{
|
|
14
|
+
key: "getMeasurementData",
|
|
15
|
+
value: function getMeasurementData(MeasurementGroup) {
|
|
16
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup),
|
|
17
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
18
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup,
|
|
19
|
+
findingGroup = _MeasurementReport$ge.findingGroup;
|
|
20
|
+
var text = findingGroup.ConceptCodeSequence.CodeMeaning;
|
|
21
|
+
var GraphicData = SCOORDGroup.GraphicData;
|
|
22
|
+
var state = _objectSpread2(_objectSpread2({}, defaultState), {}, {
|
|
23
|
+
toolType: ArrowAnnotate.toolType,
|
|
24
|
+
active: false,
|
|
25
|
+
handles: {
|
|
26
|
+
start: {
|
|
27
|
+
x: GraphicData[0],
|
|
28
|
+
y: GraphicData[1],
|
|
29
|
+
highlight: true,
|
|
30
|
+
active: false
|
|
31
|
+
},
|
|
32
|
+
// Use a generic offset if the stored data doesn't have the endpoint, otherwise
|
|
33
|
+
// use the actual endpoint.
|
|
34
|
+
end: {
|
|
35
|
+
x: GraphicData.length == 4 ? GraphicData[2] : GraphicData[0] + 20,
|
|
36
|
+
y: GraphicData.length == 4 ? GraphicData[3] : GraphicData[1] + 20,
|
|
37
|
+
highlight: true,
|
|
38
|
+
active: false
|
|
39
|
+
},
|
|
40
|
+
textBox: {
|
|
41
|
+
hasMoved: false,
|
|
42
|
+
movesIndependently: false,
|
|
43
|
+
drawnIndependently: true,
|
|
44
|
+
allowedOutsideImage: true,
|
|
45
|
+
hasBoundingBox: true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
invalidated: true,
|
|
49
|
+
text: text,
|
|
50
|
+
visible: true
|
|
51
|
+
});
|
|
52
|
+
return state;
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
key: "getTID300RepresentationArguments",
|
|
56
|
+
value: function getTID300RepresentationArguments(tool) {
|
|
57
|
+
var points = [tool.handles.start, tool.handles.end];
|
|
58
|
+
var finding = tool.finding,
|
|
59
|
+
findingSites = tool.findingSites;
|
|
60
|
+
var TID300RepresentationArguments = {
|
|
61
|
+
points: points,
|
|
62
|
+
trackingIdentifierTextValue: "cornerstoneTools@^4.0.0:ArrowAnnotate",
|
|
63
|
+
findingSites: findingSites || []
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// If freetext finding isn't present, add it from the tool text.
|
|
67
|
+
if (!finding || finding.CodeValue !== CORNERSTONEFREETEXT) {
|
|
68
|
+
finding = {
|
|
69
|
+
CodeValue: CORNERSTONEFREETEXT,
|
|
70
|
+
CodingSchemeDesignator: "CST4",
|
|
71
|
+
CodeMeaning: tool.text
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
TID300RepresentationArguments.finding = finding;
|
|
75
|
+
return TID300RepresentationArguments;
|
|
76
|
+
}
|
|
77
|
+
}]);
|
|
78
|
+
}();
|
|
79
|
+
ArrowAnnotate.toolType = ARROW_ANNOTATE;
|
|
80
|
+
ArrowAnnotate.utilityToolType = ARROW_ANNOTATE;
|
|
81
|
+
ArrowAnnotate.TID300Representation = TID300Point;
|
|
82
|
+
ArrowAnnotate.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
83
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
87
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
88
|
+
cornerstone4Tag = _TrackingIdentifier$s2[0],
|
|
89
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
90
|
+
if (cornerstone4Tag !== CORNERSTONE_4_TAG) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
return toolType === ARROW_ANNOTATE;
|
|
94
|
+
};
|
|
95
|
+
MeasurementReport.registerTool(ArrowAnnotate);
|
|
96
|
+
|
|
97
|
+
export { ArrowAnnotate as default };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export default Bidirectional;
|
|
2
|
+
declare class Bidirectional {
|
|
3
|
+
static getMeasurementData(MeasurementGroup: any): {
|
|
4
|
+
sopInstanceUid: any;
|
|
5
|
+
frameIndex: any;
|
|
6
|
+
toolType: string;
|
|
7
|
+
active: boolean;
|
|
8
|
+
handles: {
|
|
9
|
+
start: {
|
|
10
|
+
x: any;
|
|
11
|
+
y: any;
|
|
12
|
+
drawnIndependently: boolean;
|
|
13
|
+
allowedOutsideImage: boolean;
|
|
14
|
+
active: boolean;
|
|
15
|
+
highlight: boolean;
|
|
16
|
+
index: number;
|
|
17
|
+
};
|
|
18
|
+
end: {
|
|
19
|
+
x: any;
|
|
20
|
+
y: any;
|
|
21
|
+
drawnIndependently: boolean;
|
|
22
|
+
allowedOutsideImage: boolean;
|
|
23
|
+
active: boolean;
|
|
24
|
+
highlight: boolean;
|
|
25
|
+
index: number;
|
|
26
|
+
};
|
|
27
|
+
perpendicularStart: {
|
|
28
|
+
x: any;
|
|
29
|
+
y: any;
|
|
30
|
+
drawnIndependently: boolean;
|
|
31
|
+
allowedOutsideImage: boolean;
|
|
32
|
+
active: boolean;
|
|
33
|
+
highlight: boolean;
|
|
34
|
+
index: number;
|
|
35
|
+
};
|
|
36
|
+
perpendicularEnd: {
|
|
37
|
+
x: any;
|
|
38
|
+
y: any;
|
|
39
|
+
drawnIndependently: boolean;
|
|
40
|
+
allowedOutsideImage: boolean;
|
|
41
|
+
active: boolean;
|
|
42
|
+
highlight: boolean;
|
|
43
|
+
index: number;
|
|
44
|
+
};
|
|
45
|
+
textBox: {
|
|
46
|
+
highlight: boolean;
|
|
47
|
+
hasMoved: boolean;
|
|
48
|
+
active: boolean;
|
|
49
|
+
movesIndependently: boolean;
|
|
50
|
+
drawnIndependently: boolean;
|
|
51
|
+
allowedOutsideImage: boolean;
|
|
52
|
+
hasBoundingBox: boolean;
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
invalidated: boolean;
|
|
58
|
+
isCreating: boolean;
|
|
59
|
+
longestDiameter: string;
|
|
60
|
+
shortestDiameter: string;
|
|
61
|
+
toolName: string;
|
|
62
|
+
visible: boolean;
|
|
63
|
+
finding: any;
|
|
64
|
+
findingSites: any[];
|
|
65
|
+
};
|
|
66
|
+
static getTID300RepresentationArguments(tool: any): {
|
|
67
|
+
longAxis: {
|
|
68
|
+
point1: any;
|
|
69
|
+
point2: any;
|
|
70
|
+
};
|
|
71
|
+
shortAxis: {
|
|
72
|
+
point1: any;
|
|
73
|
+
point2: any;
|
|
74
|
+
};
|
|
75
|
+
longAxisLength: any;
|
|
76
|
+
shortAxisLength: any;
|
|
77
|
+
trackingIdentifierTextValue: string;
|
|
78
|
+
finding: any;
|
|
79
|
+
findingSites: any;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
declare namespace Bidirectional {
|
|
83
|
+
export { BIDIRECTIONAL as toolType };
|
|
84
|
+
export { BIDIRECTIONAL as utilityToolType };
|
|
85
|
+
export { TID300Bidirectional as TID300Representation };
|
|
86
|
+
export function isValidCornerstoneTrackingIdentifier(TrackingIdentifier: any): boolean;
|
|
87
|
+
}
|
|
88
|
+
declare const BIDIRECTIONAL: "Bidirectional";
|
|
89
|
+
declare const TID300Bidirectional: any;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
4
|
+
import CORNERSTONE_4_TAG from './cornerstone4Tag.js';
|
|
5
|
+
import { toArray } from '../helpers/toArray.js';
|
|
6
|
+
import '../helpers/downloadDICOMData.js';
|
|
7
|
+
|
|
8
|
+
var TID300Bidirectional = utilities.TID300.Bidirectional;
|
|
9
|
+
var BIDIRECTIONAL = "Bidirectional";
|
|
10
|
+
var LONG_AXIS = "Long Axis";
|
|
11
|
+
var SHORT_AXIS = "Short Axis";
|
|
12
|
+
var FINDING = "121071";
|
|
13
|
+
var FINDING_SITE = "G-C0E3";
|
|
14
|
+
var Bidirectional = /*#__PURE__*/function () {
|
|
15
|
+
function Bidirectional() {
|
|
16
|
+
_classCallCheck(this, Bidirectional);
|
|
17
|
+
}
|
|
18
|
+
return _createClass(Bidirectional, null, [{
|
|
19
|
+
key: "getMeasurementData",
|
|
20
|
+
value:
|
|
21
|
+
// TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.
|
|
22
|
+
function getMeasurementData(MeasurementGroup) {
|
|
23
|
+
var ContentSequence = MeasurementGroup.ContentSequence;
|
|
24
|
+
var findingGroup = toArray(ContentSequence).find(function (group) {
|
|
25
|
+
return group.ConceptNameCodeSequence.CodeValue === FINDING;
|
|
26
|
+
});
|
|
27
|
+
var findingSiteGroups = toArray(ContentSequence).filter(function (group) {
|
|
28
|
+
return group.ConceptNameCodeSequence.CodeValue === FINDING_SITE;
|
|
29
|
+
});
|
|
30
|
+
var longAxisNUMGroup = toArray(ContentSequence).find(function (group) {
|
|
31
|
+
return group.ConceptNameCodeSequence.CodeMeaning === LONG_AXIS;
|
|
32
|
+
});
|
|
33
|
+
var longAxisSCOORDGroup = toArray(longAxisNUMGroup.ContentSequence).find(function (group) {
|
|
34
|
+
return group.ValueType === "SCOORD";
|
|
35
|
+
});
|
|
36
|
+
var shortAxisNUMGroup = toArray(ContentSequence).find(function (group) {
|
|
37
|
+
return group.ConceptNameCodeSequence.CodeMeaning === SHORT_AXIS;
|
|
38
|
+
});
|
|
39
|
+
var shortAxisSCOORDGroup = toArray(shortAxisNUMGroup.ContentSequence).find(function (group) {
|
|
40
|
+
return group.ValueType === "SCOORD";
|
|
41
|
+
});
|
|
42
|
+
var ReferencedSOPSequence = longAxisSCOORDGroup.ContentSequence.ReferencedSOPSequence;
|
|
43
|
+
var ReferencedSOPInstanceUID = ReferencedSOPSequence.ReferencedSOPInstanceUID,
|
|
44
|
+
ReferencedFrameNumber = ReferencedSOPSequence.ReferencedFrameNumber;
|
|
45
|
+
|
|
46
|
+
// Long axis
|
|
47
|
+
|
|
48
|
+
var longestDiameter = String(longAxisNUMGroup.MeasuredValueSequence.NumericValue);
|
|
49
|
+
var shortestDiameter = String(shortAxisNUMGroup.MeasuredValueSequence.NumericValue);
|
|
50
|
+
var bottomRight = {
|
|
51
|
+
x: Math.max(longAxisSCOORDGroup.GraphicData[0], longAxisSCOORDGroup.GraphicData[2], shortAxisSCOORDGroup.GraphicData[0], shortAxisSCOORDGroup.GraphicData[2]),
|
|
52
|
+
y: Math.max(longAxisSCOORDGroup.GraphicData[1], longAxisSCOORDGroup.GraphicData[3], shortAxisSCOORDGroup.GraphicData[1], shortAxisSCOORDGroup.GraphicData[3])
|
|
53
|
+
};
|
|
54
|
+
var state = {
|
|
55
|
+
sopInstanceUid: ReferencedSOPInstanceUID,
|
|
56
|
+
frameIndex: ReferencedFrameNumber || 1,
|
|
57
|
+
toolType: Bidirectional.toolType,
|
|
58
|
+
active: false,
|
|
59
|
+
handles: {
|
|
60
|
+
start: {
|
|
61
|
+
x: longAxisSCOORDGroup.GraphicData[0],
|
|
62
|
+
y: longAxisSCOORDGroup.GraphicData[1],
|
|
63
|
+
drawnIndependently: false,
|
|
64
|
+
allowedOutsideImage: false,
|
|
65
|
+
active: false,
|
|
66
|
+
highlight: false,
|
|
67
|
+
index: 0
|
|
68
|
+
},
|
|
69
|
+
end: {
|
|
70
|
+
x: longAxisSCOORDGroup.GraphicData[2],
|
|
71
|
+
y: longAxisSCOORDGroup.GraphicData[3],
|
|
72
|
+
drawnIndependently: false,
|
|
73
|
+
allowedOutsideImage: false,
|
|
74
|
+
active: false,
|
|
75
|
+
highlight: false,
|
|
76
|
+
index: 1
|
|
77
|
+
},
|
|
78
|
+
perpendicularStart: {
|
|
79
|
+
x: shortAxisSCOORDGroup.GraphicData[0],
|
|
80
|
+
y: shortAxisSCOORDGroup.GraphicData[1],
|
|
81
|
+
drawnIndependently: false,
|
|
82
|
+
allowedOutsideImage: false,
|
|
83
|
+
active: false,
|
|
84
|
+
highlight: false,
|
|
85
|
+
index: 2
|
|
86
|
+
},
|
|
87
|
+
perpendicularEnd: {
|
|
88
|
+
x: shortAxisSCOORDGroup.GraphicData[2],
|
|
89
|
+
y: shortAxisSCOORDGroup.GraphicData[3],
|
|
90
|
+
drawnIndependently: false,
|
|
91
|
+
allowedOutsideImage: false,
|
|
92
|
+
active: false,
|
|
93
|
+
highlight: false,
|
|
94
|
+
index: 3
|
|
95
|
+
},
|
|
96
|
+
textBox: {
|
|
97
|
+
highlight: false,
|
|
98
|
+
hasMoved: true,
|
|
99
|
+
active: false,
|
|
100
|
+
movesIndependently: false,
|
|
101
|
+
drawnIndependently: true,
|
|
102
|
+
allowedOutsideImage: true,
|
|
103
|
+
hasBoundingBox: true,
|
|
104
|
+
x: bottomRight.x + 10,
|
|
105
|
+
y: bottomRight.y + 10
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
invalidated: false,
|
|
109
|
+
isCreating: false,
|
|
110
|
+
longestDiameter: longestDiameter,
|
|
111
|
+
shortestDiameter: shortestDiameter,
|
|
112
|
+
toolName: "Bidirectional",
|
|
113
|
+
visible: true,
|
|
114
|
+
finding: findingGroup ? findingGroup.ConceptCodeSequence : undefined,
|
|
115
|
+
findingSites: findingSiteGroups.map(function (fsg) {
|
|
116
|
+
return fsg.ConceptCodeSequence;
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
return state;
|
|
120
|
+
}
|
|
121
|
+
}, {
|
|
122
|
+
key: "getTID300RepresentationArguments",
|
|
123
|
+
value: function getTID300RepresentationArguments(tool) {
|
|
124
|
+
var _tool$handles = tool.handles,
|
|
125
|
+
start = _tool$handles.start,
|
|
126
|
+
end = _tool$handles.end,
|
|
127
|
+
perpendicularStart = _tool$handles.perpendicularStart,
|
|
128
|
+
perpendicularEnd = _tool$handles.perpendicularEnd;
|
|
129
|
+
var shortestDiameter = tool.shortestDiameter,
|
|
130
|
+
longestDiameter = tool.longestDiameter,
|
|
131
|
+
finding = tool.finding,
|
|
132
|
+
findingSites = tool.findingSites;
|
|
133
|
+
var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:Bidirectional";
|
|
134
|
+
return {
|
|
135
|
+
longAxis: {
|
|
136
|
+
point1: start,
|
|
137
|
+
point2: end
|
|
138
|
+
},
|
|
139
|
+
shortAxis: {
|
|
140
|
+
point1: perpendicularStart,
|
|
141
|
+
point2: perpendicularEnd
|
|
142
|
+
},
|
|
143
|
+
longAxisLength: longestDiameter,
|
|
144
|
+
shortAxisLength: shortestDiameter,
|
|
145
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
146
|
+
finding: finding,
|
|
147
|
+
findingSites: findingSites || []
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}]);
|
|
151
|
+
}();
|
|
152
|
+
Bidirectional.toolType = BIDIRECTIONAL;
|
|
153
|
+
Bidirectional.utilityToolType = BIDIRECTIONAL;
|
|
154
|
+
Bidirectional.TID300Representation = TID300Bidirectional;
|
|
155
|
+
Bidirectional.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
156
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
160
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
161
|
+
cornerstone4Tag = _TrackingIdentifier$s2[0],
|
|
162
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
163
|
+
if (cornerstone4Tag !== CORNERSTONE_4_TAG) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
return toolType === BIDIRECTIONAL;
|
|
167
|
+
};
|
|
168
|
+
MeasurementReport.registerTool(Bidirectional);
|
|
169
|
+
|
|
170
|
+
export { Bidirectional as default };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export default CircleRoi;
|
|
2
|
+
declare class CircleRoi {
|
|
3
|
+
static getMeasurementData(MeasurementGroup: any): {
|
|
4
|
+
toolType: string;
|
|
5
|
+
active: boolean;
|
|
6
|
+
cachedStats: {
|
|
7
|
+
area: any;
|
|
8
|
+
radius: number;
|
|
9
|
+
perimeter: number;
|
|
10
|
+
};
|
|
11
|
+
handles: {
|
|
12
|
+
end: {
|
|
13
|
+
highlight: boolean;
|
|
14
|
+
active: boolean;
|
|
15
|
+
x: any;
|
|
16
|
+
y: any;
|
|
17
|
+
};
|
|
18
|
+
initialRotation: number;
|
|
19
|
+
start: {
|
|
20
|
+
highlight: boolean;
|
|
21
|
+
active: boolean;
|
|
22
|
+
x: any;
|
|
23
|
+
y: any;
|
|
24
|
+
};
|
|
25
|
+
textBox: {
|
|
26
|
+
hasMoved: boolean;
|
|
27
|
+
movesIndependently: boolean;
|
|
28
|
+
drawnIndependently: boolean;
|
|
29
|
+
allowedOutsideImage: boolean;
|
|
30
|
+
hasBoundingBox: boolean;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
invalidated: boolean;
|
|
34
|
+
visible: boolean;
|
|
35
|
+
sopInstanceUid: any;
|
|
36
|
+
frameIndex: any;
|
|
37
|
+
complete: boolean;
|
|
38
|
+
finding: any;
|
|
39
|
+
findingSites: any[];
|
|
40
|
+
};
|
|
41
|
+
static getTID300RepresentationArguments(tool: any): {
|
|
42
|
+
area: any;
|
|
43
|
+
perimeter: number;
|
|
44
|
+
radius: any;
|
|
45
|
+
points: any[];
|
|
46
|
+
trackingIdentifierTextValue: string;
|
|
47
|
+
finding: any;
|
|
48
|
+
findingSites: any;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
declare namespace CircleRoi {
|
|
52
|
+
export { CIRCLEROI as toolType };
|
|
53
|
+
export { CIRCLEROI as utilityToolType };
|
|
54
|
+
export { TID300Circle as TID300Representation };
|
|
55
|
+
export function isValidCornerstoneTrackingIdentifier(TrackingIdentifier: any): boolean;
|
|
56
|
+
}
|
|
57
|
+
declare const CIRCLEROI: "CircleRoi";
|
|
58
|
+
declare const TID300Circle: any;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, objectSpread2 as _objectSpread2, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
4
|
+
import CORNERSTONE_4_TAG from './cornerstone4Tag.js';
|
|
5
|
+
|
|
6
|
+
var TID300Circle = utilities.TID300.Circle;
|
|
7
|
+
var CIRCLEROI = "CircleRoi";
|
|
8
|
+
var CircleRoi = /*#__PURE__*/function () {
|
|
9
|
+
function CircleRoi() {
|
|
10
|
+
_classCallCheck(this, CircleRoi);
|
|
11
|
+
}
|
|
12
|
+
return _createClass(CircleRoi, null, [{
|
|
13
|
+
key: "getMeasurementData",
|
|
14
|
+
value: /** Gets the measurement data for cornerstone, given DICOM SR measurement data. */
|
|
15
|
+
function getMeasurementData(MeasurementGroup) {
|
|
16
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup),
|
|
17
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
18
|
+
NUMGroup = _MeasurementReport$ge.NUMGroup,
|
|
19
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup;
|
|
20
|
+
var GraphicData = SCOORDGroup.GraphicData;
|
|
21
|
+
var center = {
|
|
22
|
+
x: GraphicData[0],
|
|
23
|
+
y: GraphicData[1]
|
|
24
|
+
};
|
|
25
|
+
var end = {
|
|
26
|
+
x: GraphicData[2],
|
|
27
|
+
y: GraphicData[3]
|
|
28
|
+
};
|
|
29
|
+
var state = _objectSpread2(_objectSpread2({}, defaultState), {}, {
|
|
30
|
+
toolType: CircleRoi.toolType,
|
|
31
|
+
active: false,
|
|
32
|
+
cachedStats: {
|
|
33
|
+
area: NUMGroup ? NUMGroup.MeasuredValueSequence.NumericValue : 0,
|
|
34
|
+
// Dummy values to be updated by cornerstone
|
|
35
|
+
radius: 0,
|
|
36
|
+
perimeter: 0
|
|
37
|
+
},
|
|
38
|
+
handles: {
|
|
39
|
+
end: _objectSpread2(_objectSpread2({}, end), {}, {
|
|
40
|
+
highlight: false,
|
|
41
|
+
active: false
|
|
42
|
+
}),
|
|
43
|
+
initialRotation: 0,
|
|
44
|
+
start: _objectSpread2(_objectSpread2({}, center), {}, {
|
|
45
|
+
highlight: false,
|
|
46
|
+
active: false
|
|
47
|
+
}),
|
|
48
|
+
textBox: {
|
|
49
|
+
hasMoved: false,
|
|
50
|
+
movesIndependently: false,
|
|
51
|
+
drawnIndependently: true,
|
|
52
|
+
allowedOutsideImage: true,
|
|
53
|
+
hasBoundingBox: true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
invalidated: true,
|
|
57
|
+
visible: true
|
|
58
|
+
});
|
|
59
|
+
return state;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Gets the TID 300 representation of a circle, given the cornerstone representation.
|
|
64
|
+
*
|
|
65
|
+
* @param {Object} tool
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
}, {
|
|
69
|
+
key: "getTID300RepresentationArguments",
|
|
70
|
+
value: function getTID300RepresentationArguments(tool) {
|
|
71
|
+
var _tool$cachedStats = tool.cachedStats,
|
|
72
|
+
cachedStats = _tool$cachedStats === void 0 ? {} : _tool$cachedStats,
|
|
73
|
+
handles = tool.handles,
|
|
74
|
+
finding = tool.finding,
|
|
75
|
+
findingSites = tool.findingSites;
|
|
76
|
+
var center = handles.start,
|
|
77
|
+
end = handles.end;
|
|
78
|
+
var area = cachedStats.area,
|
|
79
|
+
radius = cachedStats.radius;
|
|
80
|
+
var perimeter = 2 * Math.PI * radius;
|
|
81
|
+
var points = [];
|
|
82
|
+
points.push(center);
|
|
83
|
+
points.push(end);
|
|
84
|
+
var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:CircleRoi";
|
|
85
|
+
return {
|
|
86
|
+
area: area,
|
|
87
|
+
perimeter: perimeter,
|
|
88
|
+
radius: radius,
|
|
89
|
+
points: points,
|
|
90
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
91
|
+
finding: finding,
|
|
92
|
+
findingSites: findingSites || []
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}]);
|
|
96
|
+
}();
|
|
97
|
+
CircleRoi.toolType = CIRCLEROI;
|
|
98
|
+
CircleRoi.utilityToolType = CIRCLEROI;
|
|
99
|
+
CircleRoi.TID300Representation = TID300Circle;
|
|
100
|
+
CircleRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
101
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
105
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
106
|
+
cornerstone4Tag = _TrackingIdentifier$s2[0],
|
|
107
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
108
|
+
if (cornerstone4Tag !== CORNERSTONE_4_TAG) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return toolType === CIRCLEROI;
|
|
112
|
+
};
|
|
113
|
+
MeasurementReport.registerTool(CircleRoi);
|
|
114
|
+
|
|
115
|
+
export { CircleRoi as default };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export default CobbAngle;
|
|
2
|
+
declare class CobbAngle {
|
|
3
|
+
static getMeasurementData(MeasurementGroup: any): {
|
|
4
|
+
rAngle: any;
|
|
5
|
+
toolType: string;
|
|
6
|
+
handles: {
|
|
7
|
+
start: {};
|
|
8
|
+
end: {};
|
|
9
|
+
start2: {
|
|
10
|
+
highlight: boolean;
|
|
11
|
+
drawnIndependently: boolean;
|
|
12
|
+
};
|
|
13
|
+
end2: {
|
|
14
|
+
highlight: boolean;
|
|
15
|
+
drawnIndependently: boolean;
|
|
16
|
+
};
|
|
17
|
+
textBox: {
|
|
18
|
+
hasMoved: boolean;
|
|
19
|
+
movesIndependently: boolean;
|
|
20
|
+
drawnIndependently: boolean;
|
|
21
|
+
allowedOutsideImage: boolean;
|
|
22
|
+
hasBoundingBox: boolean;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
sopInstanceUid: any;
|
|
26
|
+
frameIndex: any;
|
|
27
|
+
complete: boolean;
|
|
28
|
+
finding: any;
|
|
29
|
+
findingSites: any[];
|
|
30
|
+
};
|
|
31
|
+
static getTID300RepresentationArguments(tool: any): {
|
|
32
|
+
point1: any;
|
|
33
|
+
point2: any;
|
|
34
|
+
point3: any;
|
|
35
|
+
point4: any;
|
|
36
|
+
rAngle: any;
|
|
37
|
+
trackingIdentifierTextValue: string;
|
|
38
|
+
finding: any;
|
|
39
|
+
findingSites: any;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
declare namespace CobbAngle {
|
|
43
|
+
export { COBB_ANGLE as toolType };
|
|
44
|
+
export { COBB_ANGLE as utilityToolType };
|
|
45
|
+
export { TID300CobbAngle as TID300Representation };
|
|
46
|
+
export function isValidCornerstoneTrackingIdentifier(TrackingIdentifier: any): boolean;
|
|
47
|
+
}
|
|
48
|
+
declare const COBB_ANGLE: "CobbAngle";
|
|
49
|
+
declare const TID300CobbAngle: any;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, createClass as _createClass, objectSpread2 as _objectSpread2, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { utilities } from 'dcmjs';
|
|
3
|
+
import MeasurementReport from './MeasurementReport.js';
|
|
4
|
+
import CORNERSTONE_4_TAG from './cornerstone4Tag.js';
|
|
5
|
+
|
|
6
|
+
var TID300CobbAngle = utilities.TID300.CobbAngle;
|
|
7
|
+
var COBB_ANGLE = "CobbAngle";
|
|
8
|
+
var CobbAngle = /*#__PURE__*/function () {
|
|
9
|
+
function CobbAngle() {
|
|
10
|
+
_classCallCheck(this, CobbAngle);
|
|
11
|
+
}
|
|
12
|
+
return _createClass(CobbAngle, null, [{
|
|
13
|
+
key: "getMeasurementData",
|
|
14
|
+
value:
|
|
15
|
+
// TODO: this function is required for all Cornerstone Tool Adapters, since it is called by MeasurementReport.
|
|
16
|
+
function getMeasurementData(MeasurementGroup) {
|
|
17
|
+
var _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup),
|
|
18
|
+
defaultState = _MeasurementReport$ge.defaultState,
|
|
19
|
+
NUMGroup = _MeasurementReport$ge.NUMGroup,
|
|
20
|
+
SCOORDGroup = _MeasurementReport$ge.SCOORDGroup;
|
|
21
|
+
var state = _objectSpread2(_objectSpread2({}, defaultState), {}, {
|
|
22
|
+
rAngle: NUMGroup.MeasuredValueSequence.NumericValue,
|
|
23
|
+
toolType: CobbAngle.toolType,
|
|
24
|
+
handles: {
|
|
25
|
+
start: {},
|
|
26
|
+
end: {},
|
|
27
|
+
start2: {
|
|
28
|
+
highlight: true,
|
|
29
|
+
drawnIndependently: true
|
|
30
|
+
},
|
|
31
|
+
end2: {
|
|
32
|
+
highlight: true,
|
|
33
|
+
drawnIndependently: true
|
|
34
|
+
},
|
|
35
|
+
textBox: {
|
|
36
|
+
hasMoved: false,
|
|
37
|
+
movesIndependently: false,
|
|
38
|
+
drawnIndependently: true,
|
|
39
|
+
allowedOutsideImage: true,
|
|
40
|
+
hasBoundingBox: true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
var _SCOORDGroup$GraphicD = _slicedToArray(SCOORDGroup.GraphicData, 8);
|
|
45
|
+
state.handles.start.x = _SCOORDGroup$GraphicD[0];
|
|
46
|
+
state.handles.start.y = _SCOORDGroup$GraphicD[1];
|
|
47
|
+
state.handles.end.x = _SCOORDGroup$GraphicD[2];
|
|
48
|
+
state.handles.end.y = _SCOORDGroup$GraphicD[3];
|
|
49
|
+
state.handles.start2.x = _SCOORDGroup$GraphicD[4];
|
|
50
|
+
state.handles.start2.y = _SCOORDGroup$GraphicD[5];
|
|
51
|
+
state.handles.end2.x = _SCOORDGroup$GraphicD[6];
|
|
52
|
+
state.handles.end2.y = _SCOORDGroup$GraphicD[7];
|
|
53
|
+
return state;
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
key: "getTID300RepresentationArguments",
|
|
57
|
+
value: function getTID300RepresentationArguments(tool) {
|
|
58
|
+
var handles = tool.handles,
|
|
59
|
+
finding = tool.finding,
|
|
60
|
+
findingSites = tool.findingSites;
|
|
61
|
+
var point1 = handles.start;
|
|
62
|
+
var point2 = handles.end;
|
|
63
|
+
var point3 = handles.start2;
|
|
64
|
+
var point4 = handles.end2;
|
|
65
|
+
var rAngle = tool.rAngle;
|
|
66
|
+
var trackingIdentifierTextValue = "cornerstoneTools@^4.0.0:CobbAngle";
|
|
67
|
+
return {
|
|
68
|
+
point1: point1,
|
|
69
|
+
point2: point2,
|
|
70
|
+
point3: point3,
|
|
71
|
+
point4: point4,
|
|
72
|
+
rAngle: rAngle,
|
|
73
|
+
trackingIdentifierTextValue: trackingIdentifierTextValue,
|
|
74
|
+
finding: finding,
|
|
75
|
+
findingSites: findingSites || []
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}]);
|
|
79
|
+
}();
|
|
80
|
+
CobbAngle.toolType = COBB_ANGLE;
|
|
81
|
+
CobbAngle.utilityToolType = COBB_ANGLE;
|
|
82
|
+
CobbAngle.TID300Representation = TID300CobbAngle;
|
|
83
|
+
CobbAngle.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier) {
|
|
84
|
+
if (!TrackingIdentifier.includes(":")) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
var _TrackingIdentifier$s = TrackingIdentifier.split(":"),
|
|
88
|
+
_TrackingIdentifier$s2 = _slicedToArray(_TrackingIdentifier$s, 2),
|
|
89
|
+
cornerstone4Tag = _TrackingIdentifier$s2[0],
|
|
90
|
+
toolType = _TrackingIdentifier$s2[1];
|
|
91
|
+
if (cornerstone4Tag !== CORNERSTONE_4_TAG) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return toolType === COBB_ANGLE;
|
|
95
|
+
};
|
|
96
|
+
MeasurementReport.registerTool(CobbAngle);
|
|
97
|
+
|
|
98
|
+
export { CobbAngle as default };
|