@ohif/app 3.7.0-beta.6 → 3.7.0-beta.61

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 (54) hide show
  1. package/dist/{917.bundle.57d86a03581296d2ee00.js → 12.bundle.c54b94d07d31f5716eb1.js} +6 -6
  2. package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.1ae4c6313c31cd0502cc.js} +4 -4
  3. package/dist/{208.bundle.182a2d2827d0d8afce33.js → 128.bundle.b0a7aa9ae66c094c40b5.js} +6 -6
  4. package/dist/{616.bundle.0ab47fe1619e9ed278b9.js → 150.bundle.2075342642eddc35e924.js} +155 -104
  5. package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.70c4340cbe29bd14aafc.js} +147 -129
  6. package/dist/{351.css → 181.css} +1 -1
  7. package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.8007de18c96daaceca7f.js} +1459 -811
  8. package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
  9. package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
  10. package/dist/{976.bundle.d6c34ae072976b3d9c29.js → 236.bundle.4aab776fb3e7654f1f0c.js} +38 -24
  11. package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.0d497b1b8afb0cbbe02f.js} +37 -25
  12. package/dist/{973.bundle.1a5e3125446a7f22729b.js → 281.bundle.c35a76364b385ee72bfd.js} +18 -14
  13. package/dist/{744.bundle.2282095988d3a22f17eb.js → 30.bundle.777231cf20f408db12f1.js} +128 -119
  14. package/dist/{192.bundle.2ae9e68532962089836f.js → 348.bundle.be4810ac9ac67cd7d8c5.js} +18 -14
  15. package/dist/{404.bundle.dd49183aaac4294b003b.js → 359.bundle.d723d31672f7fe575501.js} +13 -19
  16. package/dist/{82.bundle.0b649d84e313e1928590.js → 362.bundle.9d4d81eab3e31314a932.js} +1274 -287
  17. package/dist/{50.bundle.5eb258e72b39b2216560.js → 378.bundle.3069476ee6501c83ad44.js} +10 -8
  18. package/dist/{790.bundle.d362d0c4b8cdf0493e73.js → 410.bundle.f973e56e3a7d8165d87a.js} +6 -6
  19. package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.720dc8f3a6e99f378aa9.js} +9 -11
  20. package/dist/{569.bundle.21f8ad57c06a210448b5.js → 451.bundle.a573877dff7b43382138.js} +63 -81
  21. package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.e9ecd59867a19e323234.js} +44 -72
  22. package/dist/{199.bundle.ec85a189dbc481dc980b.js → 506.bundle.8b2c661a99271b31663c.js} +79 -10
  23. package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
  24. package/dist/{984.bundle.e48272bf3c41816e19fc.js → 663.bundle.80190c7364dd4095010b.js} +67 -37
  25. package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 677.bundle.ec5f2b4707db33bd4d8e.js} +731 -447
  26. package/dist/{707.bundle.7fd06edc9852075913ec.js → 678.bundle.adc83cac2fd0ea4f19f2.js} +209 -216
  27. package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.70565410179f1e7d22e6.js} +4 -4
  28. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.1884c227b361aefa66b4.js} +12383 -7530
  29. package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.8ba82ee206266eb2da5e.js} +90 -63
  30. package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
  31. package/dist/{283.bundle.426df6a7412bc2932775.js → 782.bundle.fc7e353f1dce39953254.js} +57 -26
  32. package/dist/{642.bundle.0a98bca321a959b489f2.js → 814.bundle.9218ffc353490526c320.js} +6 -6
  33. package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.99bf759483aa32086346.js} +66 -17
  34. package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.c5a6b96760ea43352375.js} +17 -11
  35. package/dist/{270.bundle.4564621556b0f963a004.js → 925.bundle.7b06521fc75e0d3f71c3.js} +770 -607
  36. package/dist/945.min.worker.js +1 -1
  37. package/dist/945.min.worker.js.map +1 -1
  38. package/dist/app-config.js +7 -7
  39. package/dist/{app.bundle.3f8ce0b8b48882f2ff10.js → app.bundle.2a91a8b9b9e61b42cc21.js} +70344 -68432
  40. package/dist/app.bundle.css +9 -9
  41. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  42. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  43. package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
  44. package/dist/google.js +7 -5
  45. package/dist/index.html +1 -1
  46. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
  47. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
  48. package/dist/sw.js +1 -1
  49. package/package.json +19 -20
  50. package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
  51. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  52. /package/dist/{55.css → 250.css} +0 -0
  53. /package/dist/{806.css → 579.css} +0 -0
  54. /package/dist/{707.css → 678.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[917],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[12],{
3
3
 
4
- /***/ 95917:
4
+ /***/ 85012:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -13,7 +13,7 @@ __webpack_require__.d(__webpack_exports__, {
13
13
  });
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
16
- var react = __webpack_require__(32735);
16
+ var react = __webpack_require__(43001);
17
17
  ;// CONCATENATED MODULE: ../../../extensions/dicom-video/package.json
18
18
  const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-video"}');
19
19
  ;// CONCATENATED MODULE: ../../../extensions/dicom-video/src/id.js
@@ -21,8 +21,8 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-video"}
21
21
  const id = package_namespaceObject.u2;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-video`;
23
23
 
24
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
25
- var src = __webpack_require__(48501);
24
+ // EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
25
+ var src = __webpack_require__(38930);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-video/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -127,7 +127,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
127
127
 
128
128
 
129
129
  const Component = /*#__PURE__*/react.lazy(() => {
130
- return __webpack_require__.e(/* import() */ 205).then(__webpack_require__.bind(__webpack_require__, 36205));
130
+ return __webpack_require__.e(/* import() */ 686).then(__webpack_require__.bind(__webpack_require__, 39686));
131
131
  });
132
132
  const OHIFCornerstoneVideoViewport = props => {
133
133
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[295],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[125],{
3
3
 
4
- /***/ 56295:
4
+ /***/ 39125:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32735);
12
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60216);
11
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
14
 
15
15
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[208],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[128],{
3
3
 
4
- /***/ 9208:
4
+ /***/ 59128:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -12,10 +12,10 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ basic_test_mode_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
16
- var src = __webpack_require__(48501);
17
- // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
18
- var ui_src = __webpack_require__(28619);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
16
+ var src = __webpack_require__(38930);
17
+ // EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
18
+ var ui_src = __webpack_require__(33570);
19
19
  ;// CONCATENATED MODULE: ../../../modes/basic-test-mode/src/toolbarButtons.js
20
20
  // TODO: torn, can either bake this here; or have to create a whole new button type
21
21
  // Only ways that you can pass in a custom React component for render :l
@@ -1,6 +1,6 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[616],{
1
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[150],{
2
2
 
3
- /***/ 72776:
3
+ /***/ 48228:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5
5
 
6
6
  "use strict";
@@ -9,7 +9,8 @@ __webpack_require__.r(__webpack_exports__);
9
9
 
10
10
  // EXPORTS
11
11
  __webpack_require__.d(__webpack_exports__, {
12
- "default": () => (/* binding */ cornerstone_dicom_seg_src)
12
+ "default": () => (/* binding */ cornerstone_dicom_seg_src),
13
+ hydrateSEGDisplaySet: () => (/* reexport */ _hydrateSEG/* default */.Z)
13
14
  });
14
15
 
15
16
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/package.json
@@ -21,22 +22,34 @@ const SOPClassHandlerName = 'dicom-seg';
21
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
22
23
 
23
24
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
24
- var react = __webpack_require__(32735);
25
- // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/Math.js
26
- var Core_Math = __webpack_require__(92780);
27
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
28
- var src = __webpack_require__(48501);
25
+ var react = __webpack_require__(43001);
26
+ // EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
27
+ var src = __webpack_require__(38930);
28
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 337 modules
29
+ var esm = __webpack_require__(45754);
30
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
31
+ var adapters_es = __webpack_require__(91202);
29
32
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
30
- var dcmjs_es = __webpack_require__(22737);
33
+ var dcmjs_es = __webpack_require__(67540);
34
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/dicomlabToRGB.ts
35
+
36
+
37
+ /**
38
+ * Converts a CIELAB color to an RGB color using the dcmjs library.
39
+ * @param cielab - The CIELAB color to convert.
40
+ * @returns The RGB color as an array of three integers between 0 and 255.
41
+ */
42
+ function dicomlabToRGB(cielab) {
43
+ const rgb = dcmjs_es["default"].data.Colors.dicomlab2RGB(cielab).map(x => Math.round(x * 255));
44
+ return rgb;
45
+ }
46
+
31
47
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.js
32
48
 
33
49
 
34
50
 
35
51
 
36
- const {
37
- DicomMessage,
38
- DicomMetaDictionary
39
- } = dcmjs_es["default"].data;
52
+
40
53
  const sopClassUids = ['1.2.840.10008.5.1.4.1.1.66.4'];
41
54
  let loadPromises = {};
42
55
  function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
@@ -130,8 +143,12 @@ function _load(segDisplaySet, servicesManager, extensionManager, headers) {
130
143
  // and also return the same promise to any other callers.
131
144
  loadPromises[SOPInstanceUID] = new Promise(async (resolve, reject) => {
132
145
  if (!segDisplaySet.segments || Object.keys(segDisplaySet.segments).length === 0) {
133
- const segments = await _loadSegments(extensionManager, segDisplaySet, headers);
134
- segDisplaySet.segments = segments;
146
+ await _loadSegments({
147
+ extensionManager,
148
+ servicesManager,
149
+ segDisplaySet,
150
+ headers
151
+ });
135
152
  }
136
153
  const suppressEvents = true;
137
154
  segmentationService.createSegmentationForSEGDisplaySet(segDisplaySet, null, suppressEvents).then(() => {
@@ -144,101 +161,62 @@ function _load(segDisplaySet, servicesManager, extensionManager, headers) {
144
161
  });
145
162
  return loadPromises[SOPInstanceUID];
146
163
  }
147
- async function _loadSegments(extensionManager, segDisplaySet, headers) {
164
+ async function _loadSegments(_ref2) {
165
+ let {
166
+ extensionManager,
167
+ servicesManager,
168
+ segDisplaySet,
169
+ headers
170
+ } = _ref2;
148
171
  const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.common');
172
+ const {
173
+ segmentationService
174
+ } = servicesManager.services;
149
175
  const {
150
176
  dicomLoaderService
151
177
  } = utilityModule.exports;
152
- const segArrayBuffer = await dicomLoaderService.findDicomDataPromise(segDisplaySet, null, headers);
153
- const dicomData = DicomMessage.readFile(segArrayBuffer);
154
- const dataset = DicomMetaDictionary.naturalizeDataset(dicomData.dict);
155
- dataset._meta = DicomMetaDictionary.namifyDataset(dicomData.meta);
156
- if (!Array.isArray(dataset.SegmentSequence)) {
157
- dataset.SegmentSequence = [dataset.SegmentSequence];
178
+ const arrayBuffer = await dicomLoaderService.findDicomDataPromise(segDisplaySet, null, headers);
179
+ const cachedReferencedVolume = esm.cache.getVolume(segDisplaySet.referencedVolumeId);
180
+ if (!cachedReferencedVolume) {
181
+ throw new Error('Referenced Volume is missing for the SEG, and stack viewport SEG is not supported yet');
158
182
  }
159
- const segments = _getSegments(dataset);
160
- return segments;
183
+ const {
184
+ imageIds
185
+ } = cachedReferencedVolume;
186
+
187
+ // Todo: what should be defaults here
188
+ const tolerance = 0.001;
189
+ const skipOverlapping = true;
190
+ esm.eventTarget.addEventListener(adapters_es/* Enums */.Yb.Events.SEGMENTATION_LOAD_PROGRESS, evt => {
191
+ const {
192
+ percentComplete
193
+ } = evt.detail;
194
+ segmentationService._broadcastEvent(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, {
195
+ percentComplete
196
+ });
197
+ });
198
+ const results = await adapters_es/* adaptersSEG */.ok.Cornerstone3D.Segmentation.generateToolState(imageIds, arrayBuffer, esm.metaData, {
199
+ skipOverlapping,
200
+ tolerance,
201
+ eventTarget: esm.eventTarget,
202
+ triggerEvent: esm.triggerEvent
203
+ });
204
+ results.segMetadata.data.forEach((data, i) => {
205
+ if (i > 0) {
206
+ data.rgba = dicomlabToRGB(data.RecommendedDisplayCIELabValue);
207
+ }
208
+ });
209
+ Object.assign(segDisplaySet, results);
161
210
  }
162
211
  function _segmentationExists(segDisplaySet, segmentationService) {
163
212
  // This should be abstracted with the CornerstoneCacheService
164
213
  return segmentationService.getSegmentation(segDisplaySet.displaySetInstanceUID);
165
214
  }
166
- function _getPixelData(dataset, segments) {
167
- let frameSize = Math.ceil(dataset.Rows * dataset.Columns / 8);
168
- let nextOffset = 0;
169
- Object.keys(segments).forEach(segmentKey => {
170
- const segment = segments[segmentKey];
171
- segment.numberOfFrames = segment.functionalGroups.length;
172
- segment.size = segment.numberOfFrames * frameSize;
173
- segment.offset = nextOffset;
174
- nextOffset = segment.offset + segment.size;
175
- const packedSegment = dataset.PixelData[0].slice(segment.offset, nextOffset);
176
- segment.pixelData = dcmjs_es["default"].data.BitArray.unpack(packedSegment);
177
- segment.geometry = geometryFromFunctionalGroups(dataset, segment.functionalGroups);
178
- });
179
- return segments;
180
- }
181
- function geometryFromFunctionalGroups(dataset, perFrame) {
182
- let pixelMeasures = dataset.SharedFunctionalGroupsSequence.PixelMeasuresSequence;
183
- let planeOrientation = dataset.SharedFunctionalGroupsSequence.PlaneOrientationSequence;
184
- let planePosition = perFrame[0].PlanePositionSequence; // TODO: assume sorted frames!
185
-
186
- const geometry = {};
187
-
188
- // NB: DICOM PixelSpacing is defined as Row then Column,
189
- // unlike ImageOrientationPatient
190
- let spacingBetweenSlices = pixelMeasures.SpacingBetweenSlices;
191
- if (!spacingBetweenSlices) {
192
- if (pixelMeasures.SliceThickness) {
193
- console.log('Using SliceThickness as SpacingBetweenSlices');
194
- spacingBetweenSlices = pixelMeasures.SliceThickness;
195
- }
196
- }
197
- geometry.spacing = [pixelMeasures.PixelSpacing[1], pixelMeasures.PixelSpacing[0], spacingBetweenSlices].map(Number);
198
- geometry.dimensions = [dataset.Columns, dataset.Rows, perFrame.length].map(Number);
199
- let orientation = planeOrientation.ImageOrientationPatient.map(Number);
200
- const columnStepToPatient = orientation.slice(0, 3);
201
- const rowStepToPatient = orientation.slice(3, 6);
202
- geometry.planeNormal = [];
203
- Core_Math/* default.cross */.ZP.cross(columnStepToPatient, rowStepToPatient, geometry.planeNormal);
204
- let firstPosition = perFrame[0].PlanePositionSequence.ImagePositionPatient.map(Number);
205
- let lastPosition = perFrame[perFrame.length - 1].PlanePositionSequence.ImagePositionPatient.map(Number);
206
- geometry.sliceStep = [];
207
- Core_Math/* default.subtract */.ZP.subtract(lastPosition, firstPosition, geometry.sliceStep);
208
- Core_Math/* default.normalize */.ZP.normalize(geometry.sliceStep);
209
- geometry.direction = columnStepToPatient.concat(rowStepToPatient).concat(geometry.sliceStep);
210
- geometry.origin = planePosition.ImagePositionPatient.map(Number);
211
- return geometry;
212
- }
213
- function _getSegments(dataset) {
214
- const segments = {};
215
- dataset.SegmentSequence.forEach(segment => {
216
- const cielab = segment.RecommendedDisplayCIELabValue;
217
- const rgba = dcmjs_es["default"].data.Colors.dicomlab2RGB(cielab).map(x => Math.round(x * 255));
218
- rgba.push(255);
219
- const segmentNumber = segment.SegmentNumber;
220
- segments[segmentNumber] = {
221
- color: rgba,
222
- functionalGroups: [],
223
- offset: null,
224
- size: null,
225
- pixelData: null,
226
- label: segment.SegmentLabel
227
- };
228
- });
229
-
230
- // make a list of functional groups per segment
231
- dataset.PerFrameFunctionalGroupsSequence.forEach(functionalGroup => {
232
- const segmentNumber = functionalGroup.SegmentIdentificationSequence.ReferencedSegmentNumber;
233
- segments[segmentNumber].functionalGroups.push(functionalGroup);
234
- });
235
- return _getPixelData(dataset, segments);
236
- }
237
- function getSopClassHandlerModule(_ref2) {
215
+ function getSopClassHandlerModule(_ref3) {
238
216
  let {
239
217
  servicesManager,
240
218
  extensionManager
241
- } = _ref2;
219
+ } = _ref3;
242
220
  const getDisplaySetsFromSeries = instances => {
243
221
  return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
244
222
  };
@@ -250,10 +228,10 @@ function getSopClassHandlerModule(_ref2) {
250
228
  }
251
229
  /* harmony default export */ const src_getSopClassHandlerModule = (getSopClassHandlerModule);
252
230
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
253
- var prop_types = __webpack_require__(60216);
231
+ var prop_types = __webpack_require__(3827);
254
232
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
255
- // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
256
- var ui_src = __webpack_require__(28619);
233
+ // EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
234
+ var ui_src = __webpack_require__(33570);
257
235
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/callInputDialog.tsx
258
236
 
259
237
 
@@ -338,14 +316,17 @@ function callInputDialog(uiDialogService, label, callback) {
338
316
  }
339
317
  }
340
318
  /* harmony default export */ const panels_callInputDialog = (callInputDialog);
319
+ // EXTERNAL MODULE: ./state/index.js + 1 modules
320
+ var state = __webpack_require__(62657);
341
321
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
342
- var es = __webpack_require__(21572);
322
+ var es = __webpack_require__(69190);
343
323
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/PanelSegmentation.tsx
344
324
 
345
325
 
346
326
 
347
327
 
348
328
 
329
+
349
330
  function PanelSegmentation(_ref) {
350
331
  let {
351
332
  servicesManager,
@@ -355,6 +336,8 @@ function PanelSegmentation(_ref) {
355
336
  segmentationService,
356
337
  uiDialogService
357
338
  } = servicesManager.services;
339
+ const [appConfig] = (0,state/* useAppConfig */.M)();
340
+ const disableEditing = appConfig?.disableEditing;
358
341
  const {
359
342
  t
360
343
  } = (0,es/* useTranslation */.$G)('PanelSegmentation');
@@ -496,6 +479,7 @@ function PanelSegmentation(_ref) {
496
479
  onSegmentationEdit: onSegmentationEdit,
497
480
  onSegmentClick: onSegmentClick,
498
481
  onSegmentEdit: onSegmentEdit,
482
+ disableEditing: disableEditing,
499
483
  onSegmentColorClick: onSegmentColorClick,
500
484
  onSegmentDelete: onSegmentDelete,
501
485
  onToggleSegmentVisibility: onToggleSegmentVisibility,
@@ -517,6 +501,7 @@ PanelSegmentation.propTypes = {
517
501
  commandsManager: prop_types_default().shape({
518
502
  runCommand: (prop_types_default()).func.isRequired
519
503
  }),
504
+ appConfig: (prop_types_default()).object.isRequired,
520
505
  servicesManager: prop_types_default().shape({
521
506
  services: prop_types_default().shape({
522
507
  segmentationService: prop_types_default().shape({
@@ -535,7 +520,6 @@ const segProtocol = {
535
520
  // Don't store this hanging protocol as it applies to the currently active
536
521
  // display set by default
537
522
  // cacheId: null,
538
- hasUpdatedPriorsInformation: false,
539
523
  name: 'Segmentations',
540
524
  // Just apply this one when specifically listed
541
525
  protocolMatchingRules: [],
@@ -594,6 +578,8 @@ function getHangingProtocolModule() {
594
578
  }
595
579
  /* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
596
580
 
581
+ // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/_hydrateSEG.ts
582
+ var _hydrateSEG = __webpack_require__(28417);
597
583
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/index.tsx
598
584
  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); }
599
585
 
@@ -601,8 +587,9 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
601
587
 
602
588
 
603
589
 
590
+
604
591
  const Component = /*#__PURE__*/react.lazy(() => {
605
- return __webpack_require__.e(/* import() */ 569).then(__webpack_require__.bind(__webpack_require__, 33569));
592
+ return __webpack_require__.e(/* import() */ 451).then(__webpack_require__.bind(__webpack_require__, 4451));
606
593
  });
607
594
  const OHIFCornerstoneSEGViewport = props => {
608
595
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -654,7 +641,8 @@ const extension = {
654
641
  const ExtendedOHIFCornerstoneSEGViewport = props => {
655
642
  return /*#__PURE__*/react.createElement(OHIFCornerstoneSEGViewport, _extends({
656
643
  servicesManager: servicesManager,
657
- extensionManager: extensionManager
644
+ extensionManager: extensionManager,
645
+ commandsManager: commandsManager
658
646
  }, props));
659
647
  };
660
648
  return [{
@@ -673,6 +661,69 @@ const extension = {
673
661
  };
674
662
  /* harmony default export */ const cornerstone_dicom_seg_src = (extension);
675
663
 
664
+
665
+ /***/ }),
666
+
667
+ /***/ 28417:
668
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
669
+
670
+ "use strict";
671
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
672
+ /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
673
+ /* harmony export */ });
674
+ async function _hydrateSEGDisplaySet(_ref) {
675
+ let {
676
+ segDisplaySet,
677
+ viewportIndex,
678
+ servicesManager
679
+ } = _ref;
680
+ const {
681
+ segmentationService,
682
+ hangingProtocolService,
683
+ viewportGridService
684
+ } = servicesManager.services;
685
+ const displaySetInstanceUID = segDisplaySet.referencedDisplaySetInstanceUID;
686
+ let segmentationId = null;
687
+
688
+ // We need the hydration to notify panels about the new segmentation added
689
+ const suppressEvents = false;
690
+ segmentationId = await segmentationService.createSegmentationForSEGDisplaySet(segDisplaySet, segmentationId, suppressEvents);
691
+ segmentationService.hydrateSegmentation(segDisplaySet.displaySetInstanceUID);
692
+ const {
693
+ viewports
694
+ } = viewportGridService.getState();
695
+ const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportIndex, displaySetInstanceUID);
696
+
697
+ // Todo: fix this after we have a better way for stack viewport segmentations
698
+
699
+ // check every viewport in the viewports to see if the displaySetInstanceUID
700
+ // is being displayed, if so we need to update the viewport to use volume viewport
701
+ // (if already is not using it) since Cornerstone3D currently only supports
702
+ // volume viewport for segmentation
703
+ viewports.forEach((viewport, index) => {
704
+ if (index === viewportIndex) {
705
+ return;
706
+ }
707
+ const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(viewport.displaySetInstanceUIDs, segDisplaySet.displaySetInstanceUID);
708
+ if (shouldDisplaySeg) {
709
+ updatedViewports.push({
710
+ viewportIndex: index,
711
+ displaySetInstanceUIDs: viewport.displaySetInstanceUIDs,
712
+ viewportOptions: {
713
+ initialImageOptions: {
714
+ preset: 'middle'
715
+ }
716
+ }
717
+ });
718
+ }
719
+ });
720
+
721
+ // Do the entire update at once
722
+ viewportGridService.setDisplaySetsForViewports(updatedViewports);
723
+ return true;
724
+ }
725
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_hydrateSEGDisplaySet);
726
+
676
727
  /***/ }),
677
728
 
678
729
  /***/ 78753: