@ohif/app 3.8.0-beta.8 → 3.8.0-beta.80

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