@ohif/app 3.8.0-beta.5 → 3.8.0-beta.51
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/{12.bundle.1c0fcebb2e63f538b03b.js → 12.bundle.505ff8d33e3b91db6c4b.js} +9 -11
- package/dist/{125.bundle.253395f320b72180da63.js → 125.bundle.df666cb677e5a8982157.js} +4 -5
- package/dist/{663.bundle.68a67d3504dc24cccc1a.js → 170.bundle.3364dca0af95fde51ec6.js} +97 -89
- package/dist/{181.bundle.2ddc6f90740895a3949c.js → 181.bundle.aff453c348111303ceac.js} +107 -74
- package/dist/181.css +1 -1
- package/dist/{370.bundle.085badd6055e8feea84f.js → 185.bundle.892c8cbfeaaa14540821.js} +338 -209
- package/dist/{19.bundle.05ccf775cb70682dfcdf.js → 19.bundle.15ee26f7912d361e90b6.js} +127 -136
- package/dist/{99.bundle.51efd3493cd1de6bf63c.js → 199.bundle.a6fc393364e32b43a307.js} +215 -162
- package/dist/202.bundle.495cba6bbee744cf8f72.js +18239 -0
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 223.bundle.d4ac6ef2cfe47a9c4afc.js} +4422 -3671
- package/dist/{23.bundle.e008ad788170f2ed5569.js → 23.bundle.9d989522a6e4fdcb9c72.js} +1 -1
- package/dist/{250.bundle.8084960e3318cda37317.js → 250.bundle.577da106dd763c7bf9d0.js} +22 -27
- package/dist/{281.bundle.64640869327edc0d2cae.js → 281.bundle.849a5e58fb2c0a9012dc.js} +23 -25
- package/dist/{82.bundle.9e269153bafc15562988.js → 290.bundle.744ac8d04daee807702f.js} +1244 -695
- package/dist/{359.bundle.e2f5680a854894c32944.js → 359.bundle.59878f46325c60f5d603.js} +27 -30
- package/dist/{410.bundle.8bb12b01e1f838340950.js → 410.bundle.ac46ff16910fa2785bcc.js} +24 -28
- package/dist/{417.bundle.af0a207c29b109f84159.js → 417.bundle.5c66801d23d0e98c00e6.js} +2 -2
- package/dist/{451.bundle.9fd36f52ff69594f0669.js → 451.bundle.311cd3be9916e08450e9.js} +28 -41
- package/dist/{221.bundle.da7732c6f158b6f2b0d8.js → 466.bundle.43f3b29a2e1665bb9a65.js} +161 -151
- package/dist/{471.bundle.b3d77b83b1593c09a504.js → 471.bundle.eeb78105b59e688832a6.js} +31 -35
- package/dist/{788.bundle.428c065311327135d817.js → 483.bundle.3a3d61f78d5f1f8ad574.js} +131 -180
- package/dist/{506.bundle.c3d01c4b6cc01096ce9e.js → 506.bundle.97b3dd0fd0f4467dc21c.js} +13 -18
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 530.bundle.f904325ef4195d69ac0e.js} +10 -3
- package/dist/{613.bundle.de79995392c3fd2e9637.js → 613.bundle.72d635ed76fa208309f7.js} +76 -50
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 661.bundle.949c984fe2f9f753b65c.js} +1851 -8944
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 686.bundle.62c827fe4f0d054c164e.js} +4 -5
- package/dist/{687.bundle.763e03b2624b6cc03ad2.js → 687.bundle.a0c6c77073595745e58e.js} +19 -35
- package/dist/{342.bundle.22d2df5cf6d83b24acee.js → 738.bundle.bf1d2c76e385a091999d.js} +938 -571
- package/dist/{814.bundle.d45ba7f8b856fbd4e75d.js → 814.bundle.477d51b23a2fe79a5b96.js} +9 -11
- package/dist/{822.bundle.891f2e57b1b7bc2f4cb4.js → 822.bundle.8b745e28bc9eb9afbc61.js} +14 -16
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 831.bundle.127a3064e8844d6d2c82.js} +1 -368
- package/dist/{886.bundle.d5116d9b8ea4964b68a0.js → 886.bundle.94a4536167d0f8cae1ae.js} +19 -23
- package/dist/95.bundle.2236101be3cc36b322e8.js +8769 -0
- package/dist/{236.bundle.09d155c6f44b5a44e4bf.js → 965.bundle.5a31aeb079b7e72cec9c.js} +104 -126
- package/dist/app.bundle.css +11 -11
- package/dist/{app.bundle.671d2bb084d88c0cf3b7.js → app.bundle.ef06991fb9bbafce36ed.js} +185194 -61390
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
- package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- package/dist/202.bundle.d3490836f71e001dd30f.js +0 -6336
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/957.bundle.9ea4506963ef8b2d84ba.js +0 -30077
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{82.css → 290.css} +0 -0
- /package/dist/{221.css → 466.css} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[466,579],{
|
|
2
3
|
|
|
3
4
|
/***/ 9943:
|
|
4
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5
6
|
|
|
6
|
-
"use strict";
|
|
7
7
|
// ESM COMPAT FLAG
|
|
8
8
|
__webpack_require__.r(__webpack_exports__);
|
|
9
9
|
|
|
@@ -24,8 +24,10 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
24
24
|
var react = __webpack_require__(43001);
|
|
25
25
|
// EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
|
|
26
26
|
var src = __webpack_require__(71771);
|
|
27
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
28
|
-
var esm = __webpack_require__(
|
|
27
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 376 modules
|
|
28
|
+
var esm = __webpack_require__(64225);
|
|
29
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 454 modules
|
|
30
|
+
var dist_esm = __webpack_require__(76634);
|
|
29
31
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
|
|
30
32
|
var adapters_es = __webpack_require__(91202);
|
|
31
33
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
@@ -49,6 +51,7 @@ function dicomlabToRGB(cielab) {
|
|
|
49
51
|
|
|
50
52
|
|
|
51
53
|
|
|
54
|
+
|
|
52
55
|
const sopClassUids = ['1.2.840.10008.5.1.4.1.1.66.4'];
|
|
53
56
|
let loadPromises = {};
|
|
54
57
|
function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
|
|
@@ -119,12 +122,9 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
119
122
|
displaySet.referencedVolumeId = referencedVolumeId;
|
|
120
123
|
return referencedDisplaySet;
|
|
121
124
|
};
|
|
122
|
-
displaySet.load = async
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} = _ref;
|
|
126
|
-
return await _load(displaySet, servicesManager, extensionManager, headers);
|
|
127
|
-
};
|
|
125
|
+
displaySet.load = async ({
|
|
126
|
+
headers
|
|
127
|
+
}) => await _load(displaySet, servicesManager, extensionManager, headers);
|
|
128
128
|
return [displaySet];
|
|
129
129
|
}
|
|
130
130
|
function _load(segDisplaySet, servicesManager, extensionManager, headers) {
|
|
@@ -161,16 +161,16 @@ function _load(segDisplaySet, servicesManager, extensionManager, headers) {
|
|
|
161
161
|
});
|
|
162
162
|
return loadPromises[SOPInstanceUID];
|
|
163
163
|
}
|
|
164
|
-
async function _loadSegments(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
} = _ref2;
|
|
164
|
+
async function _loadSegments({
|
|
165
|
+
extensionManager,
|
|
166
|
+
servicesManager,
|
|
167
|
+
segDisplaySet,
|
|
168
|
+
headers
|
|
169
|
+
}) {
|
|
171
170
|
const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.common');
|
|
172
171
|
const {
|
|
173
|
-
segmentationService
|
|
172
|
+
segmentationService,
|
|
173
|
+
uiNotificationService
|
|
174
174
|
} = servicesManager.services;
|
|
175
175
|
const {
|
|
176
176
|
dicomLoaderService
|
|
@@ -201,22 +201,44 @@ async function _loadSegments(_ref2) {
|
|
|
201
201
|
eventTarget: esm.eventTarget,
|
|
202
202
|
triggerEvent: esm.triggerEvent
|
|
203
203
|
});
|
|
204
|
+
let usedRecommendedDisplayCIELabValue = true;
|
|
204
205
|
results.segMetadata.data.forEach((data, i) => {
|
|
205
206
|
if (i > 0) {
|
|
206
|
-
data.rgba =
|
|
207
|
+
data.rgba = data.RecommendedDisplayCIELabValue;
|
|
208
|
+
if (data.rgba) {
|
|
209
|
+
data.rgba = dicomlabToRGB(data.rgba);
|
|
210
|
+
} else {
|
|
211
|
+
usedRecommendedDisplayCIELabValue = false;
|
|
212
|
+
data.rgba = dist_esm.CONSTANTS.COLOR_LUT[i % dist_esm.CONSTANTS.COLOR_LUT.length];
|
|
213
|
+
}
|
|
207
214
|
}
|
|
208
215
|
});
|
|
216
|
+
if (results.overlappingSegments) {
|
|
217
|
+
uiNotificationService.show({
|
|
218
|
+
title: 'Overlapping Segments',
|
|
219
|
+
message: 'Unsupported overlapping segments detected, segmentation rendering results may be incorrect.',
|
|
220
|
+
type: 'warning'
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (!usedRecommendedDisplayCIELabValue) {
|
|
224
|
+
// Display a notification about the non-utilization of RecommendedDisplayCIELabValue
|
|
225
|
+
uiNotificationService.show({
|
|
226
|
+
title: 'DICOM SEG import',
|
|
227
|
+
message: 'RecommendedDisplayCIELabValue not found for one or more segments. The default color was used instead.',
|
|
228
|
+
type: 'warning',
|
|
229
|
+
duration: 5000
|
|
230
|
+
});
|
|
231
|
+
}
|
|
209
232
|
Object.assign(segDisplaySet, results);
|
|
210
233
|
}
|
|
211
234
|
function _segmentationExists(segDisplaySet, segmentationService) {
|
|
212
235
|
// This should be abstracted with the CornerstoneCacheService
|
|
213
236
|
return segmentationService.getSegmentation(segDisplaySet.displaySetInstanceUID);
|
|
214
237
|
}
|
|
215
|
-
function getSopClassHandlerModule(
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
} = _ref3;
|
|
238
|
+
function getSopClassHandlerModule({
|
|
239
|
+
servicesManager,
|
|
240
|
+
extensionManager
|
|
241
|
+
}) {
|
|
220
242
|
const getDisplaySetsFromSeries = instances => {
|
|
221
243
|
return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
222
244
|
};
|
|
@@ -293,23 +315,22 @@ function getHangingProtocolModule() {
|
|
|
293
315
|
|
|
294
316
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
295
317
|
var state = __webpack_require__(62657);
|
|
296
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
297
|
-
var default_src = __webpack_require__(
|
|
318
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 78 modules
|
|
319
|
+
var default_src = __webpack_require__(78738);
|
|
298
320
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
299
321
|
var prop_types = __webpack_require__(3827);
|
|
300
322
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
301
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
302
|
-
var ui_src = __webpack_require__(
|
|
323
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 487 modules
|
|
324
|
+
var ui_src = __webpack_require__(18414);
|
|
303
325
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/callInputDialog.tsx
|
|
304
326
|
|
|
305
327
|
|
|
306
328
|
function callInputDialog(uiDialogService, label, callback) {
|
|
307
329
|
const dialogId = 'enter-segment-label';
|
|
308
|
-
const onSubmitHandler =
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
} = _ref;
|
|
330
|
+
const onSubmitHandler = ({
|
|
331
|
+
action,
|
|
332
|
+
value
|
|
333
|
+
}) => {
|
|
313
334
|
switch (action.id) {
|
|
314
335
|
case 'save':
|
|
315
336
|
callback(value.label, action.id);
|
|
@@ -348,11 +369,10 @@ function callInputDialog(uiDialogService, label, callback) {
|
|
|
348
369
|
type: ui_src/* ButtonEnums.type */.LZ.dt.primary
|
|
349
370
|
}],
|
|
350
371
|
onSubmit: onSubmitHandler,
|
|
351
|
-
body:
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
} = _ref2;
|
|
372
|
+
body: ({
|
|
373
|
+
value,
|
|
374
|
+
setValue
|
|
375
|
+
}) => {
|
|
356
376
|
return /*#__PURE__*/react.createElement(ui_src/* Input */.II, {
|
|
357
377
|
label: "Enter the segment label",
|
|
358
378
|
labelClassName: "text-white text-[14px] leading-[1.2]",
|
|
@@ -396,11 +416,10 @@ var es = __webpack_require__(22831);
|
|
|
396
416
|
|
|
397
417
|
function callColorPickerDialog(uiDialogService, rgbaColor, callback) {
|
|
398
418
|
const dialogId = 'pick-color';
|
|
399
|
-
const onSubmitHandler =
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
} = _ref;
|
|
419
|
+
const onSubmitHandler = ({
|
|
420
|
+
action,
|
|
421
|
+
value
|
|
422
|
+
}) => {
|
|
404
423
|
switch (action.id) {
|
|
405
424
|
case 'save':
|
|
406
425
|
callback(value.rgbaColor, action.id);
|
|
@@ -439,11 +458,10 @@ function callColorPickerDialog(uiDialogService, rgbaColor, callback) {
|
|
|
439
458
|
type: 'secondary'
|
|
440
459
|
}],
|
|
441
460
|
onSubmit: onSubmitHandler,
|
|
442
|
-
body:
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
} = _ref2;
|
|
461
|
+
body: ({
|
|
462
|
+
value,
|
|
463
|
+
setValue
|
|
464
|
+
}) => {
|
|
447
465
|
const handleChange = color => {
|
|
448
466
|
setValue({
|
|
449
467
|
rgbaColor: color.rgb
|
|
@@ -471,13 +489,12 @@ var dist_es = __webpack_require__(69190);
|
|
|
471
489
|
|
|
472
490
|
|
|
473
491
|
|
|
474
|
-
function PanelSegmentation(
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
} = _ref;
|
|
492
|
+
function PanelSegmentation({
|
|
493
|
+
servicesManager,
|
|
494
|
+
commandsManager,
|
|
495
|
+
extensionManager,
|
|
496
|
+
configuration
|
|
497
|
+
}) {
|
|
481
498
|
const {
|
|
482
499
|
segmentationService,
|
|
483
500
|
viewportGridService,
|
|
@@ -567,7 +584,6 @@ function PanelSegmentation(_ref) {
|
|
|
567
584
|
);
|
|
568
585
|
});
|
|
569
586
|
};
|
|
570
|
-
|
|
571
587
|
const onSegmentColorClick = (segmentationId, segmentIndex) => {
|
|
572
588
|
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
573
589
|
const segment = segmentation.segments[segmentIndex];
|
|
@@ -698,8 +714,6 @@ PanelSegmentation.propTypes = {
|
|
|
698
714
|
}).isRequired
|
|
699
715
|
}).isRequired
|
|
700
716
|
};
|
|
701
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 348 modules
|
|
702
|
-
var dist_esm = __webpack_require__(14957);
|
|
703
717
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/SegmentationToolbox.tsx
|
|
704
718
|
|
|
705
719
|
|
|
@@ -727,20 +741,17 @@ const initialState = {
|
|
|
727
741
|
brushSize: 15,
|
|
728
742
|
mode: 'CircularBrush' // Can be 'CircularBrush' or 'SphereBrush'
|
|
729
743
|
},
|
|
730
|
-
|
|
731
744
|
Eraser: {
|
|
732
745
|
brushSize: 15,
|
|
733
746
|
mode: 'CircularEraser' // Can be 'CircularEraser' or 'SphereEraser'
|
|
734
747
|
},
|
|
735
|
-
|
|
736
748
|
Shapes: {
|
|
737
749
|
brushSize: 15,
|
|
738
750
|
mode: 'CircleScissor' // E.g., 'CircleScissor', 'RectangleScissor', or 'SphereScissor'
|
|
739
751
|
},
|
|
740
|
-
|
|
741
752
|
ThresholdBrush: {
|
|
742
753
|
brushSize: 15,
|
|
743
|
-
thresholdRange:
|
|
754
|
+
thresholdRange: null
|
|
744
755
|
},
|
|
745
756
|
activeTool: null
|
|
746
757
|
};
|
|
@@ -767,11 +778,10 @@ function toolboxReducer(state, action) {
|
|
|
767
778
|
return state;
|
|
768
779
|
}
|
|
769
780
|
}
|
|
770
|
-
function SegmentationToolbox(
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
} = _ref;
|
|
781
|
+
function SegmentationToolbox({
|
|
782
|
+
servicesManager,
|
|
783
|
+
extensionManager
|
|
784
|
+
}) {
|
|
775
785
|
const {
|
|
776
786
|
toolbarService,
|
|
777
787
|
segmentationService,
|
|
@@ -798,6 +808,7 @@ function SegmentationToolbox(_ref) {
|
|
|
798
808
|
});
|
|
799
809
|
}, [activeViewportId, viewports, toolGroupService, dispatch]);
|
|
800
810
|
const setToolActive = (0,react.useCallback)(toolName => {
|
|
811
|
+
initializeThresholdValue(toolName);
|
|
801
812
|
toolbarService.recordInteraction({
|
|
802
813
|
interactionType: 'tool',
|
|
803
814
|
commands: [{
|
|
@@ -869,6 +880,25 @@ function SegmentationToolbox(_ref) {
|
|
|
869
880
|
segmentationUtils.setBrushSizeForToolGroup(toolGroupId, brushSize, toolName);
|
|
870
881
|
});
|
|
871
882
|
}, [toolGroupService]);
|
|
883
|
+
function initializeThresholdValue(toolName) {
|
|
884
|
+
if (state.ThresholdBrush.thresholdRange === null) {
|
|
885
|
+
// set the default threshold range from the tool configuration
|
|
886
|
+
const toolGroupIds = toolGroupService.getToolGroupIds();
|
|
887
|
+
const toolGroupId = toolGroupIds[0];
|
|
888
|
+
const toolGroup = toolGroupService.getToolGroup(toolGroupId);
|
|
889
|
+
const toolConfig = toolGroup.getToolConfiguration(toolName);
|
|
890
|
+
const defaultThresholdRange = toolConfig?.strategySpecificConfiguration?.THRESHOLD?.threshold;
|
|
891
|
+
dispatch({
|
|
892
|
+
type: ACTIONS.SET_TOOL_CONFIG,
|
|
893
|
+
payload: {
|
|
894
|
+
tool: 'ThresholdBrush',
|
|
895
|
+
config: {
|
|
896
|
+
thresholdRange: defaultThresholdRange
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
});
|
|
900
|
+
}
|
|
901
|
+
}
|
|
872
902
|
const onBrushSizeChange = (0,react.useCallback)((valueAsStringOrNumber, toolCategory) => {
|
|
873
903
|
const value = Number(valueAsStringOrNumber);
|
|
874
904
|
_getToolNamesFromCategory(toolCategory).forEach(toolName => {
|
|
@@ -885,7 +915,7 @@ function SegmentationToolbox(_ref) {
|
|
|
885
915
|
});
|
|
886
916
|
}, [toolGroupService, dispatch]);
|
|
887
917
|
const handleRangeChange = (0,react.useCallback)(newRange => {
|
|
888
|
-
if (newRange[0] === state.ThresholdBrush.thresholdRange[0] && newRange[1] === state.ThresholdBrush.thresholdRange[1]) {
|
|
918
|
+
if (newRange[0] === state.ThresholdBrush.thresholdRange?.[0] && newRange[1] === state.ThresholdBrush.thresholdRange?.[1]) {
|
|
889
919
|
return;
|
|
890
920
|
}
|
|
891
921
|
const toolNames = _getToolNamesFromCategory('ThresholdBrush');
|
|
@@ -894,7 +924,7 @@ function SegmentationToolbox(_ref) {
|
|
|
894
924
|
const toolGroup = toolGroupService.getToolGroup(toolGroupId);
|
|
895
925
|
toolGroup.setToolConfiguration(toolName, {
|
|
896
926
|
strategySpecificConfiguration: {
|
|
897
|
-
|
|
927
|
+
THRESHOLD: {
|
|
898
928
|
threshold: newRange
|
|
899
929
|
}
|
|
900
930
|
}
|
|
@@ -1033,7 +1063,8 @@ function SegmentationToolbox(_ref) {
|
|
|
1033
1063
|
}, "Threshold"), /*#__PURE__*/react.createElement(ui_src/* InputDoubleRange */.R0, {
|
|
1034
1064
|
values: state.ThresholdBrush.thresholdRange,
|
|
1035
1065
|
onChange: handleRangeChange,
|
|
1036
|
-
minValue: -1000
|
|
1066
|
+
minValue: -1000 // Todo: these should be configurable
|
|
1067
|
+
,
|
|
1037
1068
|
maxValue: 1000,
|
|
1038
1069
|
step: 1,
|
|
1039
1070
|
showLabel: true,
|
|
@@ -1068,13 +1099,12 @@ function _getToolNamesFromCategory(category) {
|
|
|
1068
1099
|
|
|
1069
1100
|
|
|
1070
1101
|
|
|
1071
|
-
const getPanelModule =
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
} = _ref;
|
|
1102
|
+
const getPanelModule = ({
|
|
1103
|
+
commandsManager,
|
|
1104
|
+
servicesManager,
|
|
1105
|
+
extensionManager,
|
|
1106
|
+
configuration
|
|
1107
|
+
}) => {
|
|
1078
1108
|
const {
|
|
1079
1109
|
customizationService
|
|
1080
1110
|
} = servicesManager.services;
|
|
@@ -1124,8 +1154,8 @@ const getPanelModule = _ref => {
|
|
|
1124
1154
|
}];
|
|
1125
1155
|
};
|
|
1126
1156
|
/* harmony default export */ const src_getPanelModule = (getPanelModule);
|
|
1127
|
-
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js +
|
|
1128
|
-
var ImageMarchingSquares = __webpack_require__(
|
|
1157
|
+
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js + 1 modules
|
|
1158
|
+
var ImageMarchingSquares = __webpack_require__(96538);
|
|
1129
1159
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/DataArray.js
|
|
1130
1160
|
var DataArray = __webpack_require__(54131);
|
|
1131
1161
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js + 2 modules
|
|
@@ -1147,13 +1177,12 @@ var ImageData = __webpack_require__(96372);
|
|
|
1147
1177
|
*
|
|
1148
1178
|
* @returns Returns true upon successful update of viewports for segmentation rendering.
|
|
1149
1179
|
*/
|
|
1150
|
-
async function updateViewportsForSegmentationRendering(
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
} = _ref;
|
|
1180
|
+
async function updateViewportsForSegmentationRendering({
|
|
1181
|
+
viewportId,
|
|
1182
|
+
loadFn,
|
|
1183
|
+
servicesManager,
|
|
1184
|
+
referencedDisplaySetInstanceUID
|
|
1185
|
+
}) {
|
|
1157
1186
|
const {
|
|
1158
1187
|
cornerstoneViewportService,
|
|
1159
1188
|
segmentationService,
|
|
@@ -1221,11 +1250,10 @@ async function updateViewportsForSegmentationRendering(_ref) {
|
|
|
1221
1250
|
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
1222
1251
|
return true;
|
|
1223
1252
|
}
|
|
1224
|
-
const getTargetViewport =
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
} = _ref2;
|
|
1253
|
+
const getTargetViewport = ({
|
|
1254
|
+
viewportId,
|
|
1255
|
+
viewportGridService
|
|
1256
|
+
}) => {
|
|
1229
1257
|
const {
|
|
1230
1258
|
viewports,
|
|
1231
1259
|
activeViewportId
|
|
@@ -1247,12 +1275,11 @@ const getTargetViewport = _ref2 => {
|
|
|
1247
1275
|
*
|
|
1248
1276
|
* @returns {Array} Returns an array of viewports that require updates for segmentation rendering.
|
|
1249
1277
|
*/
|
|
1250
|
-
function getUpdatedViewportsForSegmentation(
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
} = _ref3;
|
|
1278
|
+
function getUpdatedViewportsForSegmentation({
|
|
1279
|
+
viewportId,
|
|
1280
|
+
servicesManager,
|
|
1281
|
+
referencedDisplaySetInstanceUID
|
|
1282
|
+
}) {
|
|
1256
1283
|
const {
|
|
1257
1284
|
hangingProtocolService,
|
|
1258
1285
|
displaySetService,
|
|
@@ -1323,11 +1350,10 @@ const {
|
|
|
1323
1350
|
const {
|
|
1324
1351
|
downloadDICOMData
|
|
1325
1352
|
} = adapters_es.helpers;
|
|
1326
|
-
const commandsModule =
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
} = _ref;
|
|
1353
|
+
const commandsModule = ({
|
|
1354
|
+
servicesManager,
|
|
1355
|
+
extensionManager
|
|
1356
|
+
}) => {
|
|
1331
1357
|
const {
|
|
1332
1358
|
uiNotificationService,
|
|
1333
1359
|
segmentationService,
|
|
@@ -1360,10 +1386,9 @@ const commandsModule = _ref => {
|
|
|
1360
1386
|
* @param params.viewportId - the target viewport ID.
|
|
1361
1387
|
*
|
|
1362
1388
|
*/
|
|
1363
|
-
createEmptySegmentationForViewport: async
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
} = _ref2;
|
|
1389
|
+
createEmptySegmentationForViewport: async ({
|
|
1390
|
+
viewportId
|
|
1391
|
+
}) => {
|
|
1367
1392
|
const viewport = getTargetViewport({
|
|
1368
1393
|
viewportId,
|
|
1369
1394
|
viewportGridService
|
|
@@ -1412,11 +1437,10 @@ const commandsModule = _ref => {
|
|
|
1412
1437
|
* @param params.viewportId - the target viewport ID.
|
|
1413
1438
|
*
|
|
1414
1439
|
*/
|
|
1415
|
-
loadSegmentationsForViewport: async
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
} = _ref3;
|
|
1440
|
+
loadSegmentationsForViewport: async ({
|
|
1441
|
+
segmentations,
|
|
1442
|
+
viewportId
|
|
1443
|
+
}) => {
|
|
1420
1444
|
updateViewportsForSegmentationRendering({
|
|
1421
1445
|
viewportId,
|
|
1422
1446
|
servicesManager,
|
|
@@ -1479,11 +1503,10 @@ const commandsModule = _ref => {
|
|
|
1479
1503
|
* @param params.displaySets - Array of display sets to be loaded for segmentation.
|
|
1480
1504
|
*
|
|
1481
1505
|
*/
|
|
1482
|
-
loadSegmentationDisplaySetsForViewport: async
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
} = _ref4;
|
|
1506
|
+
loadSegmentationDisplaySetsForViewport: async ({
|
|
1507
|
+
viewportId,
|
|
1508
|
+
displaySets
|
|
1509
|
+
}) => {
|
|
1487
1510
|
// Todo: handle adding more than one segmentation
|
|
1488
1511
|
const displaySet = displaySets[0];
|
|
1489
1512
|
updateViewportsForSegmentationRendering({
|
|
@@ -1513,11 +1536,10 @@ const commandsModule = _ref => {
|
|
|
1513
1536
|
*
|
|
1514
1537
|
* @returns Returns the generated segmentation data.
|
|
1515
1538
|
*/
|
|
1516
|
-
generateSegmentation:
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
} = _ref5;
|
|
1539
|
+
generateSegmentation: ({
|
|
1540
|
+
segmentationId,
|
|
1541
|
+
options = {}
|
|
1542
|
+
}) => {
|
|
1521
1543
|
const segmentation = dist_esm.segmentation.state.getSegmentation(segmentationId);
|
|
1522
1544
|
const {
|
|
1523
1545
|
referencedVolumeId
|
|
@@ -1570,10 +1592,9 @@ const commandsModule = _ref => {
|
|
|
1570
1592
|
* @param params.segmentationId - ID of the segmentation to be downloaded.
|
|
1571
1593
|
*
|
|
1572
1594
|
*/
|
|
1573
|
-
downloadSegmentation:
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
} = _ref6;
|
|
1595
|
+
downloadSegmentation: ({
|
|
1596
|
+
segmentationId
|
|
1597
|
+
}) => {
|
|
1577
1598
|
const segmentationInOHIF = segmentationService.getSegmentation(segmentationId);
|
|
1578
1599
|
const generatedSegmentation = actions.generateSegmentation({
|
|
1579
1600
|
segmentationId
|
|
@@ -1592,11 +1613,10 @@ const commandsModule = _ref => {
|
|
|
1592
1613
|
* @returns {Object|void} Returns the naturalized report if successfully stored,
|
|
1593
1614
|
* otherwise throws an error.
|
|
1594
1615
|
*/
|
|
1595
|
-
storeSegmentation: async
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
} = _ref7;
|
|
1616
|
+
storeSegmentation: async ({
|
|
1617
|
+
segmentationId,
|
|
1618
|
+
dataSource
|
|
1619
|
+
}) => {
|
|
1600
1620
|
const promptResult = await (0,default_src.createReportDialogPrompt)(uiDialogService, {
|
|
1601
1621
|
extensionManager
|
|
1602
1622
|
});
|
|
@@ -1641,14 +1661,13 @@ const commandsModule = _ref => {
|
|
|
1641
1661
|
* converts dataset to downloadable blob.
|
|
1642
1662
|
*
|
|
1643
1663
|
*/
|
|
1644
|
-
downloadRTSS:
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
} = _ref8;
|
|
1664
|
+
downloadRTSS: ({
|
|
1665
|
+
segmentationId
|
|
1666
|
+
}) => {
|
|
1648
1667
|
const segmentations = segmentationService.getSegmentation(segmentationId);
|
|
1649
1668
|
const vtkUtils = {
|
|
1650
1669
|
vtkImageMarchingSquares: ImageMarchingSquares/* default */.ZP,
|
|
1651
|
-
vtkDataArray: DataArray
|
|
1670
|
+
vtkDataArray: DataArray["default"],
|
|
1652
1671
|
vtkImageData: ImageData/* default */.ZP
|
|
1653
1672
|
};
|
|
1654
1673
|
const RTSS = generateRTSSFromSegmentations(segmentations, src.classes.MetadataProvider, src.DicomMetadataStore, esm.cache, dist_esm.Enums, vtkUtils);
|
|
@@ -1697,10 +1716,9 @@ const commandsModule = _ref => {
|
|
|
1697
1716
|
/* harmony default export */ const src_commandsModule = (commandsModule);
|
|
1698
1717
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/init.ts
|
|
1699
1718
|
|
|
1700
|
-
function init(
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
} = _ref;
|
|
1719
|
+
function init({
|
|
1720
|
+
configuration = {}
|
|
1721
|
+
}) {
|
|
1704
1722
|
(0,dist_esm.addTool)(dist_esm.BrushTool);
|
|
1705
1723
|
}
|
|
1706
1724
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/index.tsx
|
|
@@ -1739,11 +1757,10 @@ const extension = {
|
|
|
1739
1757
|
*/
|
|
1740
1758
|
getPanelModule: src_getPanelModule,
|
|
1741
1759
|
getCommandsModule: src_commandsModule,
|
|
1742
|
-
getViewportModule(
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
} = _ref;
|
|
1760
|
+
getViewportModule({
|
|
1761
|
+
servicesManager,
|
|
1762
|
+
extensionManager
|
|
1763
|
+
}) {
|
|
1747
1764
|
const ExtendedOHIFCornerstoneSEGViewport = props => {
|
|
1748
1765
|
return /*#__PURE__*/react.createElement(OHIFCornerstoneSEGViewport, _extends({
|
|
1749
1766
|
servicesManager: servicesManager,
|
|
@@ -1767,13 +1784,6 @@ const extension = {
|
|
|
1767
1784
|
};
|
|
1768
1785
|
/* harmony default export */ const cornerstone_dicom_seg_src = (extension);
|
|
1769
1786
|
|
|
1770
|
-
/***/ }),
|
|
1771
|
-
|
|
1772
|
-
/***/ 78753:
|
|
1773
|
-
/***/ (() => {
|
|
1774
|
-
|
|
1775
|
-
/* (ignored) */
|
|
1776
|
-
|
|
1777
1787
|
/***/ })
|
|
1778
1788
|
|
|
1779
1789
|
}]);
|