@cornerstonejs/adapters 4.22.7 → 4.22.9
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/adapters/Cornerstone/Angle.js +22 -15
- package/dist/esm/adapters/Cornerstone/ArrowAnnotate.js +13 -18
- package/dist/esm/adapters/Cornerstone/Bidirectional.js +22 -27
- package/dist/esm/adapters/Cornerstone/CircleRoi.js +20 -26
- package/dist/esm/adapters/Cornerstone/CobbAngle.js +22 -15
- package/dist/esm/adapters/Cornerstone/EllipticalRoi.js +19 -25
- package/dist/esm/adapters/Cornerstone/FreehandRoi.js +21 -25
- package/dist/esm/adapters/Cornerstone/Length.js +18 -15
- package/dist/esm/adapters/Cornerstone/MeasurementReport.js +20 -40
- package/dist/esm/adapters/Cornerstone/ParametricMap.js +15 -26
- package/dist/esm/adapters/Cornerstone/RectangleRoi.js +26 -25
- package/dist/esm/adapters/Cornerstone/Segmentation_3X.js +19 -31
- package/dist/esm/adapters/Cornerstone/Segmentation_4X.js +69 -90
- package/dist/esm/adapters/Cornerstone3D/Angle.js +17 -24
- package/dist/esm/adapters/Cornerstone3D/ArrowAnnotate.js +21 -35
- package/dist/esm/adapters/Cornerstone3D/BaseAdapter3D.js +12 -23
- package/dist/esm/adapters/Cornerstone3D/Bidirectional.js +21 -33
- package/dist/esm/adapters/Cornerstone3D/CircleROI.js +27 -35
- package/dist/esm/adapters/Cornerstone3D/CobbAngle.js +25 -28
- package/dist/esm/adapters/Cornerstone3D/ControlPointPolyline.js +10 -17
- package/dist/esm/adapters/Cornerstone3D/EllipticalROI.js +25 -33
- package/dist/esm/adapters/Cornerstone3D/KeyImage.js +3 -9
- package/dist/esm/adapters/Cornerstone3D/LabelData.js +22 -33
- package/dist/esm/adapters/Cornerstone3D/Length.js +19 -27
- package/dist/esm/adapters/Cornerstone3D/MeasurementReport.js +73 -116
- package/dist/esm/adapters/Cornerstone3D/ParametricMap/generateToolState.js +2 -6
- package/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js +26 -35
- package/dist/esm/adapters/Cornerstone3D/Probe.js +16 -27
- package/dist/esm/adapters/Cornerstone3D/RTStruct/RTSS.js +13 -29
- package/dist/esm/adapters/Cornerstone3D/RTStruct/index.js +1 -3
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js +1 -3
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedSeriesSequence.js +7 -13
- package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getStructureSetModule.js +1 -3
- package/dist/esm/adapters/Cornerstone3D/RectangleROI.js +21 -28
- package/dist/esm/adapters/Cornerstone3D/Segmentation/compactMergeSegData.js +5 -9
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateLabelMaps2DFrom3D.js +2 -4
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateSegmentation.js +5 -15
- package/dist/esm/adapters/Cornerstone3D/Segmentation/generateToolState.js +3 -4
- package/dist/esm/adapters/Cornerstone3D/Segmentation/labelmapImagesFromBuffer.js +124 -156
- package/dist/esm/adapters/Cornerstone3D/UltrasoundDirectional.js +12 -23
- package/dist/esm/adapters/Cornerstone3D/metricHandler.js +8 -5
- package/dist/esm/adapters/VTKjs/Segmentation.js +2 -4
- package/dist/esm/adapters/helpers/checkOrientation.js +2 -4
- package/dist/esm/adapters/helpers/downloadDICOMData.js +1 -3
- package/dist/esm/adapters/helpers/getDatasetsFromImages.js +3 -7
- package/dist/esm/adapters/helpers/scoordToWorld.js +5 -13
- package/dist/esm/adapters/helpers/toPoint3.js +1 -3
- package/dist/esm/adapters/helpers/toScoordType.js +3 -7
- package/dist/esm/adapters/index.js +3 -2
- package/dist/esm/utilities/createInstance.js +9 -8
- package/dist/esm/utilities/referencedMetadataProvider.js +7 -13
- package/dist/esm/version.d.ts +1 -1
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import {
|
|
2
|
+
import { Enums, metaData } from '@cornerstonejs/core';
|
|
3
3
|
import { utilities, annotation } from '@cornerstonejs/tools';
|
|
4
4
|
import getReferencedFrameOfReferenceSequence from './utilities/getReferencedFrameOfReferenceSequence.js';
|
|
5
5
|
import getReferencedSeriesSequence from './utilities/getReferencedSeriesSequence.js';
|
|
@@ -10,13 +10,10 @@ import { createInstance } from '../../../utilities/createInstance.js';
|
|
|
10
10
|
|
|
11
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
const
|
|
14
|
-
generateContourSetsFromLabelmap,
|
|
15
|
-
AnnotationToPointData
|
|
16
|
-
|
|
17
|
-
const {
|
|
18
|
-
MetadataModules
|
|
19
|
-
} = Enums;
|
|
13
|
+
const _utilities$contours = utilities.contours,
|
|
14
|
+
generateContourSetsFromLabelmap = _utilities$contours.generateContourSetsFromLabelmap,
|
|
15
|
+
AnnotationToPointData = _utilities$contours.AnnotationToPointData;
|
|
16
|
+
const MetadataModules = Enums.MetadataModules;
|
|
20
17
|
function generateRTSSFromSegmentations(segmentation, metadataProvider, _DicomMetadataStore) {
|
|
21
18
|
return generateRTSSFromLabelmap(segmentation, {
|
|
22
19
|
metadataProvider,
|
|
@@ -25,9 +22,8 @@ function generateRTSSFromSegmentations(segmentation, metadataProvider, _DicomMet
|
|
|
25
22
|
}
|
|
26
23
|
async function generateRTSSFromLabelmap(segmentations, options) {
|
|
27
24
|
var _dataset$ReferencedFr;
|
|
28
|
-
const
|
|
29
|
-
metadataProvider = metaData
|
|
30
|
-
} = options;
|
|
25
|
+
const _options$metadataProv = options.metadataProvider,
|
|
26
|
+
metadataProvider = _options$metadataProv === void 0 ? metaData : _options$metadataProv;
|
|
31
27
|
const roiContours = [];
|
|
32
28
|
const contourSets = await generateContourSetsFromLabelmap({
|
|
33
29
|
segmentations
|
|
@@ -37,9 +33,7 @@ async function generateRTSSFromLabelmap(segmentations, options) {
|
|
|
37
33
|
const contourSequence = [];
|
|
38
34
|
contourSet.sliceContours.forEach(sliceContour => {
|
|
39
35
|
const ContourImageSequence = metadataProvider.get('ImageSopInstanceReference', sliceContour.referencedImageId);
|
|
40
|
-
const
|
|
41
|
-
points: polyDataPoints
|
|
42
|
-
} = sliceContour.polyData;
|
|
36
|
+
const polyDataPoints = sliceContour.polyData.points;
|
|
43
37
|
sliceContour.contours.forEach((contour, index) => {
|
|
44
38
|
const ContourGeometricType = contour.type;
|
|
45
39
|
const NumberOfContourPoints = contour.contourPoints.length;
|
|
@@ -92,19 +86,13 @@ function generateRTSSFromAnnotations(segmentations, annotations, options) {
|
|
|
92
86
|
const dataset = _initializeDataset(segmentations, annotations[0].metadata, options);
|
|
93
87
|
const segmentsContour = new Map();
|
|
94
88
|
annotations.forEach((annotation, index) => {
|
|
95
|
-
const
|
|
96
|
-
data: {
|
|
97
|
-
segmentation
|
|
98
|
-
}
|
|
99
|
-
} = annotation;
|
|
89
|
+
const segmentation = annotation.data.segmentation;
|
|
100
90
|
if (!segmentation) {
|
|
101
91
|
console.warn('Annotation is not a segmentation:', annotation);
|
|
102
92
|
return;
|
|
103
93
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
segmentIndex
|
|
107
|
-
} = segmentation;
|
|
94
|
+
const segmentationId = segmentation.segmentationId,
|
|
95
|
+
segmentIndex = segmentation.segmentIndex;
|
|
108
96
|
const key = "".concat(segmentationId, ":").concat(segmentIndex);
|
|
109
97
|
let segmentAnnotation = segmentsContour.get(key);
|
|
110
98
|
if (!segmentAnnotation) {
|
|
@@ -136,9 +124,7 @@ function generateRTSSFromAnnotations(segmentations, annotations, options) {
|
|
|
136
124
|
return dataset;
|
|
137
125
|
}
|
|
138
126
|
function _initializeDataset(segmentation, imgMetadata, options) {
|
|
139
|
-
const
|
|
140
|
-
referencedImageId: studyExemplarImageId
|
|
141
|
-
} = imgMetadata;
|
|
127
|
+
const studyExemplarImageId = imgMetadata.referencedImageId;
|
|
142
128
|
return createInstance(MetadataModules.RTSS_INSTANCE_DATA, studyExemplarImageId, {
|
|
143
129
|
StructureSetLabel: segmentation.label,
|
|
144
130
|
StructureSetName: segmentation.label,
|
|
@@ -147,9 +133,7 @@ function _initializeDataset(segmentation, imgMetadata, options) {
|
|
|
147
133
|
}, options);
|
|
148
134
|
}
|
|
149
135
|
function generateRTSSFromContour(segmentations, options) {
|
|
150
|
-
const
|
|
151
|
-
annotationUIDsMap
|
|
152
|
-
} = segmentations.representationData.Contour;
|
|
136
|
+
const annotationUIDsMap = segmentations.representationData.Contour.annotationUIDsMap;
|
|
153
137
|
const annotations = [];
|
|
154
138
|
for (const annotationSet of annotationUIDsMap.values()) {
|
|
155
139
|
for (const annotationUID of annotationSet.values()) {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { utilities } from '@cornerstonejs/tools';
|
|
2
2
|
export { generateRTSSFromAnnotations, generateRTSSFromContour, generateRTSSFromLabelmap, generateRTSSFromRepresentation, generateRTSSFromSegmentations } from './RTSS.js';
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
generateContourSetsFromLabelmap
|
|
6
|
-
} = utilities.contours;
|
|
4
|
+
const generateContourSetsFromLabelmap = utilities.contours.generateContourSetsFromLabelmap;
|
|
7
5
|
|
|
8
6
|
export { generateContourSetsFromLabelmap };
|
package/dist/esm/adapters/Cornerstone3D/RTStruct/utilities/getReferencedFrameOfReferenceSequence.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
function getReferencedFrameOfReferenceSequence(referencedFrameOfReferenceSequence, metadata, _options) {
|
|
2
|
-
const
|
|
3
|
-
FrameOfReferenceUID
|
|
4
|
-
} = metadata;
|
|
2
|
+
const FrameOfReferenceUID = metadata.FrameOfReferenceUID;
|
|
5
3
|
referencedFrameOfReferenceSequence || (referencedFrameOfReferenceSequence = []);
|
|
6
4
|
let referencedItem = referencedFrameOfReferenceSequence.find(it => it.FrameOfReferenceUID === FrameOfReferenceUID);
|
|
7
5
|
if (!referencedItem) {
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { Enums, metaData } from '@cornerstonejs/core';
|
|
2
3
|
|
|
3
|
-
const
|
|
4
|
-
MetadataModules
|
|
5
|
-
} = Enums;
|
|
4
|
+
const MetadataModules = Enums.MetadataModules;
|
|
6
5
|
function getReferencedSeriesSequence(referencedSeriesSequence, metadata, options) {
|
|
7
6
|
const metadataProvider = (options === null || options === void 0 ? void 0 : options.metadataProvider) || metaData;
|
|
8
|
-
const
|
|
9
|
-
referencedImageId: imageId
|
|
10
|
-
} = metadata;
|
|
7
|
+
const imageId = metadata.referencedImageId;
|
|
11
8
|
const newReferenceSeq = metadataProvider.get(MetadataModules.REFERENCED_SERIES_REFERENCE, imageId);
|
|
12
9
|
referencedSeriesSequence || (referencedSeriesSequence = []);
|
|
13
10
|
if (newReferenceSeq) {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
ReferencedSOPInstanceUID: newSopUID
|
|
18
|
-
}]
|
|
19
|
-
} = newReferenceSeq;
|
|
11
|
+
const newSeriesUid = newReferenceSeq.ReferencedSeriesInstanceUID,
|
|
12
|
+
_newReferenceSeq$Refe = _slicedToArray(newReferenceSeq.ReferencedInstanceSequence, 1),
|
|
13
|
+
newSopUID = _newReferenceSeq$Refe[0].ReferencedSOPInstanceUID;
|
|
20
14
|
const existingSeries = referencedSeriesSequence.find(it => it.ReferencedSeriesInstanceUID === newSeriesUid);
|
|
21
15
|
if (!existingSeries) {
|
|
22
16
|
referencedSeriesSequence.push(newReferenceSeq);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { utilities } from 'dcmjs';
|
|
3
|
+
import '../helpers/downloadDICOMData.js';
|
|
3
4
|
import { toScoords } from '../helpers/toScoordType.js';
|
|
4
|
-
import '
|
|
5
|
+
import '../helpers/scoordToWorld.js';
|
|
5
6
|
import MeasurementReport from './MeasurementReport.js';
|
|
6
7
|
import BaseAdapter3D from './BaseAdapter3D.js';
|
|
7
8
|
import { extractAllNUMGroups, restoreAdditionalMetrics } from './metricHandler.js';
|
|
@@ -9,9 +10,7 @@ import { extractAllNUMGroups, restoreAdditionalMetrics } from './metricHandler.j
|
|
|
9
10
|
var _RectangleROI;
|
|
10
11
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
-
const
|
|
13
|
-
Polyline: TID300Polyline
|
|
14
|
-
} = utilities.TID300;
|
|
13
|
+
const TID300Polyline = utilities.TID300.Polyline;
|
|
15
14
|
class RectangleROI extends BaseAdapter3D {
|
|
16
15
|
static isValidMeasurement(measurement) {
|
|
17
16
|
const graphicItem = this.getGraphicItem(measurement);
|
|
@@ -20,12 +19,11 @@ class RectangleROI extends BaseAdapter3D {
|
|
|
20
19
|
}
|
|
21
20
|
static getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata) {
|
|
22
21
|
var _areaGroup$MeasuredVa, _areaGroup$MeasuredVa2;
|
|
23
|
-
const
|
|
24
|
-
state,
|
|
25
|
-
worldCoords,
|
|
26
|
-
referencedImageId,
|
|
27
|
-
ReferencedFrameNumber
|
|
28
|
-
} = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType);
|
|
22
|
+
const _MeasurementReport$ge = MeasurementReport.getSetupMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata, this.toolType),
|
|
23
|
+
state = _MeasurementReport$ge.state,
|
|
24
|
+
worldCoords = _MeasurementReport$ge.worldCoords,
|
|
25
|
+
referencedImageId = _MeasurementReport$ge.referencedImageId,
|
|
26
|
+
ReferencedFrameNumber = _MeasurementReport$ge.ReferencedFrameNumber;
|
|
29
27
|
const points = worldCoords.length === 5 ? worldCoords.slice(0, 4) : worldCoords;
|
|
30
28
|
const areaGroup = MeasurementGroup.ContentSequence.find(g => g.ValueType === 'NUM' && g.ConceptNameCodeSequence.CodeMeaning === 'Area');
|
|
31
29
|
const referencedSOPInstanceUID = state.sopInstanceUid;
|
|
@@ -49,29 +47,24 @@ class RectangleROI extends BaseAdapter3D {
|
|
|
49
47
|
}
|
|
50
48
|
static getTID300RepresentationArguments(tool) {
|
|
51
49
|
let is3DMeasurement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
} = tool;
|
|
58
|
-
const {
|
|
59
|
-
referencedImageId
|
|
60
|
-
} = metadata;
|
|
50
|
+
const data = tool.data,
|
|
51
|
+
finding = tool.finding,
|
|
52
|
+
findingSites = tool.findingSites,
|
|
53
|
+
metadata = tool.metadata;
|
|
54
|
+
const referencedImageId = metadata.referencedImageId;
|
|
61
55
|
const scoordProps = {
|
|
62
56
|
is3DMeasurement,
|
|
63
57
|
referencedImageId
|
|
64
58
|
};
|
|
65
59
|
const corners = toScoords(scoordProps, data.handles.points);
|
|
66
|
-
const {
|
|
67
|
-
area,
|
|
68
|
-
perimeter,
|
|
69
|
-
max,
|
|
70
|
-
mean,
|
|
71
|
-
stdDev,
|
|
72
|
-
areaUnit,
|
|
73
|
-
modalityUnit
|
|
74
|
-
} = data.cachedStats["imageId:".concat(referencedImageId)] || {};
|
|
60
|
+
const _ref = data.cachedStats["imageId:".concat(referencedImageId)] || {},
|
|
61
|
+
area = _ref.area,
|
|
62
|
+
perimeter = _ref.perimeter,
|
|
63
|
+
max = _ref.max,
|
|
64
|
+
mean = _ref.mean,
|
|
65
|
+
stdDev = _ref.stdDev,
|
|
66
|
+
areaUnit = _ref.areaUnit,
|
|
67
|
+
modalityUnit = _ref.modalityUnit;
|
|
75
68
|
return {
|
|
76
69
|
points: [corners[0], corners[1], corners[3], corners[2], corners[0]],
|
|
77
70
|
area,
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
const checkHasOverlapping = _ref => {
|
|
2
|
-
let
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
newArray
|
|
6
|
-
} = _ref;
|
|
2
|
+
let largerArray = _ref.largerArray,
|
|
3
|
+
currentTestedArray = _ref.currentTestedArray,
|
|
4
|
+
newArray = _ref.newArray;
|
|
7
5
|
return largerArray.some((_, currentImageIndex) => {
|
|
8
6
|
const originalImagePixelData = currentTestedArray[currentImageIndex];
|
|
9
7
|
const newImagePixelData = newArray[currentImageIndex];
|
|
@@ -17,10 +15,8 @@ const checkHasOverlapping = _ref => {
|
|
|
17
15
|
});
|
|
18
16
|
};
|
|
19
17
|
const compactMergeSegmentDataWithoutInformationLoss = _ref2 => {
|
|
20
|
-
let
|
|
21
|
-
|
|
22
|
-
newSegmentData
|
|
23
|
-
} = _ref2;
|
|
18
|
+
let arrayOfSegmentData = _ref2.arrayOfSegmentData,
|
|
19
|
+
newSegmentData = _ref2.newSegmentData;
|
|
24
20
|
if (arrayOfSegmentData.length === 0) {
|
|
25
21
|
arrayOfSegmentData.push(newSegmentData);
|
|
26
22
|
return;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
function generateLabelMaps2DFrom3D(labelmap3D) {
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
dimensions
|
|
5
|
-
} = labelmap3D;
|
|
2
|
+
const scalarData = labelmap3D.scalarData,
|
|
3
|
+
dimensions = labelmap3D.dimensions;
|
|
6
4
|
const labelmaps2D = [];
|
|
7
5
|
const segmentsOnLabelmap3D = new Set();
|
|
8
6
|
for (let z = 0; z < dimensions[2]; z++) {
|
|
@@ -5,15 +5,9 @@ import { fillSegmentation } from '../../Cornerstone/Segmentation_4X.js';
|
|
|
5
5
|
|
|
6
6
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
7
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const {
|
|
12
|
-
SEGImageNormalizer
|
|
13
|
-
} = normalizers;
|
|
14
|
-
const {
|
|
15
|
-
Segmentation: SegmentationDerivation
|
|
16
|
-
} = derivations;
|
|
8
|
+
const MetadataModules = Enums.MetadataModules;
|
|
9
|
+
const SEGImageNormalizer = normalizers.SEGImageNormalizer;
|
|
10
|
+
const SegmentationDerivation = derivations.Segmentation;
|
|
17
11
|
function generateSegmentation(images, labelmaps, metadata) {
|
|
18
12
|
let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
19
13
|
const segmentation = _createMultiframeSegmentationFromReferencedImages(images, metadata, options);
|
|
@@ -29,9 +23,7 @@ function _createMultiframeSegmentationFromReferencedImages(images, metadata, opt
|
|
|
29
23
|
const studyImageId = (options === null || options === void 0 ? void 0 : options.predecessorImageId) || images[0].imageId;
|
|
30
24
|
const studyData = metadata.get(MetadataModules.STUDY_DATA, studyImageId);
|
|
31
25
|
const datasets = images.map(image => {
|
|
32
|
-
const
|
|
33
|
-
imageId
|
|
34
|
-
} = image;
|
|
26
|
+
const imageId = image.imageId;
|
|
35
27
|
const seriesData = metadata.get(MetadataModules.SERIES_DATA, imageId);
|
|
36
28
|
const imageData = metadata.get(MetadataModules.IMAGE_DATA, imageId);
|
|
37
29
|
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, studyData), seriesData), imageData), {}, {
|
|
@@ -49,9 +41,7 @@ function _createMultiframeSegmentationFromReferencedImages(images, metadata, opt
|
|
|
49
41
|
}
|
|
50
42
|
const normalizer = new SEGImageNormalizer(datasets);
|
|
51
43
|
normalizer.normalize();
|
|
52
|
-
const
|
|
53
|
-
dataset: multiframe
|
|
54
|
-
} = normalizer;
|
|
44
|
+
const multiframe = normalizer.dataset;
|
|
55
45
|
if (!multiframe) {
|
|
56
46
|
throw new Error('Failed to normalize the multiframe dataset, the data is not multi-frame.');
|
|
57
47
|
}
|
|
@@ -8,10 +8,9 @@ function generateToolState(imageIds, arrayBuffer, metadataProvider) {
|
|
|
8
8
|
return generateToolState$1(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance, cs3dVersion);
|
|
9
9
|
}
|
|
10
10
|
function createFromDICOMSegBuffer(referencedImageIds, arrayBuffer, _ref) {
|
|
11
|
-
let
|
|
12
|
-
|
|
13
|
-
tolerance = 1e-3
|
|
14
|
-
} = _ref;
|
|
11
|
+
let metadataProvider = _ref.metadataProvider,
|
|
12
|
+
_ref$tolerance = _ref.tolerance,
|
|
13
|
+
tolerance = _ref$tolerance === void 0 ? 1e-3 : _ref$tolerance;
|
|
15
14
|
return createLabelmapsFromBufferInternal(referencedImageIds, arrayBuffer, metadataProvider, {
|
|
16
15
|
tolerance
|
|
17
16
|
});
|