@ohif/app 3.10.1 → 3.10.2
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/{1919.bundle.6f7de53921f3710a1d54.js → 1919.bundle.6cb4a1f5ea770e504398.js} +2 -2
- package/dist/{1927.bundle.83810560c4d3a90eb7cf.js → 1927.bundle.5c25b9084f704a3582d2.js} +1 -1
- package/dist/{3396.bundle.858cfdfc5ab560840958.js → 2482.bundle.0947bc67ad4429d5fda3.js} +289 -1353
- package/dist/{2701.bundle.f1f15df81406d04851c4.js → 2701.bundle.87301d8d94693b5d5fcc.js} +2 -2
- package/dist/{2860.bundle.5d93c30e2df60e382bda.js → 2860.bundle.130f5c83c90c83017101.js} +1368 -28
- package/dist/{2914.bundle.a0a5ddfebfc9d429063d.js → 2914.bundle.adefec5b51b4955af1f9.js} +2 -0
- package/dist/{2932.bundle.038f79dbbfdd9d1f387b.js → 2932.bundle.2757ab993a28dab49d56.js} +2 -2
- package/dist/{3075.bundle.0624f6bf3f676f30d1b5.js → 3075.bundle.5d83563c3791a0d884df.js} +16 -3
- package/dist/{3353.bundle.184ebb9668df2cbebd26.js → 3353.bundle.1b2d3da25de70f5f1042.js} +33 -4
- package/dist/{3984.bundle.592161af4b618c9dd56f.js → 3984.bundle.1248e382e82ee04eff72.js} +12 -7
- package/dist/{4113.bundle.7ec6da0eb1ab98e1b791.js → 4113.bundle.1a3202dd6a1b2e6b9d5d.js} +5 -5
- package/dist/{4526.bundle.fbdd617a934353019be3.js → 4526.bundle.54c0b8f753ed5c39f6c5.js} +2 -2
- package/dist/{6029.bundle.43e04238ac01880fa66c.js → 6029.bundle.a4206e2a2e75c7b1ad7b.js} +238 -40
- package/dist/{6066.bundle.345453ace06e86bc481c.js → 6066.bundle.89df990e4f257e8ac73b.js} +1466 -39
- package/dist/{6201.bundle.e0d8d1c967a9daed4662.js → 6201.bundle.b584d7554570344d9170.js} +4 -4
- package/dist/{7197.bundle.a9c6429f2859a8feeded.js → 7197.bundle.2032eea26c084877d172.js} +3 -3
- package/dist/{810.bundle.86ba4f6f1311ccc28d41.js → 810.bundle.8b29de53f9632f0f1bf9.js} +4 -4
- package/dist/{8185.bundle.b2252d9ff14ce760df9c.js → 8185.bundle.c7e0ab58fa8f7070de26.js} +22 -16
- package/dist/{8558.bundle.5b67110ba3e66f5525ae.js → 8558.bundle.24bb90c2d5a0857577c5.js} +1 -1
- package/dist/{7241.bundle.7097a0cd314605d766f5.js → 8572.bundle.bd98ac784dae1e224a52.js} +135 -47
- package/dist/{3166.bundle.40162f1d9f9f5fc16b16.js → 908.bundle.7f901ab4610793bb5ee3.js} +29 -5
- package/dist/{934.bundle.c446dfb396152899756f.js → 934.bundle.441c775536d8be5029af.js} +2 -2
- package/dist/{963.bundle.88152346007c0f5049a3.js → 963.bundle.4b88a54196fdd1976d6c.js} +2 -2
- package/dist/{9890.bundle.37d7ed265c0454337a57.js → 9890.bundle.b4c265e3609512785ae8.js} +2 -2
- package/dist/{9977.bundle.071821200c1921021d29.js → 9977.bundle.4f44190c1a5d6a69bc00.js} +3 -1
- package/dist/{app.bundle.d09601053966ecdcfe4b.js → app.bundle.223c009cd6f636320f76.js} +2148 -1758
- package/dist/app.bundle.css +2 -2
- package/dist/{compute.bundle.f0c30502c027d04e94f2.js → compute.bundle.83a75c96620eedca973e.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.7445d00e1e9ef623d0f1.js → polySeg.bundle.30f6f13491f48e597605.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{1459.bundle.4b6682c8673e199edf64.js → 1459.bundle.ea2023918c1ef217d23a.js} +0 -0
- /package/dist/{1807.bundle.e8c6890ca68e62f46990.js → 1807.bundle.a04f3486b00cdcc6a305.js} +0 -0
- /package/dist/{213.bundle.d8495e69f1d1405d0356.js → 213.bundle.e861b773d4779d7d724a.js} +0 -0
- /package/dist/{2424.bundle.ef98022039ea6e87cfd9.js → 2424.bundle.425cb2260521f2a23f70.js} +0 -0
- /package/dist/{3658.bundle.04fdfe11b9d38cd5f3c6.js → 3658.bundle.a6a9c2e1b32d92e3b621.js} +0 -0
- /package/dist/{6027.bundle.155cbff7fa97c7ede627.js → 6027.bundle.8e1b6021f0d570eb85f5.js} +0 -0
- /package/dist/{7639.bundle.a659acbf2ab7f3f2e8f4.js → 7639.bundle.b622eafdc74d9bfc1280.js} +0 -0
- /package/dist/{8228.bundle.74c8ca5e66a44db80464.js → 8228.bundle.f520ecf3c0a8998e770a.js} +0 -0
- /package/dist/{85.bundle.e65ed829e1a136e33576.js → 85.bundle.a27a1466f85e01adf8e8.js} +0 -0
- /package/dist/{8815.bundle.c8a97b220635e9b15109.js → 8815.bundle.096958a5ae7253911a2e.js} +0 -0
- /package/dist/{9026.bundle.eb2ae9e2311a6a620751.js → 9026.bundle.019d8b4b70096b94302e.js} +0 -0
- /package/dist/{9862.bundle.87d8249a9cf1d8cf579d.js → 9862.bundle.b0ea941458506379f666.js} +0 -0
|
@@ -26,10 +26,10 @@ var react = __webpack_require__(86326);
|
|
|
26
26
|
var src = __webpack_require__(62037);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
28
28
|
var esm = __webpack_require__(15327);
|
|
29
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js +
|
|
30
|
-
var dist_esm = __webpack_require__(
|
|
31
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
32
|
-
var cornerstone_src = __webpack_require__(
|
|
29
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 65 modules
|
|
30
|
+
var dist_esm = __webpack_require__(93468);
|
|
31
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 135 modules
|
|
32
|
+
var cornerstone_src = __webpack_require__(78572);
|
|
33
33
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
|
|
34
34
|
|
|
35
35
|
|
|
@@ -28,8 +28,8 @@ var src = __webpack_require__(62037);
|
|
|
28
28
|
var esm = __webpack_require__(15327);
|
|
29
29
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
30
30
|
var dist_esm = __webpack_require__(4667);
|
|
31
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js +
|
|
32
|
-
var adapters_dist_esm = __webpack_require__(
|
|
31
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 65 modules
|
|
32
|
+
var adapters_dist_esm = __webpack_require__(93468);
|
|
33
33
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
34
34
|
var dcmjs_es = __webpack_require__(5842);
|
|
35
35
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/dicomlabToRGB.ts
|
|
@@ -733,7 +733,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
733
733
|
|
|
734
734
|
|
|
735
735
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
736
|
-
return Promise.all(/* import() */[__webpack_require__.e(8185), __webpack_require__.e(
|
|
736
|
+
return Promise.all(/* import() */[__webpack_require__.e(8185), __webpack_require__.e(8572), __webpack_require__.e(4526)]).then(__webpack_require__.bind(__webpack_require__, 58295));
|
|
737
737
|
});
|
|
738
738
|
const OHIFCornerstoneSEGViewport = props => {
|
|
739
739
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -978,8 +978,8 @@ PanelPetSUV.propTypes = {
|
|
|
978
978
|
}).isRequired
|
|
979
979
|
}).isRequired
|
|
980
980
|
};
|
|
981
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
982
|
-
var cornerstone_src = __webpack_require__(
|
|
981
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 135 modules
|
|
982
|
+
var cornerstone_src = __webpack_require__(78572);
|
|
983
983
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/handleROIThresholding.ts
|
|
984
984
|
const handleROIThresholding = async ({
|
|
985
985
|
commandsManager,
|
|
@@ -1475,8 +1475,8 @@ function createAndDownloadTMTVReport(segReport, additionalReportRows, options =
|
|
|
1475
1475
|
}
|
|
1476
1476
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
1477
1477
|
var dcmjs_es = __webpack_require__(5842);
|
|
1478
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js +
|
|
1479
|
-
var adapters_dist_esm = __webpack_require__(
|
|
1478
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 65 modules
|
|
1479
|
+
var adapters_dist_esm = __webpack_require__(93468);
|
|
1480
1480
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/dicomRTAnnotationExport.js
|
|
1481
1481
|
|
|
1482
1482
|
|
|
@@ -3629,9 +3629,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3629
3629
|
// EXPORTS
|
|
3630
3630
|
__webpack_require__.d(__webpack_exports__, {
|
|
3631
3631
|
canComputeRequestedRepresentation: () => (/* reexport */ canComputeRequestedRepresentation),
|
|
3632
|
+
clipAndCacheSurfacesForViewport: () => (/* reexport */ clipAndCacheSurfacesForViewport),
|
|
3632
3633
|
computeContourData: () => (/* reexport */ computeContourData),
|
|
3633
3634
|
computeLabelmapData: () => (/* reexport */ computeLabelmapData),
|
|
3634
3635
|
computeSurfaceData: () => (/* reexport */ computeSurfaceData),
|
|
3636
|
+
createAndAddContourSegmentationsFromClippedSurfaces: () => (/* reexport */ createAndAddContourSegmentationsFromClippedSurfaces),
|
|
3637
|
+
extractContourData: () => (/* reexport */ extractContourData),
|
|
3635
3638
|
init: () => (/* binding */ init),
|
|
3636
3639
|
updateSurfaceData: () => (/* reexport */ updateSurfaceData)
|
|
3637
3640
|
});
|
|
@@ -3861,7 +3864,7 @@ async function computeSurfaceFromContourSegmentation(segmentationId, options = {
|
|
|
3861
3864
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/polymorphic-segmentation/dist/esm/registerPolySegWorker.js
|
|
3862
3865
|
|
|
3863
3866
|
let registered = false;
|
|
3864
|
-
function registerPolySegWorker() {
|
|
3867
|
+
function registerPolySegWorker(userOptions) {
|
|
3865
3868
|
if (registered) {
|
|
3866
3869
|
return;
|
|
3867
3870
|
}
|
|
@@ -3873,13 +3876,14 @@ function registerPolySegWorker() {
|
|
|
3873
3876
|
});
|
|
3874
3877
|
};
|
|
3875
3878
|
const workerManager = (0,esm.getWebWorkerManager)();
|
|
3876
|
-
const
|
|
3879
|
+
const defaultOptions = {
|
|
3877
3880
|
maxWorkerInstances: 1,
|
|
3878
3881
|
autoTerminateOnIdle: {
|
|
3879
3882
|
enabled: true,
|
|
3880
3883
|
idleTimeThreshold: 2000,
|
|
3881
3884
|
},
|
|
3882
3885
|
};
|
|
3886
|
+
const options = esm.utilities.deepMerge(defaultOptions, userOptions);
|
|
3883
3887
|
workerManager.registerWorker('polySeg', workerFn, options);
|
|
3884
3888
|
}
|
|
3885
3889
|
|
|
@@ -4453,33 +4457,32 @@ async function computeLabelmapFromSurfaceSegmentation(segmentationId, options =
|
|
|
4453
4457
|
|
|
4454
4458
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/polymorphic-segmentation/dist/esm/canComputeRequestedRepresentation.js
|
|
4455
4459
|
|
|
4456
|
-
const { SegmentationRepresentations: canComputeRequestedRepresentation_SegmentationRepresentations } = dist_esm.Enums;
|
|
4457
4460
|
const { getSegmentation: canComputeRequestedRepresentation_getSegmentation } = dist_esm.segmentation.state;
|
|
4458
4461
|
const { validateLabelmap } = dist_esm.utilities.segmentation;
|
|
4459
4462
|
const conversionPaths = new Map([
|
|
4460
4463
|
[
|
|
4461
|
-
|
|
4464
|
+
dist_esm.Enums.SegmentationRepresentations.Labelmap,
|
|
4462
4465
|
new Set([
|
|
4463
|
-
|
|
4464
|
-
|
|
4466
|
+
dist_esm.Enums.SegmentationRepresentations.Surface,
|
|
4467
|
+
dist_esm.Enums.SegmentationRepresentations.Contour,
|
|
4465
4468
|
]),
|
|
4466
4469
|
],
|
|
4467
4470
|
[
|
|
4468
|
-
|
|
4471
|
+
dist_esm.Enums.SegmentationRepresentations.Contour,
|
|
4469
4472
|
new Set([
|
|
4470
|
-
|
|
4471
|
-
|
|
4473
|
+
dist_esm.Enums.SegmentationRepresentations.Labelmap,
|
|
4474
|
+
dist_esm.Enums.SegmentationRepresentations.Surface,
|
|
4472
4475
|
]),
|
|
4473
4476
|
],
|
|
4474
4477
|
[
|
|
4475
|
-
|
|
4476
|
-
new Set([
|
|
4478
|
+
dist_esm.Enums.SegmentationRepresentations.Surface,
|
|
4479
|
+
new Set([dist_esm.Enums.SegmentationRepresentations.Labelmap]),
|
|
4477
4480
|
],
|
|
4478
4481
|
]);
|
|
4479
|
-
function canComputeRequestedRepresentation(segmentationId,
|
|
4482
|
+
function canComputeRequestedRepresentation(segmentationId, representationType) {
|
|
4480
4483
|
const { representationData } = canComputeRequestedRepresentation_getSegmentation(segmentationId);
|
|
4481
4484
|
const existingRepresentationTypes = getExistingRepresentationTypes(representationData);
|
|
4482
|
-
return existingRepresentationTypes.some((existingRepresentationType) => canConvertFromTo(existingRepresentationType,
|
|
4485
|
+
return existingRepresentationTypes.some((existingRepresentationType) => canConvertFromTo(existingRepresentationType, representationType));
|
|
4483
4486
|
}
|
|
4484
4487
|
function getExistingRepresentationTypes(representationData) {
|
|
4485
4488
|
const supportedTypes = [];
|
|
@@ -4487,7 +4490,7 @@ function getExistingRepresentationTypes(representationData) {
|
|
|
4487
4490
|
const representationTypeData = representationData[representationType];
|
|
4488
4491
|
let validateFn;
|
|
4489
4492
|
switch (representationType) {
|
|
4490
|
-
case
|
|
4493
|
+
case dist_esm.Enums.SegmentationRepresentations.Labelmap:
|
|
4491
4494
|
validateFn = validateLabelmap.validate;
|
|
4492
4495
|
break;
|
|
4493
4496
|
}
|
|
@@ -4602,8 +4605,11 @@ async function updateSurfaceData(segmentationId) {
|
|
|
4602
4605
|
|
|
4603
4606
|
|
|
4604
4607
|
|
|
4605
|
-
|
|
4606
|
-
|
|
4608
|
+
|
|
4609
|
+
|
|
4610
|
+
|
|
4611
|
+
function init(options) {
|
|
4612
|
+
registerPolySegWorker(options);
|
|
4607
4613
|
}
|
|
4608
4614
|
|
|
4609
4615
|
|
|
@@ -751,7 +751,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
751
751
|
|
|
752
752
|
|
|
753
753
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
754
|
-
return Promise.all(/* import() */[__webpack_require__.e(2914), __webpack_require__.e(3075), __webpack_require__.e(9977), __webpack_require__.e(6029), __webpack_require__.e(8185), __webpack_require__.e(3984), __webpack_require__.e(
|
|
754
|
+
return Promise.all(/* import() */[__webpack_require__.e(2914), __webpack_require__.e(3075), __webpack_require__.e(9977), __webpack_require__.e(6029), __webpack_require__.e(8185), __webpack_require__.e(3984), __webpack_require__.e(8572), __webpack_require__.e(9890)]).then(__webpack_require__.bind(__webpack_require__, 23121));
|
|
755
755
|
});
|
|
756
756
|
const OHIFCornerstoneRTViewport = props => {
|
|
757
757
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[8572],{
|
|
3
3
|
|
|
4
4
|
/***/ 35392:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -1100,7 +1100,7 @@ function useSegmentations(options) {
|
|
|
1100
1100
|
|
|
1101
1101
|
/***/ }),
|
|
1102
1102
|
|
|
1103
|
-
/***/
|
|
1103
|
+
/***/ 78572:
|
|
1104
1104
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1105
1105
|
|
|
1106
1106
|
// ESM COMPAT FLAG
|
|
@@ -1610,6 +1610,8 @@ ImageOverlayViewerTool.addOverlayPlaneModule = tools_OverlayPlaneModuleProvider.
|
|
|
1610
1610
|
|
|
1611
1611
|
function initCornerstoneTools(configuration = {}) {
|
|
1612
1612
|
dist_esm.CrosshairsTool.isAnnotation = false;
|
|
1613
|
+
ai_dist_esm/* LabelmapSlicePropagationTool */.Bj.isAnnotation = false;
|
|
1614
|
+
ai_dist_esm/* MarkerLabelmapTool */.pY.isAnnotation = false;
|
|
1613
1615
|
dist_esm.ReferenceLinesTool.isAnnotation = false;
|
|
1614
1616
|
dist_esm.AdvancedMagnifyTool.isAnnotation = false;
|
|
1615
1617
|
dist_esm.PlanarFreehandContourSegmentationTool.isAnnotation = false;
|
|
@@ -6397,6 +6399,120 @@ function setupSegmentationModifiedHandler({
|
|
|
6397
6399
|
unsubscribe
|
|
6398
6400
|
};
|
|
6399
6401
|
}
|
|
6402
|
+
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/initWebWorkerProgressHandler.ts
|
|
6403
|
+
|
|
6404
|
+
|
|
6405
|
+
|
|
6406
|
+
/**
|
|
6407
|
+
* Initializes a handler for web worker progress events.
|
|
6408
|
+
* Tracks active worker tasks and shows notifications for their progress.
|
|
6409
|
+
*
|
|
6410
|
+
* @param uiNotificationService - The UI notification service for showing progress notifications
|
|
6411
|
+
*/
|
|
6412
|
+
function initializeWebWorkerProgressHandler(uiNotificationService) {
|
|
6413
|
+
// Use a single map to track all active worker tasks
|
|
6414
|
+
const activeWorkerTasks = new Map();
|
|
6415
|
+
|
|
6416
|
+
// Create a normalized task key that doesn't include the random ID
|
|
6417
|
+
// This helps us identify and deduplicate the same type of task
|
|
6418
|
+
const getNormalizedTaskKey = type => {
|
|
6419
|
+
return `worker-task-${type.toLowerCase().replace(/\s+/g, '-')}`;
|
|
6420
|
+
};
|
|
6421
|
+
esm.eventTarget.addEventListener(esm.EVENTS.WEB_WORKER_PROGRESS, ({
|
|
6422
|
+
detail
|
|
6423
|
+
}) => {
|
|
6424
|
+
let normalizedKey;
|
|
6425
|
+
let shouldCleanup = false;
|
|
6426
|
+
try {
|
|
6427
|
+
const {
|
|
6428
|
+
progress,
|
|
6429
|
+
type,
|
|
6430
|
+
id
|
|
6431
|
+
} = detail;
|
|
6432
|
+
|
|
6433
|
+
// Skip notifications for compute statistics
|
|
6434
|
+
if (type === dist_esm.Enums.WorkerTypes.COMPUTE_STATISTICS) {
|
|
6435
|
+
return;
|
|
6436
|
+
}
|
|
6437
|
+
normalizedKey = getNormalizedTaskKey(type);
|
|
6438
|
+
if (progress === 0) {
|
|
6439
|
+
// Check if we're already tracking a task of this type
|
|
6440
|
+
if (!activeWorkerTasks.has(normalizedKey)) {
|
|
6441
|
+
const progressPromise = new Promise((resolve, reject) => {
|
|
6442
|
+
try {
|
|
6443
|
+
activeWorkerTasks.set(normalizedKey, {
|
|
6444
|
+
resolve,
|
|
6445
|
+
reject,
|
|
6446
|
+
originalId: id,
|
|
6447
|
+
type
|
|
6448
|
+
});
|
|
6449
|
+
} catch (error) {
|
|
6450
|
+
console.error(`Error setting active worker task for type "${type}":`, error);
|
|
6451
|
+
reject(error);
|
|
6452
|
+
throw error; // Re-throw to trigger outer catch and cleanup
|
|
6453
|
+
}
|
|
6454
|
+
});
|
|
6455
|
+
try {
|
|
6456
|
+
uiNotificationService.show({
|
|
6457
|
+
id: normalizedKey,
|
|
6458
|
+
// Use the normalized key as ID for better deduplication
|
|
6459
|
+
title: `${type}`,
|
|
6460
|
+
message: `Computing...`,
|
|
6461
|
+
autoClose: false,
|
|
6462
|
+
allowDuplicates: false,
|
|
6463
|
+
deduplicationInterval: 60000,
|
|
6464
|
+
// 60 seconds - prevent frequent notifications of same type
|
|
6465
|
+
promise: progressPromise,
|
|
6466
|
+
promiseMessages: {
|
|
6467
|
+
loading: `Computing...`,
|
|
6468
|
+
success: `Completed successfully`,
|
|
6469
|
+
error: 'Web Worker failed'
|
|
6470
|
+
}
|
|
6471
|
+
});
|
|
6472
|
+
} catch (error) {
|
|
6473
|
+
console.error(`Error showing web worker notification for type "${type}":`, error);
|
|
6474
|
+
shouldCleanup = true;
|
|
6475
|
+
throw error;
|
|
6476
|
+
}
|
|
6477
|
+
} else {
|
|
6478
|
+
// Already tracking this type of task, just let it continue
|
|
6479
|
+
console.debug(`Already tracking a "${type}" task, skipping duplicate notification`);
|
|
6480
|
+
}
|
|
6481
|
+
}
|
|
6482
|
+
// Task completed
|
|
6483
|
+
else if (progress === 100) {
|
|
6484
|
+
// Check if we have this task type in our tracking map
|
|
6485
|
+
const taskData = activeWorkerTasks.get(normalizedKey);
|
|
6486
|
+
if (taskData) {
|
|
6487
|
+
// Resolve the promise to update the notification
|
|
6488
|
+
const {
|
|
6489
|
+
resolve
|
|
6490
|
+
} = taskData;
|
|
6491
|
+
resolve({
|
|
6492
|
+
progress,
|
|
6493
|
+
type
|
|
6494
|
+
});
|
|
6495
|
+
|
|
6496
|
+
// Mark for cleanup
|
|
6497
|
+
shouldCleanup = true;
|
|
6498
|
+
console.debug(`Worker task "${type}" completed successfully`);
|
|
6499
|
+
}
|
|
6500
|
+
}
|
|
6501
|
+
} catch (error) {
|
|
6502
|
+
console.error(`Error in web worker progress handler for type "${detail?.type}":`, error);
|
|
6503
|
+
shouldCleanup = true;
|
|
6504
|
+
} finally {
|
|
6505
|
+
// Clean up if needed
|
|
6506
|
+
if (shouldCleanup && normalizedKey) {
|
|
6507
|
+
try {
|
|
6508
|
+
activeWorkerTasks.delete(normalizedKey);
|
|
6509
|
+
} catch (cleanupError) {
|
|
6510
|
+
console.error(`Error cleaning up active worker task for type "${detail?.type}":`, cleanupError);
|
|
6511
|
+
}
|
|
6512
|
+
}
|
|
6513
|
+
}
|
|
6514
|
+
});
|
|
6515
|
+
}
|
|
6400
6516
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/init.tsx
|
|
6401
6517
|
|
|
6402
6518
|
|
|
@@ -6421,6 +6537,7 @@ function setupSegmentationModifiedHandler({
|
|
|
6421
6537
|
|
|
6422
6538
|
|
|
6423
6539
|
|
|
6540
|
+
|
|
6424
6541
|
|
|
6425
6542
|
|
|
6426
6543
|
const {
|
|
@@ -6647,10 +6764,16 @@ async function init({
|
|
|
6647
6764
|
esm.eventTarget.addEventListenerDebounced(esm.EVENTS.ERROR_EVENT, ({
|
|
6648
6765
|
detail
|
|
6649
6766
|
}) => {
|
|
6767
|
+
// Create a stable ID for deduplication based on error type and message
|
|
6768
|
+
const errorId = `cornerstone-error-${detail.type}-${detail.message.substring(0, 50)}`;
|
|
6650
6769
|
uiNotificationService.show({
|
|
6651
6770
|
title: detail.type,
|
|
6652
6771
|
message: detail.message,
|
|
6653
|
-
type: 'error'
|
|
6772
|
+
type: 'error',
|
|
6773
|
+
id: errorId,
|
|
6774
|
+
allowDuplicates: false,
|
|
6775
|
+
// Prevent duplicate error notifications
|
|
6776
|
+
deduplicationInterval: 30000 // 30 seconds deduplication window
|
|
6654
6777
|
});
|
|
6655
6778
|
}, 100);
|
|
6656
6779
|
|
|
@@ -6661,39 +6784,6 @@ async function init({
|
|
|
6661
6784
|
unsubscriptions
|
|
6662
6785
|
};
|
|
6663
6786
|
}
|
|
6664
|
-
function initializeWebWorkerProgressHandler(uiNotificationService) {
|
|
6665
|
-
const activeToasts = new Map();
|
|
6666
|
-
|
|
6667
|
-
// eventTarget.addEventListener(EVENTS.WEB_WORKER_PROGRESS, ({ detail }) => {
|
|
6668
|
-
// const { progress, type, id } = detail;
|
|
6669
|
-
|
|
6670
|
-
// const cacheKey = `${type}-${id}`;
|
|
6671
|
-
// if (progress === 0 && !activeToasts.has(cacheKey)) {
|
|
6672
|
-
// const progressPromise = new Promise((resolve, reject) => {
|
|
6673
|
-
// activeToasts.set(cacheKey, { resolve, reject });
|
|
6674
|
-
// });
|
|
6675
|
-
|
|
6676
|
-
// uiNotificationService.show({
|
|
6677
|
-
// id: cacheKey,
|
|
6678
|
-
// title: `${type}`,
|
|
6679
|
-
// message: `${type}: ${progress}%`,
|
|
6680
|
-
// autoClose: false,
|
|
6681
|
-
// promise: progressPromise,
|
|
6682
|
-
// promiseMessages: {
|
|
6683
|
-
// loading: `Computing...`,
|
|
6684
|
-
// success: `Completed successfully`,
|
|
6685
|
-
// error: 'Web Worker failed',
|
|
6686
|
-
// },
|
|
6687
|
-
// });
|
|
6688
|
-
// } else {
|
|
6689
|
-
// if (progress === 100) {
|
|
6690
|
-
// const { resolve } = activeToasts.get(cacheKey);
|
|
6691
|
-
// resolve({ progress, type });
|
|
6692
|
-
// activeToasts.delete(cacheKey);
|
|
6693
|
-
// }
|
|
6694
|
-
// }
|
|
6695
|
-
// });
|
|
6696
|
-
}
|
|
6697
6787
|
|
|
6698
6788
|
/**
|
|
6699
6789
|
* Creates a wrapped image load strategy with metadata handling
|
|
@@ -8627,15 +8717,13 @@ const CornerstoneViewportDownloadForm = ({
|
|
|
8627
8717
|
} = downloadViewport;
|
|
8628
8718
|
const toolGroup = dist_esm.ToolGroupManager.getToolGroupForViewport(activeViewportId, renderingEngineId);
|
|
8629
8719
|
toolGroup.addViewport(downloadViewportId, renderingEngineId);
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
console.debug('Error enabling tool:', error);
|
|
8636
|
-
}
|
|
8720
|
+
const toolInstances = toolGroup.getToolInstances();
|
|
8721
|
+
const toolInstancesArray = Object.values(toolInstances);
|
|
8722
|
+
toolInstancesArray.forEach(toolInstance => {
|
|
8723
|
+
if (show && toolInstance.constructor.isAnnotation !== false) {
|
|
8724
|
+
toolGroup.setToolEnabled(toolInstance.toolName);
|
|
8637
8725
|
} else {
|
|
8638
|
-
toolGroup.setToolDisabled(toolName);
|
|
8726
|
+
toolGroup.setToolDisabled(toolInstance.toolName);
|
|
8639
8727
|
}
|
|
8640
8728
|
});
|
|
8641
8729
|
};
|
|
@@ -11198,7 +11286,7 @@ const fourUp = {
|
|
|
11198
11286
|
customViewportProps: {
|
|
11199
11287
|
hideOverlays: true
|
|
11200
11288
|
},
|
|
11201
|
-
syncGroups: [
|
|
11289
|
+
syncGroups: [HYDRATE_SEG_SYNC_GROUP]
|
|
11202
11290
|
},
|
|
11203
11291
|
displaySets: [{
|
|
11204
11292
|
id: 'activeDisplaySet',
|
|
@@ -11424,7 +11512,7 @@ const mprAnd3DVolumeViewport = {
|
|
|
11424
11512
|
customViewportProps: {
|
|
11425
11513
|
hideOverlays: true
|
|
11426
11514
|
},
|
|
11427
|
-
syncGroups: [
|
|
11515
|
+
syncGroups: [HYDRATE_SEG_SYNC_GROUP]
|
|
11428
11516
|
},
|
|
11429
11517
|
displaySets: [{
|
|
11430
11518
|
id: 'activeDisplaySet',
|
|
@@ -11510,7 +11598,7 @@ const only3D = {
|
|
|
11510
11598
|
orientation: 'coronal',
|
|
11511
11599
|
customViewportProps: {
|
|
11512
11600
|
hideOverlays: true,
|
|
11513
|
-
syncGroups: [
|
|
11601
|
+
syncGroups: [HYDRATE_SEG_SYNC_GROUP]
|
|
11514
11602
|
}
|
|
11515
11603
|
},
|
|
11516
11604
|
displaySets: [{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
1
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[908],{
|
|
2
2
|
|
|
3
|
-
/***/
|
|
3
|
+
/***/ 93468:
|
|
4
4
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
@@ -3358,6 +3358,25 @@ function copyStudyTags(src) {
|
|
|
3358
3358
|
|
|
3359
3359
|
|
|
3360
3360
|
|
|
3361
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/adapters/helpers/copySeriesTags.js
|
|
3362
|
+
const seriesTags = ["SeriesInstanceUID", "SeriesNumber", "SeriesDescription", "Modality", "SeriesDate", "SeriesTime"];
|
|
3363
|
+
function copySeriesTags(src) {
|
|
3364
|
+
const study = {
|
|
3365
|
+
_meta: src._meta,
|
|
3366
|
+
_vrMap: src._vrMap
|
|
3367
|
+
};
|
|
3368
|
+
for (const tagKey of seriesTags) {
|
|
3369
|
+
const value = src[tagKey];
|
|
3370
|
+
if (value === undefined) {
|
|
3371
|
+
continue;
|
|
3372
|
+
}
|
|
3373
|
+
study[tagKey] = value;
|
|
3374
|
+
}
|
|
3375
|
+
return study;
|
|
3376
|
+
}
|
|
3377
|
+
|
|
3378
|
+
|
|
3379
|
+
|
|
3361
3380
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/adapters/Cornerstone3D/CodingScheme.js
|
|
3362
3381
|
// This is a custom coding scheme defined to store some annotations from Cornerstone.
|
|
3363
3382
|
// Note: CodeMeaning is VR type LO, which means we only actually support 64 characters
|
|
@@ -3384,6 +3403,7 @@ const CodingScheme = {
|
|
|
3384
3403
|
|
|
3385
3404
|
|
|
3386
3405
|
|
|
3406
|
+
|
|
3387
3407
|
var _MeasurementReport;
|
|
3388
3408
|
const {
|
|
3389
3409
|
TID1500: MeasurementReport_TID1500,
|
|
@@ -3661,9 +3681,12 @@ _MeasurementReport.codeValueMatch = (group, code, oldCode) => {
|
|
|
3661
3681
|
return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue;
|
|
3662
3682
|
};
|
|
3663
3683
|
_MeasurementReport.generateDerivationSourceDataset = instance => {
|
|
3664
|
-
|
|
3665
|
-
const
|
|
3666
|
-
return
|
|
3684
|
+
const studyTags = copyStudyTags(instance);
|
|
3685
|
+
const seriesTags = copySeriesTags(instance);
|
|
3686
|
+
return {
|
|
3687
|
+
...studyTags,
|
|
3688
|
+
...seriesTags
|
|
3689
|
+
};
|
|
3667
3690
|
};
|
|
3668
3691
|
|
|
3669
3692
|
|
|
@@ -6288,6 +6311,7 @@ function downloadDICOMData(bufferOrDataset, filename) {
|
|
|
6288
6311
|
|
|
6289
6312
|
|
|
6290
6313
|
|
|
6314
|
+
|
|
6291
6315
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js
|
|
6292
6316
|
|
|
6293
6317
|
|
|
@@ -765,8 +765,8 @@ function getCustomizationModule() {
|
|
|
765
765
|
/* harmony default export */ const maxNumImageFrames = ((study, extraData) => Math.max(...(extraData?.displaySets?.map?.(ds => ds.numImageFrames ?? 0) || [0])));
|
|
766
766
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
767
767
|
var react = __webpack_require__(86326);
|
|
768
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
769
|
-
var src = __webpack_require__(
|
|
768
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 135 modules
|
|
769
|
+
var src = __webpack_require__(78572);
|
|
770
770
|
;// CONCATENATED MODULE: ../../../extensions/test-extension/src/getPanelModule.tsx
|
|
771
771
|
|
|
772
772
|
|
|
@@ -453,8 +453,8 @@ const toolbarButtons = [
|
|
|
453
453
|
tooltip: 'Show Reference Lines',
|
|
454
454
|
commands: 'toggleEnabledDisabledToolbar',
|
|
455
455
|
listeners: {
|
|
456
|
-
[core_src/* ViewportGridService */.sI.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: callbacks('
|
|
457
|
-
[core_src/* ViewportGridService */.sI.EVENTS.VIEWPORTS_READY]: callbacks('
|
|
456
|
+
[core_src/* ViewportGridService */.sI.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: callbacks('ReferenceLines'),
|
|
457
|
+
[core_src/* ViewportGridService */.sI.EVENTS.VIEWPORTS_READY]: callbacks('ReferenceLines')
|
|
458
458
|
},
|
|
459
459
|
evaluate: ['evaluate.cornerstoneTool.toggle', {
|
|
460
460
|
name: 'evaluate.viewport.supported',
|
|
@@ -19,8 +19,8 @@ var prop_types = __webpack_require__(97598);
|
|
|
19
19
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
20
20
|
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 1053 modules
|
|
21
21
|
var src = __webpack_require__(2836);
|
|
22
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
23
|
-
var cornerstone_src = __webpack_require__(
|
|
22
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 135 modules
|
|
23
|
+
var cornerstone_src = __webpack_require__(78572);
|
|
24
24
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
25
25
|
const RESPONSE = {
|
|
26
26
|
NO_NEVER: -1,
|
|
@@ -897,6 +897,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
897
897
|
toolGroupId: this.toolGroupId,
|
|
898
898
|
toolName: this.getToolName(),
|
|
899
899
|
viewportId: enabledElement.viewport.id,
|
|
900
|
+
annotationUID: annotation.annotationUID,
|
|
900
901
|
};
|
|
901
902
|
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
902
903
|
if (!options.visibility) {
|
|
@@ -1785,6 +1786,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
|
|
|
1785
1786
|
return;
|
|
1786
1787
|
}
|
|
1787
1788
|
const { FrameOfReferenceUID, referencedImageId, viewPlaneNormal, instance, viewport, } = this.hydrateBase(RectangleROITool, enabledElement, points, options);
|
|
1789
|
+
const { toolInstance, ...serializableOptions } = options || {};
|
|
1788
1790
|
const annotation = {
|
|
1789
1791
|
annotationUID: options?.annotationUID || _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.uuidv4(),
|
|
1790
1792
|
data: {
|
|
@@ -1805,7 +1807,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
|
|
|
1805
1807
|
viewPlaneNormal,
|
|
1806
1808
|
FrameOfReferenceUID,
|
|
1807
1809
|
referencedImageId,
|
|
1808
|
-
...
|
|
1810
|
+
...serializableOptions,
|
|
1809
1811
|
},
|
|
1810
1812
|
};
|
|
1811
1813
|
(0,_stateManagement__WEBPACK_IMPORTED_MODULE_4__/* .addAnnotation */ .lC)(annotation, viewport.element);
|