@ohif/app 3.8.0-beta.7 → 3.8.0-beta.70

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 (93) hide show
  1. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
  2. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.21827fec690c01ee9ab3.js} +85 -112
  3. package/dist/{19.bundle.e5579df6d7b74af50b1d.js → 155.bundle.0dabe8513b605b01ac3d.js} +334 -287
  4. package/dist/{687.bundle.9d0330ea5d61fe3117da.js → 164.bundle.0b1a2be351543c1433e8.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/{506.bundle.ab8226d3d81abe874544.js → 188.bundle.81e83b073b6fd4ae0058.js} +23 -28
  7. package/dist/191.bundle.7d89c921abefd1140d50.js +30360 -0
  8. package/dist/{221.bundle.c2dc03d8fa4235dc1285.js → 2.bundle.04dbbf67a52fe109749c.js} +351 -546
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/290.bundle.952de53057f98e2c5ef0.js +8883 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.3a0d5062d65296c4bf5d.js} +102 -127
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.6e49f63ea7cea4645c0a.js} +544 -860
  14. package/dist/41.bundle.6ec0794a483e9a30eb94.js +831 -0
  15. package/dist/425.bundle.ffcdde2143a5757926b9.js +2957 -0
  16. package/dist/425.css +2 -0
  17. package/dist/{126.bundle.42df2dafc9c0310da188.js → 448.bundle.9177b9d909654efbc8d5.js} +316 -427
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 504.bundle.993d7e2dec36257d4ce4.js} +14338 -27291
  19. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.566bfd08dccb4cf6d98b.js} +75 -105
  20. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1110b24e96863d719a95.js} +39 -56
  21. package/dist/{663.bundle.9f359963019cd8ccf8f9.js → 559.bundle.4f111410af43324629ca.js} +151 -147
  22. package/dist/{181.bundle.a62b9f0ec692299acb35.js → 574.bundle.83afbc7922736fc6846d.js} +1246 -289
  23. package/dist/{181.css → 574.css} +1 -1
  24. package/dist/{410.bundle.38c9d3820e152e89288e.js → 594.bundle.ffeebda1bb9a81182a80.js} +183 -221
  25. package/dist/{776.bundle.004382036bdbd8ee2b95.js → 595.bundle.1c1a50c4ff87763b786a.js} +3128 -1028
  26. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  27. package/dist/699.bundle.db05df7b8e2ad605e928.js +767 -0
  28. package/dist/{359.bundle.8abe0036a7bf6b5fd115.js → 724.bundle.eada9d6c23678a5a2947.js} +130 -254
  29. package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.c8de818cf1a3ff0cf7d2.js} +512 -879
  30. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
  31. package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.959ef65b18c1d3b5e2b4.js} +77 -96
  32. package/dist/{236.bundle.c9e70d55e7b2574c1ecd.js → 889.bundle.67c6e5f988c9b1d289ef.js} +198 -197
  33. package/dist/{342.bundle.d9668551811e3a88aaa4.js → 90.bundle.f41c8c4fc78cdfd4de30.js} +1430 -1055
  34. package/dist/{281.bundle.16a2933086a57e60c96c.js → 905.bundle.eb821474b36b96b897f9.js} +155 -122
  35. package/dist/{814.bundle.a1aba9c1e3d336008351.js → 907.bundle.ca904d9747480a0e4bf1.js} +16 -30
  36. package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
  37. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
  38. package/dist/{12.bundle.37a8b47d2ae587cb9226.js → 961.bundle.65967b1a4af002af1d1d.js} +16 -31
  39. package/dist/987.bundle.6bdfb3cd8762b8889632.js +122950 -0
  40. package/dist/app-config.js +1 -0
  41. package/dist/app.bundle.css +15 -13
  42. package/dist/{app.bundle.437d085e13599d1e1ced.js → app.bundle.e21e5afd46fb064cb5de.js} +147713 -61638
  43. package/dist/assets/images/CT-AAA.png +0 -0
  44. package/dist/assets/images/CT-AAA2.png +0 -0
  45. package/dist/assets/images/CT-Air.png +0 -0
  46. package/dist/assets/images/CT-Bone.png +0 -0
  47. package/dist/assets/images/CT-Bones.png +0 -0
  48. package/dist/assets/images/CT-Cardiac.png +0 -0
  49. package/dist/assets/images/CT-Cardiac2.png +0 -0
  50. package/dist/assets/images/CT-Cardiac3.png +0 -0
  51. package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
  52. package/dist/assets/images/CT-Chest-Vessels.png +0 -0
  53. package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
  54. package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
  55. package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
  56. package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
  57. package/dist/assets/images/CT-Fat.png +0 -0
  58. package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
  59. package/dist/assets/images/CT-Lung.png +0 -0
  60. package/dist/assets/images/CT-MIP.png +0 -0
  61. package/dist/assets/images/CT-Muscle.png +0 -0
  62. package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
  63. package/dist/assets/images/CT-Soft-Tissue.png +0 -0
  64. package/dist/assets/images/DTI-FA-Brain.png +0 -0
  65. package/dist/assets/images/MR-Angio.png +0 -0
  66. package/dist/assets/images/MR-Default.png +0 -0
  67. package/dist/assets/images/MR-MIP.png +0 -0
  68. package/dist/assets/images/MR-T2-Brain.png +0 -0
  69. package/dist/assets/images/VolumeRendering.png +0 -0
  70. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  71. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  72. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
  73. package/dist/index.html +1 -1
  74. package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
  75. package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
  76. package/dist/polySeg.bundle.e7b4c29fb9173e8567b8.js +252 -0
  77. package/dist/serve.json +12 -0
  78. package/dist/sw.js +1 -1
  79. package/package.json +25 -22
  80. package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
  81. package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
  82. package/dist/613.bundle.aed640a7900dbcb688f5.js +0 -532
  83. package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
  84. package/dist/75788f12450d4c5ed494.wasm +0 -0
  85. package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
  86. package/dist/788.bundle.dcd53828d1bb2ac64d04.js +0 -2682
  87. package/dist/82.bundle.5a94dd7645e5c5476f59.js +0 -1049
  88. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  89. /package/dist/{19.css → 155.css} +0 -0
  90. /package/dist/{221.css → 2.css} +0 -0
  91. /package/dist/{579.css → 481.css} +0 -0
  92. /package/dist/{250.css → 544.css} +0 -0
  93. /package/dist/{776.css → 595.css} +0 -0
@@ -0,0 +1,831 @@
1
+ "use strict";
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[41],{
3
+
4
+ /***/ 97041:
5
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
+
7
+ // ESM COMPAT FLAG
8
+ __webpack_require__.r(__webpack_exports__);
9
+
10
+ // EXPORTS
11
+ __webpack_require__.d(__webpack_exports__, {
12
+ "default": () => (/* binding */ longitudinal_src),
13
+ initToolGroups: () => (/* reexport */ src_initToolGroups),
14
+ moreTools: () => (/* reexport */ src_moreTools),
15
+ toolbarButtons: () => (/* reexport */ src_toolbarButtons)
16
+ });
17
+
18
+ // EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
19
+ var src = __webpack_require__(85073);
20
+ // EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
21
+ var i18next = __webpack_require__(92344);
22
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
23
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-longitudinal"}');
24
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/id.js
25
+
26
+ const id = package_namespaceObject.UU;
27
+
28
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/initToolGroups.js
29
+ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId, modeLabelConfig) {
30
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
31
+ const {
32
+ toolNames,
33
+ Enums
34
+ } = utilityModule.exports;
35
+ const tools = {
36
+ active: [{
37
+ toolName: toolNames.WindowLevel,
38
+ bindings: [{
39
+ mouseButton: Enums.MouseBindings.Primary
40
+ }]
41
+ }, {
42
+ toolName: toolNames.Pan,
43
+ bindings: [{
44
+ mouseButton: Enums.MouseBindings.Auxiliary
45
+ }]
46
+ }, {
47
+ toolName: toolNames.Zoom,
48
+ bindings: [{
49
+ mouseButton: Enums.MouseBindings.Secondary
50
+ }]
51
+ }, {
52
+ toolName: toolNames.StackScrollMouseWheel,
53
+ bindings: []
54
+ }],
55
+ passive: [{
56
+ toolName: toolNames.Length
57
+ }, {
58
+ toolName: toolNames.ArrowAnnotate,
59
+ configuration: {
60
+ getTextCallback: (callback, eventDetails) => {
61
+ if (modeLabelConfig) {
62
+ callback(' ');
63
+ } else {
64
+ commandsManager.runCommand('arrowTextCallback', {
65
+ callback,
66
+ eventDetails
67
+ });
68
+ }
69
+ },
70
+ changeTextCallback: (data, eventDetails, callback) => {
71
+ if (modeLabelConfig === undefined) {
72
+ commandsManager.runCommand('arrowTextCallback', {
73
+ callback,
74
+ data,
75
+ eventDetails
76
+ });
77
+ }
78
+ }
79
+ }
80
+ }, {
81
+ toolName: toolNames.Bidirectional
82
+ }, {
83
+ toolName: toolNames.DragProbe
84
+ }, {
85
+ toolName: toolNames.EllipticalROI
86
+ }, {
87
+ toolName: toolNames.CircleROI
88
+ }, {
89
+ toolName: toolNames.RectangleROI
90
+ }, {
91
+ toolName: toolNames.StackScroll
92
+ }, {
93
+ toolName: toolNames.Angle
94
+ }, {
95
+ toolName: toolNames.CobbAngle
96
+ }, {
97
+ toolName: toolNames.PlanarFreehandROI
98
+ }, {
99
+ toolName: toolNames.Magnify
100
+ }, {
101
+ toolName: toolNames.SegmentationDisplay
102
+ }, {
103
+ toolName: toolNames.CalibrationLine
104
+ }],
105
+ // enabled
106
+ enabled: [{
107
+ toolName: toolNames.ImageOverlayViewer
108
+ }, {
109
+ toolName: toolNames.ReferenceLines
110
+ }]
111
+ };
112
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
113
+ }
114
+ function initSRToolGroup(extensionManager, toolGroupService) {
115
+ const SRUtilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone-dicom-sr.utilityModule.tools');
116
+ if (!SRUtilityModule) {
117
+ return;
118
+ }
119
+ const CS3DUtilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
120
+ const {
121
+ toolNames: SRToolNames
122
+ } = SRUtilityModule.exports;
123
+ const {
124
+ toolNames,
125
+ Enums
126
+ } = CS3DUtilityModule.exports;
127
+ const tools = {
128
+ active: [{
129
+ toolName: toolNames.WindowLevel,
130
+ bindings: [{
131
+ mouseButton: Enums.MouseBindings.Primary
132
+ }]
133
+ }, {
134
+ toolName: toolNames.Pan,
135
+ bindings: [{
136
+ mouseButton: Enums.MouseBindings.Auxiliary
137
+ }]
138
+ }, {
139
+ toolName: toolNames.Zoom,
140
+ bindings: [{
141
+ mouseButton: Enums.MouseBindings.Secondary
142
+ }]
143
+ }, {
144
+ toolName: toolNames.StackScrollMouseWheel,
145
+ bindings: []
146
+ }],
147
+ passive: [{
148
+ toolName: SRToolNames.SRLength
149
+ }, {
150
+ toolName: SRToolNames.SRArrowAnnotate
151
+ }, {
152
+ toolName: SRToolNames.SRBidirectional
153
+ }, {
154
+ toolName: SRToolNames.SREllipticalROI
155
+ }, {
156
+ toolName: SRToolNames.SRCircleROI
157
+ }],
158
+ enabled: [{
159
+ toolName: SRToolNames.DICOMSRDisplay,
160
+ bindings: []
161
+ }]
162
+ // disabled
163
+ };
164
+ const toolGroupId = 'SRToolGroup';
165
+ toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
166
+ }
167
+ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, modeLabelConfig) {
168
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
169
+ const {
170
+ toolNames,
171
+ Enums
172
+ } = utilityModule.exports;
173
+ const tools = {
174
+ active: [{
175
+ toolName: toolNames.WindowLevel,
176
+ bindings: [{
177
+ mouseButton: Enums.MouseBindings.Primary
178
+ }]
179
+ }, {
180
+ toolName: toolNames.Pan,
181
+ bindings: [{
182
+ mouseButton: Enums.MouseBindings.Auxiliary
183
+ }]
184
+ }, {
185
+ toolName: toolNames.Zoom,
186
+ bindings: [{
187
+ mouseButton: Enums.MouseBindings.Secondary
188
+ }]
189
+ }, {
190
+ toolName: toolNames.StackScrollMouseWheel,
191
+ bindings: []
192
+ }],
193
+ passive: [{
194
+ toolName: toolNames.Length
195
+ }, {
196
+ toolName: toolNames.ArrowAnnotate,
197
+ configuration: {
198
+ getTextCallback: (callback, eventDetails) => {
199
+ if (modeLabelConfig) {
200
+ callback('');
201
+ } else {
202
+ commandsManager.runCommand('arrowTextCallback', {
203
+ callback,
204
+ eventDetails
205
+ });
206
+ }
207
+ },
208
+ changeTextCallback: (data, eventDetails, callback) => {
209
+ if (modeLabelConfig === undefined) {
210
+ commandsManager.runCommand('arrowTextCallback', {
211
+ callback,
212
+ data,
213
+ eventDetails
214
+ });
215
+ }
216
+ }
217
+ }
218
+ }, {
219
+ toolName: toolNames.Bidirectional
220
+ }, {
221
+ toolName: toolNames.DragProbe
222
+ }, {
223
+ toolName: toolNames.EllipticalROI
224
+ }, {
225
+ toolName: toolNames.CircleROI
226
+ }, {
227
+ toolName: toolNames.RectangleROI
228
+ }, {
229
+ toolName: toolNames.StackScroll
230
+ }, {
231
+ toolName: toolNames.Angle
232
+ }, {
233
+ toolName: toolNames.CobbAngle
234
+ }, {
235
+ toolName: toolNames.PlanarFreehandROI
236
+ }, {
237
+ toolName: toolNames.SegmentationDisplay
238
+ }],
239
+ disabled: [{
240
+ toolName: toolNames.Crosshairs,
241
+ configuration: {
242
+ viewportIndicators: false,
243
+ disableOnPassive: true,
244
+ autoPan: {
245
+ enabled: false,
246
+ panSize: 10
247
+ }
248
+ }
249
+ }, {
250
+ toolName: toolNames.ReferenceLines
251
+ }]
252
+
253
+ // enabled
254
+ // disabled
255
+ };
256
+ toolGroupService.createToolGroupAndAddTools('mpr', tools);
257
+ }
258
+ function initVolume3DToolGroup(extensionManager, toolGroupService) {
259
+ const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
260
+ const {
261
+ toolNames,
262
+ Enums
263
+ } = utilityModule.exports;
264
+ const tools = {
265
+ active: [{
266
+ toolName: toolNames.TrackballRotateTool,
267
+ bindings: [{
268
+ mouseButton: Enums.MouseBindings.Primary
269
+ }]
270
+ }, {
271
+ toolName: toolNames.Zoom,
272
+ bindings: [{
273
+ mouseButton: Enums.MouseBindings.Secondary
274
+ }]
275
+ }, {
276
+ toolName: toolNames.Pan,
277
+ bindings: [{
278
+ mouseButton: Enums.MouseBindings.Auxiliary
279
+ }]
280
+ }]
281
+ };
282
+ toolGroupService.createToolGroupAndAddTools('volume3d', tools);
283
+ }
284
+ function initToolGroups(extensionManager, toolGroupService, commandsManager, modeLabelConfig) {
285
+ initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default', modeLabelConfig);
286
+ initSRToolGroup(extensionManager, toolGroupService, commandsManager);
287
+ initMPRToolGroup(extensionManager, toolGroupService, commandsManager, modeLabelConfig);
288
+ initVolume3DToolGroup(extensionManager, toolGroupService);
289
+ }
290
+ /* harmony default export */ const src_initToolGroups = (initToolGroups);
291
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/toolbarButtons.ts
292
+ // TODO: torn, can either bake this here; or have to create a whole new button type
293
+ // Only ways that you can pass in a custom React component for render :l
294
+
295
+
296
+ const {
297
+ windowLevelPresets
298
+ } = src.defaults;
299
+ const {
300
+ createButton
301
+ } = src.ToolbarService;
302
+ const setToolActiveToolbar = {
303
+ commandName: 'setToolActiveToolbar',
304
+ commandOptions: {
305
+ toolGroupIds: ['default', 'mpr', 'SRToolGroup', 'volume3d']
306
+ }
307
+ };
308
+ const toolbarButtons = [{
309
+ id: 'MeasurementTools',
310
+ uiType: 'ohif.splitButton',
311
+ props: {
312
+ groupId: 'MeasurementTools',
313
+ // group evaluate to determine which item should move to the top
314
+ evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList',
315
+ primary: createButton({
316
+ id: 'Length',
317
+ icon: 'tool-length',
318
+ label: 'Length',
319
+ tooltip: 'Length Tool',
320
+ commands: setToolActiveToolbar,
321
+ evaluate: 'evaluate.cornerstoneTool'
322
+ }),
323
+ secondary: {
324
+ icon: 'chevron-down',
325
+ tooltip: 'More Measure Tools'
326
+ },
327
+ items: [createButton({
328
+ id: 'Length',
329
+ icon: 'tool-length',
330
+ label: 'Length',
331
+ tooltip: 'Length Tool',
332
+ commands: setToolActiveToolbar,
333
+ evaluate: 'evaluate.cornerstoneTool'
334
+ }), createButton({
335
+ id: 'Bidirectional',
336
+ icon: 'tool-bidirectional',
337
+ label: 'Bidirectional',
338
+ tooltip: 'Bidirectional Tool',
339
+ commands: setToolActiveToolbar,
340
+ evaluate: 'evaluate.cornerstoneTool'
341
+ }), createButton({
342
+ id: 'ArrowAnnotate',
343
+ icon: 'tool-annotate',
344
+ label: 'Annotation',
345
+ tooltip: 'Arrow Annotate',
346
+ commands: setToolActiveToolbar,
347
+ evaluate: 'evaluate.cornerstoneTool'
348
+ }), createButton({
349
+ id: 'EllipticalROI',
350
+ icon: 'tool-ellipse',
351
+ label: 'Ellipse',
352
+ tooltip: 'Ellipse ROI',
353
+ commands: setToolActiveToolbar,
354
+ evaluate: 'evaluate.cornerstoneTool'
355
+ }), createButton({
356
+ id: 'CircleROI',
357
+ icon: 'tool-circle',
358
+ label: 'Circle',
359
+ tooltip: 'Circle Tool',
360
+ commands: setToolActiveToolbar,
361
+ evaluate: 'evaluate.cornerstoneTool'
362
+ })]
363
+ }
364
+ }, {
365
+ id: 'Zoom',
366
+ uiType: 'ohif.radioGroup',
367
+ props: {
368
+ icon: 'tool-zoom',
369
+ label: 'Zoom',
370
+ commands: setToolActiveToolbar,
371
+ evaluate: 'evaluate.cornerstoneTool'
372
+ }
373
+ },
374
+ // Window Level
375
+ {
376
+ id: 'WindowLevel',
377
+ uiType: 'ohif.radioGroup',
378
+ props: {
379
+ icon: 'tool-window-level',
380
+ label: 'Window Level',
381
+ commands: setToolActiveToolbar,
382
+ evaluate: 'evaluate.cornerstoneTool'
383
+ }
384
+ },
385
+ // Pan...
386
+ {
387
+ id: 'Pan',
388
+ uiType: 'ohif.radioGroup',
389
+ props: {
390
+ type: 'tool',
391
+ icon: 'tool-move',
392
+ label: 'Pan',
393
+ commands: setToolActiveToolbar,
394
+ evaluate: 'evaluate.cornerstoneTool'
395
+ }
396
+ }, {
397
+ id: 'TrackballRotate',
398
+ uiType: 'ohif.radioGroup',
399
+ props: {
400
+ type: 'tool',
401
+ icon: 'tool-3d-rotate',
402
+ label: '3D Rotate',
403
+ commands: setToolActiveToolbar,
404
+ evaluate: {
405
+ name: 'evaluate.cornerstoneTool',
406
+ disabledText: 'Select a 3D viewport to enable this tool'
407
+ }
408
+ }
409
+ }, {
410
+ id: 'Capture',
411
+ uiType: 'ohif.radioGroup',
412
+ props: {
413
+ icon: 'tool-capture',
414
+ label: 'Capture',
415
+ commands: 'showDownloadViewportModal',
416
+ evaluate: 'evaluate.action'
417
+ }
418
+ }, {
419
+ id: 'Layout',
420
+ uiType: 'ohif.layoutSelector',
421
+ props: {
422
+ rows: 3,
423
+ columns: 4,
424
+ evaluate: 'evaluate.action'
425
+ }
426
+ }, {
427
+ id: 'Crosshairs',
428
+ uiType: 'ohif.radioGroup',
429
+ props: {
430
+ type: 'tool',
431
+ icon: 'tool-crosshair',
432
+ label: 'Crosshairs',
433
+ commands: {
434
+ commandName: 'setToolActiveToolbar',
435
+ commandOptions: {
436
+ toolGroupIds: ['mpr']
437
+ }
438
+ },
439
+ evaluate: {
440
+ name: 'evaluate.cornerstoneTool',
441
+ disabledText: 'Select an MPR viewport to enable this tool'
442
+ }
443
+ }
444
+ }];
445
+ /* harmony default export */ const src_toolbarButtons = (toolbarButtons);
446
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 383 modules
447
+ var esm = __webpack_require__(50719);
448
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/moreTools.ts
449
+
450
+
451
+
452
+ const {
453
+ createButton: moreTools_createButton
454
+ } = src.ToolbarService;
455
+ const ReferenceLinesListeners = [{
456
+ commandName: 'setSourceViewportForReferenceLinesTool',
457
+ context: 'CORNERSTONE'
458
+ }];
459
+ const moreTools = [{
460
+ id: 'MoreTools',
461
+ uiType: 'ohif.splitButton',
462
+ props: {
463
+ groupId: 'MoreTools',
464
+ evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList',
465
+ primary: moreTools_createButton({
466
+ id: 'Reset',
467
+ icon: 'tool-reset',
468
+ tooltip: 'Reset View',
469
+ label: 'Reset',
470
+ commands: 'resetViewport',
471
+ evaluate: 'evaluate.action'
472
+ }),
473
+ secondary: {
474
+ icon: 'chevron-down',
475
+ label: '',
476
+ tooltip: 'More Tools'
477
+ },
478
+ items: [moreTools_createButton({
479
+ id: 'Reset',
480
+ icon: 'tool-reset',
481
+ label: 'Reset View',
482
+ tooltip: 'Reset View',
483
+ commands: 'resetViewport',
484
+ evaluate: 'evaluate.action'
485
+ }), moreTools_createButton({
486
+ id: 'rotate-right',
487
+ icon: 'tool-rotate-right',
488
+ label: 'Rotate Right',
489
+ tooltip: 'Rotate +90',
490
+ commands: 'rotateViewportCW',
491
+ evaluate: 'evaluate.action'
492
+ }), moreTools_createButton({
493
+ id: 'flipHorizontal',
494
+ icon: 'tool-flip-horizontal',
495
+ label: 'Flip Horizontal',
496
+ tooltip: 'Flip Horizontally',
497
+ commands: 'flipViewportHorizontal',
498
+ evaluate: ['evaluate.viewportProperties.toggle', 'evaluate.not3D']
499
+ }), moreTools_createButton({
500
+ id: 'ImageSliceSync',
501
+ icon: 'link',
502
+ label: 'Image Slice Sync',
503
+ tooltip: 'Enable position synchronization on stack viewports',
504
+ commands: {
505
+ commandName: 'toggleSynchronizer',
506
+ commandOptions: {
507
+ type: 'imageSlice'
508
+ }
509
+ },
510
+ listeners: {
511
+ [esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: {
512
+ commandName: 'toggleImageSliceSync',
513
+ commandOptions: {
514
+ toggledState: true
515
+ }
516
+ }
517
+ },
518
+ evaluate: ['evaluate.cornerstone.synchronizer', 'evaluate.not3D']
519
+ }), moreTools_createButton({
520
+ id: 'ReferenceLines',
521
+ icon: 'tool-referenceLines',
522
+ label: 'Reference Lines',
523
+ tooltip: 'Show Reference Lines',
524
+ commands: {
525
+ commandName: 'setToolEnabled',
526
+ commandOptions: {
527
+ toolName: 'ReferenceLines',
528
+ toggle: true // Toggle the tool on/off upon click
529
+ }
530
+ },
531
+ listeners: {
532
+ [src/* ViewportGridService */.sI.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesListeners,
533
+ [src/* ViewportGridService */.sI.EVENTS.VIEWPORTS_READY]: ReferenceLinesListeners
534
+ },
535
+ evaluate: 'evaluate.cornerstoneTool.toggle'
536
+ }), moreTools_createButton({
537
+ id: 'ImageOverlay',
538
+ icon: 'toggle-dicom-overlay',
539
+ label: 'Image Overlay',
540
+ tooltip: 'Toggle Image Overlay',
541
+ commands: {
542
+ commandName: 'setToolEnabled',
543
+ commandOptions: {
544
+ toolName: 'ImageOverlayViewer',
545
+ toggle: true // Toggle the tool on/off upon click
546
+ }
547
+ },
548
+ evaluate: 'evaluate.cornerstoneTool.toggle'
549
+ }), moreTools_createButton({
550
+ id: 'StackScroll',
551
+ icon: 'tool-stack-scroll',
552
+ label: 'Stack Scroll',
553
+ tooltip: 'Stack Scroll',
554
+ commands: setToolActiveToolbar,
555
+ evaluate: 'evaluate.cornerstoneTool'
556
+ }), moreTools_createButton({
557
+ id: 'invert',
558
+ icon: 'tool-invert',
559
+ label: 'Invert',
560
+ tooltip: 'Invert Colors',
561
+ commands: 'invertViewport',
562
+ evaluate: 'evaluate.viewportProperties.toggle'
563
+ }), moreTools_createButton({
564
+ id: 'Probe',
565
+ icon: 'tool-probe',
566
+ label: 'Probe',
567
+ tooltip: 'Probe',
568
+ commands: setToolActiveToolbar,
569
+ evaluate: 'evaluate.cornerstoneTool'
570
+ }), moreTools_createButton({
571
+ id: 'Cine',
572
+ icon: 'tool-cine',
573
+ label: 'Cine',
574
+ tooltip: 'Cine',
575
+ commands: 'toggleCine',
576
+ evaluate: ['evaluate.cine', 'evaluate.not3D']
577
+ }), moreTools_createButton({
578
+ id: 'Angle',
579
+ icon: 'tool-angle',
580
+ label: 'Angle',
581
+ tooltip: 'Angle',
582
+ commands: setToolActiveToolbar,
583
+ evaluate: 'evaluate.cornerstoneTool'
584
+ }), moreTools_createButton({
585
+ id: 'Magnify',
586
+ icon: 'tool-magnify',
587
+ label: 'Magnify',
588
+ tooltip: 'Magnify',
589
+ commands: setToolActiveToolbar,
590
+ evaluate: 'evaluate.cornerstoneTool'
591
+ }), moreTools_createButton({
592
+ id: 'RectangleROI',
593
+ icon: 'tool-rectangle',
594
+ label: 'Rectangle',
595
+ tooltip: 'Rectangle',
596
+ commands: setToolActiveToolbar,
597
+ evaluate: 'evaluate.cornerstoneTool'
598
+ }), moreTools_createButton({
599
+ id: 'CalibrationLine',
600
+ icon: 'tool-calibration',
601
+ label: 'Calibration',
602
+ tooltip: 'Calibration Line',
603
+ commands: setToolActiveToolbar,
604
+ evaluate: 'evaluate.cornerstoneTool'
605
+ }), moreTools_createButton({
606
+ id: 'TagBrowser',
607
+ icon: 'list-bullets',
608
+ label: 'Dicom Tag Browser',
609
+ tooltip: 'Dicom Tag Browser',
610
+ commands: 'openDICOMTagViewer'
611
+ })]
612
+ }
613
+ }];
614
+ /* harmony default export */ const src_moreTools = (moreTools);
615
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.js
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+ // Allow this mode by excluding non-imaging modalities such as SR, SEG
624
+ // Also, SM is not a simple imaging modalities, so exclude it.
625
+ const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT'];
626
+ const ohif = {
627
+ layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
628
+ sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
629
+ thumbnailList: '@ohif/extension-default.panelModule.seriesList'
630
+ };
631
+ const tracked = {
632
+ measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
633
+ thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',
634
+ viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked'
635
+ };
636
+ const dicomsr = {
637
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
638
+ viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr'
639
+ };
640
+ const dicomvideo = {
641
+ sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',
642
+ viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video'
643
+ };
644
+ const dicompdf = {
645
+ sopClassHandler: '@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf',
646
+ viewport: '@ohif/extension-dicom-pdf.viewportModule.dicom-pdf'
647
+ };
648
+ const dicomSeg = {
649
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
650
+ viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',
651
+ panel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation'
652
+ };
653
+ const dicomRT = {
654
+ viewport: '@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt',
655
+ sopClassHandler: '@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt'
656
+ };
657
+ const extensionDependencies = {
658
+ // Can derive the versions at least process.env.from npm_package_version
659
+ '@ohif/extension-default': '^3.0.0',
660
+ '@ohif/extension-cornerstone': '^3.0.0',
661
+ '@ohif/extension-measurement-tracking': '^3.0.0',
662
+ '@ohif/extension-cornerstone-dicom-sr': '^3.0.0',
663
+ '@ohif/extension-cornerstone-dicom-seg': '^3.0.0',
664
+ '@ohif/extension-cornerstone-dicom-rt': '^3.0.0',
665
+ '@ohif/extension-dicom-pdf': '^3.0.1',
666
+ '@ohif/extension-dicom-video': '^3.0.1'
667
+ };
668
+ function modeFactory({
669
+ modeConfiguration
670
+ }) {
671
+ let _activatePanelTriggersSubscriptions = [];
672
+ return {
673
+ // TODO: We're using this as a route segment
674
+ // We should not be.
675
+ id: id,
676
+ routeName: 'viewer',
677
+ displayName: i18next/* default */.A.t('Modes:Basic Viewer'),
678
+ /**
679
+ * Lifecycle hooks
680
+ */
681
+ onModeEnter: function ({
682
+ servicesManager,
683
+ extensionManager,
684
+ commandsManager
685
+ }) {
686
+ const {
687
+ measurementService,
688
+ toolbarService,
689
+ toolGroupService,
690
+ customizationService
691
+ } = servicesManager.services;
692
+ measurementService.clearMeasurements();
693
+
694
+ // customizationService.addModeCustomizations([
695
+ // {
696
+ // id: 'measurementLabels',
697
+ // labelOnMeasure: true,
698
+ // exclusive: true,
699
+ // items: [
700
+ // { value: 'Head', label: 'Head' },
701
+ // { value: 'Shoulder', label: 'Shoulder' },
702
+ // { value: 'Knee', label: 'Knee' },
703
+ // { value: 'Toe', label: 'Toe' },
704
+ // ],
705
+ // },
706
+ // ]);
707
+
708
+ // Init Default and SR ToolGroups
709
+ src_initToolGroups(extensionManager, toolGroupService, commandsManager, this.labelConfig);
710
+ toolbarService.addButtons([...src_toolbarButtons, ...src_moreTools]);
711
+ toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'Pan', 'TrackballRotate', 'WindowLevel', 'Capture', 'Layout', 'Crosshairs', 'MoreTools']);
712
+ customizationService.addModeCustomizations([{
713
+ id: 'segmentation.disableEditing',
714
+ value: true
715
+ }]);
716
+
717
+ // // ActivatePanel event trigger for when a segmentation or measurement is added.
718
+ // // Do not force activation so as to respect the state the user may have left the UI in.
719
+ // _activatePanelTriggersSubscriptions = [
720
+ // ...panelService.addActivatePanelTriggers(dicomSeg.panel, [
721
+ // {
722
+ // sourcePubSubService: segmentationService,
723
+ // sourceEvents: [
724
+ // segmentationService.EVENTS.SEGMENTATION_PIXEL_DATA_CREATED,
725
+ // ],
726
+ // },
727
+ // ]),
728
+ // ...panelService.addActivatePanelTriggers(tracked.measurements, [
729
+ // {
730
+ // sourcePubSubService: measurementService,
731
+ // sourceEvents: [
732
+ // measurementService.EVENTS.MEASUREMENT_ADDED,
733
+ // measurementService.EVENTS.RAW_MEASUREMENT_ADDED,
734
+ // ],
735
+ // },
736
+ // ]),
737
+ // ];
738
+ },
739
+ onModeExit: ({
740
+ servicesManager
741
+ }) => {
742
+ const {
743
+ toolGroupService,
744
+ syncGroupService,
745
+ segmentationService,
746
+ cornerstoneViewportService,
747
+ uiDialogService,
748
+ uiModalService
749
+ } = servicesManager.services;
750
+ _activatePanelTriggersSubscriptions.forEach(sub => sub.unsubscribe());
751
+ _activatePanelTriggersSubscriptions = [];
752
+ uiDialogService.dismissAll();
753
+ uiModalService.hide();
754
+ toolGroupService.destroy();
755
+ syncGroupService.destroy();
756
+ segmentationService.destroy();
757
+ cornerstoneViewportService.destroy();
758
+ },
759
+ validationTags: {
760
+ study: [],
761
+ series: []
762
+ },
763
+ isValidMode: function ({
764
+ modalities
765
+ }) {
766
+ const modalities_list = modalities.split('\\');
767
+
768
+ // Exclude non-image modalities
769
+ return {
770
+ valid: !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1).length,
771
+ description: 'The mode does not support studies that ONLY include the following modalities: SM, ECG, SR, SEG, RTSTRUCT'
772
+ };
773
+ },
774
+ routes: [{
775
+ path: 'longitudinal',
776
+ /*init: ({ servicesManager, extensionManager }) => {
777
+ //defaultViewerRouteInit
778
+ },*/
779
+ layoutTemplate: () => {
780
+ return {
781
+ id: ohif.layout,
782
+ props: {
783
+ leftPanels: [tracked.thumbnailList],
784
+ rightPanels: [dicomSeg.panel, tracked.measurements],
785
+ rightPanelDefaultClosed: true,
786
+ viewports: [{
787
+ namespace: tracked.viewport,
788
+ displaySetsToDisplay: [ohif.sopClassHandler]
789
+ }, {
790
+ namespace: dicomsr.viewport,
791
+ displaySetsToDisplay: [dicomsr.sopClassHandler]
792
+ }, {
793
+ namespace: dicomvideo.viewport,
794
+ displaySetsToDisplay: [dicomvideo.sopClassHandler]
795
+ }, {
796
+ namespace: dicompdf.viewport,
797
+ displaySetsToDisplay: [dicompdf.sopClassHandler]
798
+ }, {
799
+ namespace: dicomSeg.viewport,
800
+ displaySetsToDisplay: [dicomSeg.sopClassHandler]
801
+ }, {
802
+ namespace: dicomRT.viewport,
803
+ displaySetsToDisplay: [dicomRT.sopClassHandler]
804
+ }]
805
+ }
806
+ };
807
+ }
808
+ }],
809
+ extensions: extensionDependencies,
810
+ // Default protocol gets self-registered by default in the init
811
+ hangingProtocol: 'default',
812
+ // Order is important in sop class handlers when two handlers both use
813
+ // the same sop class under different situations. In that case, the more
814
+ // general handler needs to come last. For this case, the dicomvideo must
815
+ // come first to remove video transfer syntax before ohif uses images
816
+ sopClassHandlers: [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, ohif.sopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler, dicomRT.sopClassHandler],
817
+ hotkeys: [...src/* hotkeys */.ot.defaults.hotkeyBindings],
818
+ ...modeConfiguration
819
+ };
820
+ }
821
+ const mode = {
822
+ id: id,
823
+ modeFactory,
824
+ extensionDependencies
825
+ };
826
+ /* harmony default export */ const longitudinal_src = (mode);
827
+
828
+
829
+ /***/ })
830
+
831
+ }]);