@ohif/app 3.12.0-beta.90 → 3.12.0-beta.92
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/{1037.bundle.87a5adb8c92bd5bf53f5.js → 1037.bundle.dd9098a9a640f0d0ef0f.js} +129 -96
- package/dist/{1608.bundle.3d904bc76f5d5f78ff21.js → 1608.bundle.f855c4bdb7f00eb66fca.js} +1 -1
- package/dist/{1903.bundle.f0505c6e927d0bef5589.js → 1903.bundle.9a291597f23ebaa3371c.js} +49 -47
- package/dist/{1604.bundle.4f01a6b0b8d5b1cbc294.js → 1933.bundle.a5d41c04da5425d06694.js} +13 -26
- package/dist/{2018.bundle.59c7c4cb3f79f63bab68.js → 2018.bundle.4527f2b0c1c8ff75f568.js} +18 -43
- package/dist/{306.bundle.f9faa2b3cdd7e86b5869.js → 306.bundle.a0af0889477845729c6a.js} +23 -1
- package/dist/{3461.bundle.458597198f24359ec78f.js → 3461.bundle.3cac685ef19f883a0f9d.js} +27 -8
- package/dist/{4019.bundle.1be1cdd0805ad2c59d65.js → 4019.bundle.03029c488a02493cb7f3.js} +17 -1
- package/dist/{2518.bundle.644302643ac0790e7374.js → 4033.bundle.1609f8751de2a6aff280.js} +457 -303
- package/dist/{4819.bundle.f187a4c0517c85e37ab0.js → 4819.bundle.14344bf9acf5c5f6d123.js} +3 -3
- package/dist/{5028.bundle.6003ab9178779929462f.js → 5028.bundle.c61b7cd88172e2d589d5.js} +2 -2
- package/dist/{5400.bundle.c3a3fe8867efa2edfa94.js → 5400.bundle.428fdd2dc347a7fda9e6.js} +96 -92
- package/dist/5457.bundle.af893cd38fdaeafd5c2a.js +89 -0
- package/dist/{5485.bundle.2ee096f57ff7e51d4c23.js → 5485.bundle.929d9add8bdf90a4f3c7.js} +8 -0
- package/dist/{5802.bundle.8922caf16c088b10cdb0.js → 5802.bundle.756d2ed511c06ee8b461.js} +2 -2
- package/dist/{6991.bundle.46bc04720d99fbb06785.js → 6991.bundle.7d091de815571097b96e.js} +8 -10
- package/dist/{7412.bundle.34fe5e72833e857edc0a.js → 7412.bundle.dfe01ae3e53107abe53d.js} +80 -57
- package/dist/{8305.bundle.8ea926425cdffaf84fe3.js → 8305.bundle.08ba73235df90e099838.js} +75 -55
- package/dist/{8558.bundle.c9ffb4f942dbbbff1849.js → 8558.bundle.705446f4883e84021bf4.js} +29 -11
- package/dist/{8583.bundle.7715397a42e8f00a9e3e.js → 8583.bundle.0288cadf5cf8401446b1.js} +12 -13
- package/dist/{874.bundle.92ddc54408fef9debee7.js → 874.bundle.7e543ec9343c9a718e3d.js} +35 -42
- package/dist/{3613.bundle.6157004e0592003c0800.js → 8802.bundle.4958d8ba1d0d521a002a.js} +131 -76
- package/dist/{9548.bundle.7be4f24aeadd0ad4f16c.js → 9195.bundle.70afccd0f802b78c279a.js} +75 -104
- package/dist/{9845.bundle.7e4db5e31b28d73fdac2.js → 9845.bundle.0d22f2210c1d5ac18882.js} +1 -1
- package/dist/{app.bundle.bdd8a45996ed4ca28560.js → app.bundle.2b7e40349f89ffdfd96c.js} +1055 -219
- package/dist/{compute.bundle.f3ca9fb0e7ce9e885b9c.js → compute.bundle.4c0ef8b919cbe5eef44d.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.7b8d1bb21d442a48da1d.js → polySeg.bundle.75f37f2780c5375e161e.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +22 -22
- package/dist/5457.bundle.535bae0c872c1ca0c2cb.js +0 -1358
- /package/dist/{1459.bundle.0481573ae1bde12b24ee.js → 1459.bundle.c4acfc6df383fc187e9e.js} +0 -0
- /package/dist/{147.bundle.6fc65a239d1ae1c6a918.js → 147.bundle.c191ca0b67633f707aff.js} +0 -0
- /package/dist/{1515.bundle.73d415797a677ae5261e.js → 1515.bundle.3f81b326242dd945ecdb.js} +0 -0
- /package/dist/{1604.css → 1933.css} +0 -0
- /package/dist/{213.bundle.9b152cd4d202cae43af2.js → 213.bundle.33092c23ffe1d81ae242.js} +0 -0
- /package/dist/{2243.bundle.25ca9faa6d0776355adf.js → 2243.bundle.e37c80996a222167dc14.js} +0 -0
- /package/dist/{2424.bundle.57b7484a3b1b1e5a1722.js → 2424.bundle.45583fc64208a2821aa3.js} +0 -0
- /package/dist/{319.bundle.4ea0dbcfeb553c900206.js → 319.bundle.febb2a63634488c11db6.js} +0 -0
- /package/dist/{6027.bundle.06ab1f1cd27f93f826e5.js → 6027.bundle.b2942a0dd2c583374d7b.js} +0 -0
- /package/dist/{7431.bundle.55dd86000e66bee467e2.js → 7431.bundle.b80819b8eb28d2ee897d.js} +0 -0
- /package/dist/{7639.bundle.a89f4a8c6e8b2593d7a4.js → 7639.bundle.2ad4b6cd132d87439fa6.js} +0 -0
- /package/dist/{85.bundle.f3a9149485e3fcf652f0.js → 85.bundle.a772983604a0f9514e33.js} +0 -0
- /package/dist/{9862.bundle.0456a2d473895bf2916e.js → 9862.bundle.eca4ea8821bb040a44c1.js} +0 -0
- /package/dist/{9927.bundle.d7051dac659d827d62d3.js → 9927.bundle.775cb41458de4c28a9ba.js} +0 -0
|
@@ -306,12 +306,12 @@ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-
|
|
|
306
306
|
const id = package_namespaceObject.UU;
|
|
307
307
|
const SOPClassHandlerName = 'dynamic-volume';
|
|
308
308
|
|
|
309
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
310
|
+
var esm = __webpack_require__(4667);
|
|
311
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
312
|
+
var dist_esm = __webpack_require__(15327);
|
|
309
313
|
// EXTERNAL MODULE: ../../core/src/index.ts + 69 modules
|
|
310
314
|
var src = __webpack_require__(42356);
|
|
311
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
312
|
-
var esm = __webpack_require__(15327);
|
|
313
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
314
|
-
var dist_esm = __webpack_require__(4667);
|
|
315
315
|
;// ../../../extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts
|
|
316
316
|
|
|
317
317
|
|
|
@@ -323,7 +323,7 @@ const SEG_CHART_INSTANCE_UID = src/* utils */.Wp.guid();
|
|
|
323
323
|
const ChartDataSOPClassUid = '1.9.451.13215.7.3.2.7.6.1';
|
|
324
324
|
const {
|
|
325
325
|
utilities: csToolsUtils
|
|
326
|
-
} =
|
|
326
|
+
} = esm;
|
|
327
327
|
function _getDateTimeStr() {
|
|
328
328
|
const now = new Date();
|
|
329
329
|
const date = now.getFullYear() + ('0' + now.getUTCMonth()).slice(-2) + ('0' + now.getUTCDate()).slice(-2);
|
|
@@ -429,7 +429,7 @@ function _getSegmentationData(segmentation, volumesTimePointsCache, {
|
|
|
429
429
|
// const referencedDynamicVolume = cs.cache.getVolume(dynamic4DDisplaySet.displaySetInstanceUID);
|
|
430
430
|
let volumeCacheKey;
|
|
431
431
|
const volumeId = dynamic4DDisplaySet.displaySetInstanceUID;
|
|
432
|
-
for (const [key] of
|
|
432
|
+
for (const [key] of dist_esm.cache._volumeCache) {
|
|
433
433
|
if (key.includes(volumeId)) {
|
|
434
434
|
volumeCacheKey = key;
|
|
435
435
|
break;
|
|
@@ -437,7 +437,7 @@ function _getSegmentationData(segmentation, volumesTimePointsCache, {
|
|
|
437
437
|
}
|
|
438
438
|
let referencedDynamicVolume;
|
|
439
439
|
if (volumeCacheKey) {
|
|
440
|
-
referencedDynamicVolume =
|
|
440
|
+
referencedDynamicVolume = dist_esm.cache.getVolume(volumeCacheKey);
|
|
441
441
|
}
|
|
442
442
|
const {
|
|
443
443
|
StudyInstanceUID,
|
|
@@ -460,7 +460,7 @@ function _getSegmentationData(segmentation, volumesTimePointsCache, {
|
|
|
460
460
|
// );
|
|
461
461
|
const viewportId = viewportGridService.getActiveViewportId();
|
|
462
462
|
const color = segmentationService.getSegmentColor(viewportId, segmentation.segmentationId, 1);
|
|
463
|
-
const hexColor =
|
|
463
|
+
const hexColor = dist_esm.utilities.color.rgbToHex(color[0], color[1], color[2]);
|
|
464
464
|
let timePointsData = volumesTimePointsCache.get(referencedDynamicVolume);
|
|
465
465
|
if (!timePointsData) {
|
|
466
466
|
timePointsData = _getTimePointsData(referencedDynamicVolume);
|
|
@@ -576,7 +576,10 @@ function updateSegmentationsChartDisplaySet({
|
|
|
576
576
|
|
|
577
577
|
|
|
578
578
|
|
|
579
|
-
|
|
579
|
+
|
|
580
|
+
const {
|
|
581
|
+
downloadCsv
|
|
582
|
+
} = src/* utils */.Wp;
|
|
580
583
|
const commandsModule = ({
|
|
581
584
|
commandsManager,
|
|
582
585
|
servicesManager
|
|
@@ -610,8 +613,6 @@ const commandsModule = ({
|
|
|
610
613
|
},
|
|
611
614
|
exportTimeReportCSV: ({
|
|
612
615
|
segmentations,
|
|
613
|
-
config,
|
|
614
|
-
options,
|
|
615
616
|
summaryStats
|
|
616
617
|
}) => {
|
|
617
618
|
const dynamic4DDisplaySet = actions.getDynamic4DDisplaySet();
|
|
@@ -622,7 +623,7 @@ const commandsModule = ({
|
|
|
622
623
|
// so we can't do cache._volumeCache.get(volumeId) we should iterate
|
|
623
624
|
// over the keys and find the one that includes the volumeId
|
|
624
625
|
let volumeCacheKey;
|
|
625
|
-
for (const [key] of
|
|
626
|
+
for (const [key] of dist_esm.cache._volumeCache) {
|
|
626
627
|
if (key.includes(volumeId)) {
|
|
627
628
|
volumeCacheKey = key;
|
|
628
629
|
break;
|
|
@@ -630,7 +631,7 @@ const commandsModule = ({
|
|
|
630
631
|
}
|
|
631
632
|
let dynamicVolume;
|
|
632
633
|
if (volumeCacheKey) {
|
|
633
|
-
dynamicVolume =
|
|
634
|
+
dynamicVolume = dist_esm.cache.getVolume(volumeCacheKey);
|
|
634
635
|
}
|
|
635
636
|
const instance = dynamic4DDisplaySet.instances[0];
|
|
636
637
|
const csv = [];
|
|
@@ -658,7 +659,7 @@ const commandsModule = ({
|
|
|
658
659
|
// Iterate through each segmentation to get the timeData and ijkCoords
|
|
659
660
|
segmentations.forEach(segmentation => {
|
|
660
661
|
const volume = segmentationService.getLabelmapVolume(segmentation.segmentationId);
|
|
661
|
-
const [timeData, ijkCoords] =
|
|
662
|
+
const [timeData, ijkCoords] = esm.utilities.dynamicVolume.getDataInTime(dynamicVolume, {
|
|
662
663
|
maskVolumeId: volume.volumeId
|
|
663
664
|
});
|
|
664
665
|
if (summaryStats) {
|
|
@@ -762,17 +763,9 @@ const commandsModule = ({
|
|
|
762
763
|
|
|
763
764
|
// Generate filename and trigger download
|
|
764
765
|
const filename = `${instance.PatientID}.csv`;
|
|
765
|
-
|
|
766
|
-
|
|
766
|
+
downloadCsv(csvContent, {
|
|
767
|
+
filename
|
|
767
768
|
});
|
|
768
|
-
const link = document.createElement('a');
|
|
769
|
-
const url = URL.createObjectURL(blob);
|
|
770
|
-
link.setAttribute('href', url);
|
|
771
|
-
link.setAttribute('download', filename);
|
|
772
|
-
link.style.visibility = 'hidden';
|
|
773
|
-
document.body.appendChild(link);
|
|
774
|
-
link.click();
|
|
775
|
-
document.body.removeChild(link);
|
|
776
769
|
},
|
|
777
770
|
swapDynamicWithComputedDisplaySet: ({
|
|
778
771
|
displaySet
|
|
@@ -1008,7 +1001,7 @@ const DynamicVolumeControls = ({
|
|
|
1008
1001
|
onDynamicClick
|
|
1009
1002
|
}) => {
|
|
1010
1003
|
const [computedView, setComputedView] = (0,react.useState)(false);
|
|
1011
|
-
const [computeViewMode, setComputeViewMode] = (0,react.useState)(
|
|
1004
|
+
const [computeViewMode, setComputeViewMode] = (0,react.useState)(dist_esm.Enums.DynamicOperatorType.SUM);
|
|
1012
1005
|
|
|
1013
1006
|
// Wrapper for onGenerate to handle potential errors
|
|
1014
1007
|
const handleGenerate = () => {
|
|
@@ -1080,15 +1073,15 @@ const DynamicVolumeControls = ({
|
|
|
1080
1073
|
}, /*#__PURE__*/react.createElement(ui_next_src/* TabsList */.j7C, {
|
|
1081
1074
|
className: "w-full gap-1"
|
|
1082
1075
|
}, ' ', /*#__PURE__*/react.createElement(ui_next_src/* TabsTrigger */.Xib, {
|
|
1083
|
-
value: String(
|
|
1076
|
+
value: String(dist_esm.Enums.DynamicOperatorType.SUM),
|
|
1084
1077
|
className: "w-1/3"
|
|
1085
|
-
}, toUpperCaseString(
|
|
1086
|
-
value: String(
|
|
1078
|
+
}, toUpperCaseString(dist_esm.Enums.DynamicOperatorType.SUM)), /*#__PURE__*/react.createElement(ui_next_src/* TabsTrigger */.Xib, {
|
|
1079
|
+
value: String(dist_esm.Enums.DynamicOperatorType.AVERAGE),
|
|
1087
1080
|
className: "w-1/3"
|
|
1088
|
-
}, toUpperCaseString(
|
|
1089
|
-
value: String(
|
|
1081
|
+
}, toUpperCaseString(dist_esm.Enums.DynamicOperatorType.AVERAGE)), /*#__PURE__*/react.createElement(ui_next_src/* TabsTrigger */.Xib, {
|
|
1082
|
+
value: String(dist_esm.Enums.DynamicOperatorType.SUBTRACT),
|
|
1090
1083
|
className: "w-1/3"
|
|
1091
|
-
}, toUpperCaseString(
|
|
1084
|
+
}, toUpperCaseString(dist_esm.Enums.DynamicOperatorType.SUBTRACT)))), /*#__PURE__*/react.createElement("div", {
|
|
1092
1085
|
className: "mt-2 w-full"
|
|
1093
1086
|
}, /*#__PURE__*/react.createElement(ui_next_src/* Numeric */.ewR.Container, {
|
|
1094
1087
|
mode: "doubleRange",
|
|
@@ -1203,7 +1196,7 @@ function PanelGenerateImage({
|
|
|
1203
1196
|
const [displayingComputed, setDisplayingComputed] = (0,react.useState)(false);
|
|
1204
1197
|
|
|
1205
1198
|
//
|
|
1206
|
-
const uuidComputedVolume = (0,react.useRef)(
|
|
1199
|
+
const uuidComputedVolume = (0,react.useRef)(dist_esm.utilities.uuidv4());
|
|
1207
1200
|
const uuidDynamicVolume = (0,react.useRef)(null);
|
|
1208
1201
|
const computedVolumeId = `cornerstoneStreamingImageVolume:${uuidComputedVolume.current}`;
|
|
1209
1202
|
(0,react.useEffect)(() => {
|
|
@@ -1234,13 +1227,13 @@ function PanelGenerateImage({
|
|
|
1234
1227
|
};
|
|
1235
1228
|
}, [cornerstoneViewportService, cineService, servicesManager.services.cineService]);
|
|
1236
1229
|
(0,react.useEffect)(() => {
|
|
1237
|
-
const evt =
|
|
1230
|
+
const evt = dist_esm.Enums.Events.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED;
|
|
1238
1231
|
const callback = evt => {
|
|
1239
1232
|
setDimensionGroupNumberRendered(evt.detail.dimensionGroupNumber);
|
|
1240
1233
|
};
|
|
1241
|
-
|
|
1234
|
+
dist_esm.eventTarget.addEventListener(evt, callback);
|
|
1242
1235
|
return () => {
|
|
1243
|
-
|
|
1236
|
+
dist_esm.eventTarget.removeEventListener(evt, callback);
|
|
1244
1237
|
};
|
|
1245
1238
|
}, []);
|
|
1246
1239
|
(0,react.useEffect)(() => {
|
|
@@ -1253,7 +1246,7 @@ function PanelGenerateImage({
|
|
|
1253
1246
|
if (!dynamicVolumeDisplaySet) {
|
|
1254
1247
|
return;
|
|
1255
1248
|
}
|
|
1256
|
-
const dynamicVolume =
|
|
1249
|
+
const dynamicVolume = dist_esm.cache.getVolumes().find(volume => volume.volumeId.includes(dynamicVolumeDisplaySet.displaySetInstanceUID));
|
|
1257
1250
|
if (!dynamicVolume) {
|
|
1258
1251
|
return;
|
|
1259
1252
|
}
|
|
@@ -1278,9 +1271,9 @@ function PanelGenerateImage({
|
|
|
1278
1271
|
if (!dynamicVolumeId) {
|
|
1279
1272
|
return;
|
|
1280
1273
|
}
|
|
1281
|
-
let computedVolume =
|
|
1274
|
+
let computedVolume = dist_esm.cache.getVolume(computedVolumeId);
|
|
1282
1275
|
if (!computedVolume) {
|
|
1283
|
-
computedVolume = await
|
|
1276
|
+
computedVolume = await dist_esm.volumeLoader.createAndCacheDerivedVolume(dynamicVolumeId, {
|
|
1284
1277
|
volumeId: computedVolumeId
|
|
1285
1278
|
});
|
|
1286
1279
|
}
|
|
@@ -1293,7 +1286,7 @@ function PanelGenerateImage({
|
|
|
1293
1286
|
dimensionGroupNumbers: operationName === 'SUBTRACT' ? [start, end] : frameNumbers,
|
|
1294
1287
|
targetVolume: computedVolume
|
|
1295
1288
|
};
|
|
1296
|
-
|
|
1289
|
+
esm.utilities.dynamicVolume.updateVolumeFromTimeData(dynamicVolume, operationName, options);
|
|
1297
1290
|
|
|
1298
1291
|
// If computed display set does not exist, create an object to be used as
|
|
1299
1292
|
// the displaySet. If it does exist, update the image data and vtkTexture
|
|
@@ -1407,8 +1400,8 @@ function WorkflowPanel({
|
|
|
1407
1400
|
|
|
1408
1401
|
|
|
1409
1402
|
|
|
1410
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
1411
|
-
var default_src = __webpack_require__(
|
|
1403
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
|
|
1404
|
+
var default_src = __webpack_require__(39195);
|
|
1412
1405
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 192 modules
|
|
1413
1406
|
var cornerstone_src = __webpack_require__(71903);
|
|
1414
1407
|
;// ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx
|
|
@@ -2131,7 +2124,7 @@ const dynamicVolumeExtension = {
|
|
|
2131
2124
|
configuration = {}
|
|
2132
2125
|
}) => {
|
|
2133
2126
|
// TODO: look for the right fix
|
|
2134
|
-
|
|
2127
|
+
dist_esm.cache.setMaxCacheSize(5 * 1024 * 1024 * 1024);
|
|
2135
2128
|
},
|
|
2136
2129
|
/**
|
|
2137
2130
|
* PanelModule should provide a list of panels that will be available in OHIF
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
1
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[8802],{
|
|
2
2
|
|
|
3
3
|
/***/ 86871:
|
|
4
4
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -23676,7 +23676,20 @@ var MetadataModules;
|
|
|
23676
23676
|
MetadataModules["SOP_COMMON"] = "sopCommonModule";
|
|
23677
23677
|
MetadataModules["ULTRASOUND_ENHANCED_REGION"] = "ultrasoundEnhancedRegionModule";
|
|
23678
23678
|
MetadataModules["VOI_LUT"] = "voiLutModule";
|
|
23679
|
+
MetadataModules["FRAME_MODULE"] = "frameModule";
|
|
23679
23680
|
MetadataModules["WADO_WEB_CLIENT"] = "wadoWebClient";
|
|
23681
|
+
MetadataModules["INSTANCE"] = "instance";
|
|
23682
|
+
MetadataModules["IMAGE_SOP_INSTANCE_REFERENCE"] = "ImageSopInstanceReference";
|
|
23683
|
+
MetadataModules["REFERENCED_SERIES_REFERENCE"] = "ReferencedSeriesReference";
|
|
23684
|
+
MetadataModules["PREDECESSOR_SEQUENCE"] = "PredecessorSequence";
|
|
23685
|
+
MetadataModules["STUDY_DATA"] = "StudyData";
|
|
23686
|
+
MetadataModules["SERIES_DATA"] = "SeriesData";
|
|
23687
|
+
MetadataModules["IMAGE_DATA"] = "ImageData";
|
|
23688
|
+
MetadataModules["RTSS_INSTANCE_DATA"] = "RtssInstanceData";
|
|
23689
|
+
MetadataModules["NEW_INSTANCE_DATA"] = "NewInstanceData";
|
|
23690
|
+
MetadataModules["RTSS_CONTOUR"] = "metaRTSSContour";
|
|
23691
|
+
MetadataModules["SEG_BIT"] = "metaSegBitmap";
|
|
23692
|
+
MetadataModules["SR_ANNOTATION"] = "metaSrAnnotation";
|
|
23680
23693
|
})(MetadataModules || (MetadataModules = {}));
|
|
23681
23694
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MetadataModules);
|
|
23682
23695
|
|
|
@@ -32961,8 +32974,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32961
32974
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
32962
32975
|
/* harmony export */ addProvider: () => (/* binding */ addProvider),
|
|
32963
32976
|
/* harmony export */ get: () => (/* binding */ getMetaData),
|
|
32977
|
+
/* harmony export */ getNormalized: () => (/* binding */ getNormalized),
|
|
32964
32978
|
/* harmony export */ removeAllProviders: () => (/* binding */ removeAllProviders),
|
|
32965
|
-
/* harmony export */ removeProvider: () => (/* binding */ removeProvider)
|
|
32979
|
+
/* harmony export */ removeProvider: () => (/* binding */ removeProvider),
|
|
32980
|
+
/* harmony export */ toLowerCamelTag: () => (/* binding */ toLowerCamelTag),
|
|
32981
|
+
/* harmony export */ toUpperCamelTag: () => (/* binding */ toUpperCamelTag)
|
|
32966
32982
|
/* harmony export */ });
|
|
32967
32983
|
const providers = [];
|
|
32968
32984
|
function addProvider(provider, priority = 0) {
|
|
@@ -32998,6 +33014,46 @@ function getMetaData(type, ...queries) {
|
|
|
32998
33014
|
}
|
|
32999
33015
|
}
|
|
33000
33016
|
}
|
|
33017
|
+
function getNormalized(imageId, types, metaDataProvider = getMetaData) {
|
|
33018
|
+
const result = {};
|
|
33019
|
+
for (const t of types) {
|
|
33020
|
+
try {
|
|
33021
|
+
const data = metaDataProvider(t, imageId);
|
|
33022
|
+
if (data) {
|
|
33023
|
+
const capitalizedData = {};
|
|
33024
|
+
for (const key in data) {
|
|
33025
|
+
if (key in data) {
|
|
33026
|
+
const capitalizedKey = toUpperCamelTag(key);
|
|
33027
|
+
capitalizedData[capitalizedKey] = data[key];
|
|
33028
|
+
}
|
|
33029
|
+
}
|
|
33030
|
+
Object.assign(result, capitalizedData);
|
|
33031
|
+
}
|
|
33032
|
+
}
|
|
33033
|
+
catch (error) {
|
|
33034
|
+
console.error(`Error retrieving ${t} data:`, error);
|
|
33035
|
+
}
|
|
33036
|
+
}
|
|
33037
|
+
return result;
|
|
33038
|
+
}
|
|
33039
|
+
const toUpperCamelTag = (tag) => {
|
|
33040
|
+
if (tag.startsWith('sop')) {
|
|
33041
|
+
return `SOP${tag.substring(3)}`;
|
|
33042
|
+
}
|
|
33043
|
+
if (tag.endsWith('Id')) {
|
|
33044
|
+
tag = `${tag.substring(0, tag.length - 2)}ID`;
|
|
33045
|
+
}
|
|
33046
|
+
return tag.charAt(0).toUpperCase() + tag.slice(1);
|
|
33047
|
+
};
|
|
33048
|
+
const toLowerCamelTag = (tag) => {
|
|
33049
|
+
if (tag.startsWith('SOP')) {
|
|
33050
|
+
return `sop${tag.substring(3)}`;
|
|
33051
|
+
}
|
|
33052
|
+
if (tag.endsWith('ID')) {
|
|
33053
|
+
tag = `${tag.substring(0, tag.length - 2)}Id`;
|
|
33054
|
+
}
|
|
33055
|
+
return tag.charAt(0).toLowerCase() + tag.slice(1);
|
|
33056
|
+
};
|
|
33001
33057
|
|
|
33002
33058
|
|
|
33003
33059
|
|
|
@@ -34469,7 +34525,7 @@ function uuidv4() {
|
|
|
34469
34525
|
|
|
34470
34526
|
"use strict";
|
|
34471
34527
|
/* unused harmony export version */
|
|
34472
|
-
const version = '4.11.
|
|
34528
|
+
const version = '4.11.3';
|
|
34473
34529
|
|
|
34474
34530
|
|
|
34475
34531
|
/***/ }),
|
|
@@ -37460,7 +37516,7 @@ function getSurfaceRepresentationUID(segmentationId, segmentIndex) {
|
|
|
37460
37516
|
|
|
37461
37517
|
"use strict";
|
|
37462
37518
|
/* unused harmony export default */
|
|
37463
|
-
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
37519
|
+
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19111);
|
|
37464
37520
|
/* harmony import */ var _annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82056);
|
|
37465
37521
|
/* harmony import */ var _getSegmentation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33283);
|
|
37466
37522
|
/* harmony import */ var _extractSegmentPolylines__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96629);
|
|
@@ -37814,7 +37870,7 @@ function removeCompleteContourAnnotation(annotation) {
|
|
|
37814
37870
|
|
|
37815
37871
|
"use strict";
|
|
37816
37872
|
/* unused harmony export default */
|
|
37817
|
-
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
37873
|
+
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19111);
|
|
37818
37874
|
/* harmony import */ var _annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82056);
|
|
37819
37875
|
/* harmony import */ var _getSegmentation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33283);
|
|
37820
37876
|
/* harmony import */ var _extractSegmentPolylines__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96629);
|
|
@@ -38879,25 +38935,6 @@ BaseTool.toolName = 'BaseTool';
|
|
|
38879
38935
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BaseTool);
|
|
38880
38936
|
|
|
38881
38937
|
|
|
38882
|
-
/***/ }),
|
|
38883
|
-
|
|
38884
|
-
/***/ 85817:
|
|
38885
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
38886
|
-
|
|
38887
|
-
"use strict";
|
|
38888
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
38889
|
-
/* harmony export */ EC: () => (/* reexport safe */ _AnnotationTool__WEBPACK_IMPORTED_MODULE_1__.A),
|
|
38890
|
-
/* harmony export */ oS: () => (/* reexport safe */ _BaseTool__WEBPACK_IMPORTED_MODULE_0__.A)
|
|
38891
|
-
/* harmony export */ });
|
|
38892
|
-
/* harmony import */ var _BaseTool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37234);
|
|
38893
|
-
/* harmony import */ var _AnnotationTool__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91350);
|
|
38894
|
-
/* harmony import */ var _AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6030);
|
|
38895
|
-
|
|
38896
|
-
|
|
38897
|
-
|
|
38898
|
-
|
|
38899
|
-
|
|
38900
|
-
|
|
38901
38938
|
/***/ }),
|
|
38902
38939
|
|
|
38903
38940
|
/***/ 25894:
|
|
@@ -39027,14 +39064,20 @@ function _checkContourGeometryMatchViewport(geometryIds, viewportNormal) {
|
|
|
39027
39064
|
return false;
|
|
39028
39065
|
}
|
|
39029
39066
|
const contours = geometryData.contours;
|
|
39030
|
-
const points = contours[0]
|
|
39031
|
-
const
|
|
39032
|
-
const
|
|
39033
|
-
const
|
|
39034
|
-
|
|
39035
|
-
|
|
39036
|
-
|
|
39037
|
-
|
|
39067
|
+
const { points } = contours[0];
|
|
39068
|
+
const [point] = points;
|
|
39069
|
+
const delta = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.create */ .eR.create();
|
|
39070
|
+
const { length } = points;
|
|
39071
|
+
const increment = Math.ceil(length / 25);
|
|
39072
|
+
for (let i = 1; i < length; i += increment) {
|
|
39073
|
+
const point2 = points[i];
|
|
39074
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.sub */ .eR.sub(delta, point, point2);
|
|
39075
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.normalize */ .eR.normalize(delta, delta);
|
|
39076
|
+
if (gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.dot */ .eR.dot(viewportNormal, delta) > 0.1) {
|
|
39077
|
+
return false;
|
|
39078
|
+
}
|
|
39079
|
+
}
|
|
39080
|
+
return true;
|
|
39038
39081
|
}
|
|
39039
39082
|
function _checkContourNormalsMatchViewport(annotationUIDsMap, viewportNormal) {
|
|
39040
39083
|
const annotationUIDs = Array.from(annotationUIDsMap.values())
|
|
@@ -41681,6 +41724,58 @@ function cleanupPolylines(polylines) {
|
|
|
41681
41724
|
}
|
|
41682
41725
|
|
|
41683
41726
|
|
|
41727
|
+
/***/ }),
|
|
41728
|
+
|
|
41729
|
+
/***/ 29632:
|
|
41730
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
41731
|
+
|
|
41732
|
+
"use strict";
|
|
41733
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
41734
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
41735
|
+
/* harmony export */ });
|
|
41736
|
+
/* harmony import */ var _RectangleROIStartEndThreshold__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(109);
|
|
41737
|
+
|
|
41738
|
+
function validateAnnotation(annotation) {
|
|
41739
|
+
if (!annotation?.data) {
|
|
41740
|
+
throw new Error('Tool data is empty');
|
|
41741
|
+
}
|
|
41742
|
+
if (!annotation.metadata || !annotation.metadata.referencedImageId) {
|
|
41743
|
+
throw new Error('Tool data is not associated with any imageId');
|
|
41744
|
+
}
|
|
41745
|
+
}
|
|
41746
|
+
class AnnotationToPointData {
|
|
41747
|
+
static { this.TOOL_NAMES = {}; }
|
|
41748
|
+
constructor() {
|
|
41749
|
+
}
|
|
41750
|
+
static convert(annotation, segment, metadataProvider) {
|
|
41751
|
+
validateAnnotation(annotation);
|
|
41752
|
+
const { toolName } = annotation.metadata;
|
|
41753
|
+
const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
|
|
41754
|
+
if (!toolClass) {
|
|
41755
|
+
throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
|
|
41756
|
+
}
|
|
41757
|
+
const contourSequence = toolClass.getContourSequence(annotation, metadataProvider);
|
|
41758
|
+
const color = segment.color?.slice(0, 3) || [
|
|
41759
|
+
Math.floor(Math.random() * 255),
|
|
41760
|
+
Math.floor(Math.random() * 255),
|
|
41761
|
+
Math.floor(Math.random() * 255),
|
|
41762
|
+
];
|
|
41763
|
+
return {
|
|
41764
|
+
ReferencedROINumber: segment.segmentIndex,
|
|
41765
|
+
ROIDisplayColor: color,
|
|
41766
|
+
ContourSequence: Array.isArray(contourSequence)
|
|
41767
|
+
? contourSequence
|
|
41768
|
+
: [contourSequence],
|
|
41769
|
+
};
|
|
41770
|
+
}
|
|
41771
|
+
static register(toolClass) {
|
|
41772
|
+
AnnotationToPointData.TOOL_NAMES[toolClass.toolName] = toolClass;
|
|
41773
|
+
}
|
|
41774
|
+
}
|
|
41775
|
+
AnnotationToPointData.register(_RectangleROIStartEndThreshold__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A);
|
|
41776
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AnnotationToPointData);
|
|
41777
|
+
|
|
41778
|
+
|
|
41684
41779
|
/***/ }),
|
|
41685
41780
|
|
|
41686
41781
|
/***/ 93843:
|
|
@@ -41791,7 +41886,7 @@ function getContourHolesDataWorld(annotation) {
|
|
|
41791
41886
|
|
|
41792
41887
|
/***/ }),
|
|
41793
41888
|
|
|
41794
|
-
/***/
|
|
41889
|
+
/***/ 19111:
|
|
41795
41890
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
41796
41891
|
|
|
41797
41892
|
"use strict";
|
|
@@ -42048,48 +42143,8 @@ async function generateContourSetsFromLabelmap({ segmentations }) {
|
|
|
42048
42143
|
}
|
|
42049
42144
|
|
|
42050
42145
|
|
|
42051
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/
|
|
42052
|
-
var
|
|
42053
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/AnnotationToPointData.js
|
|
42054
|
-
|
|
42055
|
-
function validateAnnotation(annotation) {
|
|
42056
|
-
if (!annotation?.data) {
|
|
42057
|
-
throw new Error('Tool data is empty');
|
|
42058
|
-
}
|
|
42059
|
-
if (!annotation.metadata || annotation.metadata.referencedImageId) {
|
|
42060
|
-
throw new Error('Tool data is not associated with any imageId');
|
|
42061
|
-
}
|
|
42062
|
-
}
|
|
42063
|
-
class AnnotationToPointData {
|
|
42064
|
-
static { this.TOOL_NAMES = {}; }
|
|
42065
|
-
constructor() {
|
|
42066
|
-
}
|
|
42067
|
-
static convert(annotation, index, metadataProvider) {
|
|
42068
|
-
validateAnnotation(annotation);
|
|
42069
|
-
const { toolName } = annotation.metadata;
|
|
42070
|
-
const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
|
|
42071
|
-
if (!toolClass) {
|
|
42072
|
-
throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
|
|
42073
|
-
}
|
|
42074
|
-
const ContourSequence = toolClass.getContourSequence(annotation, metadataProvider);
|
|
42075
|
-
const color = [
|
|
42076
|
-
Math.floor(Math.random() * 255),
|
|
42077
|
-
Math.floor(Math.random() * 255),
|
|
42078
|
-
Math.floor(Math.random() * 255),
|
|
42079
|
-
];
|
|
42080
|
-
return {
|
|
42081
|
-
ReferencedROINumber: index + 1,
|
|
42082
|
-
ROIDisplayColor: color,
|
|
42083
|
-
ContourSequence,
|
|
42084
|
-
};
|
|
42085
|
-
}
|
|
42086
|
-
static register(toolClass) {
|
|
42087
|
-
AnnotationToPointData.TOOL_NAMES[toolClass.toolName] = toolClass;
|
|
42088
|
-
}
|
|
42089
|
-
}
|
|
42090
|
-
AnnotationToPointData.register(RectangleROIStartEndThreshold/* default */.A);
|
|
42091
|
-
/* harmony default export */ const contours_AnnotationToPointData = ((/* unused pure expression or super */ null && (AnnotationToPointData)));
|
|
42092
|
-
|
|
42146
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/AnnotationToPointData.js
|
|
42147
|
+
var AnnotationToPointData = __webpack_require__(29632);
|
|
42093
42148
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/getContourHolesDataWorld.js
|
|
42094
42149
|
var getContourHolesDataWorld = __webpack_require__(55659);
|
|
42095
42150
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/getContourHolesDataCanvas.js
|
|
@@ -43342,7 +43397,7 @@ async function calculateForVolume({ segmentationIds, segmentIndex }) {
|
|
|
43342
43397
|
|
|
43343
43398
|
"use strict";
|
|
43344
43399
|
/* unused harmony export default */
|
|
43345
|
-
/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
43400
|
+
/* harmony import */ var _contours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19111);
|
|
43346
43401
|
/* harmony import */ var _findLargestBidirectional__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60199);
|
|
43347
43402
|
/* harmony import */ var _getOrCreateSegmentationVolume__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30722);
|
|
43348
43403
|
|