@ohif/app 3.13.0-beta.116 → 3.13.0-beta.118

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 (47) hide show
  1. package/dist/{1206.bundle.47f070e2254d128c.js → 1206.bundle.e04ca1efe6f987ba.js} +1 -1
  2. package/dist/1483.bundle.5a98bf0d4c26aa01.js +470 -0
  3. package/dist/{1602.bundle.097ec19e8e61516f.js → 1602.bundle.2a0e1a9a73063ab5.js} +2 -2
  4. package/dist/{7701.bundle.945445d6681ddd20.js → 2343.bundle.931645133f98ca47.js} +990 -7
  5. package/dist/{3500.bundle.1e063b7b4910d6cf.js → 3500.bundle.7afd6d2e9345fca0.js} +1 -1
  6. package/dist/{3760.bundle.6c7eeb4b7f1583ca.js → 3760.bundle.553d1b88392a20b4.js} +2 -2
  7. package/dist/{5448.bundle.1e50777e4c4e122a.js → 5448.bundle.5686ebb99c379f64.js} +1 -1
  8. package/dist/{5696.bundle.9f0366ad867385bc.js → 5696.bundle.615658b8dead54ce.js} +7 -4
  9. package/dist/{5910.bundle.5561806884c95754.js → 5910.bundle.0f19608f3e76859b.js} +2 -2
  10. package/dist/{419.bundle.9d0e6a72e1e3a17b.js → 6749.bundle.ed2f94d2dd4c9a24.js} +288 -62
  11. package/dist/{7248.bundle.f761b21f343d4b9f.js → 7248.bundle.4c7d834f2ec140c7.js} +2 -2
  12. package/dist/{7295.bundle.4d4b6de4d2bb8856.js → 7499.bundle.743782416c5f430e.js} +502 -5
  13. package/dist/{781.bundle.efb0a6981676cebb.js → 781.bundle.d353624c7a811425.js} +2 -2
  14. package/dist/{8423.bundle.5d1b3092bc9562c9.js → 8423.bundle.1f3a472a7f691c1a.js} +2 -2
  15. package/dist/8492.bundle.44a55a259584d665.js +504 -0
  16. package/dist/8595.css +2 -0
  17. package/dist/{899.bundle.e786f8dfb66d74ca.js → 899.bundle.50c16f860acbc848.js} +2 -2
  18. package/dist/{9068.bundle.cd36fcb4e15a153e.js → 9068.bundle.95f1e638ef694ea9.js} +2 -2
  19. package/dist/{9402.bundle.6549cc304496cd5c.js → 9402.bundle.57041a8d06a36e8e.js} +2 -2
  20. package/dist/{9415.bundle.2a970c71de4014bf.js → 9415.bundle.770426487f8c0dfa.js} +2 -2
  21. package/dist/{9437.bundle.0fff227a859992ea.js → 9437.bundle.0045fb70b8fa0e7b.js} +107 -123
  22. package/dist/app-config.js +1 -1
  23. package/dist/{app.bundle.55057e411d635dc3.js → app.bundle.707ae3540bb211e8.js} +203 -36
  24. package/dist/customizations/index.html +400 -0
  25. package/dist/customizations/segmentation/segmentationAnnotationTools.jsonc +48 -0
  26. package/dist/customizations/segmentation/segmentationEditing.jsonc +59 -0
  27. package/dist/customizations/{ctPresets.jsonc → tools/ctPresets.jsonc} +1 -1
  28. package/dist/customizations/{measurementLabels.jsonc → tools/measurementLabels.jsonc} +1 -1
  29. package/dist/customizations/{smoothRotate.jsonc → tools/smoothRotate.jsonc} +1 -1
  30. package/dist/customizations/veterinary/veterinary.jsonc +5 -0
  31. package/dist/customizations/{veterinaryOverlay.jsonc → veterinary/veterinaryOverlay.jsonc} +3 -3
  32. package/dist/customizations/{patientBirthDate.jsonc → worklist/patientBirthDate.jsonc} +2 -2
  33. package/dist/index.html +1 -1
  34. package/dist/sw.js +1 -1
  35. package/package.json +5 -5
  36. package/dist/4834.bundle.a91450199d0f45e4.js +0 -900
  37. package/dist/6001.bundle.0789789db5410764.js +0 -1529
  38. package/dist/customizations/veterinary.jsonc +0 -5
  39. /package/dist/{100.bundle.ac04a425c0851574.js → 100.bundle.6ba1a0be02710b9f.js} +0 -0
  40. /package/dist/{1180.bundle.c19c443fe8d26719.js → 1180.bundle.25017eea64524896.js} +0 -0
  41. /package/dist/{2779.bundle.dca036a18399be96.js → 2779.bundle.56f7da594c887ff6.js} +0 -0
  42. /package/dist/{4556.bundle.b705ab15473128c7.js → 4556.bundle.454bc9719a06bc3f.js} +0 -0
  43. /package/dist/{4683.bundle.5d12928efa9f70f4.js → 4683.bundle.bfb5c3739e9886b5.js} +0 -0
  44. /package/dist/{7295.css → 8492.css} +0 -0
  45. /package/dist/{8832.bundle.ede981706cac8e15.js → 8832.bundle.6f31a982f82b96da.js} +0 -0
  46. /package/dist/{9116.bundle.225e003c28c550c1.js → 9116.bundle.079a64a12966429c.js} +0 -0
  47. /package/dist/{9290.bundle.a18c40b82772a3c6.js → 9290.bundle.db0d1eb62fa6ee8b.js} +0 -0
@@ -9,7 +9,7 @@ __webpack_require__.d(__webpack_exports__, {
9
9
  /* import */ var prop_types__rspack_import_1 = __webpack_require__(97598);
10
10
  /* import */ var prop_types__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(prop_types__rspack_import_1);
11
11
  /* import */ var _ohif_ui_next__rspack_import_2 = __webpack_require__(39987);
12
- /* import */ var _ohif_extension_cornerstone__rspack_import_3 = __webpack_require__(28772);
12
+ /* import */ var _ohif_extension_cornerstone__rspack_import_3 = __webpack_require__(86714);
13
13
  /* import */ var _cornerstonejs_tools__rspack_import_4 = __webpack_require__(55526);
14
14
  /* import */ var _getContextModule__rspack_import_5 = __webpack_require__(28835);
15
15
  /* import */ var _cornerstonejs_core__rspack_import_6 = __webpack_require__(88479);
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+ (globalThis["rspackChunk"] = globalThis["rspackChunk"] || []).push([[1483], {
3
+ 77798(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
4
+
5
+ // EXPORTS
6
+ __webpack_require__.d(__webpack_exports__, {
7
+ "default": () => (/* binding */ segmentation_src)
8
+ });
9
+
10
+ // UNUSED EXPORTS: customizations, initToolGroups, modeInstance, onModeEnter, segmentationLayout, segmentationRoute
11
+
12
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/package.json
13
+ var package_namespaceObject = JSON.parse('{"UU":"@ohif/mode-segmentation"}')
14
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/src/id.js
15
+
16
+ const id = package_namespaceObject.UU;
17
+
18
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/src/constants.ts
19
+ const MIN_SEGMENTATION_DRAWING_RADIUS = 0.5;
20
+ const MAX_SEGMENTATION_DRAWING_RADIUS = 99.5;
21
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/src/initToolGroups.ts
22
+
23
+ const colours = {
24
+ 'viewport-0': 'rgb(200, 0, 0)',
25
+ 'viewport-1': 'rgb(200, 200, 0)',
26
+ 'viewport-2': 'rgb(0, 200, 0)'
27
+ };
28
+ const colorsByOrientation = {
29
+ axial: 'rgb(200, 0, 0)',
30
+ sagittal: 'rgb(200, 200, 0)',
31
+ coronal: 'rgb(0, 200, 0)'
32
+ };
33
+ function createTools({
34
+ utilityModule,
35
+ commandsManager
36
+ }) {
37
+ const {
38
+ toolNames,
39
+ Enums
40
+ } = utilityModule.exports;
41
+ const tools = {
42
+ active: [{
43
+ toolName: toolNames.WindowLevel,
44
+ bindings: [{
45
+ mouseButton: Enums.MouseBindings.Primary
46
+ }]
47
+ }, {
48
+ toolName: toolNames.Pan,
49
+ bindings: [{
50
+ mouseButton: Enums.MouseBindings.Auxiliary
51
+ }]
52
+ }, {
53
+ toolName: toolNames.Zoom,
54
+ bindings: [{
55
+ mouseButton: Enums.MouseBindings.Secondary
56
+ }, {
57
+ numTouchPoints: 2
58
+ }]
59
+ }, {
60
+ toolName: toolNames.StackScroll,
61
+ bindings: [{
62
+ mouseButton: Enums.MouseBindings.Wheel
63
+ }, {
64
+ numTouchPoints: 3
65
+ }]
66
+ }],
67
+ passive: [{
68
+ toolName: 'CircularBrush',
69
+ parentTool: 'Brush',
70
+ configuration: {
71
+ activeStrategy: 'FILL_INSIDE_CIRCLE',
72
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
73
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
74
+ }
75
+ }, {
76
+ toolName: toolNames.LabelmapSlicePropagation
77
+ }, {
78
+ toolName: toolNames.MarkerLabelmap
79
+ }, {
80
+ toolName: toolNames.RegionSegmentPlus
81
+ }, {
82
+ toolName: 'CircularEraser',
83
+ parentTool: 'Brush',
84
+ configuration: {
85
+ activeStrategy: 'ERASE_INSIDE_CIRCLE',
86
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
87
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
88
+ }
89
+ }, {
90
+ toolName: 'SphereBrush',
91
+ parentTool: 'Brush',
92
+ configuration: {
93
+ activeStrategy: 'FILL_INSIDE_SPHERE',
94
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
95
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
96
+ }
97
+ }, {
98
+ toolName: 'SphereEraser',
99
+ parentTool: 'Brush',
100
+ configuration: {
101
+ activeStrategy: 'ERASE_INSIDE_SPHERE',
102
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
103
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
104
+ }
105
+ }, {
106
+ toolName: 'ThresholdCircularBrush',
107
+ parentTool: 'Brush',
108
+ configuration: {
109
+ activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
110
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
111
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
112
+ }
113
+ }, {
114
+ toolName: 'ThresholdSphereBrush',
115
+ parentTool: 'Brush',
116
+ configuration: {
117
+ activeStrategy: 'THRESHOLD_INSIDE_SPHERE',
118
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
119
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5)
120
+ }
121
+ }, {
122
+ toolName: 'ThresholdCircularBrushDynamic',
123
+ parentTool: 'Brush',
124
+ configuration: {
125
+ activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',
126
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
127
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5),
128
+ threshold: {
129
+ isDynamic: true,
130
+ dynamicRadius: 3
131
+ }
132
+ }
133
+ }, {
134
+ toolName: toolNames.SegmentBidirectional
135
+ }, {
136
+ toolName: toolNames.SegmentSelect
137
+ }, {
138
+ toolName: 'ThresholdSphereBrushDynamic',
139
+ parentTool: 'Brush',
140
+ configuration: {
141
+ activeStrategy: 'THRESHOLD_INSIDE_SPHERE',
142
+ minRadius: (/* inlined export .MIN_SEGMENTATION_DRAWING_RADIUS */0.5),
143
+ maxRadius: (/* inlined export .MAX_SEGMENTATION_DRAWING_RADIUS */99.5),
144
+ threshold: {
145
+ isDynamic: true,
146
+ dynamicRadius: 3
147
+ }
148
+ }
149
+ }, {
150
+ toolName: toolNames.LabelMapEditWithContourTool
151
+ }, {
152
+ toolName: toolNames.CircleScissors
153
+ }, {
154
+ toolName: toolNames.RectangleScissors
155
+ }, {
156
+ toolName: toolNames.SphereScissors
157
+ }, {
158
+ toolName: toolNames.StackScroll
159
+ }, {
160
+ toolName: toolNames.Magnify
161
+ }, {
162
+ toolName: toolNames.WindowLevelRegion
163
+ }, {
164
+ toolName: toolNames.UltrasoundDirectional
165
+ }, {
166
+ toolName: toolNames.PlanarFreehandContourSegmentation
167
+ }, {
168
+ toolName: toolNames.LivewireContourSegmentation
169
+ }, {
170
+ toolName: toolNames.SculptorTool
171
+ }, {
172
+ toolName: toolNames.PlanarFreehandROI
173
+ }, {
174
+ toolName: 'CatmullRomSplineROI',
175
+ parentTool: toolNames.SplineContourSegmentation,
176
+ configuration: {
177
+ spline: {
178
+ type: 'CATMULLROM',
179
+ enableTwoPointPreview: true
180
+ }
181
+ }
182
+ }, {
183
+ toolName: 'LinearSplineROI',
184
+ parentTool: toolNames.SplineContourSegmentation,
185
+ configuration: {
186
+ spline: {
187
+ type: 'LINEAR',
188
+ enableTwoPointPreview: true
189
+ }
190
+ }
191
+ }, {
192
+ toolName: 'BSplineROI',
193
+ parentTool: toolNames.SplineContourSegmentation,
194
+ configuration: {
195
+ spline: {
196
+ type: 'BSPLINE',
197
+ enableTwoPointPreview: true
198
+ }
199
+ }
200
+ }],
201
+ disabled: [{
202
+ toolName: toolNames.ReferenceLines
203
+ }, {
204
+ toolName: toolNames.AdvancedMagnify
205
+ }]
206
+ };
207
+ const updatedTools = commandsManager.run('initializeSegmentLabelTool', {
208
+ tools
209
+ });
210
+ return updatedTools;
211
+ }
212
+ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {
213
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
214
+ const tools = createTools({
215
+ commandsManager,
216
+ utilityModule
217
+ });
218
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
219
+ }
220
+ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
221
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
222
+ const servicesManager = extensionManager._servicesManager;
223
+ const {
224
+ cornerstoneViewportService
225
+ } = servicesManager.services;
226
+ const tools = createTools({
227
+ commandsManager,
228
+ utilityModule
229
+ });
230
+ tools.disabled.push({
231
+ toolName: utilityModule.exports.toolNames.Crosshairs,
232
+ configuration: {
233
+ viewportIndicators: true,
234
+ viewportIndicatorsConfig: {
235
+ circleRadius: 5,
236
+ xOffset: 0.95,
237
+ yOffset: 0.05
238
+ },
239
+ disableOnPassive: true,
240
+ autoPan: {
241
+ enabled: false,
242
+ panSize: 10
243
+ },
244
+ getReferenceLineColor: viewportId => {
245
+ const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
246
+ const viewportOptions = viewportInfo?.viewportOptions;
247
+ if (viewportOptions) {
248
+ return colours[viewportOptions.id] || colorsByOrientation[viewportOptions.orientation] || '#0c0';
249
+ } else {
250
+ console.warn('missing viewport?', viewportId);
251
+ return '#0c0';
252
+ }
253
+ }
254
+ }
255
+ }, {
256
+ toolName: utilityModule.exports.toolNames.ReferenceLines
257
+ });
258
+ toolGroupService.createToolGroupAndAddTools('mpr', tools);
259
+ }
260
+ function initVolume3DToolGroup(extensionManager, toolGroupService) {
261
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
262
+ const {
263
+ toolNames,
264
+ Enums
265
+ } = utilityModule.exports;
266
+ const tools = {
267
+ active: [{
268
+ toolName: toolNames.TrackballRotateTool,
269
+ bindings: [{
270
+ mouseButton: Enums.MouseBindings.Primary
271
+ }]
272
+ }, {
273
+ toolName: toolNames.Zoom,
274
+ bindings: [{
275
+ mouseButton: Enums.MouseBindings.Secondary
276
+ }, {
277
+ numTouchPoints: 2
278
+ }]
279
+ }, {
280
+ toolName: toolNames.Pan,
281
+ bindings: [{
282
+ mouseButton: Enums.MouseBindings.Auxiliary
283
+ }]
284
+ }]
285
+ };
286
+ toolGroupService.createToolGroupAndAddTools('volume3d', tools);
287
+ }
288
+ function initToolGroups({
289
+ extensionManager,
290
+ toolGroupService,
291
+ commandsManager
292
+ }) {
293
+ initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');
294
+ initMPRToolGroup(extensionManager, toolGroupService, commandsManager);
295
+ initVolume3DToolGroup(extensionManager, toolGroupService);
296
+ }
297
+ /* export default */ const src_initToolGroups = (initToolGroups);
298
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/src/utils/setUpAutoTabSwitchHandler.ts
299
+ /**
300
+ * Sets up auto tab switching for when the first segmentation is added into the viewer.
301
+ */
302
+ function setUpAutoTabSwitchHandler({
303
+ segmentationService,
304
+ viewportGridService,
305
+ panelService
306
+ }) {
307
+ const autoTabSwitchEvents = [segmentationService.EVENTS.SEGMENTATION_MODIFIED, segmentationService.EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED];
308
+
309
+ // Initially there are no segmentations, so we should switch the tab whenever the first segmentation is added.
310
+ let shouldSwitchTab = true;
311
+ const unsubscribeAutoTabSwitchEvents = autoTabSwitchEvents.map(eventName => segmentationService.subscribe(eventName, () => {
312
+ const segmentations = segmentationService.getSegmentations();
313
+ if (!segmentations.length) {
314
+ // If all the segmentations are removed, then the next time a segmentation is added, we should switch the tab.
315
+ shouldSwitchTab = true;
316
+ return;
317
+ }
318
+ const activeViewportId = viewportGridService.getActiveViewportId();
319
+ const activeRepresentation = segmentationService.getSegmentationRepresentations(activeViewportId)?.find(representation => representation.active);
320
+ if (activeRepresentation && shouldSwitchTab) {
321
+ shouldSwitchTab = false;
322
+ switch (activeRepresentation.type) {
323
+ case 'Labelmap':
324
+ panelService.activatePanel('@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsLabelMap', true);
325
+ break;
326
+ case 'Contour':
327
+ panelService.activatePanel('@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsContour', true);
328
+ break;
329
+ }
330
+ }
331
+ })).map(subscription => subscription.unsubscribe);
332
+ return {
333
+ unsubscribeAutoTabSwitchEvents
334
+ };
335
+ }
336
+ // EXTERNAL MODULE: ../../../modes/basic/src/index.tsx + 4 modules
337
+ var src = __webpack_require__(69932);
338
+ ;// CONCATENATED MODULE: ../../../modes/segmentation/src/index.tsx
339
+
340
+
341
+
342
+
343
+
344
+ /**
345
+ * Extends the basic mode enter with the segmentation panel auto tab switch
346
+ * handling (switching between labelmap/contour panels as segmentations of the
347
+ * relevant type become active).
348
+ */
349
+ function onModeEnter(ctx) {
350
+ src/* .onModeEnter.call */.jQ.call(this, ctx);
351
+ const {
352
+ segmentationService,
353
+ viewportGridService,
354
+ panelService
355
+ } = ctx.servicesManager.services;
356
+ const {
357
+ unsubscribeAutoTabSwitchEvents
358
+ } = setUpAutoTabSwitchHandler({
359
+ segmentationService,
360
+ viewportGridService,
361
+ panelService
362
+ });
363
+ this._unsubscriptions.push(...unsubscribeAutoTabSwitchEvents);
364
+ }
365
+ const segmentationLayout = {
366
+ id: src/* .ohif.layout */.Dt.layout,
367
+ props: {
368
+ // Literal panel lists; the mode route seeds them into the standard
369
+ // `leftPanels` / `rightPanels` customizations so `mode` phase
370
+ // blocks and global customizations can modify them.
371
+ leftPanels: [src/* .ohif.thumbnailList */.Dt.thumbnailList],
372
+ leftPanelResizable: true,
373
+ rightPanels: [src/* .cornerstone.labelMapSegmentationPanel */.Nu.labelMapSegmentationPanel, src/* .cornerstone.contourSegmentationPanel */.Nu.contourSegmentationPanel],
374
+ rightPanelResizable: true,
375
+ viewports: [{
376
+ namespace: src/* .cornerstone.viewport */.Nu.viewport,
377
+ displaySetsToDisplay: [src/* .ohif.sopClassHandler */.Dt.sopClassHandler]
378
+ }, {
379
+ namespace: src/* .segmentation.viewport */.b2.viewport,
380
+ displaySetsToDisplay: [src/* .segmentation.sopClassHandler */.b2.sopClassHandler]
381
+ }, {
382
+ namespace: src/* .dicomRT.viewport */.V6.viewport,
383
+ displaySetsToDisplay: [src/* .dicomRT.sopClassHandler */.V6.sopClassHandler]
384
+ }]
385
+ }
386
+ };
387
+ const segmentationRoute = {
388
+ path: 'template',
389
+ layoutTemplate: src/* .layoutTemplate */.ZM,
390
+ layoutInstance: segmentationLayout
391
+ };
392
+ const modeInstance = {
393
+ id: id,
394
+ routeName: 'segmentation',
395
+ displayName: 'Segmentation',
396
+ // Toolbar/tool-group composition: which capability packs this mode uses.
397
+ // The mode route seeds these onto the Mode customization scope on enter, so
398
+ // `?customization=` modules extend them through the `mode` phase (e.g. add
399
+ // the annotation tools/buttons). Pack names are resolved when the toolbar is
400
+ // registered.
401
+ toolbarButtons: [{
402
+ $reference: 'cornerstone.toolbarButtons'
403
+ }, {
404
+ $reference: 'cornerstone.segmentationToolbarButtons'
405
+ }],
406
+ toolbarSections: [{
407
+ $reference: 'cornerstone.segmentationModeToolbarSections'
408
+ }, {
409
+ $reference: 'cornerstone.segmentationToolbarSections'
410
+ }],
411
+ toolGroupAdditions: {
412
+ default: [],
413
+ mpr: [],
414
+ volume3d: []
415
+ },
416
+ // Tool group setup used by onModeEnter; extending modes can replace it.
417
+ initToolGroups: src_initToolGroups,
418
+ // The mode's own customizations, applied by the mode route as the bottom
419
+ // layer of the mode scope. Unlike basic, the registered block is empty (no
420
+ // `panelSegmentation.disableEditing`): the segmentation panel is editable.
421
+ modeCustomizations: 'segmentationModeCustomizations',
422
+ activatePanelTriggers: [],
423
+ /**
424
+ * Lifecycle hooks
425
+ */
426
+ onModeEnter,
427
+ onModeExit: src/* .onModeExit */.$2,
428
+ validationTags: {
429
+ study: [],
430
+ series: []
431
+ },
432
+ // Data-driven validity: valid unless the study ONLY contains modalities that
433
+ // segmentation cannot be performed on.
434
+ isValidMode: src/* .isValidMode */.ur,
435
+ nonModeModalities: ['SM', 'ECG', 'OT', 'DOC'],
436
+ routes: [segmentationRoute],
437
+ extensions: src/* .extensionDependencies */.tR,
438
+ // Prefer the grid layout hanging protocol when applicable.
439
+ hangingProtocol: ['@ohif/mnGrid'],
440
+ sopClassHandlers: [src/* .ohif.sopClassHandler */.Dt.sopClassHandler, src/* .segmentation.sopClassHandler */.b2.sopClassHandler, src/* .dicomRT.sopClassHandler */.V6.sopClassHandler]
441
+ };
442
+
443
+ /**
444
+ * Customizations the mode registers (Default scope) when it loads. The mode's
445
+ * own block is empty — the segmentation panel is editable in this mode — but
446
+ * it is registered so bootstrap / `?customization=` modules can add
447
+ * mode-scoped values to it.
448
+ */
449
+ const customizations = {
450
+ segmentationModeCustomizations: {}
451
+ };
452
+
453
+ /**
454
+ * The mode uses the basic mode's `modeFactory`, which applies
455
+ * immutability-helper commands from `modeConfiguration` onto `modeInstance`,
456
+ * so a site can define a `mySegmentation` mode that extends this one.
457
+ */
458
+ const mode = {
459
+ id: id,
460
+ modeFactory: src/* .modeFactory */.U1,
461
+ modeInstance,
462
+ extensionDependencies: src/* .extensionDependencies */.tR,
463
+ customizations
464
+ };
465
+ /* export default */ const segmentation_src = (mode);
466
+
467
+
468
+ },
469
+
470
+ }]);
@@ -1116,8 +1116,8 @@ function WorkflowPanel({
1116
1116
 
1117
1117
  // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 147 modules
1118
1118
  var default_src = __webpack_require__(7825);
1119
- // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 198 modules
1120
- var cornerstone_src = __webpack_require__(28772);
1119
+ // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 200 modules
1120
+ var cornerstone_src = __webpack_require__(86714);
1121
1121
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx
1122
1122
 
1123
1123