@ohif/app 3.8.0-beta.67 → 3.8.0-beta.69

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 (30) hide show
  1. package/dist/{121.bundle.d8b3c6b530d6151f251d.js → 121.bundle.a8fc45e3d88d0a8b82a8.js} +2 -2
  2. package/dist/{155.bundle.a2b8640977007e407d30.js → 155.bundle.54abbf46ae8db7fb6925.js} +4 -4
  3. package/dist/{638.bundle.4c2972aa5a19f816d94a.js → 2.bundle.336bb9e4a86312bb7cdb.js} +44 -13
  4. package/dist/{295.bundle.075944a082306d2e432f.js → 295.bundle.41d7b63be6a7d726b87e.js} +2 -2
  5. package/dist/{41.bundle.1c504116ebea23b157f6.js → 41.bundle.5c10b930100f5f2398ca.js} +8 -2
  6. package/dist/{494.bundle.ffd75704a069c0720596.js → 425.bundle.358660fda0b7db1f4096.js} +755 -363
  7. package/dist/425.css +2 -0
  8. package/dist/{448.bundle.f284c88c8780233e06b1.js → 448.bundle.ffeda5f113709be15f2e.js} +2 -2
  9. package/dist/{530.bundle.aaf1c61342805ff32648.js → 530.bundle.632dcb0d4f5266058c8b.js} +1 -1
  10. package/dist/{544.bundle.33ed8e4a3eaf16b55af7.js → 544.bundle.df7870b43d7aa1faed39.js} +2 -2
  11. package/dist/{574.bundle.c79d3fa0066f39b76442.js → 574.bundle.3020ab733b8f07ec50a5.js} +2 -2
  12. package/dist/{594.bundle.49d072fb31c8994ae85f.js → 594.bundle.9e9a467e6ebbbf236d31.js} +2 -2
  13. package/dist/{595.bundle.7a41a0998ab07dfa0212.js → 595.bundle.cc6c09ed6f90f7651f57.js} +28 -17
  14. package/dist/{699.bundle.43997eacac9490c1751c.js → 699.bundle.4318be073b24b7861e2f.js} +11 -4
  15. package/dist/{724.bundle.00e619f0960de50c8e19.js → 724.bundle.196f9249c7be5d3a341e.js} +21 -44
  16. package/dist/{862.bundle.1f1613561a4d6059a8aa.js → 862.bundle.27cb716917daad6afddc.js} +1 -1
  17. package/dist/{889.bundle.2daaac42e278b28b3d01.js → 889.bundle.c0159b08addb30199945.js} +2 -2
  18. package/dist/{90.bundle.ce42cccceaec1135a165.js → 90.bundle.df1afba885ad224de549.js} +8 -20
  19. package/dist/{app.bundle.aadaff7af8cd415a1eae.js → app.bundle.52480152e53de62fa936.js} +652 -119
  20. package/dist/app.bundle.css +2 -2
  21. package/dist/index.html +1 -1
  22. package/dist/sw.js +1 -1
  23. package/package.json +17 -17
  24. /package/dist/{164.bundle.ce3d1cd75bd8e13791d7.js → 164.bundle.5c4a698355bf39321296.js} +0 -0
  25. /package/dist/{188.bundle.b6a7e833fdf99cee3ee6.js → 188.bundle.84af46f98eb5eef59a02.js} +0 -0
  26. /package/dist/{638.css → 2.css} +0 -0
  27. /package/dist/{559.bundle.601f9e285f6b3b4d1ac5.js → 559.bundle.b4ad3430881d340909c5.js} +0 -0
  28. /package/dist/{905.bundle.af59bd2bcb04c4978059.js → 905.bundle.d0f3e4560d6f9f9d5857.js} +0 -0
  29. /package/dist/{907.bundle.401a07f50863efc6c6c1.js → 907.bundle.54a013a2c2a71264e019.js} +0 -0
  30. /package/dist/{961.bundle.fdf0e1c0c54cfb2a952a.js → 961.bundle.5ecfb2604c71e8cead46.js} +0 -0
@@ -17,8 +17,8 @@ var react = __webpack_require__(41766);
17
17
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
18
18
  var prop_types = __webpack_require__(11374);
19
19
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
20
- // EXTERNAL MODULE: ../../ui/src/index.js + 519 modules
21
- var src = __webpack_require__(3962);
20
+ // EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
21
+ var src = __webpack_require__(59134);
22
22
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
23
23
 
24
24
  const RESPONSE = {
@@ -20,8 +20,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
20
20
  var es = __webpack_require__(57593);
21
21
  // EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 8 modules
22
22
  var react_es = __webpack_require__(6835);
23
- // EXTERNAL MODULE: ../../ui/src/index.js + 519 modules
24
- var src = __webpack_require__(3962);
23
+ // EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
24
+ var src = __webpack_require__(59134);
25
25
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
26
26
 
27
27
  const RESPONSE = {
@@ -1104,8 +1104,8 @@ var dist = __webpack_require__(37396);
1104
1104
  var es = __webpack_require__(80619);
1105
1105
  // EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
1106
1106
  var src = __webpack_require__(85073);
1107
- // EXTERNAL MODULE: ../../ui/src/index.js + 519 modules
1108
- var ui_src = __webpack_require__(3962);
1107
+ // EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
1108
+ var ui_src = __webpack_require__(59134);
1109
1109
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
1110
1110
 
1111
1111
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[638,481],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2,481],{
3
3
 
4
- /***/ 92169:
4
+ /***/ 14349:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -315,13 +315,19 @@ function getHangingProtocolModule() {
315
315
 
316
316
  // EXTERNAL MODULE: ./state/index.js + 1 modules
317
317
  var state = __webpack_require__(15575);
318
- // EXTERNAL MODULE: ../../ui/src/index.js + 519 modules
319
- var ui_src = __webpack_require__(3962);
318
+ // EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
319
+ var ui_src = __webpack_require__(59134);
320
320
  // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 78 modules
321
321
  var default_src = __webpack_require__(54090);
322
322
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
323
323
  var prop_types = __webpack_require__(11374);
324
324
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
325
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/types/segmentation.tsx
326
+ let SegmentationPanelMode = /*#__PURE__*/function (SegmentationPanelMode) {
327
+ SegmentationPanelMode["Expanded"] = "expanded";
328
+ SegmentationPanelMode["Dropdown"] = "dropdown";
329
+ return SegmentationPanelMode;
330
+ }({});
325
331
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/callInputDialog.tsx
326
332
 
327
333
 
@@ -489,6 +495,11 @@ var dist_es = __webpack_require__(80619);
489
495
 
490
496
 
491
497
 
498
+
499
+ const components = {
500
+ [SegmentationPanelMode.Expanded]: ui_src/* SegmentationGroupTableExpanded */.fO,
501
+ [SegmentationPanelMode.Dropdown]: ui_src/* SegmentationGroupTable */.QQ
502
+ };
492
503
  function PanelSegmentation({
493
504
  servicesManager,
494
505
  commandsManager,
@@ -623,6 +634,15 @@ function PanelSegmentation({
623
634
  };
624
635
  const onToggleSegmentationVisibility = segmentationId => {
625
636
  segmentationService.toggleSegmentationVisibility(segmentationId);
637
+ const segmentation = segmentationService.getSegmentation(segmentationId);
638
+ const isVisible = segmentation.isVisible;
639
+ const segments = segmentation.segments;
640
+ const toolGroupIds = getToolGroupIds(segmentationId);
641
+ toolGroupIds.forEach(toolGroupId => {
642
+ segments.forEach((segment, segmentIndex) => {
643
+ segmentationService.setSegmentVisibility(segmentationId, segmentIndex, isVisible, toolGroupId);
644
+ });
645
+ });
626
646
  };
627
647
  const _setSegmentationConfiguration = (0,react.useCallback)((segmentationId, key, value) => {
628
648
  segmentationService.setConfiguration({
@@ -663,9 +683,8 @@ function PanelSegmentation({
663
683
  segmentationId
664
684
  });
665
685
  };
666
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
667
- className: "ohif-scrollbar flex min-h-0 flex-auto select-none flex-col justify-between overflow-auto"
668
- }, /*#__PURE__*/react.createElement(ui_src/* SegmentationGroupTable */.QQ, {
686
+ const SegmentationGroupTableComponent = components[configuration?.segmentationPanelMode];
687
+ return /*#__PURE__*/react.createElement(SegmentationGroupTableComponent, {
669
688
  title: t('Segmentations'),
670
689
  segmentations: segmentations,
671
690
  disableEditing: configuration.disableEditing,
@@ -696,7 +715,7 @@ function PanelSegmentation({
696
715
  setOutlineWidthActive: value => _setSegmentationConfiguration(selectedSegmentationId, 'outlineWidthActive', value),
697
716
  setFillAlpha: value => _setSegmentationConfiguration(selectedSegmentationId, 'fillAlpha', value),
698
717
  setFillAlphaInactive: value => _setSegmentationConfiguration(selectedSegmentationId, 'fillAlphaInactive', value)
699
- })));
718
+ });
700
719
  }
701
720
  PanelSegmentation.propTypes = {
702
721
  commandsManager: prop_types_default().shape({
@@ -719,6 +738,7 @@ PanelSegmentation.propTypes = {
719
738
 
720
739
 
721
740
 
741
+
722
742
  const getPanelModule = ({
723
743
  commandsManager,
724
744
  servicesManager,
@@ -732,17 +752,21 @@ const getPanelModule = ({
732
752
  const wrappedPanelSegmentation = configuration => {
733
753
  const [appConfig] = (0,state/* useAppConfig */.r)();
734
754
  const disableEditingForMode = customizationService.get('segmentation.disableEditing');
755
+ const segmentationPanelMode = customizationService.get('segmentation.segmentationPanelMode')?.value || SegmentationPanelMode.Dropdown;
735
756
  return /*#__PURE__*/react.createElement(PanelSegmentation, {
736
757
  commandsManager: commandsManager,
737
758
  servicesManager: servicesManager,
738
759
  extensionManager: extensionManager,
739
760
  configuration: {
740
761
  ...configuration,
741
- disableEditing: appConfig.disableEditing || disableEditingForMode?.value
762
+ disableEditing: appConfig.disableEditing || disableEditingForMode?.value,
763
+ segmentationPanelMode: segmentationPanelMode
742
764
  }
743
765
  });
744
766
  };
745
767
  const wrappedPanelSegmentationWithTools = configuration => {
768
+ const [appConfig] = (0,state/* useAppConfig */.r)();
769
+ const segmentationPanelMode = customizationService.get('segmentation.segmentationPanelMode')?.value || SegmentationPanelMode.Dropdown;
746
770
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Toolbox */.OO, {
747
771
  commandsManager: commandsManager,
748
772
  servicesManager: servicesManager,
@@ -757,7 +781,8 @@ const getPanelModule = ({
757
781
  servicesManager: servicesManager,
758
782
  extensionManager: extensionManager,
759
783
  configuration: {
760
- ...configuration
784
+ ...configuration,
785
+ segmentationPanelMode: segmentationPanelMode
761
786
  }
762
787
  }));
763
788
  };
@@ -1135,6 +1160,7 @@ const commandsModule = ({
1135
1160
  }) => {
1136
1161
  // Todo: handle adding more than one segmentation
1137
1162
  const displaySet = displaySets[0];
1163
+ const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySet.referencedDisplaySetInstanceUID);
1138
1164
  updateViewportsForSegmentationRendering({
1139
1165
  viewportId,
1140
1166
  servicesManager,
@@ -1145,6 +1171,8 @@ const commandsModule = ({
1145
1171
  const serviceFunction = segDisplaySet.Modality === 'SEG' ? 'createSegmentationForSEGDisplaySet' : 'createSegmentationForRTDisplaySet';
1146
1172
  const boundFn = segmentationService[serviceFunction].bind(segmentationService);
1147
1173
  const segmentationId = await boundFn(segDisplaySet, null, suppressEvents);
1174
+ const segmentation = segmentationService.getSegmentation(segmentationId);
1175
+ segmentation.description = `S${referencedDisplaySet.SeriesNumber}: ${referencedDisplaySet.SeriesDescription}`;
1148
1176
  return segmentationId;
1149
1177
  }
1150
1178
  });
@@ -1420,7 +1448,8 @@ function getToolbarModule({
1420
1448
  evaluate: ({
1421
1449
  viewportId,
1422
1450
  button,
1423
- toolNames
1451
+ toolNames,
1452
+ disabledText
1424
1453
  }) => {
1425
1454
  // Todo: we need to pass in the button section Id since we are kind of
1426
1455
  // forcing the button to have black background since initially
@@ -1430,7 +1459,8 @@ function getToolbarModule({
1430
1459
  if (!segmentations?.length) {
1431
1460
  return {
1432
1461
  disabled: true,
1433
- className: '!text-common-bright !bg-black opacity-50'
1462
+ className: '!text-common-bright !bg-black opacity-50',
1463
+ disabledText: disabledText ?? 'No segmentations available'
1434
1464
  };
1435
1465
  }
1436
1466
  const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
@@ -1441,7 +1471,8 @@ function getToolbarModule({
1441
1471
  if (!toolGroup || !toolGroup.hasTool(toolName)) {
1442
1472
  return {
1443
1473
  disabled: true,
1444
- className: '!text-common-bright ohif-disabled'
1474
+ className: '!text-common-bright ohif-disabled',
1475
+ disabledText: disabledText ?? 'Not available on the current viewport'
1445
1476
  };
1446
1477
  }
1447
1478
  const isPrimaryActive = toolNames ? toolNames.includes(toolGroup.getActivePrimaryMouseButtonTool()) : toolGroup.getActivePrimaryMouseButtonTool() === toolName;
@@ -19,8 +19,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
19
19
  var react = __webpack_require__(41766);
20
20
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
21
21
  var es = __webpack_require__(80619);
22
- // EXTERNAL MODULE: ../../ui/src/index.js + 519 modules
23
- var src = __webpack_require__(3962);
22
+ // EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
23
+ var src = __webpack_require__(59134);
24
24
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
25
25
  function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
26
26
  const {
@@ -381,7 +381,10 @@ const toolbarButtons = [{
381
381
  icon: 'tool-3d-rotate',
382
382
  label: '3D Rotate',
383
383
  commands: setToolActiveToolbar,
384
- evaluate: 'evaluate.cornerstoneTool'
384
+ evaluate: {
385
+ name: 'evaluate.cornerstoneTool',
386
+ disabledText: 'Select a 3D viewport to enable this tool'
387
+ }
385
388
  }
386
389
  }, {
387
390
  id: 'Capture',
@@ -413,7 +416,10 @@ const toolbarButtons = [{
413
416
  toolGroupIds: ['mpr']
414
417
  }
415
418
  },
416
- evaluate: 'evaluate.cornerstoneTool'
419
+ evaluate: {
420
+ name: 'evaluate.cornerstoneTool',
421
+ disabledText: 'Select an MPR viewport to enable this tool'
422
+ }
417
423
  }
418
424
  }];
419
425
  /* harmony default export */ const src_toolbarButtons = (toolbarButtons);