@ohif/app 3.9.0-beta.77 → 3.9.0-beta.79
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/{1169.bundle.a3d3d310f1d8d7e335bf.js → 1169.bundle.d32f38ab5aa329346850.js} +46 -106
- package/dist/{1202.bundle.1468f0e71fea0c593081.js → 1202.bundle.55f140afb05e1ad5512c.js} +503 -153
- package/dist/{2568.css → 1540.css} +1 -0
- package/dist/{1994.bundle.39ea4d1a48d42cdca49b.js → 1994.bundle.04ba989c747992f45c6e.js} +3 -3
- package/dist/{9824.bundle.8e8afc799f0534014fa9.js → 2119.bundle.142793bed5b53a2f4a30.js} +4 -4
- package/dist/{9824.css → 2119.css} +1 -0
- package/dist/{2650.bundle.1f7d90198b9e361dfb9c.js → 2650.bundle.feb3b241748314884ae4.js} +57 -35
- package/dist/{3117.bundle.c83d0f403d17104a7c4c.js → 3117.bundle.463d5fa4671a93939d36.js} +8 -7
- package/dist/{4210.bundle.f1af90765358215ca053.js → 4210.bundle.e81688aaa6aec1c4f973.js} +2 -2
- package/dist/{4842.bundle.11abbf3f8699b84a7537.js → 4842.bundle.9264e466874f0206d564.js} +12 -8
- package/dist/{5888.bundle.f48daf22ce156ac4956a.js → 5888.bundle.8b4c8f227376800c6e1d.js} +14 -7
- package/dist/{2417.bundle.4a0334c8c4047005979e.js → 5898.bundle.be696e0b355efc1c7f05.js} +1947 -1
- package/dist/{2281.bundle.b20397636c4b681f4463.js → 655.bundle.805114d0d89a4bd4d92d.js} +170 -66
- package/dist/{6591.bundle.092858f2e84426bc0010.js → 6591.bundle.5b4b8bfff223013aa46f.js} +15 -1
- package/dist/{7502.bundle.7f3a72a5571a00fda890.js → 7502.bundle.e37c3a247f287d282838.js} +4 -6
- package/dist/{3424.bundle.1b6101d721148c04242b.js → 79.bundle.b03daeeef3e6faf9dca3.js} +5 -47
- package/dist/{8993.bundle.256bb3c84d2564a5f3cf.js → 8993.bundle.23cd5f8560800a97d798.js} +39 -32
- package/dist/{2065.bundle.fc147f9fde903e0768f4.js → 8999.bundle.d9dbbf80990887877381.js} +13 -133
- package/dist/{9579.bundle.7212d7a737a71bb61502.js → 9579.bundle.f9c9be0c5ab6cddbde3d.js} +8 -7
- package/dist/{5516.bundle.f61b8aebe75f7bafd5b1.js → 962.bundle.c6dcf9d6c1d56ebff24d.js} +408 -179
- package/dist/app-config.js +1 -0
- package/dist/{app.bundle.e3ce3b1cf2fae5cedcd3.js → app.bundle.7851cb292073f6e7a0c5.js} +646 -349
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.40b9a8c9006bb15691ee.js → polySeg.bundle.0a70e65fe89169ec7508.js} +1 -1
- package/dist/{suv-peak-worker.bundle.a70e70b9ef87c18b896c.js → suv-peak-worker.bundle.54d68bc1808ad3d77994.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- package/dist/7604.bundle.42d3f08efb3a9eae4581.js +0 -1950
- package/dist/{1498.bundle.d8f5281952d09c57ef87.js → 1498.bundle.a2d05ac1f27d0c2d2c9f.js} +0 -0
- package/dist/{153.bundle.94f93195fab889e0add8.js → 153.bundle.52f9f8d3ecfc88f18ebb.js} +0 -0
- package/dist/{2791.bundle.597dca661f5f08060ad3.js → 2791.bundle.cdffc588e0401363be5c.js} +0 -0
- package/dist/{3497.bundle.a04a2444975bf50fddf8.js → 3497.bundle.512610422a2862584c55.js} +0 -0
- package/dist/{3962.bundle.db07d757866d3a3b20b3.js → 3962.bundle.0d49146b27c7b7dcb48a.js} +0 -0
- package/dist/{4353.bundle.c835b4ea70768a207c59.js → 4353.bundle.7aacb9d40bc20bb4aa36.js} +0 -0
- package/dist/{4978.bundle.c5d6cac06bcc9656c900.js → 4978.bundle.f580a489066e909c8dc9.js} +0 -0
- package/dist/{5793.bundle.eed3fe9019c31999efff.js → 5793.bundle.d1b4e887564bbb98752d.js} +0 -0
- package/dist/{6904.bundle.27abf08c0f2e4fe5e06d.js → 6904.bundle.da0d83fcd48a48cfaac1.js} +0 -0
- package/dist/{7246.bundle.d3f1bb1a40801b133810.js → 7246.bundle.32f7f871fb1016362af8.js} +0 -0
- package/dist/{7360.bundle.b28c83aa3910eaa427ee.js → 7360.bundle.4233f9f8747d6facdc54.js} +0 -0
- package/dist/{7376.bundle.1173819ab2acd8610f1e.js → 7376.bundle.f087dc1e0e16a41dedbe.js} +0 -0
- package/dist/{3424.css → 79.css} +1 -1
- /package/dist/{7913.bundle.5702ee8798da273c0c5d.js → 7913.bundle.207d7463f90bb92e4ab4.js} +0 -0
- /package/dist/{818.bundle.b64fae7e982e16a82ca2.js → 818.bundle.b6027359846cc90e32ff.js} +0 -0
- /package/dist/{8944.bundle.3bf7ef09ea87195b9e23.js → 8944.bundle.2c07f90c73692457ffa3.js} +0 -0
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8
8
|
/* harmony export */ Y: () => (/* binding */ index),
|
|
9
|
+
/* harmony export */ _: () => (/* binding */ adaptersPMAP),
|
|
9
10
|
/* harmony export */ adaptersRT: () => (/* binding */ adaptersRT),
|
|
10
11
|
/* harmony export */ adaptersSEG: () => (/* binding */ adaptersSEG),
|
|
11
12
|
/* harmony export */ adaptersSR: () => (/* binding */ adaptersSR),
|
|
@@ -579,10 +580,10 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
579
580
|
var TID1500$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.TID1500,
|
|
580
581
|
addAccessors$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.addAccessors;
|
|
581
582
|
var StructuredReport$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .derivations */ .U7.StructuredReport;
|
|
582
|
-
var Normalizer$
|
|
583
|
+
var Normalizer$6 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .normalizers */ .oq.Normalizer;
|
|
583
584
|
var TID1500MeasurementReport$1 = TID1500$1.TID1500MeasurementReport,
|
|
584
585
|
TID1501MeasurementGroup$1 = TID1500$1.TID1501MeasurementGroup;
|
|
585
|
-
var DicomMetaDictionary$
|
|
586
|
+
var DicomMetaDictionary$6 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMetaDictionary;
|
|
586
587
|
var FINDING$2 = {
|
|
587
588
|
CodingSchemeDesignator: "DCM",
|
|
588
589
|
CodeValue: "121071"
|
|
@@ -711,7 +712,7 @@ var MeasurementReport$1 = /*#__PURE__*/function () {
|
|
|
711
712
|
ReferencedSOPClassUID: sopCommonModule.sopClassUID,
|
|
712
713
|
ReferencedSOPInstanceUID: sopCommonModule.sopInstanceUID
|
|
713
714
|
};
|
|
714
|
-
if (Normalizer$
|
|
715
|
+
if (Normalizer$6.isMultiframeSOPClassUID(sopCommonModule.sopClassUID)) {
|
|
715
716
|
ReferencedSOPSequence.ReferencedFrameNumber = frameNumber;
|
|
716
717
|
}
|
|
717
718
|
|
|
@@ -752,7 +753,7 @@ var MeasurementReport$1 = /*#__PURE__*/function () {
|
|
|
752
753
|
vr: "UI"
|
|
753
754
|
},
|
|
754
755
|
ImplementationClassUID: {
|
|
755
|
-
Value: [DicomMetaDictionary$
|
|
756
|
+
Value: [DicomMetaDictionary$6.uid()],
|
|
756
757
|
// TODO: could be git hash or other valid id
|
|
757
758
|
vr: "UI"
|
|
758
759
|
},
|
|
@@ -1808,6 +1809,44 @@ RectangleRoi.isValidCornerstoneTrackingIdentifier = function (TrackingIdentifier
|
|
|
1808
1809
|
};
|
|
1809
1810
|
MeasurementReport$1.registerTool(RectangleRoi);
|
|
1810
1811
|
|
|
1812
|
+
var DicomMessage$3 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMessage, DicomMetaDictionary$5 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMetaDictionary;
|
|
1813
|
+
var Normalizer$5 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .normalizers */ .oq.Normalizer;
|
|
1814
|
+
/**
|
|
1815
|
+
* Convert an array of cornerstone images into datasets
|
|
1816
|
+
*
|
|
1817
|
+
* @param images - An array of the cornerstone image objects
|
|
1818
|
+
* @param isMultiframe - Whether the images are multiframe
|
|
1819
|
+
* @param options - Options object that may contain:
|
|
1820
|
+
* - SpecificCharacterSet: character set to be set to each dataset
|
|
1821
|
+
*/
|
|
1822
|
+
function getDatasetsFromImages(images, isMultiframe, options) {
|
|
1823
|
+
var datasets = [];
|
|
1824
|
+
if (isMultiframe) {
|
|
1825
|
+
var image = images[0];
|
|
1826
|
+
var arrayBuffer = image.data.byteArray.buffer;
|
|
1827
|
+
var dicomData = DicomMessage$3.readFile(arrayBuffer);
|
|
1828
|
+
var dataset = DicomMetaDictionary$5.naturalizeDataset(dicomData.dict);
|
|
1829
|
+
dataset._meta = DicomMetaDictionary$5.namifyDataset(dicomData.meta);
|
|
1830
|
+
datasets.push(dataset);
|
|
1831
|
+
}
|
|
1832
|
+
else {
|
|
1833
|
+
for (var i = 0; i < images.length; i++) {
|
|
1834
|
+
var image = images[i];
|
|
1835
|
+
var arrayBuffer = image.data.byteArray.buffer;
|
|
1836
|
+
var dicomData = DicomMessage$3.readFile(arrayBuffer);
|
|
1837
|
+
var dataset = DicomMetaDictionary$5.naturalizeDataset(dicomData.dict);
|
|
1838
|
+
dataset._meta = DicomMetaDictionary$5.namifyDataset(dicomData.meta);
|
|
1839
|
+
datasets.push(dataset);
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
if (options === null || options === void 0 ? void 0 : options.SpecificCharacterSet) {
|
|
1843
|
+
datasets.forEach(function (dataset) {
|
|
1844
|
+
return (dataset.SpecificCharacterSet = options.SpecificCharacterSet);
|
|
1845
|
+
});
|
|
1846
|
+
}
|
|
1847
|
+
return Normalizer$5.normalizeToDataset(datasets);
|
|
1848
|
+
}
|
|
1849
|
+
|
|
1811
1850
|
var _utilities$orientatio$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.orientation,
|
|
1812
1851
|
rotateDirectionCosinesInPlane$1 = _utilities$orientatio$1.rotateDirectionCosinesInPlane,
|
|
1813
1852
|
flipIOP$1 = _utilities$orientatio$1.flipImageOrientationPatient,
|
|
@@ -1815,13 +1854,13 @@ var _utilities$orientatio$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */
|
|
|
1815
1854
|
rotateMatrix902D$1 = _utilities$orientatio$1.rotateMatrix902D;
|
|
1816
1855
|
var datasetToBlob = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.datasetToBlob,
|
|
1817
1856
|
BitArray$2 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.BitArray,
|
|
1818
|
-
DicomMessage$
|
|
1819
|
-
DicomMetaDictionary$
|
|
1820
|
-
var Normalizer$
|
|
1857
|
+
DicomMessage$2 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.DicomMessage,
|
|
1858
|
+
DicomMetaDictionary$4 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.DicomMetaDictionary;
|
|
1859
|
+
var Normalizer$4 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .normalizers */ .oq.Normalizer;
|
|
1821
1860
|
var SegmentationDerivation$2 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .derivations */ .U7.Segmentation;
|
|
1822
1861
|
var Segmentation$5 = {
|
|
1823
1862
|
generateSegmentation: generateSegmentation$3,
|
|
1824
|
-
generateToolState: generateToolState$
|
|
1863
|
+
generateToolState: generateToolState$5
|
|
1825
1864
|
};
|
|
1826
1865
|
|
|
1827
1866
|
/**
|
|
@@ -1941,25 +1980,7 @@ function _getSegCount(seg, segments) {
|
|
|
1941
1980
|
* @returns {Object} The Seg derived dataSet.
|
|
1942
1981
|
*/
|
|
1943
1982
|
function _createSegFromImages$1(images, isMultiframe, options) {
|
|
1944
|
-
var
|
|
1945
|
-
if (isMultiframe) {
|
|
1946
|
-
var image = images[0];
|
|
1947
|
-
var arrayBuffer = image.data.byteArray.buffer;
|
|
1948
|
-
var dicomData = DicomMessage$1.readFile(arrayBuffer);
|
|
1949
|
-
var dataset = DicomMetaDictionary$3.naturalizeDataset(dicomData.dict);
|
|
1950
|
-
dataset._meta = DicomMetaDictionary$3.namifyDataset(dicomData.meta);
|
|
1951
|
-
datasets.push(dataset);
|
|
1952
|
-
} else {
|
|
1953
|
-
for (var i = 0; i < images.length; i++) {
|
|
1954
|
-
var _image = images[i];
|
|
1955
|
-
var _arrayBuffer = _image.data.byteArray.buffer;
|
|
1956
|
-
var _dicomData = DicomMessage$1.readFile(_arrayBuffer);
|
|
1957
|
-
var _dataset = DicomMetaDictionary$3.naturalizeDataset(_dicomData.dict);
|
|
1958
|
-
_dataset._meta = DicomMetaDictionary$3.namifyDataset(_dicomData.meta);
|
|
1959
|
-
datasets.push(_dataset);
|
|
1960
|
-
}
|
|
1961
|
-
}
|
|
1962
|
-
var multiframe = Normalizer$3.normalizeToDataset(datasets);
|
|
1983
|
+
var multiframe = getDatasetsFromImages(images, isMultiframe);
|
|
1963
1984
|
return new SegmentationDerivation$2([multiframe], options);
|
|
1964
1985
|
}
|
|
1965
1986
|
|
|
@@ -1973,11 +1994,11 @@ function _createSegFromImages$1(images, isMultiframe, options) {
|
|
|
1973
1994
|
* @returns {Object} The toolState and an object from which the
|
|
1974
1995
|
* segment metadata can be derived.
|
|
1975
1996
|
*/
|
|
1976
|
-
function generateToolState$
|
|
1977
|
-
var dicomData = DicomMessage$
|
|
1978
|
-
var dataset = DicomMetaDictionary$
|
|
1979
|
-
dataset._meta = DicomMetaDictionary$
|
|
1980
|
-
var multiframe = Normalizer$
|
|
1997
|
+
function generateToolState$5(imageIds, arrayBuffer, metadataProvider) {
|
|
1998
|
+
var dicomData = DicomMessage$2.readFile(arrayBuffer);
|
|
1999
|
+
var dataset = DicomMetaDictionary$4.naturalizeDataset(dicomData.dict);
|
|
2000
|
+
dataset._meta = DicomMetaDictionary$4.namifyDataset(dicomData.meta);
|
|
2001
|
+
var multiframe = Normalizer$4.normalizeToDataset([dataset]);
|
|
1981
2002
|
var imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]);
|
|
1982
2003
|
if (!imagePlaneModule) {
|
|
1983
2004
|
console.warn("Insufficient metadata, imagePlaneModule missing.");
|
|
@@ -2092,7 +2113,7 @@ function addImageIdSpecificBrushToolState(toolState, imageId, segmentIndex, pixe
|
|
|
2092
2113
|
function getImageIdOfSourceImage(SourceImageSequence, imageIds, metadataProvider) {
|
|
2093
2114
|
var ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID,
|
|
2094
2115
|
ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber;
|
|
2095
|
-
return ReferencedFrameNumber ? getImageIdOfReferencedFrame$
|
|
2116
|
+
return ReferencedFrameNumber ? getImageIdOfReferencedFrame$2(ReferencedSOPInstanceUID, ReferencedFrameNumber, imageIds, metadataProvider) : getImageIdOfReferencedSingleFramedSOPInstance(ReferencedSOPInstanceUID, imageIds, metadataProvider);
|
|
2096
2117
|
}
|
|
2097
2118
|
|
|
2098
2119
|
/**
|
|
@@ -2126,7 +2147,7 @@ function getImageIdOfReferencedSingleFramedSOPInstance(sopInstanceUid, imageIds,
|
|
|
2126
2147
|
* from the cornerstone imageIds.
|
|
2127
2148
|
* @return {String} The imageId that corresponds to the sopInstanceUid.
|
|
2128
2149
|
*/
|
|
2129
|
-
function getImageIdOfReferencedFrame$
|
|
2150
|
+
function getImageIdOfReferencedFrame$2(sopInstanceUid, frameNumber, imageIds, metadataProvider) {
|
|
2130
2151
|
var imageId = imageIds.find(function (imageId) {
|
|
2131
2152
|
var sopCommonModule = metadataProvider.get("sopCommonModule", imageId);
|
|
2132
2153
|
if (!sopCommonModule) {
|
|
@@ -2231,6 +2252,70 @@ function getSegmentMetadata$1(multiframe) {
|
|
|
2231
2252
|
};
|
|
2232
2253
|
}
|
|
2233
2254
|
|
|
2255
|
+
/**
|
|
2256
|
+
* Returns true if iop1 and iop2 are perpendicular within a tolerance.
|
|
2257
|
+
*
|
|
2258
|
+
* @param iop1 - First ImageOrientationPatient
|
|
2259
|
+
* @param iop2 - Second ImageOrientationPatient
|
|
2260
|
+
* @param tolerance - Tolerance
|
|
2261
|
+
* @returns True if iop1 and iop2 are equal.
|
|
2262
|
+
*/
|
|
2263
|
+
function checkIfPerpendicular(iop1, iop2, tolerance) {
|
|
2264
|
+
var absDotColumnCosines = Math.abs(iop1[0] * iop2[0] + iop1[1] * iop2[1] + iop1[2] * iop2[2]);
|
|
2265
|
+
var absDotRowCosines = Math.abs(iop1[3] * iop2[3] + iop1[4] * iop2[4] + iop1[5] * iop2[5]);
|
|
2266
|
+
return ((absDotColumnCosines < tolerance ||
|
|
2267
|
+
Math.abs(absDotColumnCosines - 1) < tolerance) &&
|
|
2268
|
+
(absDotRowCosines < tolerance ||
|
|
2269
|
+
Math.abs(absDotRowCosines - 1) < tolerance));
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
var nearlyEqual = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.orientation.nearlyEqual;
|
|
2273
|
+
/**
|
|
2274
|
+
* Returns true if array1 and array2 are equal within a tolerance.
|
|
2275
|
+
*
|
|
2276
|
+
* @param array1 - First array
|
|
2277
|
+
* @param array2 - Second array
|
|
2278
|
+
* @param tolerance - Tolerance
|
|
2279
|
+
* @returns True if array1 and array2 are equal.
|
|
2280
|
+
*/
|
|
2281
|
+
function compareArrays(array1, array2, tolerance) {
|
|
2282
|
+
if (array1.length !== array2.length) {
|
|
2283
|
+
return false;
|
|
2284
|
+
}
|
|
2285
|
+
for (var i = 0; i < array1.length; ++i) {
|
|
2286
|
+
if (!nearlyEqual(array1[i], array2[i], tolerance)) {
|
|
2287
|
+
return false;
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
return true;
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2293
|
+
function checkOrientation(multiframe, validOrientations, sourceDataDimensions, tolerance) {
|
|
2294
|
+
var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence, PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence;
|
|
2295
|
+
var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence
|
|
2296
|
+
? SharedFunctionalGroupsSequence.PlaneOrientationSequence
|
|
2297
|
+
.ImageOrientationPatient
|
|
2298
|
+
: undefined;
|
|
2299
|
+
// Check if in plane.
|
|
2300
|
+
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[0];
|
|
2301
|
+
var iop = sharedImageOrientationPatient ||
|
|
2302
|
+
PerFrameFunctionalGroups.PlaneOrientationSequence
|
|
2303
|
+
.ImageOrientationPatient;
|
|
2304
|
+
var inPlane = validOrientations.some(function (operation) {
|
|
2305
|
+
return compareArrays(iop, operation, tolerance);
|
|
2306
|
+
});
|
|
2307
|
+
if (inPlane) {
|
|
2308
|
+
return "Planar";
|
|
2309
|
+
}
|
|
2310
|
+
if (checkIfPerpendicular(iop, validOrientations[0], tolerance) &&
|
|
2311
|
+
sourceDataDimensions.includes(multiframe.Rows) &&
|
|
2312
|
+
sourceDataDimensions.includes(multiframe.Columns)) {
|
|
2313
|
+
// Perpendicular and fits on same grid.
|
|
2314
|
+
return "Perpendicular";
|
|
2315
|
+
}
|
|
2316
|
+
return "Oblique";
|
|
2317
|
+
}
|
|
2318
|
+
|
|
2234
2319
|
/**
|
|
2235
2320
|
* Cornerstone adapters events
|
|
2236
2321
|
*/
|
|
@@ -2252,12 +2337,11 @@ var _utilities$orientatio = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .
|
|
|
2252
2337
|
rotateDirectionCosinesInPlane = _utilities$orientatio.rotateDirectionCosinesInPlane,
|
|
2253
2338
|
flipIOP = _utilities$orientatio.flipImageOrientationPatient,
|
|
2254
2339
|
flipMatrix2D = _utilities$orientatio.flipMatrix2D,
|
|
2255
|
-
rotateMatrix902D = _utilities$orientatio.rotateMatrix902D
|
|
2256
|
-
nearlyEqual = _utilities$orientatio.nearlyEqual;
|
|
2340
|
+
rotateMatrix902D = _utilities$orientatio.rotateMatrix902D;
|
|
2257
2341
|
var BitArray$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.BitArray,
|
|
2258
|
-
DicomMessage = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMessage,
|
|
2259
|
-
DicomMetaDictionary$
|
|
2260
|
-
var Normalizer$
|
|
2342
|
+
DicomMessage$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMessage,
|
|
2343
|
+
DicomMetaDictionary$3 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMetaDictionary;
|
|
2344
|
+
var Normalizer$3 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .normalizers */ .oq.Normalizer;
|
|
2261
2345
|
var SegmentationDerivation$1 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .derivations */ .U7.Segmentation;
|
|
2262
2346
|
var _utilities$compressio = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .utilities */ .hC.compression,
|
|
2263
2347
|
encode = _utilities$compressio.encode,
|
|
@@ -2402,27 +2486,7 @@ function _getLabelmapsFromReferencedFrameIndicies(labelmap3D, referencedFrameInd
|
|
|
2402
2486
|
* @returns {Object} The Seg derived dataSet.
|
|
2403
2487
|
*/
|
|
2404
2488
|
function _createSegFromImages(images, isMultiframe, options) {
|
|
2405
|
-
var
|
|
2406
|
-
if (isMultiframe) {
|
|
2407
|
-
var image = images[0];
|
|
2408
|
-
var arrayBuffer = image.data.byteArray.buffer;
|
|
2409
|
-
var dicomData = DicomMessage.readFile(arrayBuffer);
|
|
2410
|
-
var dataset = DicomMetaDictionary$2.naturalizeDataset(dicomData.dict);
|
|
2411
|
-
dataset._meta = DicomMetaDictionary$2.namifyDataset(dicomData.meta);
|
|
2412
|
-
dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
2413
|
-
datasets.push(dataset);
|
|
2414
|
-
} else {
|
|
2415
|
-
for (var i = 0; i < images.length; i++) {
|
|
2416
|
-
var _image = images[i];
|
|
2417
|
-
var _arrayBuffer = _image.data.byteArray.buffer;
|
|
2418
|
-
var _dicomData = DicomMessage.readFile(_arrayBuffer);
|
|
2419
|
-
var _dataset = DicomMetaDictionary$2.naturalizeDataset(_dicomData.dict);
|
|
2420
|
-
_dataset._meta = DicomMetaDictionary$2.namifyDataset(_dicomData.meta);
|
|
2421
|
-
_dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
2422
|
-
datasets.push(_dataset);
|
|
2423
|
-
}
|
|
2424
|
-
}
|
|
2425
|
-
var multiframe = Normalizer$2.normalizeToDataset(datasets);
|
|
2489
|
+
var multiframe = getDatasetsFromImages(images, isMultiframe);
|
|
2426
2490
|
return new SegmentationDerivation$1([multiframe], options);
|
|
2427
2491
|
}
|
|
2428
2492
|
|
|
@@ -2441,7 +2505,7 @@ function _createSegFromImages(images, isMultiframe, options) {
|
|
|
2441
2505
|
* @return {[][][]} 3D list containing the track of segments per frame for each labelMap
|
|
2442
2506
|
* (available only for the overlapping case).
|
|
2443
2507
|
*/
|
|
2444
|
-
function generateToolState$
|
|
2508
|
+
function generateToolState$4(_x, _x2, _x3, _x4) {
|
|
2445
2509
|
return _generateToolState.apply(this, arguments);
|
|
2446
2510
|
} // function insertPixelDataPerpendicular(
|
|
2447
2511
|
// segmentsOnFrame,
|
|
@@ -2601,10 +2665,10 @@ function _generateToolState() {
|
|
|
2601
2665
|
while (1) switch (_context.prev = _context.next) {
|
|
2602
2666
|
case 0:
|
|
2603
2667
|
_options$skipOverlapp = options.skipOverlapping, skipOverlapping = _options$skipOverlapp === void 0 ? false : _options$skipOverlapp, _options$tolerance = options.tolerance, tolerance = _options$tolerance === void 0 ? 1e-3 : _options$tolerance, _options$TypedArrayCo = options.TypedArrayConstructor, TypedArrayConstructor = _options$TypedArrayCo === void 0 ? Uint8Array : _options$TypedArrayCo, _options$maxBytesPerC = options.maxBytesPerChunk, maxBytesPerChunk = _options$maxBytesPerC === void 0 ? 199000000 : _options$maxBytesPerC, eventTarget = options.eventTarget, triggerEvent = options.triggerEvent;
|
|
2604
|
-
dicomData = DicomMessage.readFile(arrayBuffer);
|
|
2605
|
-
dataset = DicomMetaDictionary$
|
|
2606
|
-
dataset._meta = DicomMetaDictionary$
|
|
2607
|
-
multiframe = Normalizer$
|
|
2668
|
+
dicomData = DicomMessage$1.readFile(arrayBuffer);
|
|
2669
|
+
dataset = DicomMetaDictionary$3.naturalizeDataset(dicomData.dict);
|
|
2670
|
+
dataset._meta = DicomMetaDictionary$3.namifyDataset(dicomData.meta);
|
|
2671
|
+
multiframe = Normalizer$3.normalizeToDataset([dataset]);
|
|
2608
2672
|
imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]);
|
|
2609
2673
|
generalSeriesModule = metadataProvider.get("generalSeriesModule", imageIds[0]);
|
|
2610
2674
|
SeriesInstanceUID = generalSeriesModule.seriesInstanceUID;
|
|
@@ -2663,7 +2727,7 @@ function _generateToolState() {
|
|
|
2663
2727
|
if (overlapping) {
|
|
2664
2728
|
insertFunction = insertOverlappingPixelDataPlanar;
|
|
2665
2729
|
} else {
|
|
2666
|
-
insertFunction = insertPixelDataPlanar;
|
|
2730
|
+
insertFunction = insertPixelDataPlanar$1;
|
|
2667
2731
|
}
|
|
2668
2732
|
return _context.abrupt("break", 37);
|
|
2669
2733
|
case 35:
|
|
@@ -2731,7 +2795,7 @@ function _generateToolState() {
|
|
|
2731
2795
|
}));
|
|
2732
2796
|
return _generateToolState.apply(this, arguments);
|
|
2733
2797
|
}
|
|
2734
|
-
function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap) {
|
|
2798
|
+
function findReferenceSourceImageId$1(multiframe, frameSegment, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap) {
|
|
2735
2799
|
var imageId = undefined;
|
|
2736
2800
|
if (!multiframe) {
|
|
2737
2801
|
return imageId;
|
|
@@ -2772,12 +2836,12 @@ function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadata
|
|
|
2772
2836
|
frameSourceImageSequence = SourceImageSequence[frameSegment];
|
|
2773
2837
|
}
|
|
2774
2838
|
if (frameSourceImageSequence) {
|
|
2775
|
-
imageId = getImageIdOfSourceImageBySourceImageSequence(frameSourceImageSequence, sopUIDImageIdIndexMap);
|
|
2839
|
+
imageId = getImageIdOfSourceImageBySourceImageSequence$1(frameSourceImageSequence, sopUIDImageIdIndexMap);
|
|
2776
2840
|
}
|
|
2777
2841
|
if (imageId === undefined && ReferencedSeriesSequence) {
|
|
2778
2842
|
var referencedSeriesSequence = Array.isArray(ReferencedSeriesSequence) ? ReferencedSeriesSequence[0] : ReferencedSeriesSequence;
|
|
2779
2843
|
var ReferencedSeriesInstanceUID = referencedSeriesSequence.SeriesInstanceUID;
|
|
2780
|
-
imageId = getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance);
|
|
2844
|
+
imageId = getImageIdOfSourceImagebyGeometry$1(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance);
|
|
2781
2845
|
}
|
|
2782
2846
|
return imageId;
|
|
2783
2847
|
}
|
|
@@ -2814,7 +2878,7 @@ function checkSEGsOverlapping(pixelData, multiframe, imageIds, validOrientations
|
|
|
2814
2878
|
console.warn("Could not retrieve the segment index for frame segment " + frameSegment + ", skipping this frame.");
|
|
2815
2879
|
return 0; // continue
|
|
2816
2880
|
}
|
|
2817
|
-
var imageId = findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
2881
|
+
var imageId = findReferenceSourceImageId$1(multiframe, frameSegment, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
2818
2882
|
if (!imageId) {
|
|
2819
2883
|
console.warn("Image not present in stack, can't import frame : " + frameSegment + ".");
|
|
2820
2884
|
return 0; // continue
|
|
@@ -2923,7 +2987,7 @@ function insertOverlappingPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray,
|
|
|
2923
2987
|
if (!alignedPixelDataI) {
|
|
2924
2988
|
throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. " + "This is not yet supported. Aborting segmentation loading.");
|
|
2925
2989
|
}
|
|
2926
|
-
var imageId = findReferenceSourceImageId(multiframe, _i2, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
2990
|
+
var imageId = findReferenceSourceImageId$1(multiframe, _i2, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
2927
2991
|
if (!imageId) {
|
|
2928
2992
|
console.warn("Image not present in stack, can't import frame : " + _i2 + ".");
|
|
2929
2993
|
i = _i2;
|
|
@@ -2991,7 +3055,7 @@ var getSegmentIndex = function getSegmentIndex(multiframe, frame) {
|
|
|
2991
3055
|
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[frame];
|
|
2992
3056
|
return PerFrameFunctionalGroups && PerFrameFunctionalGroups.SegmentIdentificationSequence ? PerFrameFunctionalGroups.SegmentIdentificationSequence.ReferencedSegmentNumber : SharedFunctionalGroupsSequence.SegmentIdentificationSequence ? SharedFunctionalGroupsSequence.SegmentIdentificationSequence.ReferencedSegmentNumber : undefined;
|
|
2993
3057
|
};
|
|
2994
|
-
function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBufferArray, pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance, TypedArrayConstructor, segmentsPixelIndices, sopUIDImageIdIndexMap, imageIdMaps, eventTarget, triggerEvent) {
|
|
3058
|
+
function insertPixelDataPlanar$1(segmentsOnFrame, segmentsOnFrameArray, labelmapBufferArray, pixelData, multiframe, imageIds, validOrientations, metadataProvider, tolerance, TypedArrayConstructor, segmentsPixelIndices, sopUIDImageIdIndexMap, imageIdMaps, eventTarget, triggerEvent) {
|
|
2995
3059
|
var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence,
|
|
2996
3060
|
PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence,
|
|
2997
3061
|
Rows = multiframe.Rows,
|
|
@@ -3026,7 +3090,7 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
|
|
|
3026
3090
|
if (!segmentsPixelIndices.has(segmentIndex)) {
|
|
3027
3091
|
segmentsPixelIndices.set(segmentIndex, {});
|
|
3028
3092
|
}
|
|
3029
|
-
var imageId = findReferenceSourceImageId(multiframe, i, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
3093
|
+
var imageId = findReferenceSourceImageId$1(multiframe, i, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
3030
3094
|
if (!imageId) {
|
|
3031
3095
|
console.warn("Image not present in stack, can't import frame : " + i + ".");
|
|
3032
3096
|
continue;
|
|
@@ -3082,41 +3146,6 @@ function insertPixelDataPlanar(segmentsOnFrame, segmentsOnFrameArray, labelmapBu
|
|
|
3082
3146
|
processInChunks();
|
|
3083
3147
|
});
|
|
3084
3148
|
}
|
|
3085
|
-
function checkOrientation(multiframe, validOrientations, sourceDataDimensions, tolerance) {
|
|
3086
|
-
var SharedFunctionalGroupsSequence = multiframe.SharedFunctionalGroupsSequence,
|
|
3087
|
-
PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence;
|
|
3088
|
-
var sharedImageOrientationPatient = SharedFunctionalGroupsSequence.PlaneOrientationSequence ? SharedFunctionalGroupsSequence.PlaneOrientationSequence.ImageOrientationPatient : undefined;
|
|
3089
|
-
|
|
3090
|
-
// Check if in plane.
|
|
3091
|
-
var PerFrameFunctionalGroups = PerFrameFunctionalGroupsSequence[0];
|
|
3092
|
-
var iop = sharedImageOrientationPatient || PerFrameFunctionalGroups.PlaneOrientationSequence.ImageOrientationPatient;
|
|
3093
|
-
var inPlane = validOrientations.some(function (operation) {
|
|
3094
|
-
return compareArrays(iop, operation, tolerance);
|
|
3095
|
-
});
|
|
3096
|
-
if (inPlane) {
|
|
3097
|
-
return "Planar";
|
|
3098
|
-
}
|
|
3099
|
-
if (checkIfPerpendicular(iop, validOrientations[0], tolerance) && sourceDataDimensions.includes(multiframe.Rows) && sourceDataDimensions.includes(multiframe.Columns)) {
|
|
3100
|
-
// Perpendicular and fits on same grid.
|
|
3101
|
-
return "Perpendicular";
|
|
3102
|
-
}
|
|
3103
|
-
return "Oblique";
|
|
3104
|
-
}
|
|
3105
|
-
|
|
3106
|
-
/**
|
|
3107
|
-
* checkIfPerpendicular - Returns true if iop1 and iop2 are perpendicular
|
|
3108
|
-
* within a tolerance.
|
|
3109
|
-
*
|
|
3110
|
-
* @param {Number[6]} iop1 An ImageOrientationPatient array.
|
|
3111
|
-
* @param {Number[6]} iop2 An ImageOrientationPatient array.
|
|
3112
|
-
* @param {Number} tolerance.
|
|
3113
|
-
* @return {Boolean} True if iop1 and iop2 are equal.
|
|
3114
|
-
*/
|
|
3115
|
-
function checkIfPerpendicular(iop1, iop2, tolerance) {
|
|
3116
|
-
var absDotColumnCosines = Math.abs(iop1[0] * iop2[0] + iop1[1] * iop2[1] + iop1[2] * iop2[2]);
|
|
3117
|
-
var absDotRowCosines = Math.abs(iop1[3] * iop2[3] + iop1[4] * iop2[4] + iop1[5] * iop2[5]);
|
|
3118
|
-
return (absDotColumnCosines < tolerance || Math.abs(absDotColumnCosines - 1) < tolerance) && (absDotRowCosines < tolerance || Math.abs(absDotRowCosines - 1) < tolerance);
|
|
3119
|
-
}
|
|
3120
3149
|
|
|
3121
3150
|
/**
|
|
3122
3151
|
* unpackPixelData - Unpacks bit packed pixelData if the Segmentation is BINARY.
|
|
@@ -3179,10 +3208,10 @@ function getUnpackedChunks(data, maxBytesPerChunk) {
|
|
|
3179
3208
|
* @param {Object} sopUIDImageIdIndexMap A map of SOPInstanceUIDs to imageIds.
|
|
3180
3209
|
* @return {String} The corresponding imageId.
|
|
3181
3210
|
*/
|
|
3182
|
-
function getImageIdOfSourceImageBySourceImageSequence(SourceImageSequence, sopUIDImageIdIndexMap) {
|
|
3211
|
+
function getImageIdOfSourceImageBySourceImageSequence$1(SourceImageSequence, sopUIDImageIdIndexMap) {
|
|
3183
3212
|
var ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID,
|
|
3184
3213
|
ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber;
|
|
3185
|
-
return ReferencedFrameNumber ? getImageIdOfReferencedFrame(ReferencedSOPInstanceUID, ReferencedFrameNumber, sopUIDImageIdIndexMap) : sopUIDImageIdIndexMap[ReferencedSOPInstanceUID];
|
|
3214
|
+
return ReferencedFrameNumber ? getImageIdOfReferencedFrame$1(ReferencedSOPInstanceUID, ReferencedFrameNumber, sopUIDImageIdIndexMap) : sopUIDImageIdIndexMap[ReferencedSOPInstanceUID];
|
|
3186
3215
|
}
|
|
3187
3216
|
|
|
3188
3217
|
/**
|
|
@@ -3197,7 +3226,7 @@ function getImageIdOfSourceImageBySourceImageSequence(SourceImageSequence, sopUI
|
|
|
3197
3226
|
*
|
|
3198
3227
|
* @return {String} The corresponding imageId.
|
|
3199
3228
|
*/
|
|
3200
|
-
function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance) {
|
|
3229
|
+
function getImageIdOfSourceImagebyGeometry$1(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance) {
|
|
3201
3230
|
if (ReferencedSeriesInstanceUID === undefined || PerFrameFunctionalGroup.PlanePositionSequence === undefined || PerFrameFunctionalGroup.PlanePositionSequence[0] === undefined || PerFrameFunctionalGroup.PlanePositionSequence[0].ImagePositionPatient === undefined) {
|
|
3202
3231
|
return undefined;
|
|
3203
3232
|
}
|
|
@@ -3222,7 +3251,7 @@ function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfR
|
|
|
3222
3251
|
* @param {Object} sopUIDImageIdIndexMap A map of SOPInstanceUIDs to imageIds.
|
|
3223
3252
|
* @return {String} The imageId that corresponds to the sopInstanceUid.
|
|
3224
3253
|
*/
|
|
3225
|
-
function getImageIdOfReferencedFrame(sopInstanceUid, frameNumber, sopUIDImageIdIndexMap) {
|
|
3254
|
+
function getImageIdOfReferencedFrame$1(sopInstanceUid, frameNumber, sopUIDImageIdIndexMap) {
|
|
3226
3255
|
var imageId = sopUIDImageIdIndexMap[sopInstanceUid];
|
|
3227
3256
|
if (!imageId) {
|
|
3228
3257
|
return;
|
|
@@ -3304,27 +3333,6 @@ function alignPixelDataWithSourceData(pixelData2D, iop, orientations, tolerance)
|
|
|
3304
3333
|
return rotateMatrix902D(rotateMatrix902D(rotateMatrix902D(pixelData2D)));
|
|
3305
3334
|
}
|
|
3306
3335
|
}
|
|
3307
|
-
|
|
3308
|
-
/**
|
|
3309
|
-
* compareArrays - Returns true if array1 and array2 are equal
|
|
3310
|
-
* within a tolerance.
|
|
3311
|
-
*
|
|
3312
|
-
* @param {Number[]} array1 - An array.
|
|
3313
|
-
* @param {Number[]} array2 - An array.
|
|
3314
|
-
* @param {Number} tolerance.
|
|
3315
|
-
* @return {Boolean} True if array1 and array2 are equal.
|
|
3316
|
-
*/
|
|
3317
|
-
function compareArrays(array1, array2, tolerance) {
|
|
3318
|
-
if (array1.length != array2.length) {
|
|
3319
|
-
return false;
|
|
3320
|
-
}
|
|
3321
|
-
for (var i = 0; i < array1.length; ++i) {
|
|
3322
|
-
if (!nearlyEqual(array1[i], array2[i], tolerance)) {
|
|
3323
|
-
return false;
|
|
3324
|
-
}
|
|
3325
|
-
}
|
|
3326
|
-
return true;
|
|
3327
|
-
}
|
|
3328
3336
|
function getSegmentMetadata(multiframe, seriesInstanceUid) {
|
|
3329
3337
|
var segmentSequence = multiframe.SegmentSequence;
|
|
3330
3338
|
var data = [];
|
|
@@ -3438,13 +3446,13 @@ function calculateCentroid(imageIdIndexBufferIndex, multiframe) {
|
|
|
3438
3446
|
}
|
|
3439
3447
|
var Segmentation$4 = {
|
|
3440
3448
|
generateSegmentation: generateSegmentation$2,
|
|
3441
|
-
generateToolState: generateToolState$
|
|
3449
|
+
generateToolState: generateToolState$4,
|
|
3442
3450
|
fillSegmentation: fillSegmentation$1
|
|
3443
3451
|
};
|
|
3444
3452
|
|
|
3445
3453
|
var Segmentation$3 = {
|
|
3446
3454
|
generateSegmentation: generateSegmentation$1,
|
|
3447
|
-
generateToolState: generateToolState$
|
|
3455
|
+
generateToolState: generateToolState$3,
|
|
3448
3456
|
fillSegmentation: fillSegmentation
|
|
3449
3457
|
};
|
|
3450
3458
|
|
|
@@ -3485,7 +3493,7 @@ function generateSegmentation$1(images, labelmaps3DorBrushData) {
|
|
|
3485
3493
|
* @returns {Object} The toolState and an object from which the
|
|
3486
3494
|
* segment metadata can be derived.
|
|
3487
3495
|
*/
|
|
3488
|
-
function generateToolState$
|
|
3496
|
+
function generateToolState$3(imageIds, arrayBuffer, metadataProvider) {
|
|
3489
3497
|
var skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
3490
3498
|
var tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3;
|
|
3491
3499
|
var cornerstoneToolsVersion = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 4;
|
|
@@ -3517,22 +3525,6 @@ function fillSegmentation(segmentation, inputLabelmaps3D) {
|
|
|
3517
3525
|
console.warn("No generateSegmentation adapater for cornerstone version ".concat(cornerstoneToolsVersion, ", exiting."));
|
|
3518
3526
|
}
|
|
3519
3527
|
|
|
3520
|
-
var CornerstoneSR = {
|
|
3521
|
-
Length: Length$1,
|
|
3522
|
-
FreehandRoi: FreehandRoi,
|
|
3523
|
-
Bidirectional: Bidirectional$1,
|
|
3524
|
-
EllipticalRoi: EllipticalRoi,
|
|
3525
|
-
CircleRoi: CircleRoi,
|
|
3526
|
-
ArrowAnnotate: ArrowAnnotate$1,
|
|
3527
|
-
MeasurementReport: MeasurementReport$1,
|
|
3528
|
-
CobbAngle: CobbAngle$1,
|
|
3529
|
-
Angle: Angle$1,
|
|
3530
|
-
RectangleRoi: RectangleRoi
|
|
3531
|
-
};
|
|
3532
|
-
var CornerstoneSEG = {
|
|
3533
|
-
Segmentation: Segmentation$3
|
|
3534
|
-
};
|
|
3535
|
-
|
|
3536
3528
|
/******************************************************************************
|
|
3537
3529
|
Copyright (c) Microsoft Corporation.
|
|
3538
3530
|
|
|
@@ -3559,6 +3551,121 @@ var __assign = function () {
|
|
|
3559
3551
|
};
|
|
3560
3552
|
return __assign.apply(this, arguments);
|
|
3561
3553
|
};
|
|
3554
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
3555
|
+
function adopt(value) {
|
|
3556
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
3557
|
+
resolve(value);
|
|
3558
|
+
});
|
|
3559
|
+
}
|
|
3560
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3561
|
+
function fulfilled(value) {
|
|
3562
|
+
try {
|
|
3563
|
+
step(generator.next(value));
|
|
3564
|
+
} catch (e) {
|
|
3565
|
+
reject(e);
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
function rejected(value) {
|
|
3569
|
+
try {
|
|
3570
|
+
step(generator["throw"](value));
|
|
3571
|
+
} catch (e) {
|
|
3572
|
+
reject(e);
|
|
3573
|
+
}
|
|
3574
|
+
}
|
|
3575
|
+
function step(result) {
|
|
3576
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
3577
|
+
}
|
|
3578
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
3579
|
+
});
|
|
3580
|
+
}
|
|
3581
|
+
function __generator(thisArg, body) {
|
|
3582
|
+
var _ = {
|
|
3583
|
+
label: 0,
|
|
3584
|
+
sent: function () {
|
|
3585
|
+
if (t[0] & 1) throw t[1];
|
|
3586
|
+
return t[1];
|
|
3587
|
+
},
|
|
3588
|
+
trys: [],
|
|
3589
|
+
ops: []
|
|
3590
|
+
},
|
|
3591
|
+
f,
|
|
3592
|
+
y,
|
|
3593
|
+
t,
|
|
3594
|
+
g;
|
|
3595
|
+
return g = {
|
|
3596
|
+
next: verb(0),
|
|
3597
|
+
"throw": verb(1),
|
|
3598
|
+
"return": verb(2)
|
|
3599
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
3600
|
+
return this;
|
|
3601
|
+
}), g;
|
|
3602
|
+
function verb(n) {
|
|
3603
|
+
return function (v) {
|
|
3604
|
+
return step([n, v]);
|
|
3605
|
+
};
|
|
3606
|
+
}
|
|
3607
|
+
function step(op) {
|
|
3608
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
3609
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
3610
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
3611
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
3612
|
+
switch (op[0]) {
|
|
3613
|
+
case 0:
|
|
3614
|
+
case 1:
|
|
3615
|
+
t = op;
|
|
3616
|
+
break;
|
|
3617
|
+
case 4:
|
|
3618
|
+
_.label++;
|
|
3619
|
+
return {
|
|
3620
|
+
value: op[1],
|
|
3621
|
+
done: false
|
|
3622
|
+
};
|
|
3623
|
+
case 5:
|
|
3624
|
+
_.label++;
|
|
3625
|
+
y = op[1];
|
|
3626
|
+
op = [0];
|
|
3627
|
+
continue;
|
|
3628
|
+
case 7:
|
|
3629
|
+
op = _.ops.pop();
|
|
3630
|
+
_.trys.pop();
|
|
3631
|
+
continue;
|
|
3632
|
+
default:
|
|
3633
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
3634
|
+
_ = 0;
|
|
3635
|
+
continue;
|
|
3636
|
+
}
|
|
3637
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
3638
|
+
_.label = op[1];
|
|
3639
|
+
break;
|
|
3640
|
+
}
|
|
3641
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
3642
|
+
_.label = t[1];
|
|
3643
|
+
t = op;
|
|
3644
|
+
break;
|
|
3645
|
+
}
|
|
3646
|
+
if (t && _.label < t[2]) {
|
|
3647
|
+
_.label = t[2];
|
|
3648
|
+
_.ops.push(op);
|
|
3649
|
+
break;
|
|
3650
|
+
}
|
|
3651
|
+
if (t[2]) _.ops.pop();
|
|
3652
|
+
_.trys.pop();
|
|
3653
|
+
continue;
|
|
3654
|
+
}
|
|
3655
|
+
op = body.call(thisArg, _);
|
|
3656
|
+
} catch (e) {
|
|
3657
|
+
op = [6, e];
|
|
3658
|
+
y = 0;
|
|
3659
|
+
} finally {
|
|
3660
|
+
f = t = 0;
|
|
3661
|
+
}
|
|
3662
|
+
if (op[0] & 5) throw op[1];
|
|
3663
|
+
return {
|
|
3664
|
+
value: op[0] ? op[1] : void 0,
|
|
3665
|
+
done: true
|
|
3666
|
+
};
|
|
3667
|
+
}
|
|
3668
|
+
}
|
|
3562
3669
|
function __spreadArray(to, from, pack) {
|
|
3563
3670
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3564
3671
|
if (ar || !(i in from)) {
|
|
@@ -3573,6 +3680,228 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
3573
3680
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
3574
3681
|
};
|
|
3575
3682
|
|
|
3683
|
+
var DicomMessage = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMessage, DicomMetaDictionary$2 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .data */ .aT.DicomMetaDictionary;
|
|
3684
|
+
var Normalizer$2 = dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .normalizers */ .oq.Normalizer;
|
|
3685
|
+
function generateToolState$2(imageIds, arrayBuffer, metadataProvider, tolerance) {
|
|
3686
|
+
if (tolerance === void 0) { tolerance = 1e-3; }
|
|
3687
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3688
|
+
var dicomData, dataset, multiframe, imagePlaneModule, ImageOrientationPatient, validOrientations, pixelData, orientation, sopUIDImageIdIndexMap, orientationText, imageIdMaps;
|
|
3689
|
+
return __generator(this, function (_a) {
|
|
3690
|
+
switch (_a.label) {
|
|
3691
|
+
case 0:
|
|
3692
|
+
dicomData = DicomMessage.readFile(arrayBuffer);
|
|
3693
|
+
dataset = DicomMetaDictionary$2.naturalizeDataset(dicomData.dict);
|
|
3694
|
+
dataset._meta = DicomMetaDictionary$2.namifyDataset(dicomData.meta);
|
|
3695
|
+
multiframe = Normalizer$2.normalizeToDataset([dataset]);
|
|
3696
|
+
imagePlaneModule = metadataProvider.get("imagePlaneModule", imageIds[0]);
|
|
3697
|
+
if (!imagePlaneModule) {
|
|
3698
|
+
console.warn("Insufficient metadata, imagePlaneModule missing.");
|
|
3699
|
+
}
|
|
3700
|
+
ImageOrientationPatient = Array.isArray(imagePlaneModule.rowCosines)
|
|
3701
|
+
? __spreadArray(__spreadArray([], imagePlaneModule.rowCosines, true), imagePlaneModule.columnCosines, true) : [
|
|
3702
|
+
imagePlaneModule.rowCosines.x,
|
|
3703
|
+
imagePlaneModule.rowCosines.y,
|
|
3704
|
+
imagePlaneModule.rowCosines.z,
|
|
3705
|
+
imagePlaneModule.columnCosines.x,
|
|
3706
|
+
imagePlaneModule.columnCosines.y,
|
|
3707
|
+
imagePlaneModule.columnCosines.z
|
|
3708
|
+
];
|
|
3709
|
+
validOrientations = [ImageOrientationPatient];
|
|
3710
|
+
pixelData = getPixelData(multiframe);
|
|
3711
|
+
orientation = checkOrientation(multiframe, validOrientations, [imagePlaneModule.rows, imagePlaneModule.columns, imageIds.length], tolerance);
|
|
3712
|
+
sopUIDImageIdIndexMap = imageIds.reduce(function (acc, imageId) {
|
|
3713
|
+
var sopInstanceUID = metadataProvider.get("generalImageModule", imageId).sopInstanceUID;
|
|
3714
|
+
acc[sopInstanceUID] = imageId;
|
|
3715
|
+
return acc;
|
|
3716
|
+
}, {});
|
|
3717
|
+
if (orientation !== "Planar") {
|
|
3718
|
+
orientationText = {
|
|
3719
|
+
Perpendicular: "orthogonal",
|
|
3720
|
+
Oblique: "oblique"
|
|
3721
|
+
};
|
|
3722
|
+
throw new Error("Parametric maps ".concat(orientationText[orientation], " to the acquisition plane of the source data are not yet supported."));
|
|
3723
|
+
}
|
|
3724
|
+
imageIdMaps = imageIds.reduce(function (acc, curr, index) {
|
|
3725
|
+
acc.indices[curr] = index;
|
|
3726
|
+
acc.metadata[curr] = metadataProvider.get("instance", curr);
|
|
3727
|
+
return acc;
|
|
3728
|
+
}, { indices: {}, metadata: {} });
|
|
3729
|
+
return [4 /*yield*/, insertPixelDataPlanar(pixelData, multiframe, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap, imageIdMaps)];
|
|
3730
|
+
case 1:
|
|
3731
|
+
_a.sent();
|
|
3732
|
+
return [2 /*return*/, { pixelData: pixelData }];
|
|
3733
|
+
}
|
|
3734
|
+
});
|
|
3735
|
+
});
|
|
3736
|
+
}
|
|
3737
|
+
function insertPixelDataPlanar(sourcePixelData, multiframe, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap, imageIdMaps) {
|
|
3738
|
+
var targetPixelData = new sourcePixelData.constructor(sourcePixelData.length);
|
|
3739
|
+
var PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, Rows = multiframe.Rows, Columns = multiframe.Columns;
|
|
3740
|
+
var sliceLength = Columns * Rows;
|
|
3741
|
+
var numSlices = PerFrameFunctionalGroupsSequence.length;
|
|
3742
|
+
for (var i = 0; i < numSlices; i++) {
|
|
3743
|
+
var sourceSliceDataView = new sourcePixelData.constructor(sourcePixelData.buffer, i * sliceLength, sliceLength);
|
|
3744
|
+
var imageId = findReferenceSourceImageId(multiframe, i, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap);
|
|
3745
|
+
if (!imageId) {
|
|
3746
|
+
console.warn("Image not present in stack, can't import frame : " + i + ".");
|
|
3747
|
+
continue;
|
|
3748
|
+
}
|
|
3749
|
+
var sourceImageMetadata = imageIdMaps.metadata[imageId];
|
|
3750
|
+
if (Rows !== sourceImageMetadata.Rows ||
|
|
3751
|
+
Columns !== sourceImageMetadata.Columns) {
|
|
3752
|
+
throw new Error("Parametric map have different geometry dimensions (Rows and Columns) " +
|
|
3753
|
+
"respect to the source image reference frame. This is not yet supported.");
|
|
3754
|
+
}
|
|
3755
|
+
var imageIdIndex = imageIdMaps.indices[imageId];
|
|
3756
|
+
var byteOffset = sliceLength * imageIdIndex * targetPixelData.BYTES_PER_ELEMENT;
|
|
3757
|
+
var targetSliceDataView = new targetPixelData.constructor(targetPixelData.buffer, byteOffset, sliceLength);
|
|
3758
|
+
// Copy from source to target which works for parametric maps with same orientation.
|
|
3759
|
+
// TODO: Find a dataset with parametric map in a different orientation and add finish this implementation
|
|
3760
|
+
targetSliceDataView.set(sourceSliceDataView);
|
|
3761
|
+
}
|
|
3762
|
+
return targetPixelData;
|
|
3763
|
+
}
|
|
3764
|
+
function getPixelData(multiframe) {
|
|
3765
|
+
var _a;
|
|
3766
|
+
var TypedArrayClass;
|
|
3767
|
+
var data;
|
|
3768
|
+
if (multiframe.PixelData) {
|
|
3769
|
+
var validTypedArrays = multiframe.BitsAllocated === 16
|
|
3770
|
+
? [Uint16Array, Int16Array]
|
|
3771
|
+
: [Uint32Array, Int32Array];
|
|
3772
|
+
TypedArrayClass = validTypedArrays[(_a = multiframe.PixelRepresentation) !== null && _a !== void 0 ? _a : 0];
|
|
3773
|
+
data = multiframe.PixelData;
|
|
3774
|
+
}
|
|
3775
|
+
else if (multiframe.FloatPixelData) {
|
|
3776
|
+
TypedArrayClass = Float32Array;
|
|
3777
|
+
data = multiframe.FloatPixelData;
|
|
3778
|
+
}
|
|
3779
|
+
else if (multiframe.DoubleFloatPixelData) {
|
|
3780
|
+
TypedArrayClass = Float64Array;
|
|
3781
|
+
data = multiframe.DoubleFloatPixelData;
|
|
3782
|
+
}
|
|
3783
|
+
if (data === undefined) {
|
|
3784
|
+
dcmjs__WEBPACK_IMPORTED_MODULE_0__/* .log */ .cM.error("This parametric map pixel data is undefined.");
|
|
3785
|
+
}
|
|
3786
|
+
if (Array.isArray(data)) {
|
|
3787
|
+
data = data[0];
|
|
3788
|
+
}
|
|
3789
|
+
return new TypedArrayClass(data);
|
|
3790
|
+
}
|
|
3791
|
+
function findReferenceSourceImageId(multiframe, frameSegment, imageIds, metadataProvider, tolerance, sopUIDImageIdIndexMap) {
|
|
3792
|
+
var imageId = undefined;
|
|
3793
|
+
if (!multiframe) {
|
|
3794
|
+
return imageId;
|
|
3795
|
+
}
|
|
3796
|
+
var FrameOfReferenceUID = multiframe.FrameOfReferenceUID, PerFrameFunctionalGroupsSequence = multiframe.PerFrameFunctionalGroupsSequence, SourceImageSequence = multiframe.SourceImageSequence, ReferencedSeriesSequence = multiframe.ReferencedSeriesSequence;
|
|
3797
|
+
if (!PerFrameFunctionalGroupsSequence ||
|
|
3798
|
+
PerFrameFunctionalGroupsSequence.length === 0) {
|
|
3799
|
+
return imageId;
|
|
3800
|
+
}
|
|
3801
|
+
var PerFrameFunctionalGroup = PerFrameFunctionalGroupsSequence[frameSegment];
|
|
3802
|
+
if (!PerFrameFunctionalGroup) {
|
|
3803
|
+
return imageId;
|
|
3804
|
+
}
|
|
3805
|
+
var frameSourceImageSequence = undefined;
|
|
3806
|
+
if (PerFrameFunctionalGroup.DerivationImageSequence) {
|
|
3807
|
+
var DerivationImageSequence = PerFrameFunctionalGroup.DerivationImageSequence;
|
|
3808
|
+
if (Array.isArray(DerivationImageSequence)) {
|
|
3809
|
+
if (DerivationImageSequence.length !== 0) {
|
|
3810
|
+
DerivationImageSequence = DerivationImageSequence[0];
|
|
3811
|
+
}
|
|
3812
|
+
else {
|
|
3813
|
+
DerivationImageSequence = undefined;
|
|
3814
|
+
}
|
|
3815
|
+
}
|
|
3816
|
+
if (DerivationImageSequence) {
|
|
3817
|
+
frameSourceImageSequence =
|
|
3818
|
+
DerivationImageSequence.SourceImageSequence;
|
|
3819
|
+
if (Array.isArray(frameSourceImageSequence)) {
|
|
3820
|
+
if (frameSourceImageSequence.length !== 0) {
|
|
3821
|
+
frameSourceImageSequence = frameSourceImageSequence[0];
|
|
3822
|
+
}
|
|
3823
|
+
else {
|
|
3824
|
+
frameSourceImageSequence = undefined;
|
|
3825
|
+
}
|
|
3826
|
+
}
|
|
3827
|
+
}
|
|
3828
|
+
}
|
|
3829
|
+
else if (SourceImageSequence && SourceImageSequence.length !== 0) {
|
|
3830
|
+
console.warn("DerivationImageSequence not present, using SourceImageSequence assuming SEG has the same geometry as the source image.");
|
|
3831
|
+
frameSourceImageSequence = SourceImageSequence[frameSegment];
|
|
3832
|
+
}
|
|
3833
|
+
if (frameSourceImageSequence) {
|
|
3834
|
+
imageId = getImageIdOfSourceImageBySourceImageSequence(frameSourceImageSequence, sopUIDImageIdIndexMap);
|
|
3835
|
+
}
|
|
3836
|
+
if (imageId === undefined && ReferencedSeriesSequence) {
|
|
3837
|
+
var referencedSeriesSequence = Array.isArray(ReferencedSeriesSequence)
|
|
3838
|
+
? ReferencedSeriesSequence[0]
|
|
3839
|
+
: ReferencedSeriesSequence;
|
|
3840
|
+
var ReferencedSeriesInstanceUID = referencedSeriesSequence.SeriesInstanceUID;
|
|
3841
|
+
imageId = getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance);
|
|
3842
|
+
}
|
|
3843
|
+
return imageId;
|
|
3844
|
+
}
|
|
3845
|
+
function getImageIdOfSourceImageBySourceImageSequence(SourceImageSequence, sopUIDImageIdIndexMap) {
|
|
3846
|
+
var ReferencedSOPInstanceUID = SourceImageSequence.ReferencedSOPInstanceUID, ReferencedFrameNumber = SourceImageSequence.ReferencedFrameNumber;
|
|
3847
|
+
return ReferencedFrameNumber
|
|
3848
|
+
? getImageIdOfReferencedFrame(ReferencedSOPInstanceUID, ReferencedFrameNumber, sopUIDImageIdIndexMap)
|
|
3849
|
+
: sopUIDImageIdIndexMap[ReferencedSOPInstanceUID];
|
|
3850
|
+
}
|
|
3851
|
+
function getImageIdOfSourceImagebyGeometry(ReferencedSeriesInstanceUID, FrameOfReferenceUID, PerFrameFunctionalGroup, imageIds, metadataProvider, tolerance) {
|
|
3852
|
+
if (ReferencedSeriesInstanceUID === undefined ||
|
|
3853
|
+
PerFrameFunctionalGroup.PlanePositionSequence === undefined ||
|
|
3854
|
+
PerFrameFunctionalGroup.PlanePositionSequence[0] === undefined ||
|
|
3855
|
+
PerFrameFunctionalGroup.PlanePositionSequence[0]
|
|
3856
|
+
.ImagePositionPatient === undefined) {
|
|
3857
|
+
return undefined;
|
|
3858
|
+
}
|
|
3859
|
+
for (var imageIdsIndex = 0; imageIdsIndex < imageIds.length; ++imageIdsIndex) {
|
|
3860
|
+
var sourceImageMetadata = metadataProvider.get("instance", imageIds[imageIdsIndex]);
|
|
3861
|
+
if (sourceImageMetadata === undefined ||
|
|
3862
|
+
sourceImageMetadata.ImagePositionPatient === undefined ||
|
|
3863
|
+
sourceImageMetadata.FrameOfReferenceUID !== FrameOfReferenceUID ||
|
|
3864
|
+
sourceImageMetadata.SeriesInstanceUID !==
|
|
3865
|
+
ReferencedSeriesInstanceUID) {
|
|
3866
|
+
continue;
|
|
3867
|
+
}
|
|
3868
|
+
if (compareArrays(PerFrameFunctionalGroup.PlanePositionSequence[0]
|
|
3869
|
+
.ImagePositionPatient, sourceImageMetadata.ImagePositionPatient, tolerance)) {
|
|
3870
|
+
return imageIds[imageIdsIndex];
|
|
3871
|
+
}
|
|
3872
|
+
}
|
|
3873
|
+
}
|
|
3874
|
+
function getImageIdOfReferencedFrame(sopInstanceUid, frameNumber, sopUIDImageIdIndexMap) {
|
|
3875
|
+
var imageId = sopUIDImageIdIndexMap[sopInstanceUid];
|
|
3876
|
+
if (!imageId) {
|
|
3877
|
+
return;
|
|
3878
|
+
}
|
|
3879
|
+
var imageIdFrameNumber = Number(imageId.split("frame=")[1]);
|
|
3880
|
+
return imageIdFrameNumber === frameNumber - 1 ? imageId : undefined;
|
|
3881
|
+
}
|
|
3882
|
+
var ParametricMapObj = {
|
|
3883
|
+
generateToolState: generateToolState$2
|
|
3884
|
+
};
|
|
3885
|
+
|
|
3886
|
+
var CornerstoneSR = {
|
|
3887
|
+
Length: Length$1,
|
|
3888
|
+
FreehandRoi: FreehandRoi,
|
|
3889
|
+
Bidirectional: Bidirectional$1,
|
|
3890
|
+
EllipticalRoi: EllipticalRoi,
|
|
3891
|
+
CircleRoi: CircleRoi,
|
|
3892
|
+
ArrowAnnotate: ArrowAnnotate$1,
|
|
3893
|
+
MeasurementReport: MeasurementReport$1,
|
|
3894
|
+
CobbAngle: CobbAngle$1,
|
|
3895
|
+
Angle: Angle$1,
|
|
3896
|
+
RectangleRoi: RectangleRoi
|
|
3897
|
+
};
|
|
3898
|
+
var CornerstoneSEG = {
|
|
3899
|
+
Segmentation: Segmentation$3
|
|
3900
|
+
};
|
|
3901
|
+
var CornerstonePMAP = {
|
|
3902
|
+
ParametricMap: ParametricMapObj
|
|
3903
|
+
};
|
|
3904
|
+
|
|
3576
3905
|
var CORNERSTONE_3D_TAG = "Cornerstone3DTools@^0.1.0";
|
|
3577
3906
|
|
|
3578
3907
|
// This is a custom coding scheme defined to store some annotations from Cornerstone.
|
|
@@ -5056,7 +5385,7 @@ var generateToolStateCornerstoneLegacy = Segmentation$2.generateToolState;
|
|
|
5056
5385
|
* list containing the track of segments per frame
|
|
5057
5386
|
* list containing the track of segments per frame for each labelMap (available only for the overlapping case).
|
|
5058
5387
|
*/
|
|
5059
|
-
function generateToolState(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance) {
|
|
5388
|
+
function generateToolState$1(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance) {
|
|
5060
5389
|
if (skipOverlapping === void 0) { skipOverlapping = false; }
|
|
5061
5390
|
if (tolerance === void 0) { tolerance = 1e-3; }
|
|
5062
5391
|
return generateToolStateCornerstoneLegacy(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance);
|
|
@@ -5066,6 +5395,19 @@ var Segmentation$1 = /*#__PURE__*/Object.freeze({
|
|
|
5066
5395
|
__proto__: null,
|
|
5067
5396
|
generateLabelMaps2DFrom3D: generateLabelMaps2DFrom3D,
|
|
5068
5397
|
generateSegmentation: generateSegmentation,
|
|
5398
|
+
generateToolState: generateToolState$1
|
|
5399
|
+
});
|
|
5400
|
+
|
|
5401
|
+
var ParametricMap$1 = CornerstonePMAP.ParametricMap;
|
|
5402
|
+
var generateToolStateCornerstone = ParametricMap$1.generateToolState;
|
|
5403
|
+
function generateToolState(imageIds, arrayBuffer, metadataProvider) {
|
|
5404
|
+
var skipOverlapping = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
5405
|
+
var tolerance = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-3;
|
|
5406
|
+
return generateToolStateCornerstone(imageIds, arrayBuffer, metadataProvider, skipOverlapping, tolerance);
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
var ParametricMap = /*#__PURE__*/Object.freeze({
|
|
5410
|
+
__proto__: null,
|
|
5069
5411
|
generateToolState: generateToolState
|
|
5070
5412
|
});
|
|
5071
5413
|
|
|
@@ -5400,6 +5742,9 @@ var Cornerstone3DSR = {
|
|
|
5400
5742
|
var Cornerstone3DSEG = {
|
|
5401
5743
|
Segmentation: Segmentation$1
|
|
5402
5744
|
};
|
|
5745
|
+
var Cornerstone3DPMAP = {
|
|
5746
|
+
ParametricMap: ParametricMap
|
|
5747
|
+
};
|
|
5403
5748
|
var Cornerstone3DRT = {
|
|
5404
5749
|
RTSS: RTSS
|
|
5405
5750
|
};
|
|
@@ -5599,6 +5944,11 @@ var adaptersSEG = {
|
|
|
5599
5944
|
Cornerstone3D: Cornerstone3DSEG,
|
|
5600
5945
|
VTKjs: VTKjsSEG
|
|
5601
5946
|
};
|
|
5947
|
+
var adaptersPMAP = {
|
|
5948
|
+
Cornerstone: CornerstonePMAP,
|
|
5949
|
+
Cornerstone3D: Cornerstone3DPMAP
|
|
5950
|
+
// VTKjs: VTKjsPMAP
|
|
5951
|
+
};
|
|
5602
5952
|
var adaptersRT = {
|
|
5603
5953
|
Cornerstone3D: Cornerstone3DRT
|
|
5604
5954
|
};
|