@ohif/app 3.9.0-beta.2 → 3.9.0-beta.21
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/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.772ce244eee25d9b7316.js} +50 -15
- package/dist/{121.bundle.a6063e0272df61cefccc.js → 121.bundle.b582314ec0024fdf2d15.js} +1 -0
- package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.3221590f5e6855086889.js} +318 -41
- package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.d3a631d79ee8952e3c60.js} +388 -55
- package/dist/{188.bundle.b31173cb165eb21c3ec6.js → 243.bundle.866dc990219240efa81f.js} +8 -8
- package/dist/{325.bundle.47f5b8a085837ee6b512.js → 325.bundle.d8bf863ddebb832dcaab.js} +10 -11
- package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
- package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
- package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.baa389d217c390b0e92b.js} +81 -10
- package/dist/{206.bundle.e98e6ba9bfd9f36dc508.js → 390.bundle.504391bda56219cc9ef9.js} +37 -26
- package/dist/{448.bundle.94a6da9fac68fc69f8c2.js → 448.bundle.67539d1552db51aaca85.js} +2 -2
- package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
- package/dist/{487.bundle.71a2893d94d214741e13.js → 487.bundle.3f0e64e16189f92fcebc.js} +2 -2
- package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.7d5003758fa3ffbb344b.js} +750 -247
- package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
- package/dist/{544.bundle.b005b8c8b9b08aaa3324.js → 544.bundle.4d1fb477b572f50f4220.js} +3 -3
- package/dist/{321.bundle.07e853e559665d6e15b6.js → 550.bundle.41e6a1eacc49db2358c5.js} +50 -19
- package/dist/{574.bundle.88b619217339b5e93d3e.js → 574.bundle.0bcd9d70f4b1eea48082.js} +35 -32
- package/dist/{41.bundle.faaf3b05d1083e3c8831.js → 682.bundle.066197792e6a0d01b669.js} +26 -6
- package/dist/{699.bundle.8210579412d62beafa91.js → 699.bundle.428f20dd60662f1e5edd.js} +32 -3
- package/dist/{669.bundle.84745782e36f25eb05bc.js → 721.bundle.d21827d733e8811e0b18.js} +73 -73
- package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
- package/dist/{724.bundle.519141a0c4d0d1a3192a.js → 776.bundle.981d8227b59f97f11dd8.js} +17 -12
- package/dist/{862.bundle.4a0bd82b803ba158018f.js → 862.bundle.7a102f04ef4d12686894.js} +1 -1
- package/dist/{889.bundle.9fbab4f0bbf643306879.js → 889.bundle.ed8937ba0c5455ed894d.js} +8 -8
- package/dist/{905.bundle.7e940707e10096970ca1.js → 905.bundle.b101088a20887c27945d.js} +2 -2
- package/dist/{907.bundle.f5aa0414d0f77e575a1f.js → 907.bundle.e8d22a858051cd255c9c.js} +2 -2
- package/dist/{94.bundle.ecaaba845625d93bad6b.js → 94.bundle.b4f45b237188a8550a35.js} +38 -8
- package/dist/{961.bundle.ff7da8afd7d8495d0bbe.js → 961.bundle.b86b71c712fa83e526d3.js} +2 -2
- package/dist/{7.bundle.3a17fe8266b2149334a6.js → 981.bundle.7b03f5a200c7dbcbaf1d.js} +10 -9
- package/dist/{594.bundle.01b124740b2b3f8a6d20.js → 989.bundle.e81da55a6954a12e5ea1.js} +5 -5
- package/dist/{633.bundle.ff1a1d0bdb0d1ef143af.js → 998.bundle.37015da90e590043cda0.js} +7 -7
- package/dist/app-config.js +5 -1
- package/dist/{app.bundle.c53b289734d5f7178a39.js → app.bundle.a6bfec031243c17f92e9.js} +686 -555
- package/dist/app.bundle.css +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/google.js +1 -0
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.b0392069f29e128b4efa.js} +3 -3
- package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.f823d84fae4ce6865f9a.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +20 -19
- /package/dist/{321.css → 550.css} +0 -0
- /package/dist/{783.bundle.86c38ee55f4d01b111ca.js → 783.bundle.c5b7e2433ecb9d8e2541.js} +0 -0
- /package/dist/{633.css → 998.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[243],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 5243:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -22,8 +22,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
22
22
|
|
|
23
23
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
24
24
|
var react = __webpack_require__(41766);
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var src = __webpack_require__(
|
|
25
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
26
|
+
var src = __webpack_require__(8633);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
28
28
|
var dcmjs_es = __webpack_require__(31426);
|
|
29
29
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/loadRTStruct.js
|
|
@@ -252,12 +252,12 @@ function _setROIContourRTROIObservations(ROIContourData, RTROIObservationsSequen
|
|
|
252
252
|
function _toArray(objOrArray) {
|
|
253
253
|
return Array.isArray(objOrArray) ? objOrArray : [objOrArray];
|
|
254
254
|
}
|
|
255
|
-
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/getSopClassHandlerModule.
|
|
255
|
+
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/getSopClassHandlerModule.ts
|
|
256
256
|
|
|
257
257
|
|
|
258
258
|
|
|
259
259
|
const sopClassUids = ['1.2.840.10008.5.1.4.1.1.481.3'];
|
|
260
|
-
|
|
260
|
+
const loadPromises = {};
|
|
261
261
|
function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
|
|
262
262
|
const instance = instances[0];
|
|
263
263
|
const {
|
|
@@ -313,9 +313,9 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
313
313
|
displaySet.referencedSeriesInstanceUID = referencedSeries.SeriesInstanceUID;
|
|
314
314
|
displaySet.getReferenceDisplaySet = () => {
|
|
315
315
|
const {
|
|
316
|
-
|
|
316
|
+
displaySetService
|
|
317
317
|
} = servicesManager.services;
|
|
318
|
-
const referencedDisplaySets =
|
|
318
|
+
const referencedDisplaySets = displaySetService.getDisplaySetsForSeries(displaySet.referencedSeriesInstanceUID);
|
|
319
319
|
if (!referencedDisplaySets || referencedDisplaySets.length === 0) {
|
|
320
320
|
throw new Error('Referenced DisplaySet is missing for the RT');
|
|
321
321
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[325,481],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 84222:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
|
|
@@ -603,7 +603,7 @@ function _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
|
|
|
603
603
|
});
|
|
604
604
|
}
|
|
605
605
|
/* harmony default export */ const TrackedMeasurementsContext_promptTrackNewSeries = (promptTrackNewSeries);
|
|
606
|
-
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.
|
|
606
|
+
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.ts
|
|
607
607
|
|
|
608
608
|
const promptTrackNewStudy_RESPONSE = {
|
|
609
609
|
NO_NEVER: -1,
|
|
@@ -618,9 +618,8 @@ function promptTrackNewStudy({
|
|
|
618
618
|
extensionManager
|
|
619
619
|
}, ctx, evt) {
|
|
620
620
|
const {
|
|
621
|
-
|
|
621
|
+
uiViewportDialogService
|
|
622
622
|
} = servicesManager.services;
|
|
623
|
-
const appConfig = extensionManager._appConfig;
|
|
624
623
|
// When the state change happens after a promise, the state machine sends the retult in evt.data;
|
|
625
624
|
// In case of direct transition to the state, the state machine sends the data in evt;
|
|
626
625
|
const {
|
|
@@ -629,9 +628,9 @@ function promptTrackNewStudy({
|
|
|
629
628
|
SeriesInstanceUID
|
|
630
629
|
} = evt.data || evt;
|
|
631
630
|
return new Promise(async function (resolve, reject) {
|
|
632
|
-
let promptResult =
|
|
631
|
+
let promptResult = await promptTrackNewStudy_askTrackMeasurements(uiViewportDialogService, viewportId);
|
|
633
632
|
if (promptResult === promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES) {
|
|
634
|
-
promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(
|
|
633
|
+
promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(uiViewportDialogService, viewportId) : promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES;
|
|
635
634
|
}
|
|
636
635
|
resolve({
|
|
637
636
|
userResponse: promptResult,
|
|
@@ -716,7 +715,7 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
|
|
|
716
715
|
}
|
|
717
716
|
/* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
|
|
718
717
|
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
|
|
719
|
-
var default_src = __webpack_require__(
|
|
718
|
+
var default_src = __webpack_require__(47390);
|
|
720
719
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
|
|
721
720
|
const MIN_SR_SERIES_NUMBER = 4700;
|
|
722
721
|
function getNextSRSeriesNumber(displaySetService) {
|
|
@@ -806,7 +805,7 @@ async function promptSaveReport({
|
|
|
806
805
|
}
|
|
807
806
|
/* harmony default export */ const TrackedMeasurementsContext_promptSaveReport = (promptSaveReport);
|
|
808
807
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/index.tsx + 14 modules
|
|
809
|
-
var cornerstone_dicom_sr_src = __webpack_require__(
|
|
808
|
+
var cornerstone_dicom_sr_src = __webpack_require__(14721);
|
|
810
809
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js
|
|
811
810
|
|
|
812
811
|
|
|
@@ -1239,7 +1238,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1239
1238
|
});
|
|
1240
1239
|
|
|
1241
1240
|
// EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx + 13 modules
|
|
1242
|
-
var getContextModule = __webpack_require__(
|
|
1241
|
+
var getContextModule = __webpack_require__(84222);
|
|
1243
1242
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
1244
1243
|
var react = __webpack_require__(41766);
|
|
1245
1244
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
@@ -1249,8 +1248,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
1249
1248
|
var dist = __webpack_require__(37396);
|
|
1250
1249
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1251
1250
|
var es = __webpack_require__(80619);
|
|
1252
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
1253
|
-
var src = __webpack_require__(
|
|
1251
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
1252
|
+
var src = __webpack_require__(8633);
|
|
1254
1253
|
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
1255
1254
|
var ui_src = __webpack_require__(5085);
|
|
1256
1255
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
|
|
@@ -796,6 +796,7 @@ var MeasurementReport$1 = /*#__PURE__*/function () {
|
|
|
796
796
|
// Merge the derived dataset with the content from the Measurement Report
|
|
797
797
|
report.dataset = Object.assign(report.dataset, contentItem);
|
|
798
798
|
report.dataset._meta = _meta;
|
|
799
|
+
report.dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
799
800
|
return report;
|
|
800
801
|
}
|
|
801
802
|
|
|
@@ -2408,6 +2409,7 @@ function fillSegmentation$1(segmentation, inputLabelmaps3D) {
|
|
|
2408
2409
|
Value: ["1.2.840.10008.1.2.5"],
|
|
2409
2410
|
vr: "UI"
|
|
2410
2411
|
};
|
|
2412
|
+
segmentation.dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
2411
2413
|
segmentation.dataset._vrMap.PixelData = "OB";
|
|
2412
2414
|
segmentation.dataset.PixelData = rleEncodedFrames;
|
|
2413
2415
|
} else {
|
|
@@ -2441,6 +2443,7 @@ function _createSegFromImages(images, isMultiframe, options) {
|
|
|
2441
2443
|
var dicomData = DicomMessage.readFile(arrayBuffer);
|
|
2442
2444
|
var dataset = DicomMetaDictionary$2.naturalizeDataset(dicomData.dict);
|
|
2443
2445
|
dataset._meta = DicomMetaDictionary$2.namifyDataset(dicomData.meta);
|
|
2446
|
+
dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
2444
2447
|
datasets.push(dataset);
|
|
2445
2448
|
} else {
|
|
2446
2449
|
for (var i = 0; i < images.length; i++) {
|
|
@@ -2449,6 +2452,7 @@ function _createSegFromImages(images, isMultiframe, options) {
|
|
|
2449
2452
|
var _dicomData = DicomMessage.readFile(_arrayBuffer);
|
|
2450
2453
|
var _dataset = DicomMetaDictionary$2.naturalizeDataset(_dicomData.dict);
|
|
2451
2454
|
_dataset._meta = DicomMetaDictionary$2.namifyDataset(_dicomData.meta);
|
|
2455
|
+
_dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
2452
2456
|
datasets.push(_dataset);
|
|
2453
2457
|
}
|
|
2454
2458
|
}
|
|
@@ -3810,6 +3814,7 @@ var MeasurementReport = /** @class */ (function () {
|
|
|
3810
3814
|
// Merge the derived dataset with the content from the Measurement Report
|
|
3811
3815
|
report.dataset = Object.assign(report.dataset, contentItem);
|
|
3812
3816
|
report.dataset._meta = _meta;
|
|
3817
|
+
report.SpecificCharacterSet = "ISO_IR 192";
|
|
3813
3818
|
return report;
|
|
3814
3819
|
};
|
|
3815
3820
|
/**
|
|
@@ -5327,6 +5332,7 @@ function generateRTSSFromSegmentations(segmentations, metadataProvider, DicomMet
|
|
|
5327
5332
|
}
|
|
5328
5333
|
};
|
|
5329
5334
|
dataset._meta = _meta;
|
|
5335
|
+
dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
5330
5336
|
return dataset;
|
|
5331
5337
|
}
|
|
5332
5338
|
/**
|
|
@@ -5378,6 +5384,7 @@ function generateRTSSFromAnnotations(annotations, metadataProvider, DicomMetadat
|
|
|
5378
5384
|
}
|
|
5379
5385
|
};
|
|
5380
5386
|
dataset._meta = _meta;
|
|
5387
|
+
dataset.SpecificCharacterSet = "ISO_IR 192";
|
|
5381
5388
|
return dataset;
|
|
5382
5389
|
}
|
|
5383
5390
|
// /**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[367],{
|
|
3
3
|
|
|
4
4
|
/***/ 52454:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -293,6 +293,102 @@ class AnnotationFrameRange {
|
|
|
293
293
|
}
|
|
294
294
|
|
|
295
295
|
|
|
296
|
+
/***/ }),
|
|
297
|
+
|
|
298
|
+
/***/ 25781:
|
|
299
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
300
|
+
|
|
301
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
302
|
+
/* harmony export */ i: () => (/* binding */ annotationHydration),
|
|
303
|
+
/* harmony export */ x: () => (/* binding */ getClosestImageIdForStackViewport)
|
|
304
|
+
/* harmony export */ });
|
|
305
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
306
|
+
/* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95778);
|
|
307
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44753);
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
function annotationHydration(viewport, toolName, worldPoints, options) {
|
|
312
|
+
const viewReference = viewport.getViewReference();
|
|
313
|
+
const { viewPlaneNormal, FrameOfReferenceUID } = viewReference;
|
|
314
|
+
const annotation = {
|
|
315
|
+
annotationUID: options?.annotationUID || _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.uuidv4(),
|
|
316
|
+
data: {
|
|
317
|
+
handles: {
|
|
318
|
+
points: worldPoints,
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
highlighted: false,
|
|
322
|
+
autoGenerated: false,
|
|
323
|
+
invalidated: false,
|
|
324
|
+
isLocked: false,
|
|
325
|
+
isVisible: true,
|
|
326
|
+
metadata: {
|
|
327
|
+
toolName,
|
|
328
|
+
viewPlaneNormal,
|
|
329
|
+
FrameOfReferenceUID,
|
|
330
|
+
referencedImageId: getReferencedImageId(viewport, worldPoints[0], viewPlaneNormal),
|
|
331
|
+
...options,
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
(0,_stateManagement__WEBPACK_IMPORTED_MODULE_1__/* .addAnnotation */ .lC)(annotation, viewport.element);
|
|
335
|
+
return annotation;
|
|
336
|
+
}
|
|
337
|
+
function getReferencedImageId(viewport, worldPos, viewPlaneNormal) {
|
|
338
|
+
let referencedImageId;
|
|
339
|
+
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.StackViewport) {
|
|
340
|
+
referencedImageId = getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal);
|
|
341
|
+
}
|
|
342
|
+
else if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
|
|
343
|
+
const targetId = getTargetId(viewport);
|
|
344
|
+
const volumeId = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getVolumeId(targetId);
|
|
345
|
+
const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(volumeId);
|
|
346
|
+
referencedImageId = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
throw new Error('getReferencedImageId: viewport must be a StackViewport or BaseVolumeViewport');
|
|
350
|
+
}
|
|
351
|
+
return referencedImageId;
|
|
352
|
+
}
|
|
353
|
+
function getTargetId(viewport) {
|
|
354
|
+
const targetId = viewport.getReferenceId?.();
|
|
355
|
+
if (targetId) {
|
|
356
|
+
return targetId;
|
|
357
|
+
}
|
|
358
|
+
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
|
|
359
|
+
return `volumeId:${getTargetVolumeId(viewport)}`;
|
|
360
|
+
}
|
|
361
|
+
throw new Error('getTargetId: viewport must have a getTargetId method');
|
|
362
|
+
}
|
|
363
|
+
function getTargetVolumeId(viewport) {
|
|
364
|
+
const actorEntries = viewport.getActors();
|
|
365
|
+
if (!actorEntries) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
369
|
+
}
|
|
370
|
+
function getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal) {
|
|
371
|
+
const imageIds = viewport.getImageIds();
|
|
372
|
+
if (!imageIds || !imageIds.length) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
const distanceImagePairs = imageIds.map((imageId) => {
|
|
376
|
+
const { imagePositionPatient } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('imagePlaneModule', imageId);
|
|
377
|
+
const distance = calculateDistanceToImage(worldPos, imagePositionPatient, viewPlaneNormal);
|
|
378
|
+
return { imageId, distance };
|
|
379
|
+
});
|
|
380
|
+
distanceImagePairs.sort((a, b) => a.distance - b.distance);
|
|
381
|
+
return distanceImagePairs[0].imageId;
|
|
382
|
+
}
|
|
383
|
+
function calculateDistanceToImage(worldPos, ImagePositionPatient, viewPlaneNormal) {
|
|
384
|
+
const dir = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.create */ .eR.create();
|
|
385
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.sub */ .eR.sub(dir, worldPos, ImagePositionPatient);
|
|
386
|
+
const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.dot */ .eR.dot(dir, viewPlaneNormal);
|
|
387
|
+
return Math.abs(dot);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
296
392
|
/***/ }),
|
|
297
393
|
|
|
298
394
|
/***/ 42290:
|
|
@@ -2214,6 +2310,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
2214
2310
|
Calculator: () => (/* reexport */ basic_Calculator)
|
|
2215
2311
|
});
|
|
2216
2312
|
|
|
2313
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
|
|
2314
|
+
var esm = __webpack_require__(92136);
|
|
2217
2315
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/Calculator.js
|
|
2218
2316
|
class Calculator {
|
|
2219
2317
|
}
|
|
@@ -2221,55 +2319,73 @@ class Calculator {
|
|
|
2221
2319
|
|
|
2222
2320
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/BasicStatsCalculator.js
|
|
2223
2321
|
|
|
2322
|
+
|
|
2323
|
+
const { PointsManager } = esm.utilities;
|
|
2224
2324
|
class BasicStatsCalculator extends basic_Calculator {
|
|
2225
2325
|
static { this.max = [-Infinity]; }
|
|
2326
|
+
static { this.min = [Infinity]; }
|
|
2226
2327
|
static { this.sum = [0]; }
|
|
2227
|
-
static { this.sumSquares = [0]; }
|
|
2228
|
-
static { this.squaredDiffSum = [0]; }
|
|
2229
2328
|
static { this.count = 0; }
|
|
2230
|
-
static { this.
|
|
2329
|
+
static { this.runMean = [0]; }
|
|
2330
|
+
static { this.m2 = [0]; }
|
|
2331
|
+
static { this.pointsInShape = PointsManager.create3(1024); }
|
|
2332
|
+
static statsInit(options) {
|
|
2333
|
+
if (options.noPointsCollection) {
|
|
2334
|
+
BasicStatsCalculator.pointsInShape = null;
|
|
2335
|
+
}
|
|
2336
|
+
}
|
|
2337
|
+
static { this.statsCallback = ({ value: newValue, pointLPS = null }) => {
|
|
2231
2338
|
if (Array.isArray(newValue) &&
|
|
2232
2339
|
newValue.length > 1 &&
|
|
2233
2340
|
this.max.length === 1) {
|
|
2234
2341
|
this.max.push(this.max[0], this.max[0]);
|
|
2342
|
+
this.min.push(this.min[0], this.min[0]);
|
|
2235
2343
|
this.sum.push(this.sum[0], this.sum[0]);
|
|
2236
|
-
this.
|
|
2237
|
-
this.
|
|
2344
|
+
this.runMean.push(0, 0);
|
|
2345
|
+
this.m2.push(this.m2[0], this.m2[0]);
|
|
2238
2346
|
}
|
|
2347
|
+
this.pointsInShape?.push(pointLPS);
|
|
2239
2348
|
const newArray = Array.isArray(newValue) ? newValue : [newValue];
|
|
2240
2349
|
this.count += 1;
|
|
2241
|
-
this.max.
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2350
|
+
this.max.map((it, idx) => {
|
|
2351
|
+
const value = newArray[idx];
|
|
2352
|
+
const delta = value - this.runMean[idx];
|
|
2353
|
+
this.sum[idx] += value;
|
|
2354
|
+
this.runMean[idx] += delta / this.count;
|
|
2355
|
+
const delta2 = value - this.runMean[idx];
|
|
2356
|
+
this.m2[idx] += delta * delta2;
|
|
2357
|
+
this.min[idx] = Math.min(this.min[idx], value);
|
|
2358
|
+
this.max[idx] = Math.max(it, value);
|
|
2359
|
+
});
|
|
2245
2360
|
}; }
|
|
2246
|
-
static { this.getStatistics = () => {
|
|
2361
|
+
static { this.getStatistics = (options) => {
|
|
2247
2362
|
const mean = this.sum.map((sum) => sum / this.count);
|
|
2248
|
-
const stdDev = this.
|
|
2249
|
-
const
|
|
2363
|
+
const stdDev = this.m2.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
|
|
2364
|
+
const unit = options?.unit || null;
|
|
2250
2365
|
const named = {
|
|
2251
2366
|
max: {
|
|
2252
2367
|
name: 'max',
|
|
2253
2368
|
label: 'Max Pixel',
|
|
2254
2369
|
value: singleArrayAsNumber(this.max),
|
|
2255
|
-
unit
|
|
2370
|
+
unit,
|
|
2371
|
+
},
|
|
2372
|
+
min: {
|
|
2373
|
+
name: 'min',
|
|
2374
|
+
label: 'Min Pixel',
|
|
2375
|
+
value: singleArrayAsNumber(this.min),
|
|
2376
|
+
unit,
|
|
2256
2377
|
},
|
|
2257
2378
|
mean: {
|
|
2258
2379
|
name: 'mean',
|
|
2259
2380
|
label: 'Mean Pixel',
|
|
2260
2381
|
value: singleArrayAsNumber(mean),
|
|
2261
|
-
unit
|
|
2382
|
+
unit,
|
|
2262
2383
|
},
|
|
2263
2384
|
stdDev: {
|
|
2264
2385
|
name: 'stdDev',
|
|
2265
2386
|
label: 'Standard Deviation',
|
|
2266
2387
|
value: singleArrayAsNumber(stdDev),
|
|
2267
|
-
unit
|
|
2268
|
-
},
|
|
2269
|
-
stdDevWithSumSquare: {
|
|
2270
|
-
name: 'stdDevWithSumSquare',
|
|
2271
|
-
value: singleArrayAsNumber(stdDevWithSumSquare),
|
|
2272
|
-
unit: null,
|
|
2388
|
+
unit,
|
|
2273
2389
|
},
|
|
2274
2390
|
count: {
|
|
2275
2391
|
name: 'count',
|
|
@@ -2277,14 +2393,17 @@ class BasicStatsCalculator extends basic_Calculator {
|
|
|
2277
2393
|
value: this.count,
|
|
2278
2394
|
unit: null,
|
|
2279
2395
|
},
|
|
2396
|
+
pointsInShape: this.pointsInShape,
|
|
2280
2397
|
array: [],
|
|
2281
2398
|
};
|
|
2282
|
-
named.array.push(named.max, named.mean, named.stdDev, named.
|
|
2399
|
+
named.array.push(named.max, named.mean, named.stdDev, named.stdDev, named.count);
|
|
2283
2400
|
this.max = [-Infinity];
|
|
2401
|
+
this.min = [Infinity];
|
|
2284
2402
|
this.sum = [0];
|
|
2285
|
-
this.
|
|
2286
|
-
this.
|
|
2403
|
+
this.m2 = [0];
|
|
2404
|
+
this.runMean = [0];
|
|
2287
2405
|
this.count = 0;
|
|
2406
|
+
this.pointsInShape = PointsManager.create3(1024);
|
|
2288
2407
|
return named;
|
|
2289
2408
|
}; }
|
|
2290
2409
|
}
|
|
@@ -6968,14 +7087,145 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6968
7087
|
|
|
6969
7088
|
/***/ }),
|
|
6970
7089
|
|
|
6971
|
-
/***/
|
|
7090
|
+
/***/ 14149:
|
|
6972
7091
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6973
7092
|
|
|
7093
|
+
// ESM COMPAT FLAG
|
|
6974
7094
|
__webpack_require__.r(__webpack_exports__);
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
|
|
7095
|
+
|
|
7096
|
+
// EXPORTS
|
|
7097
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
7098
|
+
colorbar: () => (/* reexport */ colorbar),
|
|
7099
|
+
windowLevel: () => (/* reexport */ windowlevel_namespaceObject)
|
|
7100
|
+
});
|
|
7101
|
+
|
|
7102
|
+
// NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
|
|
7103
|
+
var windowlevel_namespaceObject = {};
|
|
7104
|
+
__webpack_require__.r(windowlevel_namespaceObject);
|
|
7105
|
+
__webpack_require__.d(windowlevel_namespaceObject, {
|
|
7106
|
+
calculateMinMaxMean: () => (calculateMinMaxMean),
|
|
7107
|
+
extractWindowLevelRegionToolData: () => (extractWindowLevelRegionToolData),
|
|
7108
|
+
getLuminanceFromRegion: () => (getLuminanceFromRegion)
|
|
7109
|
+
});
|
|
7110
|
+
|
|
7111
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/colorbar/index.js
|
|
7112
|
+
var colorbar = __webpack_require__(64690);
|
|
7113
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/getLuminanceFromRegion.js
|
|
7114
|
+
function getLuminanceFromRegion(imageData, x, y, width, height) {
|
|
7115
|
+
const luminance = [];
|
|
7116
|
+
let index = 0;
|
|
7117
|
+
const pixelData = imageData.scalarData;
|
|
7118
|
+
let spIndex, row, column;
|
|
7119
|
+
if (imageData.color) {
|
|
7120
|
+
for (row = 0; row < height; row++) {
|
|
7121
|
+
for (column = 0; column < width; column++) {
|
|
7122
|
+
spIndex = ((row + y) * imageData.columns + (column + x)) * 4;
|
|
7123
|
+
const red = pixelData[spIndex];
|
|
7124
|
+
const green = pixelData[spIndex + 1];
|
|
7125
|
+
const blue = pixelData[spIndex + 2];
|
|
7126
|
+
luminance[index++] = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
|
|
7127
|
+
}
|
|
7128
|
+
}
|
|
7129
|
+
}
|
|
7130
|
+
else {
|
|
7131
|
+
for (row = 0; row < height; row++) {
|
|
7132
|
+
for (column = 0; column < width; column++) {
|
|
7133
|
+
spIndex = (row + y) * imageData.columns + (column + x);
|
|
7134
|
+
luminance[index++] = pixelData[spIndex];
|
|
7135
|
+
}
|
|
7136
|
+
}
|
|
7137
|
+
}
|
|
7138
|
+
return luminance;
|
|
7139
|
+
}
|
|
7140
|
+
|
|
7141
|
+
|
|
7142
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/calculateMinMaxMean.js
|
|
7143
|
+
function calculateMinMaxMean(pixelLuminance, globalMin, globalMax) {
|
|
7144
|
+
const numPixels = pixelLuminance.length;
|
|
7145
|
+
let min = globalMax;
|
|
7146
|
+
let max = globalMin;
|
|
7147
|
+
let sum = 0;
|
|
7148
|
+
if (numPixels < 2) {
|
|
7149
|
+
return {
|
|
7150
|
+
min,
|
|
7151
|
+
max,
|
|
7152
|
+
mean: (globalMin + globalMax) / 2,
|
|
7153
|
+
};
|
|
7154
|
+
}
|
|
7155
|
+
for (let index = 0; index < numPixels; index++) {
|
|
7156
|
+
const spv = pixelLuminance[index];
|
|
7157
|
+
min = Math.min(min, spv);
|
|
7158
|
+
max = Math.max(max, spv);
|
|
7159
|
+
sum += spv;
|
|
7160
|
+
}
|
|
7161
|
+
return {
|
|
7162
|
+
min,
|
|
7163
|
+
max,
|
|
7164
|
+
mean: sum / numPixels,
|
|
7165
|
+
};
|
|
7166
|
+
}
|
|
7167
|
+
|
|
7168
|
+
|
|
7169
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
|
|
7170
|
+
var esm = __webpack_require__(92136);
|
|
7171
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.js
|
|
7172
|
+
|
|
7173
|
+
function extractWindowLevelRegionToolData(viewport) {
|
|
7174
|
+
if (viewport instanceof esm.VolumeViewport) {
|
|
7175
|
+
return extractImageDataVolume(viewport);
|
|
7176
|
+
}
|
|
7177
|
+
if (viewport instanceof esm.StackViewport) {
|
|
7178
|
+
return extractImageDataStack(viewport);
|
|
7179
|
+
}
|
|
7180
|
+
throw new Error('Viewport not supported');
|
|
7181
|
+
}
|
|
7182
|
+
function extractImageDataVolume(viewport) {
|
|
7183
|
+
const { scalarData, width, height } = esm.utilities.getCurrentVolumeViewportSlice(viewport);
|
|
7184
|
+
const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
|
|
7185
|
+
const volumeId = viewport.getVolumeId();
|
|
7186
|
+
const volume = esm.cache.getVolume(volumeId);
|
|
7187
|
+
const { metadata, cornerstoneImageMetaData } = volume;
|
|
7188
|
+
const { Rows: rows, Columns: columns } = metadata;
|
|
7189
|
+
const { color } = cornerstoneImageMetaData;
|
|
7190
|
+
return {
|
|
7191
|
+
scalarData,
|
|
7192
|
+
width,
|
|
7193
|
+
height,
|
|
7194
|
+
minPixelValue,
|
|
7195
|
+
maxPixelValue,
|
|
7196
|
+
rows,
|
|
7197
|
+
columns,
|
|
7198
|
+
color,
|
|
7199
|
+
};
|
|
7200
|
+
}
|
|
7201
|
+
function extractImageDataStack(viewport) {
|
|
7202
|
+
const imageData = viewport.getImageData();
|
|
7203
|
+
const { scalarData } = imageData;
|
|
7204
|
+
const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
|
|
7205
|
+
const width = imageData.dimensions[0];
|
|
7206
|
+
const height = imageData.dimensions[1];
|
|
7207
|
+
const { rows, columns, color } = viewport.getCornerstoneImage();
|
|
7208
|
+
return {
|
|
7209
|
+
scalarData,
|
|
7210
|
+
width,
|
|
7211
|
+
height,
|
|
7212
|
+
minPixelValue,
|
|
7213
|
+
maxPixelValue,
|
|
7214
|
+
rows,
|
|
7215
|
+
columns,
|
|
7216
|
+
color,
|
|
7217
|
+
};
|
|
7218
|
+
}
|
|
7219
|
+
|
|
7220
|
+
|
|
7221
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
|
|
7222
|
+
|
|
7223
|
+
|
|
7224
|
+
|
|
7225
|
+
|
|
7226
|
+
|
|
7227
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js
|
|
7228
|
+
|
|
6979
7229
|
|
|
6980
7230
|
|
|
6981
7231
|
|