@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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[359],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[724],{
3
3
 
4
- /***/ 22359:
4
+ /***/ 28724:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -12,10 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ tmtv_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
16
- var src = __webpack_require__(71771);
17
- // EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
18
- var ui_src = __webpack_require__(22582);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
16
+ var src = __webpack_require__(85073);
19
17
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/initToolGroups.js
20
18
  const toolGroupIds = {
21
19
  CT: 'ctToolGroup',
@@ -25,8 +23,7 @@ const toolGroupIds = {
25
23
  default: 'default'
26
24
  // MPR: 'mpr',
27
25
  };
28
-
29
- function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
26
+ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig) {
30
27
  const tools = {
31
28
  active: [{
32
29
  toolName: toolNames.WindowLevel,
@@ -53,16 +50,24 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
53
50
  toolName: toolNames.ArrowAnnotate,
54
51
  configuration: {
55
52
  getTextCallback: (callback, eventDetails) => {
56
- commandsManager.runCommand('arrowTextCallback', {
57
- callback,
58
- eventDetails
59
- });
53
+ if (modeLabelConfig) {
54
+ callback(' ');
55
+ } else {
56
+ commandsManager.runCommand('arrowTextCallback', {
57
+ callback,
58
+ eventDetails
59
+ });
60
+ }
60
61
  },
61
- changeTextCallback: (data, eventDetails, callback) => commandsManager.runCommand('arrowTextCallback', {
62
- callback,
63
- data,
64
- eventDetails
65
- })
62
+ changeTextCallback: (data, eventDetails, callback) => {
63
+ if (modeLabelConfig === undefined) {
64
+ commandsManager.runCommand('arrowTextCallback', {
65
+ callback,
66
+ data,
67
+ eventDetails
68
+ });
69
+ }
70
+ }
66
71
  }
67
72
  }, {
68
73
  toolName: toolNames.Bidirectional
@@ -90,6 +95,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
90
95
  toolName: toolNames.Crosshairs,
91
96
  configuration: {
92
97
  viewportIndicators: false,
98
+ disableOnPassive: true,
93
99
  autoPan: {
94
100
  enabled: false,
95
101
  panSize: 10
@@ -112,7 +118,7 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
112
118
  active: [{
113
119
  toolName: toolNames.VolumeRotateMouseWheel,
114
120
  configuration: {
115
- rotateIncrementDegrees: 0.1
121
+ rotateIncrementDegrees: 5
116
122
  }
117
123
  }, {
118
124
  toolName: toolNames.MipJumpToClick,
@@ -129,232 +135,126 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
129
135
  };
130
136
  toolGroupService.createToolGroupAndAddTools(toolGroupIds.MIP, mipTools);
131
137
  }
132
- function initToolGroups(toolNames, Enums, toolGroupService, commandsManager) {
133
- _initToolGroups(toolNames, Enums, toolGroupService, commandsManager);
138
+ function initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig) {
139
+ _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, modeLabelConfig);
134
140
  }
135
141
  /* harmony default export */ const src_initToolGroups = (initToolGroups);
136
142
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/toolbarButtons.js
137
- // TODO: torn, can either bake this here; or have to create a whole new button type
138
- // Only ways that you can pass in a custom React component for render :l
139
-
140
143
 
141
144
 
142
145
  const {
143
146
  windowLevelPresets
144
147
  } = src.defaults;
145
- /**
146
- *
147
- * @param {*} type - 'tool' | 'action' | 'toggle'
148
- * @param {*} id
149
- * @param {*} icon
150
- * @param {*} label
151
- */
152
- function _createButton(type, id, icon, label, commands, tooltip) {
153
- return {
154
- id,
155
- icon,
156
- label,
157
- type,
158
- commands,
159
- tooltip
160
- };
161
- }
162
- function _createColormap(label, colormap) {
163
- return {
164
- id: label,
165
- label,
166
- type: 'action',
167
- commands: [{
168
- commandName: 'setFusionPTColormap',
169
- commandOptions: {
170
- toolGroupId: toolGroupIds.Fusion,
171
- colormap
172
- }
173
- }]
174
- };
175
- }
176
- const _createActionButton = _createButton.bind(null, 'action');
177
- const _createToggleButton = _createButton.bind(null, 'toggle');
178
- const _createToolButton = _createButton.bind(null, 'tool');
179
-
180
- /**
181
- *
182
- * @param {*} preset - preset number (from above import)
183
- * @param {*} title
184
- * @param {*} subtitle
185
- */
186
- function _createWwwcPreset(preset, title, subtitle) {
187
- return {
188
- id: preset.toString(),
189
- title,
190
- subtitle,
191
- type: 'action',
192
- commands: [{
193
- commandName: 'setWindowLevel',
194
- commandOptions: {
195
- ...windowLevelPresets[preset]
196
- },
197
- context: 'CORNERSTONE'
198
- }]
199
- };
200
- }
201
- function _createCommands(commandName, toolName, toolGroupIds) {
202
- return toolGroupIds.map(toolGroupId => ({
203
- /* It's a command that is being run when the button is clicked. */
204
- commandName,
205
- commandOptions: {
206
- toolName,
207
- toolGroupId
208
- },
209
- context: 'CORNERSTONE'
210
- }));
211
- }
212
- const toolbarButtons = [
213
- // Measurement
214
- {
148
+ const setToolActiveToolbar = {
149
+ commandName: 'setToolActiveToolbar',
150
+ commandOptions: {
151
+ toolGroupIds: [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion]
152
+ }
153
+ };
154
+ const toolbarButtons = [{
215
155
  id: 'MeasurementTools',
216
- type: 'ohif.splitButton',
156
+ uiType: 'ohif.splitButton',
217
157
  props: {
218
158
  groupId: 'MeasurementTools',
219
- isRadio: true,
220
- // ?
221
- // Switch?
222
- primary: _createToolButton('Length', 'tool-length', 'Length', [..._createCommands('setToolActive', 'Length', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
223
- // toolGroupIds.MPR,
224
- ])], 'Length'),
159
+ primary: src.ToolbarService.createButton({
160
+ id: 'Length',
161
+ icon: 'tool-length',
162
+ label: 'Length',
163
+ tooltip: 'Length Tool',
164
+ commands: setToolActiveToolbar,
165
+ evaluate: 'evaluate.cornerstoneTool'
166
+ }),
225
167
  secondary: {
226
168
  icon: 'chevron-down',
227
- label: '',
228
- isActive: true,
229
169
  tooltip: 'More Measure Tools'
230
170
  },
231
- items: [_createToolButton('Length', 'tool-length', 'Length', [..._createCommands('setToolActive', 'Length', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
232
- // toolGroupIds.MPR,
233
- ])], 'Length Tool'), _createToolButton('Bidirectional', 'tool-bidirectional', 'Bidirectional', [..._createCommands('setToolActive', 'Bidirectional', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
234
- // toolGroupIds.MPR,
235
- ])], 'Bidirectional Tool'), _createToolButton('ArrowAnnotate', 'tool-annotate', 'Annotation', [..._createCommands('setToolActive', 'ArrowAnnotate', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
236
- // toolGroupIds.MPR,
237
- ])], 'Arrow Annotate'), _createToolButton('EllipticalROI', 'tool-elipse', 'Ellipse', [..._createCommands('setToolActive', 'EllipticalROI', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
238
- // toolGroupIds.MPR,
239
- ])], 'Ellipse Tool')]
171
+ items: [src.ToolbarService.createButton({
172
+ id: 'Bidirectional',
173
+ icon: 'tool-bidirectional',
174
+ label: 'Bidirectional',
175
+ tooltip: 'Bidirectional Tool',
176
+ commands: setToolActiveToolbar,
177
+ evaluate: 'evaluate.cornerstoneTool'
178
+ }), src.ToolbarService.createButton({
179
+ id: 'ArrowAnnotate',
180
+ icon: 'tool-annotate',
181
+ label: 'Arrow Annotate',
182
+ tooltip: 'Arrow Annotate Tool',
183
+ commands: setToolActiveToolbar,
184
+ evaluate: 'evaluate.cornerstoneTool'
185
+ }), src.ToolbarService.createButton({
186
+ id: 'EllipticalROI',
187
+ icon: 'tool-ellipse',
188
+ label: 'Ellipse',
189
+ tooltip: 'Ellipse Tool',
190
+ commands: setToolActiveToolbar,
191
+ evaluate: 'evaluate.cornerstoneTool'
192
+ })]
240
193
  }
241
- },
242
- // Zoom..
243
- {
194
+ }, {
244
195
  id: 'Zoom',
245
- type: 'ohif.radioGroup',
196
+ uiType: 'ohif.radioGroup',
246
197
  props: {
247
- type: 'tool',
248
198
  icon: 'tool-zoom',
249
199
  label: 'Zoom',
250
- commands: [..._createCommands('setToolActive', 'Zoom', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
251
- // toolGroupIds.MPR,
252
- ])]
253
- }
254
- }, {
255
- id: 'MPR',
256
- type: 'ohif.action',
257
- props: {
258
- type: 'toggle',
259
- icon: 'icon-mpr',
260
- label: 'MPR',
261
- commands: [{
262
- commandName: 'toggleHangingProtocol',
263
- commandOptions: {
264
- protocolId: 'mpr'
265
- },
266
- context: 'DEFAULT'
267
- }]
200
+ commands: setToolActiveToolbar,
201
+ evaluate: 'evaluate.cornerstoneTool'
268
202
  }
269
203
  },
270
- // Window Level + Presets...
204
+ // Window Level + Presets
271
205
  {
272
206
  id: 'WindowLevel',
273
- type: 'ohif.splitButton',
207
+ uiType: 'ohif.radioGroup',
274
208
  props: {
275
- groupId: 'WindowLevel',
276
- primary: _createToolButton('WindowLevel', 'tool-window-level', 'Window Level', [..._createCommands('setToolActive', 'WindowLevel', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
277
- // toolGroupIds.MPR,
278
- ])], 'Window Level'),
279
- secondary: {
280
- icon: 'chevron-down',
281
- label: 'W/L Manual',
282
- isActive: true,
283
- tooltip: 'W/L Presets'
284
- },
285
- isAction: true,
286
- // ?
287
- renderer: ui_src/* WindowLevelMenuItem */.eJ,
288
- items: [_createWwwcPreset(1, 'Soft tissue', '400 / 40'), _createWwwcPreset(2, 'Lung', '1500 / -600'), _createWwwcPreset(3, 'Liver', '150 / 90'), _createWwwcPreset(4, 'Bone', '2500 / 480'), _createWwwcPreset(5, 'Brain', '80 / 40')]
209
+ icon: 'tool-window-level',
210
+ label: 'Window Level',
211
+ commands: setToolActiveToolbar,
212
+ evaluate: 'evaluate.cornerstoneTool'
289
213
  }
290
- }, {
214
+ },
215
+ // Crosshairs Button
216
+ {
291
217
  id: 'Crosshairs',
292
- type: 'ohif.radioGroup',
218
+ uiType: 'ohif.radioGroup',
293
219
  props: {
294
- type: 'tool',
295
220
  icon: 'tool-crosshair',
296
221
  label: 'Crosshairs',
297
- commands: [..._createCommands('setToolActive', 'Crosshairs', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
298
- // toolGroupIds.MPR,
299
- ])]
222
+ commands: setToolActiveToolbar,
223
+ evaluate: 'evaluate.cornerstoneTool'
300
224
  }
301
225
  },
302
- // Pan...
226
+ // Pan Button
303
227
  {
304
228
  id: 'Pan',
305
- type: 'ohif.radioGroup',
229
+ uiType: 'ohif.radioGroup',
306
230
  props: {
307
- type: 'tool',
308
231
  icon: 'tool-move',
309
232
  label: 'Pan',
310
- commands: [..._createCommands('setToolActive', 'Pan', [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion
311
- // toolGroupIds.MPR,
312
- ])]
233
+ commands: setToolActiveToolbar,
234
+ evaluate: 'evaluate.cornerstoneTool'
313
235
  }
314
- }, {
236
+ },
237
+ // Rectangle ROI Start End Threshold Button
238
+ {
315
239
  id: 'RectangleROIStartEndThreshold',
316
- type: 'ohif.radioGroup',
240
+ uiType: 'ohif.radioGroup',
317
241
  props: {
318
- type: 'tool',
319
242
  icon: 'tool-create-threshold',
320
243
  label: 'Rectangle ROI Threshold',
321
- commands: [..._createCommands('setToolActive', 'RectangleROIStartEndThreshold', [toolGroupIds.PT]), {
322
- commandName: 'displayNotification',
323
- commandOptions: {
324
- title: 'RectangleROI Threshold Tip',
325
- text: 'RectangleROI Threshold tool should be used on PT Axial Viewport',
326
- type: 'info'
327
- }
328
- }, {
329
- commandName: 'setViewportActive',
330
- commandOptions: {
331
- viewportId: 'ptAXIAL'
332
- }
333
- }]
334
- }
335
- }, {
336
- id: 'fusionPTColormap',
337
- type: 'ohif.splitButton',
338
- props: {
339
- groupId: 'fusionPTColormap',
340
- primary: _createToolButton('fusionPTColormap', 'tool-fusion-color', 'Fusion PT Colormap', [], 'Fusion PT Colormap'),
341
- secondary: {
342
- icon: 'chevron-down',
343
- label: 'PT Colormap',
344
- isActive: true,
345
- tooltip: 'PET Image Colormap'
244
+ commands: setToolActiveToolbar,
245
+ evaluate: {
246
+ name: 'evaluate.cornerstoneTool',
247
+ disabledText: 'Select the PT Axial to enable this tool'
346
248
  },
347
- isAction: true,
348
- // ?
349
- items: [_createColormap('HSV', 'hsv'), _createColormap('Hot Iron', 'hot_iron'), _createColormap('S PET', 's_pet'), _createColormap('Red Hot', 'red_hot'), _createColormap('Perfusion', 'perfusion'), _createColormap('Rainbow', 'rainbow_2'), _createColormap('SUV', 'suv'), _createColormap('GE 256', 'ge_256'), _createColormap('GE', 'ge'), _createColormap('Siemens', 'siemens')]
249
+ options: 'tmtv.RectangleROIThresholdOptions'
350
250
  }
351
251
  }];
352
252
  /* harmony default export */ const src_toolbarButtons = (toolbarButtons);
353
253
  ;// CONCATENATED MODULE: ../../../modes/tmtv/package.json
354
- const package_namespaceObject = JSON.parse('{"u2":"@ohif/mode-tmtv"}');
254
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-tmtv"}');
355
255
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/id.js
356
256
 
357
- const id = package_namespaceObject.u2;
257
+ const id = package_namespaceObject.UU;
358
258
 
359
259
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/utils/setCrosshairsConfiguration.js
360
260
 
@@ -404,6 +304,8 @@ function setFusionActiveVolume(matches, toolNames, toolGroupService, displaySetS
404
304
  toolGroupService.setToolConfiguration(toolGroupIds.Fusion, toolNames.WindowLevel, windowLevelConfig);
405
305
  toolGroupService.setToolConfiguration(toolGroupIds.Fusion, toolNames.EllipticalROI, ellipticalROIConfig);
406
306
  }
307
+ // EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
308
+ var i18next = __webpack_require__(92344);
407
309
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/index.js
408
310
 
409
311
 
@@ -411,6 +313,7 @@ function setFusionActiveVolume(matches, toolNames, toolGroupService, displaySetS
411
313
 
412
314
 
413
315
 
316
+
414
317
  const {
415
318
  MetadataProvider
416
319
  } = src.classes;
@@ -435,25 +338,23 @@ const extensionDependencies = {
435
338
  '@ohif/extension-tmtv': '^3.0.0'
436
339
  };
437
340
  let unsubscriptions = [];
438
- function modeFactory(_ref) {
439
- let {
440
- modeConfiguration
441
- } = _ref;
341
+ function modeFactory({
342
+ modeConfiguration
343
+ }) {
442
344
  return {
443
345
  // TODO: We're using this as a route segment
444
346
  // We should not be.
445
347
  id: id,
446
348
  routeName: 'tmtv',
447
- displayName: 'Total Metabolic Tumor Volume',
349
+ displayName: i18next/* default */.A.t('Modes:Total Metabolic Tumor Volume'),
448
350
  /**
449
351
  * Lifecycle hooks
450
352
  */
451
- onModeEnter: _ref2 => {
452
- let {
453
- servicesManager,
454
- extensionManager,
455
- commandsManager
456
- } = _ref2;
353
+ onModeEnter: ({
354
+ servicesManager,
355
+ extensionManager,
356
+ commandsManager
357
+ }) => {
457
358
  const {
458
359
  toolbarService,
459
360
  toolGroupService,
@@ -468,34 +369,6 @@ function modeFactory(_ref) {
468
369
 
469
370
  // Init Default and SR ToolGroups
470
371
  src_initToolGroups(toolNames, Enums, toolGroupService, commandsManager);
471
- const setWindowLevelActive = () => {
472
- toolbarService.recordInteraction({
473
- groupId: 'WindowLevel',
474
- interactionType: 'tool',
475
- commands: [{
476
- commandName: 'setToolActive',
477
- commandOptions: {
478
- toolName: toolNames.WindowLevel,
479
- toolGroupId: toolGroupIds.CT
480
- },
481
- context: 'CORNERSTONE'
482
- }, {
483
- commandName: 'setToolActive',
484
- commandOptions: {
485
- toolName: toolNames.WindowLevel,
486
- toolGroupId: toolGroupIds.PT
487
- },
488
- context: 'CORNERSTONE'
489
- }, {
490
- commandName: 'setToolActive',
491
- commandOptions: {
492
- toolName: toolNames.WindowLevel,
493
- toolGroupId: toolGroupIds.Fusion
494
- },
495
- context: 'CORNERSTONE'
496
- }]
497
- });
498
- };
499
372
  const {
500
373
  unsubscribe
501
374
  } = toolGroupService.subscribe(toolGroupService.EVENTS.VIEWPORT_ADDED, () => {
@@ -507,12 +380,11 @@ function modeFactory(_ref) {
507
380
  } = hangingProtocolService.getMatchDetails();
508
381
  setCrosshairsConfiguration(displaySetMatchDetails, toolNames, toolGroupService, displaySetService);
509
382
  setFusionActiveVolume(displaySetMatchDetails, toolNames, toolGroupService, displaySetService);
510
- setWindowLevelActive();
511
383
  });
512
384
  unsubscriptions.push(unsubscribe);
513
- toolbarService.init(extensionManager);
514
385
  toolbarService.addButtons(src_toolbarButtons);
515
- toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'WindowLevel', 'Crosshairs', 'Pan', 'RectangleROIStartEndThreshold', 'fusionPTColormap']);
386
+ toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'WindowLevel', 'Crosshairs', 'Pan', 'SyncToggle']);
387
+ toolbarService.createButtonSection('tmtvToolbox', ['RectangleROIStartEndThreshold']);
516
388
 
517
389
  // For the hanging protocol we need to decide on the window level
518
390
  // based on whether the SUV is corrected or not, hence we can't hard
@@ -538,17 +410,20 @@ function modeFactory(_ref) {
538
410
  return;
539
411
  });
540
412
  },
541
- onModeExit: _ref3 => {
542
- let {
543
- servicesManager
544
- } = _ref3;
413
+ onModeExit: ({
414
+ servicesManager
415
+ }) => {
545
416
  const {
546
417
  toolGroupService,
547
418
  syncGroupService,
548
419
  segmentationService,
549
- cornerstoneViewportService
420
+ cornerstoneViewportService,
421
+ uiDialogService,
422
+ uiModalService
550
423
  } = servicesManager.services;
551
424
  unsubscriptions.forEach(unsubscribe => unsubscribe());
425
+ uiDialogService.dismissAll();
426
+ uiModalService.hide();
552
427
  toolGroupService.destroy();
553
428
  syncGroupService.destroy();
554
429
  segmentationService.destroy();
@@ -558,11 +433,10 @@ function modeFactory(_ref) {
558
433
  study: [],
559
434
  series: []
560
435
  },
561
- isValidMode: _ref4 => {
562
- let {
563
- modalities,
564
- study
565
- } = _ref4;
436
+ isValidMode: ({
437
+ modalities,
438
+ study
439
+ }) => {
566
440
  const modalities_list = modalities.split('\\');
567
441
  const invalidModalities = ['SM'];
568
442
  const isValid = modalities_list.includes('CT') && modalities_list.includes('PT') && !invalidModalities.some(modality => modalities_list.includes(modality)) &&
@@ -574,18 +448,20 @@ function modeFactory(_ref) {
574
448
  study.studyInstanceUid !== '1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849';
575
449
 
576
450
  // there should be both CT and PT modalities and the modality should not be SM
577
- return isValid;
451
+ return {
452
+ valid: isValid,
453
+ description: 'The mode requires both PT and CT series in the study'
454
+ };
578
455
  },
579
456
  routes: [{
580
457
  path: 'tmtv',
581
458
  /*init: ({ servicesManager, extensionManager }) => {
582
459
  //defaultViewerRouteInit
583
460
  },*/
584
- layoutTemplate: _ref5 => {
585
- let {
586
- location,
587
- servicesManager
588
- } = _ref5;
461
+ layoutTemplate: ({
462
+ location,
463
+ servicesManager
464
+ }) => {
589
465
  return {
590
466
  id: ohif.layout,
591
467
  props: {
@@ -603,7 +479,7 @@ function modeFactory(_ref) {
603
479
  extensions: extensionDependencies,
604
480
  hangingProtocol: tmtv.hangingProtocol,
605
481
  sopClassHandlers: [ohif.sopClassHandler],
606
- hotkeys: [...src/* hotkeys */.dD.defaults.hotkeyBindings],
482
+ hotkeys: [...src/* hotkeys */.ot.defaults.hotkeyBindings],
607
483
  ...modeConfiguration
608
484
  };
609
485
  }