@ohif/app 3.8.0-beta.86 → 3.8.0-beta.87

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.
Files changed (41) hide show
  1. package/dist/117.bundle.a5e6959bf225da5cf4ed.js +6552 -0
  2. package/dist/164.bundle.96c0518b435ea19ef8c4.js +11816 -0
  3. package/dist/{433.bundle.c92d3f716a797127c1be.js → 203.bundle.846a90d1ede185c941b0.js} +4765 -6951
  4. package/dist/{206.bundle.1203a96e327b365264e5.js → 206.bundle.096c1d86defe1cf7e9ae.js} +4 -4
  5. package/dist/{183.bundle.c88c4355c4829ed94a88.js → 236.bundle.fb6c65ae3a5aa0c58727.js} +17541 -23678
  6. package/dist/{321.bundle.5bd98d3324768715f634.js → 321.bundle.7d6d0ead9384fcb67a5c.js} +19 -22
  7. package/dist/{342.bundle.8c74ac4c7871bd4a6f60.js → 342.bundle.36ee082163b01284eeba.js} +1 -1
  8. package/dist/{41.bundle.45737afb9f85e7e69ff3.js → 41.bundle.2f52dafa60516e97cd03.js} +2 -2
  9. package/dist/{217.bundle.bbc6090836dcca555dfc.js → 416.bundle.837e0b84baddd2193d67.js} +61564 -70419
  10. package/dist/{448.bundle.fde8b8e0fd744f39389d.js → 448.bundle.7c47e50e0db23eeace58.js} +2 -2
  11. package/dist/473.bundle.f6804e7ac014a561eff8.js +7256 -0
  12. package/dist/483.bundle.9263b25c34b349aae80e.js +2287 -0
  13. package/dist/{487.bundle.8d0477af42cf9f8c0937.js → 487.bundle.adf730aff4ec37332b88.js} +7 -7
  14. package/dist/{544.bundle.80c013bb477a263bcf10.js → 544.bundle.1b6998bb61d6f8f88da9.js} +2 -2
  15. package/dist/{574.bundle.9919f94ea252d4a45aaf.js → 574.bundle.d6f15a036af7ecaf82f9.js} +4 -4
  16. package/dist/{633.bundle.3961c49efec0b913b9cc.js → 633.bundle.ad22fd57eb95ee5f056a.js} +4 -4
  17. package/dist/{669.bundle.5652fa450c1d63575a5a.js → 669.bundle.796543c57c658097fe75.js} +9 -9
  18. package/dist/{335.bundle.fab6af469f98e7a59bfa.js → 7.bundle.ea90a6f6f1d4ab030dfb.js} +185 -228
  19. package/dist/{722.bundle.a91ce7b563b901b25db0.js → 722.bundle.05e8759e64d484f4554d.js} +2 -2
  20. package/dist/{724.bundle.634bee9667a518d1202f.js → 724.bundle.275035c2002c8fd78471.js} +234 -7
  21. package/dist/{726.bundle.0b3d9277d22fe7e15b89.js → 726.bundle.c8de818cf1a3ff0cf7d2.js} +2 -2
  22. package/dist/{164.bundle.288b10692cc72b81a98d.js → 783.bundle.b28ae6b134602470e2f1.js} +1 -1
  23. package/dist/{835.bundle.15aff0b7433bb0dd6d6d.js → 835.bundle.4c0eaa2c1a427ee41817.js} +2 -2
  24. package/dist/{862.bundle.217ce894d955626c78c5.js → 862.bundle.4be5d148c2b1adf4dbf3.js} +2 -2
  25. package/dist/{889.bundle.e2700d7456565ce71dad.js → 889.bundle.1a646aa901e073328cad.js} +1 -1
  26. package/dist/{94.bundle.b35c818d871de99336d8.js → 94.bundle.d6749c52eb6327bd45de.js} +4 -4
  27. package/dist/{app.bundle.ce0e385dbbb6c1c1769f.js → app.bundle.177823343bc7e2b039a2.js} +44486 -42404
  28. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  29. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  30. package/dist/index.html +1 -1
  31. package/dist/{polySeg.bundle.c2653f8ce77f44ae095b.js → polySeg.bundle.43bf3490e07982491e2b.js} +3 -3
  32. package/dist/suv-peak-worker.bundle.1f9b9e6887eebc07c50a.js +404 -0
  33. package/dist/sw.js +1 -1
  34. package/package.json +18 -18
  35. /package/dist/{188.bundle.d9b13c4a2910858bca9b.js → 188.bundle.bef5c8babdde7064bdbe.js} +0 -0
  36. /package/dist/{325.bundle.ac07a6ca0a4e66bed604.js → 325.bundle.357db826733b5379bd1d.js} +0 -0
  37. /package/dist/{594.bundle.e8e1b20c5c46cf16ffa3.js → 594.bundle.9a7fd38c5fc9823216e5.js} +0 -0
  38. /package/dist/{699.bundle.7228b225e0c2b8100077.js → 699.bundle.4d75ac5add81a2e4ef3b.js} +0 -0
  39. /package/dist/{905.bundle.ec6275a2096f7f096618.js → 905.bundle.36ce5f219e58ff9ddf9b.js} +0 -0
  40. /package/dist/{907.bundle.d2823642d3a32b5209a2.js → 907.bundle.64fa9f550bd239e92346.js} +0 -0
  41. /package/dist/{961.bundle.34a9b1fbf372d18b9b36.js → 961.bundle.6a18125a324bca120651.js} +0 -0
@@ -21,7 +21,6 @@ const toolGroupIds = {
21
21
  Fusion: 'fusionToolGroup',
22
22
  MIP: 'mipToolGroup',
23
23
  default: 'default'
24
- // MPR: 'mpr',
25
24
  };
26
25
  function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig) {
27
26
  const tools = {
@@ -87,6 +86,60 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, mo
87
86
  toolName: toolNames.CobbAngle
88
87
  }, {
89
88
  toolName: toolNames.Magnify
89
+ }, {
90
+ toolName: 'CircularBrush',
91
+ parentTool: 'Brush',
92
+ configuration: {
93
+ activeStrategy: 'FILL_INSIDE_CIRCLE'
94
+ }
95
+ }, {
96
+ toolName: 'CircularEraser',
97
+ parentTool: 'Brush',
98
+ configuration: {
99
+ activeStrategy: 'ERASE_INSIDE_CIRCLE'
100
+ }
101
+ }, {
102
+ toolName: 'SphereBrush',
103
+ parentTool: 'Brush',
104
+ configuration: {
105
+ activeStrategy: 'FILL_INSIDE_SPHERE'
106
+ }
107
+ }, {
108
+ toolName: 'SphereEraser',
109
+ parentTool: 'Brush',
110
+ configuration: {
111
+ activeStrategy: 'ERASE_INSIDE_SPHERE'
112
+ }
113
+ }, {
114
+ toolName: 'ThresholdCircularBrush',
115
+ parentTool: 'Brush',
116
+ configuration: {
117
+ activeStrategy: 'THRESHOLD_INSIDE_CIRCLE'
118
+ }
119
+ }, {
120
+ toolName: 'ThresholdSphereBrush',
121
+ parentTool: 'Brush',
122
+ configuration: {
123
+ activeStrategy: 'THRESHOLD_INSIDE_SPHERE'
124
+ }
125
+ }, {
126
+ toolName: 'ThresholdCircularBrushDynamic',
127
+ parentTool: 'Brush',
128
+ configuration: {
129
+ activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
130
+ // preview: {
131
+ // enabled: true,
132
+ // },
133
+ strategySpecificConfiguration: {
134
+ // to use the use the center segment index to determine
135
+ // if inside -> same segment, if outside -> eraser
136
+ // useCenterSegmentIndex: true,
137
+ THRESHOLD: {
138
+ isDynamic: true,
139
+ dynamicRadius: 3
140
+ }
141
+ }
142
+ }
90
143
  }],
91
144
  enabled: [{
92
145
  toolName: toolNames.SegmentationDisplay
@@ -149,15 +202,21 @@ function initToolGroups(toolNames, Enums, toolGroupService, commandsManager, mod
149
202
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/toolbarButtons.js
150
203
 
151
204
 
152
- const {
153
- windowLevelPresets
154
- } = src.defaults;
155
205
  const setToolActiveToolbar = {
156
206
  commandName: 'setToolActiveToolbar',
157
207
  commandOptions: {
158
208
  toolGroupIds: [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion]
159
209
  }
160
210
  };
211
+ function _createSetToolActiveCommands(toolName) {
212
+ return [{
213
+ commandName: 'setToolActiveToolbar',
214
+ commandOptions: {
215
+ toolName,
216
+ toolGroupIds: [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion]
217
+ }
218
+ }];
219
+ }
161
220
  const toolbarButtons = [{
162
221
  id: 'MeasurementTools',
163
222
  uiType: 'ohif.splitButton',
@@ -249,12 +308,180 @@ const toolbarButtons = [{
249
308
  icon: 'tool-create-threshold',
250
309
  label: 'Rectangle ROI Threshold',
251
310
  commands: setToolActiveToolbar,
252
- evaluate: {
311
+ evaluate: ['evaluate.cornerstone.segmentation',
312
+ // need to put the disabled text last, since each evaluator will
313
+ // merge the result text into the final result
314
+ {
253
315
  name: 'evaluate.cornerstoneTool',
254
316
  disabledText: 'Select the PT Axial to enable this tool'
255
- },
317
+ }],
256
318
  options: 'tmtv.RectangleROIThresholdOptions'
257
319
  }
320
+ }, {
321
+ id: 'BrushTools',
322
+ uiType: 'ohif.buttonGroup',
323
+ props: {
324
+ groupId: 'BrushTools',
325
+ items: [{
326
+ id: 'Brush',
327
+ icon: 'icon-tool-brush',
328
+ label: 'Brush',
329
+ evaluate: {
330
+ name: 'evaluate.cornerstone.segmentation',
331
+ toolNames: ['CircularBrush', 'SphereBrush'],
332
+ disabledText: 'Create new segmentation to enable this tool.'
333
+ },
334
+ commands: _createSetToolActiveCommands('CircularBrush'),
335
+ options: [{
336
+ name: 'Radius (mm)',
337
+ id: 'brush-radius',
338
+ type: 'range',
339
+ min: 0.5,
340
+ max: 99.5,
341
+ step: 0.5,
342
+ value: 25,
343
+ commands: {
344
+ commandName: 'setBrushSize',
345
+ commandOptions: {
346
+ toolNames: ['CircularBrush', 'SphereBrush']
347
+ }
348
+ }
349
+ }, {
350
+ name: 'Shape',
351
+ type: 'radio',
352
+ id: 'brush-mode',
353
+ value: 'CircularBrush',
354
+ values: [{
355
+ value: 'CircularBrush',
356
+ label: 'Circle'
357
+ }, {
358
+ value: 'SphereBrush',
359
+ label: 'Sphere'
360
+ }],
361
+ commands: 'setToolActiveToolbar'
362
+ }]
363
+ }, {
364
+ id: 'Eraser',
365
+ icon: 'icon-tool-eraser',
366
+ label: 'Eraser',
367
+ evaluate: {
368
+ name: 'evaluate.cornerstone.segmentation',
369
+ toolNames: ['CircularEraser', 'SphereEraser']
370
+ },
371
+ commands: _createSetToolActiveCommands('CircularEraser'),
372
+ options: [{
373
+ name: 'Radius (mm)',
374
+ id: 'eraser-radius',
375
+ type: 'range',
376
+ min: 0.5,
377
+ max: 99.5,
378
+ step: 0.5,
379
+ value: 25,
380
+ commands: {
381
+ commandName: 'setBrushSize',
382
+ commandOptions: {
383
+ toolNames: ['CircularEraser', 'SphereEraser']
384
+ }
385
+ }
386
+ }, {
387
+ name: 'Shape',
388
+ type: 'radio',
389
+ id: 'eraser-mode',
390
+ value: 'CircularEraser',
391
+ values: [{
392
+ value: 'CircularEraser',
393
+ label: 'Circle'
394
+ }, {
395
+ value: 'SphereEraser',
396
+ label: 'Sphere'
397
+ }],
398
+ commands: 'setToolActiveToolbar'
399
+ }]
400
+ }, {
401
+ id: 'Threshold',
402
+ icon: 'icon-tool-threshold',
403
+ label: 'Threshold Tool',
404
+ evaluate: {
405
+ name: 'evaluate.cornerstone.segmentation',
406
+ toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush']
407
+ },
408
+ commands: _createSetToolActiveCommands('ThresholdCircularBrush'),
409
+ options: [{
410
+ name: 'Radius (mm)',
411
+ id: 'threshold-radius',
412
+ type: 'range',
413
+ min: 0.5,
414
+ max: 99.5,
415
+ step: 0.5,
416
+ value: 25,
417
+ commands: {
418
+ commandName: 'setBrushSize',
419
+ commandOptions: {
420
+ toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush', 'ThresholdCircularBrushDynamic']
421
+ }
422
+ }
423
+ }, {
424
+ name: 'Threshold',
425
+ type: 'radio',
426
+ id: 'dynamic-mode',
427
+ value: 'ThresholdRange',
428
+ values: [{
429
+ value: 'ThresholdDynamic',
430
+ label: 'Dynamic'
431
+ }, {
432
+ value: 'ThresholdRange',
433
+ label: 'Range'
434
+ }],
435
+ commands: ({
436
+ value,
437
+ commandsManager
438
+ }) => {
439
+ if (value === 'ThresholdDynamic') {
440
+ commandsManager.run('setToolActive', {
441
+ toolName: 'ThresholdCircularBrushDynamic'
442
+ });
443
+ } else {
444
+ commandsManager.run('setToolActive', {
445
+ toolName: 'ThresholdCircularBrush'
446
+ });
447
+ }
448
+ }
449
+ }, {
450
+ name: 'Shape',
451
+ type: 'radio',
452
+ id: 'eraser-mode',
453
+ value: 'ThresholdCircularBrush',
454
+ values: [{
455
+ value: 'ThresholdCircularBrush',
456
+ label: 'Circle'
457
+ }, {
458
+ value: 'ThresholdSphereBrush',
459
+ label: 'Sphere'
460
+ }],
461
+ condition: ({
462
+ options
463
+ }) => options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange',
464
+ commands: 'setToolActiveToolbar'
465
+ }, {
466
+ name: 'ThresholdRange',
467
+ type: 'double-range',
468
+ id: 'threshold-range',
469
+ min: 0,
470
+ max: 50,
471
+ step: 0.5,
472
+ values: [2.5, 50],
473
+ condition: ({
474
+ options
475
+ }) => options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange',
476
+ commands: {
477
+ commandName: 'setThresholdRange',
478
+ commandOptions: {
479
+ toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush']
480
+ }
481
+ }
482
+ }]
483
+ }]
484
+ }
258
485
  }];
259
486
  /* harmony default export */ const src_toolbarButtons = (toolbarButtons);
260
487
  ;// CONCATENATED MODULE: ../../../modes/tmtv/package.json
@@ -396,7 +623,7 @@ function modeFactory({
396
623
  unsubscriptions.push(unsubscribe);
397
624
  toolbarService.addButtons(src_toolbarButtons);
398
625
  toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'WindowLevel', 'Crosshairs', 'Pan', 'SyncToggle']);
399
- toolbarService.createButtonSection('ROIThresholdToolbox', ['RectangleROIStartEndThreshold']);
626
+ toolbarService.createButtonSection('ROIThresholdToolbox', ['RectangleROIStartEndThreshold', 'BrushTools']);
400
627
  customizationService.addModeCustomizations([{
401
628
  id: 'segmentation.panel',
402
629
  segmentationPanelMode: 'expanded',
@@ -1126,7 +1126,7 @@ module.exports = baseIsEqual;
1126
1126
  var Stack = __webpack_require__(2951),
1127
1127
  equalArrays = __webpack_require__(74997),
1128
1128
  equalByTag = __webpack_require__(98416),
1129
- equalObjects = __webpack_require__(31163),
1129
+ equalObjects = __webpack_require__(53544),
1130
1130
  getTag = __webpack_require__(32803),
1131
1131
  isArray = __webpack_require__(15343),
1132
1132
  isBuffer = __webpack_require__(65698),
@@ -2461,7 +2461,7 @@ module.exports = equalByTag;
2461
2461
 
2462
2462
  /***/ }),
2463
2463
 
2464
- /***/ 31163:
2464
+ /***/ 53544:
2465
2465
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2466
2466
 
2467
2467
  var getAllKeys = __webpack_require__(75652);
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[164],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[783],{
3
3
 
4
4
  /***/ 164:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -477,7 +477,7 @@ function createActorContext(machine, interpreterOptions, observerOrListener) {
477
477
 
478
478
  /***/ }),
479
479
 
480
- /***/ 2465:
480
+ /***/ 24846:
481
481
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
482
482
 
483
483
  /**
@@ -520,7 +520,7 @@ u(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};
520
520
 
521
521
 
522
522
  if (true) {
523
- module.exports = __webpack_require__(2465);
523
+ module.exports = __webpack_require__(24846);
524
524
  } else {}
525
525
 
526
526
 
@@ -12,9 +12,9 @@ __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11374);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
14
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5085);
15
- /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24542);
15
+ /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39371);
16
16
  /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(219);
17
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(73868);
17
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(92136);
18
18
  /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80619);
19
19
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
20
 
@@ -2576,7 +2576,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2576
2576
 
2577
2577
 
2578
2578
  const Component = /*#__PURE__*/react.lazy(() => {
2579
- return Promise.all(/* import() */[__webpack_require__.e(433), __webpack_require__.e(183), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(206), __webpack_require__.e(544)]).then(__webpack_require__.bind(__webpack_require__, 17919));
2579
+ return Promise.all(/* import() */[__webpack_require__.e(203), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(206), __webpack_require__.e(544)]).then(__webpack_require__.bind(__webpack_require__, 17919));
2580
2580
  });
2581
2581
  const MicroscopyViewport = props => {
2582
2582
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -442,7 +442,7 @@ const segmentationButtons_toolbarButtons = [{
442
442
  },
443
443
  commands: _createSetToolActiveCommands('CircularBrush'),
444
444
  options: [{
445
- name: 'Radius (mm)',
445
+ name: 'Size (mm)',
446
446
  id: 'brush-radius',
447
447
  type: 'range',
448
448
  min: 0.5,
@@ -547,9 +547,9 @@ const segmentationButtons_toolbarButtons = [{
547
547
  type: 'double-range',
548
548
  id: 'threshold-range',
549
549
  min: 0,
550
- max: 10,
551
- step: 1,
552
- values: [2, 5],
550
+ max: 100,
551
+ step: 0.5,
552
+ values: [2, 50],
553
553
  commands: {
554
554
  commandName: 'setThresholdRange',
555
555
  commandOptions: {