@ohif/app 3.13.0-beta.116 → 3.13.0-beta.117
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.
- package/dist/{1206.bundle.47f070e2254d128c.js → 1206.bundle.e04ca1efe6f987ba.js} +1 -1
- package/dist/1483.bundle.ab1e3a882b58eb79.js +470 -0
- package/dist/{1602.bundle.097ec19e8e61516f.js → 1602.bundle.ea4c1b43123dd2b3.js} +2 -2
- package/dist/{7701.bundle.945445d6681ddd20.js → 2343.bundle.48839e1b3fa4505e.js} +990 -7
- package/dist/{3500.bundle.1e063b7b4910d6cf.js → 3500.bundle.da69a02594beccc8.js} +1 -1
- package/dist/{3760.bundle.6c7eeb4b7f1583ca.js → 3760.bundle.e406b1c3fadf2a3b.js} +2 -2
- package/dist/{5448.bundle.1e50777e4c4e122a.js → 5448.bundle.5686ebb99c379f64.js} +1 -1
- package/dist/{5696.bundle.9f0366ad867385bc.js → 5696.bundle.4e44ce1f590134eb.js} +7 -4
- package/dist/{5910.bundle.5561806884c95754.js → 5910.bundle.0f19608f3e76859b.js} +2 -2
- package/dist/{419.bundle.9d0e6a72e1e3a17b.js → 6749.bundle.8c3dd9258f09df24.js} +288 -62
- package/dist/{7248.bundle.f761b21f343d4b9f.js → 7248.bundle.11ec7ee7e10b0a34.js} +2 -2
- package/dist/{7295.bundle.4d4b6de4d2bb8856.js → 7499.bundle.0f065214db09a60b.js} +502 -5
- package/dist/{781.bundle.efb0a6981676cebb.js → 781.bundle.3c1a02ca26d4565a.js} +2 -2
- package/dist/{8423.bundle.5d1b3092bc9562c9.js → 8423.bundle.f8e7d0f1eba7e178.js} +2 -2
- package/dist/8492.bundle.de58afbc98ce7972.js +504 -0
- package/dist/8595.css +2 -0
- package/dist/{899.bundle.e786f8dfb66d74ca.js → 899.bundle.50c16f860acbc848.js} +2 -2
- package/dist/{9068.bundle.cd36fcb4e15a153e.js → 9068.bundle.95f1e638ef694ea9.js} +2 -2
- package/dist/{9402.bundle.6549cc304496cd5c.js → 9402.bundle.6a8a324e963b4099.js} +2 -2
- package/dist/{9415.bundle.2a970c71de4014bf.js → 9415.bundle.20fee612b3b3dbfd.js} +2 -2
- package/dist/{9437.bundle.0fff227a859992ea.js → 9437.bundle.f3f5aff637471ac4.js} +107 -123
- package/dist/app-config.js +1 -1
- package/dist/{app.bundle.55057e411d635dc3.js → app.bundle.a73ad7e598640adf.js} +203 -36
- package/dist/customizations/index.html +400 -0
- package/dist/customizations/segmentation/segmentationAnnotationTools.jsonc +48 -0
- package/dist/customizations/segmentation/segmentationEditing.jsonc +59 -0
- package/dist/customizations/{ctPresets.jsonc → tools/ctPresets.jsonc} +1 -1
- package/dist/customizations/{measurementLabels.jsonc → tools/measurementLabels.jsonc} +1 -1
- package/dist/customizations/{smoothRotate.jsonc → tools/smoothRotate.jsonc} +1 -1
- package/dist/customizations/veterinary/veterinary.jsonc +5 -0
- package/dist/customizations/{veterinaryOverlay.jsonc → veterinary/veterinaryOverlay.jsonc} +3 -3
- package/dist/customizations/{patientBirthDate.jsonc → worklist/patientBirthDate.jsonc} +2 -2
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +5 -5
- package/dist/4834.bundle.a91450199d0f45e4.js +0 -900
- package/dist/6001.bundle.0789789db5410764.js +0 -1529
- package/dist/customizations/veterinary.jsonc +0 -5
- /package/dist/{100.bundle.ac04a425c0851574.js → 100.bundle.ec5ee3b5f479a217.js} +0 -0
- /package/dist/{1180.bundle.c19c443fe8d26719.js → 1180.bundle.9bed26c1a1e75389.js} +0 -0
- /package/dist/{2779.bundle.dca036a18399be96.js → 2779.bundle.2a225a69fb65c30d.js} +0 -0
- /package/dist/{4556.bundle.b705ab15473128c7.js → 4556.bundle.735ccc9efdad0052.js} +0 -0
- /package/dist/{4683.bundle.5d12928efa9f70f4.js → 4683.bundle.e5d3182f0f4347af.js} +0 -0
- /package/dist/{7295.css → 8492.css} +0 -0
- /package/dist/{8832.bundle.ede981706cac8e15.js → 8832.bundle.1cb57aab32daeab8.js} +0 -0
- /package/dist/{9116.bundle.225e003c28c550c1.js → 9116.bundle.fffb2ff349a3c452.js} +0 -0
- /package/dist/{9290.bundle.a18c40b82772a3c6.js → 9290.bundle.82cf4e74ab3fa20a.js} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["rspackChunk"] = globalThis["rspackChunk"] || []).push([[
|
|
3
|
-
|
|
2
|
+
(globalThis["rspackChunk"] = globalThis["rspackChunk"] || []).push([[7499], {
|
|
3
|
+
87110(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
4
4
|
|
|
5
5
|
// EXPORTS
|
|
6
6
|
__webpack_require__.d(__webpack_exports__, {
|
|
7
|
-
"default": () => (/* binding */ tmtv_src)
|
|
7
|
+
"default": () => (/* binding */ tmtv_src),
|
|
8
|
+
i: () => (/* reexport */ toolGroupIds)
|
|
8
9
|
});
|
|
9
10
|
|
|
10
11
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/package.json
|
|
@@ -970,8 +971,8 @@ PanelPetSUV.propTypes = {
|
|
|
970
971
|
}).isRequired
|
|
971
972
|
}).isRequired
|
|
972
973
|
};
|
|
973
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
974
|
-
var cornerstone_src = __webpack_require__(
|
|
974
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 200 modules
|
|
975
|
+
var cornerstone_src = __webpack_require__(86714);
|
|
975
976
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/handleROIThresholding.ts
|
|
976
977
|
const handleROIThresholding_handleROIThresholding = async ({
|
|
977
978
|
commandsManager,
|
|
@@ -2212,6 +2213,498 @@ function getToolbarModule() {
|
|
|
2212
2213
|
defaultComponent: Panels_RectangleROIOptions
|
|
2213
2214
|
}];
|
|
2214
2215
|
}
|
|
2216
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js + 22 modules
|
|
2217
|
+
var i18next = __webpack_require__(26104);
|
|
2218
|
+
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/toolGroupIds.ts
|
|
2219
|
+
/**
|
|
2220
|
+
* The tool group ids used by the TMTV hanging protocols and mode. Defined in
|
|
2221
|
+
* the extension so both the extension (hanging protocol viewports, toolbar
|
|
2222
|
+
* buttons) and the mode (tool group creation) share one definition.
|
|
2223
|
+
*/
|
|
2224
|
+
const toolGroupIds = {
|
|
2225
|
+
CT: 'ctToolGroup',
|
|
2226
|
+
PT: 'ptToolGroup',
|
|
2227
|
+
Fusion: 'fusionToolGroup',
|
|
2228
|
+
MIP: 'mipToolGroup',
|
|
2229
|
+
default: 'default'
|
|
2230
|
+
};
|
|
2231
|
+
/* export default */ const src_toolGroupIds = ((/* unused pure expression or super */ null && (toolGroupIds)));
|
|
2232
|
+
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/customizations/toolbarCustomization.ts
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2236
|
+
const {
|
|
2237
|
+
TOOLBAR_SECTIONS
|
|
2238
|
+
} = src/* .ToolbarService */.hx;
|
|
2239
|
+
const MIN_SEGMENTATION_DRAWING_RADIUS = 0.5;
|
|
2240
|
+
const MAX_SEGMENTATION_DRAWING_RADIUS = 99.5;
|
|
2241
|
+
const setToolActiveToolbar = {
|
|
2242
|
+
commandName: 'setToolActiveToolbar',
|
|
2243
|
+
commandOptions: {
|
|
2244
|
+
toolGroupIds: [toolGroupIds.CT, toolGroupIds.PT, toolGroupIds.Fusion]
|
|
2245
|
+
}
|
|
2246
|
+
};
|
|
2247
|
+
|
|
2248
|
+
/**
|
|
2249
|
+
* Default toolbar buttons for the TMTV mode, registered as the
|
|
2250
|
+
* `tmtv.toolbarButtons` customization so `?customization=` modules can extend
|
|
2251
|
+
* or replace them.
|
|
2252
|
+
*/
|
|
2253
|
+
const toolbarButtons = [{
|
|
2254
|
+
id: 'MeasurementTools',
|
|
2255
|
+
uiType: 'ohif.toolButtonList',
|
|
2256
|
+
props: {
|
|
2257
|
+
buttonSection: true
|
|
2258
|
+
}
|
|
2259
|
+
}, {
|
|
2260
|
+
id: 'SegmentationTools',
|
|
2261
|
+
uiType: 'ohif.toolBoxButton',
|
|
2262
|
+
props: {
|
|
2263
|
+
buttonSection: true
|
|
2264
|
+
}
|
|
2265
|
+
}, {
|
|
2266
|
+
id: 'BrushTools',
|
|
2267
|
+
uiType: 'ohif.toolBoxButtonGroup',
|
|
2268
|
+
props: {
|
|
2269
|
+
buttonSection: true
|
|
2270
|
+
}
|
|
2271
|
+
}, {
|
|
2272
|
+
id: 'AdvancedRenderingControls',
|
|
2273
|
+
uiType: 'ohif.advancedRenderingControls',
|
|
2274
|
+
props: {
|
|
2275
|
+
buttonSection: true
|
|
2276
|
+
}
|
|
2277
|
+
}, {
|
|
2278
|
+
id: 'modalityLoadBadge',
|
|
2279
|
+
uiType: 'ohif.modalityLoadBadge',
|
|
2280
|
+
props: {
|
|
2281
|
+
icon: 'Status',
|
|
2282
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Status'),
|
|
2283
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Status'),
|
|
2284
|
+
evaluate: {
|
|
2285
|
+
name: 'evaluate.modalityLoadBadge',
|
|
2286
|
+
hideWhenDisabled: true
|
|
2287
|
+
}
|
|
2288
|
+
}
|
|
2289
|
+
}, {
|
|
2290
|
+
id: 'Colorbar',
|
|
2291
|
+
uiType: 'ohif.colorbar',
|
|
2292
|
+
props: {
|
|
2293
|
+
type: 'tool',
|
|
2294
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Colorbar')
|
|
2295
|
+
}
|
|
2296
|
+
}, {
|
|
2297
|
+
id: 'navigationComponent',
|
|
2298
|
+
uiType: 'ohif.navigationComponent',
|
|
2299
|
+
props: {
|
|
2300
|
+
icon: 'Navigation',
|
|
2301
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Navigation'),
|
|
2302
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Navigate between segments/measurements and manage their visibility'),
|
|
2303
|
+
evaluate: {
|
|
2304
|
+
name: 'evaluate.navigationComponent',
|
|
2305
|
+
hideWhenDisabled: true
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
}, {
|
|
2309
|
+
id: 'windowLevelMenuEmbedded',
|
|
2310
|
+
uiType: 'ohif.windowLevelMenuEmbedded',
|
|
2311
|
+
props: {
|
|
2312
|
+
icon: 'WindowLevel',
|
|
2313
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Window Level'),
|
|
2314
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Adjust window/level presets and customize image contrast settings'),
|
|
2315
|
+
evaluate: {
|
|
2316
|
+
name: 'evaluate.windowLevelMenuEmbedded',
|
|
2317
|
+
hideWhenDisabled: true
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2320
|
+
}, {
|
|
2321
|
+
id: 'trackingStatus',
|
|
2322
|
+
uiType: 'ohif.trackingStatus',
|
|
2323
|
+
props: {
|
|
2324
|
+
icon: 'TrackingStatus',
|
|
2325
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Tracking Status'),
|
|
2326
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:View and manage tracking status of measurements and annotations'),
|
|
2327
|
+
evaluate: {
|
|
2328
|
+
name: 'evaluate.trackingStatus',
|
|
2329
|
+
hideWhenDisabled: true
|
|
2330
|
+
}
|
|
2331
|
+
}
|
|
2332
|
+
}, {
|
|
2333
|
+
id: 'Length',
|
|
2334
|
+
uiType: 'ohif.toolButton',
|
|
2335
|
+
props: {
|
|
2336
|
+
icon: 'tool-length',
|
|
2337
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Length'),
|
|
2338
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Length Tool'),
|
|
2339
|
+
commands: setToolActiveToolbar,
|
|
2340
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2341
|
+
}
|
|
2342
|
+
}, {
|
|
2343
|
+
id: 'Bidirectional',
|
|
2344
|
+
uiType: 'ohif.toolButton',
|
|
2345
|
+
props: {
|
|
2346
|
+
icon: 'tool-bidirectional',
|
|
2347
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Bidirectional'),
|
|
2348
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Bidirectional Tool'),
|
|
2349
|
+
commands: setToolActiveToolbar,
|
|
2350
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2351
|
+
}
|
|
2352
|
+
}, {
|
|
2353
|
+
id: 'ArrowAnnotate',
|
|
2354
|
+
uiType: 'ohif.toolButton',
|
|
2355
|
+
props: {
|
|
2356
|
+
icon: 'tool-annotate',
|
|
2357
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Arrow Annotate'),
|
|
2358
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Arrow Annotate Tool'),
|
|
2359
|
+
commands: setToolActiveToolbar,
|
|
2360
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2361
|
+
}
|
|
2362
|
+
}, {
|
|
2363
|
+
id: 'EllipticalROI',
|
|
2364
|
+
uiType: 'ohif.toolButton',
|
|
2365
|
+
props: {
|
|
2366
|
+
icon: 'tool-ellipse',
|
|
2367
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Ellipse'),
|
|
2368
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Ellipse Tool'),
|
|
2369
|
+
commands: setToolActiveToolbar,
|
|
2370
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2371
|
+
}
|
|
2372
|
+
}, {
|
|
2373
|
+
id: 'Zoom',
|
|
2374
|
+
uiType: 'ohif.toolButton',
|
|
2375
|
+
props: {
|
|
2376
|
+
icon: 'tool-zoom',
|
|
2377
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Zoom'),
|
|
2378
|
+
commands: setToolActiveToolbar,
|
|
2379
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2380
|
+
}
|
|
2381
|
+
}, {
|
|
2382
|
+
id: 'WindowLevel',
|
|
2383
|
+
uiType: 'ohif.toolButton',
|
|
2384
|
+
props: {
|
|
2385
|
+
icon: 'tool-window-level',
|
|
2386
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Window Level'),
|
|
2387
|
+
commands: setToolActiveToolbar,
|
|
2388
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2389
|
+
}
|
|
2390
|
+
}, {
|
|
2391
|
+
id: 'Crosshairs',
|
|
2392
|
+
uiType: 'ohif.toolButton',
|
|
2393
|
+
props: {
|
|
2394
|
+
icon: 'tool-crosshair',
|
|
2395
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Crosshairs'),
|
|
2396
|
+
commands: setToolActiveToolbar,
|
|
2397
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2398
|
+
}
|
|
2399
|
+
}, {
|
|
2400
|
+
id: 'Pan',
|
|
2401
|
+
uiType: 'ohif.toolButton',
|
|
2402
|
+
props: {
|
|
2403
|
+
icon: 'tool-move',
|
|
2404
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Pan'),
|
|
2405
|
+
commands: setToolActiveToolbar,
|
|
2406
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
2407
|
+
}
|
|
2408
|
+
}, {
|
|
2409
|
+
id: 'RectangleROIStartEndThreshold',
|
|
2410
|
+
uiType: 'ohif.toolBoxButton',
|
|
2411
|
+
props: {
|
|
2412
|
+
icon: 'tool-create-threshold',
|
|
2413
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Rectangle ROI Threshold'),
|
|
2414
|
+
commands: setToolActiveToolbar,
|
|
2415
|
+
evaluate: ['evaluate.cornerstone.segmentation', {
|
|
2416
|
+
name: 'evaluate.cornerstoneTool',
|
|
2417
|
+
disabledText: i18next/* ["default"].t */.A.t('Buttons:Select the PT Axial to enable this tool')
|
|
2418
|
+
}],
|
|
2419
|
+
options: 'tmtv.RectangleROIThresholdOptions'
|
|
2420
|
+
}
|
|
2421
|
+
}, {
|
|
2422
|
+
id: 'Brush',
|
|
2423
|
+
uiType: 'ohif.toolButton',
|
|
2424
|
+
props: {
|
|
2425
|
+
icon: 'icon-tool-brush',
|
|
2426
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Brush'),
|
|
2427
|
+
evaluate: [{
|
|
2428
|
+
name: 'evaluate.cornerstone.segmentation',
|
|
2429
|
+
toolNames: ['CircularBrush', 'SphereBrush'],
|
|
2430
|
+
disabledText: i18next/* ["default"].t */.A.t('Buttons:Create new segmentation to enable this tool.')
|
|
2431
|
+
}, {
|
|
2432
|
+
name: 'evaluate.cornerstone.segmentation.synchronizeDrawingRadius',
|
|
2433
|
+
radiusOptionId: 'brush-radius'
|
|
2434
|
+
}],
|
|
2435
|
+
options: [{
|
|
2436
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Radius (mm)'),
|
|
2437
|
+
id: 'brush-radius',
|
|
2438
|
+
type: 'range',
|
|
2439
|
+
explicitRunOnly: true,
|
|
2440
|
+
min: MIN_SEGMENTATION_DRAWING_RADIUS,
|
|
2441
|
+
max: MAX_SEGMENTATION_DRAWING_RADIUS,
|
|
2442
|
+
step: 0.5,
|
|
2443
|
+
value: 25,
|
|
2444
|
+
commands: {
|
|
2445
|
+
commandName: 'setBrushSize',
|
|
2446
|
+
commandOptions: {
|
|
2447
|
+
toolNames: ['CircularBrush', 'SphereBrush']
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
}, {
|
|
2451
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Shape'),
|
|
2452
|
+
type: 'radio',
|
|
2453
|
+
id: 'brush-mode',
|
|
2454
|
+
value: 'CircularBrush',
|
|
2455
|
+
values: [{
|
|
2456
|
+
value: 'CircularBrush',
|
|
2457
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Circle')
|
|
2458
|
+
}, {
|
|
2459
|
+
value: 'SphereBrush',
|
|
2460
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Sphere')
|
|
2461
|
+
}],
|
|
2462
|
+
commands: 'setToolActiveToolbar'
|
|
2463
|
+
}]
|
|
2464
|
+
}
|
|
2465
|
+
}, {
|
|
2466
|
+
id: 'Eraser',
|
|
2467
|
+
uiType: 'ohif.toolButton',
|
|
2468
|
+
props: {
|
|
2469
|
+
icon: 'icon-tool-eraser',
|
|
2470
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Eraser'),
|
|
2471
|
+
evaluate: [{
|
|
2472
|
+
name: 'evaluate.cornerstone.segmentation',
|
|
2473
|
+
toolNames: ['CircularEraser', 'SphereEraser']
|
|
2474
|
+
}, {
|
|
2475
|
+
name: 'evaluate.cornerstone.segmentation.synchronizeDrawingRadius',
|
|
2476
|
+
radiusOptionId: 'eraser-radius'
|
|
2477
|
+
}],
|
|
2478
|
+
options: [{
|
|
2479
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Radius (mm)'),
|
|
2480
|
+
id: 'eraser-radius',
|
|
2481
|
+
type: 'range',
|
|
2482
|
+
explicitRunOnly: true,
|
|
2483
|
+
min: MIN_SEGMENTATION_DRAWING_RADIUS,
|
|
2484
|
+
max: MAX_SEGMENTATION_DRAWING_RADIUS,
|
|
2485
|
+
step: 0.5,
|
|
2486
|
+
value: 25,
|
|
2487
|
+
commands: {
|
|
2488
|
+
commandName: 'setBrushSize',
|
|
2489
|
+
commandOptions: {
|
|
2490
|
+
toolNames: ['CircularEraser', 'SphereEraser']
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
}, {
|
|
2494
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Shape'),
|
|
2495
|
+
type: 'radio',
|
|
2496
|
+
id: 'eraser-mode',
|
|
2497
|
+
value: 'CircularEraser',
|
|
2498
|
+
values: [{
|
|
2499
|
+
value: 'CircularEraser',
|
|
2500
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Circle')
|
|
2501
|
+
}, {
|
|
2502
|
+
value: 'SphereEraser',
|
|
2503
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Sphere')
|
|
2504
|
+
}],
|
|
2505
|
+
commands: 'setToolActiveToolbar'
|
|
2506
|
+
}]
|
|
2507
|
+
}
|
|
2508
|
+
}, {
|
|
2509
|
+
id: 'Threshold',
|
|
2510
|
+
uiType: 'ohif.toolButton',
|
|
2511
|
+
props: {
|
|
2512
|
+
icon: 'icon-tool-threshold',
|
|
2513
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Threshold Tool'),
|
|
2514
|
+
evaluate: [{
|
|
2515
|
+
name: 'evaluate.cornerstone.segmentation',
|
|
2516
|
+
toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush', 'ThresholdCircularBrushDynamic']
|
|
2517
|
+
}, {
|
|
2518
|
+
name: 'evaluate.cornerstone.segmentation.synchronizeDrawingRadius',
|
|
2519
|
+
radiusOptionId: 'threshold-radius'
|
|
2520
|
+
}],
|
|
2521
|
+
options: [{
|
|
2522
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Radius (mm)'),
|
|
2523
|
+
id: 'threshold-radius',
|
|
2524
|
+
type: 'range',
|
|
2525
|
+
explicitRunOnly: true,
|
|
2526
|
+
min: MIN_SEGMENTATION_DRAWING_RADIUS,
|
|
2527
|
+
max: MAX_SEGMENTATION_DRAWING_RADIUS,
|
|
2528
|
+
step: 0.5,
|
|
2529
|
+
value: 25,
|
|
2530
|
+
commands: {
|
|
2531
|
+
commandName: 'setBrushSize',
|
|
2532
|
+
commandOptions: {
|
|
2533
|
+
toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush', 'ThresholdCircularBrushDynamic']
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
}, {
|
|
2537
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Threshold'),
|
|
2538
|
+
type: 'radio',
|
|
2539
|
+
id: 'dynamic-mode',
|
|
2540
|
+
value: 'ThresholdRange',
|
|
2541
|
+
values: [{
|
|
2542
|
+
value: 'ThresholdDynamic',
|
|
2543
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Dynamic')
|
|
2544
|
+
}, {
|
|
2545
|
+
value: 'ThresholdRange',
|
|
2546
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Range')
|
|
2547
|
+
}],
|
|
2548
|
+
commands: ({
|
|
2549
|
+
value,
|
|
2550
|
+
commandsManager
|
|
2551
|
+
}) => {
|
|
2552
|
+
if (value === 'ThresholdDynamic') {
|
|
2553
|
+
commandsManager.run('setToolActive', {
|
|
2554
|
+
toolName: 'ThresholdCircularBrushDynamic'
|
|
2555
|
+
});
|
|
2556
|
+
} else {
|
|
2557
|
+
commandsManager.run('setToolActive', {
|
|
2558
|
+
toolName: 'ThresholdCircularBrush'
|
|
2559
|
+
});
|
|
2560
|
+
}
|
|
2561
|
+
}
|
|
2562
|
+
}, {
|
|
2563
|
+
name: i18next/* ["default"].t */.A.t('Buttons:Shape'),
|
|
2564
|
+
type: 'radio',
|
|
2565
|
+
id: 'eraser-mode',
|
|
2566
|
+
value: 'ThresholdCircularBrush',
|
|
2567
|
+
values: [{
|
|
2568
|
+
value: 'ThresholdCircularBrush',
|
|
2569
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Circle')
|
|
2570
|
+
}, {
|
|
2571
|
+
value: 'ThresholdSphereBrush',
|
|
2572
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Sphere')
|
|
2573
|
+
}],
|
|
2574
|
+
condition: ({
|
|
2575
|
+
options
|
|
2576
|
+
}) => options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange',
|
|
2577
|
+
commands: 'setToolActiveToolbar'
|
|
2578
|
+
}, {
|
|
2579
|
+
name: i18next/* ["default"].t */.A.t('ROIThresholdConfiguration:ThresholdRange'),
|
|
2580
|
+
type: 'double-range',
|
|
2581
|
+
id: 'threshold-range',
|
|
2582
|
+
min: 0,
|
|
2583
|
+
max: 50,
|
|
2584
|
+
step: 0.5,
|
|
2585
|
+
value: [2.5, 50],
|
|
2586
|
+
condition: ({
|
|
2587
|
+
options
|
|
2588
|
+
}) => options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange',
|
|
2589
|
+
commands: {
|
|
2590
|
+
commandName: 'setThresholdRange',
|
|
2591
|
+
commandOptions: {
|
|
2592
|
+
toolNames: ['ThresholdCircularBrush', 'ThresholdSphereBrush']
|
|
2593
|
+
}
|
|
2594
|
+
}
|
|
2595
|
+
}]
|
|
2596
|
+
}
|
|
2597
|
+
}, {
|
|
2598
|
+
id: 'dataOverlayMenu',
|
|
2599
|
+
uiType: 'ohif.dataOverlayMenu',
|
|
2600
|
+
props: {
|
|
2601
|
+
icon: 'ViewportViews',
|
|
2602
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Data Overlay'),
|
|
2603
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Configure data overlay options and manage foreground/background display sets'),
|
|
2604
|
+
evaluate: 'evaluate.dataOverlayMenu'
|
|
2605
|
+
}
|
|
2606
|
+
}, {
|
|
2607
|
+
id: 'orientationMenu',
|
|
2608
|
+
uiType: 'ohif.orientationMenu',
|
|
2609
|
+
props: {
|
|
2610
|
+
icon: 'OrientationSwitch',
|
|
2611
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Orientation'),
|
|
2612
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Change viewport orientation between axial, sagittal, coronal and reformat planes'),
|
|
2613
|
+
evaluate: {
|
|
2614
|
+
name: 'evaluate.orientationMenu'
|
|
2615
|
+
// hideWhenDisabled: true,
|
|
2616
|
+
}
|
|
2617
|
+
}
|
|
2618
|
+
}, {
|
|
2619
|
+
id: 'windowLevelMenu',
|
|
2620
|
+
uiType: 'ohif.windowLevelMenu',
|
|
2621
|
+
props: {
|
|
2622
|
+
icon: 'WindowLevel',
|
|
2623
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Window Level'),
|
|
2624
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Adjust window/level presets and customize image contrast settings'),
|
|
2625
|
+
evaluate: 'evaluate.windowLevelMenu'
|
|
2626
|
+
}
|
|
2627
|
+
}, {
|
|
2628
|
+
id: 'voiManualControlMenu',
|
|
2629
|
+
uiType: 'ohif.voiManualControlMenu',
|
|
2630
|
+
props: {
|
|
2631
|
+
icon: 'WindowLevelAdvanced',
|
|
2632
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Advanced Window Level'),
|
|
2633
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Advanced window/level settings with manual controls and presets'),
|
|
2634
|
+
evaluate: 'evaluate.voiManualControlMenu'
|
|
2635
|
+
}
|
|
2636
|
+
}, {
|
|
2637
|
+
id: 'thresholdMenu',
|
|
2638
|
+
uiType: 'ohif.thresholdMenu',
|
|
2639
|
+
props: {
|
|
2640
|
+
icon: 'Threshold',
|
|
2641
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Threshold'),
|
|
2642
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Image threshold settings'),
|
|
2643
|
+
evaluate: {
|
|
2644
|
+
name: 'evaluate.thresholdMenu',
|
|
2645
|
+
hideWhenDisabled: true
|
|
2646
|
+
}
|
|
2647
|
+
}
|
|
2648
|
+
}, {
|
|
2649
|
+
id: 'opacityMenu',
|
|
2650
|
+
uiType: 'ohif.opacityMenu',
|
|
2651
|
+
props: {
|
|
2652
|
+
icon: 'Opacity',
|
|
2653
|
+
label: i18next/* ["default"].t */.A.t('Buttons:Opacity'),
|
|
2654
|
+
tooltip: i18next/* ["default"].t */.A.t('Buttons:Image opacity settings'),
|
|
2655
|
+
evaluate: {
|
|
2656
|
+
name: 'evaluate.opacityMenu',
|
|
2657
|
+
hideWhenDisabled: true
|
|
2658
|
+
}
|
|
2659
|
+
}
|
|
2660
|
+
}];
|
|
2661
|
+
|
|
2662
|
+
/**
|
|
2663
|
+
* Default toolbar layout for the TMTV mode, registered as the
|
|
2664
|
+
* `tmtv.toolbarSections` customization.
|
|
2665
|
+
*/
|
|
2666
|
+
const toolbarSections = {
|
|
2667
|
+
[TOOLBAR_SECTIONS.primary]: ['MeasurementTools', 'Zoom', 'Pan', 'WindowLevel', 'Crosshairs'],
|
|
2668
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.topLeft]: ['orientationMenu', 'dataOverlayMenu'],
|
|
2669
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.bottomMiddle]: ['AdvancedRenderingControls'],
|
|
2670
|
+
AdvancedRenderingControls: ['windowLevelMenuEmbedded', 'voiManualControlMenu', 'Colorbar', 'opacityMenu', 'thresholdMenu'],
|
|
2671
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.topRight]: ['modalityLoadBadge', 'trackingStatus', 'navigationComponent'],
|
|
2672
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.bottomLeft]: ['windowLevelMenu'],
|
|
2673
|
+
MeasurementTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'EllipticalROI'],
|
|
2674
|
+
ROIThresholdToolbox: ['SegmentationTools'],
|
|
2675
|
+
SegmentationTools: ['RectangleROIStartEndThreshold', 'BrushTools'],
|
|
2676
|
+
BrushTools: ['Brush', 'Eraser', 'Threshold']
|
|
2677
|
+
};
|
|
2678
|
+
|
|
2679
|
+
/**
|
|
2680
|
+
* TMTV-specific capability packs registered (at default scope) by the tmtv
|
|
2681
|
+
* extension. These are the TMTV mode's specialized toolbar buttons and layout;
|
|
2682
|
+
* the TMTV mode composes them by name in its own `toolbarButtons` /
|
|
2683
|
+
* `toolbarSections` instance arrays, and `?customization=` modules extend the
|
|
2684
|
+
* result through the `mode` phase.
|
|
2685
|
+
*/
|
|
2686
|
+
const toolbarCustomization = {
|
|
2687
|
+
'tmtv.toolbarButtons': toolbarButtons,
|
|
2688
|
+
'tmtv.toolbarSections': toolbarSections
|
|
2689
|
+
};
|
|
2690
|
+
|
|
2691
|
+
/* export default */ const customizations_toolbarCustomization = (toolbarCustomization);
|
|
2692
|
+
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/getCustomizationModule.ts
|
|
2693
|
+
|
|
2694
|
+
|
|
2695
|
+
/**
|
|
2696
|
+
* Registers the TMTV-specific capability packs (toolbar buttons and section
|
|
2697
|
+
* layout) so the TMTV mode can compose them by name and `?customization=`
|
|
2698
|
+
* modules can extend the result through the `mode` phase.
|
|
2699
|
+
*/
|
|
2700
|
+
function getCustomizationModule() {
|
|
2701
|
+
return [{
|
|
2702
|
+
name: 'default',
|
|
2703
|
+
value: {
|
|
2704
|
+
...customizations_toolbarCustomization
|
|
2705
|
+
}
|
|
2706
|
+
}];
|
|
2707
|
+
}
|
|
2215
2708
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/index.tsx
|
|
2216
2709
|
|
|
2217
2710
|
|
|
@@ -2220,6 +2713,8 @@ function getToolbarModule() {
|
|
|
2220
2713
|
|
|
2221
2714
|
|
|
2222
2715
|
|
|
2716
|
+
|
|
2717
|
+
|
|
2223
2718
|
/**
|
|
2224
2719
|
*
|
|
2225
2720
|
*/
|
|
@@ -2244,6 +2739,7 @@ const tmtvExtension = {
|
|
|
2244
2739
|
getToolbarModule: getToolbarModule,
|
|
2245
2740
|
getPanelModule: src_getPanelModule,
|
|
2246
2741
|
getHangingProtocolModule: src_getHangingProtocolModule,
|
|
2742
|
+
getCustomizationModule: getCustomizationModule,
|
|
2247
2743
|
getCommandsModule({
|
|
2248
2744
|
servicesManager,
|
|
2249
2745
|
commandsManager,
|
|
@@ -2258,6 +2754,7 @@ const tmtvExtension = {
|
|
|
2258
2754
|
};
|
|
2259
2755
|
/* export default */ const tmtv_src = (tmtvExtension);
|
|
2260
2756
|
|
|
2757
|
+
|
|
2261
2758
|
},
|
|
2262
2759
|
|
|
2263
2760
|
}]);
|
|
@@ -1037,8 +1037,8 @@ function getCustomizationModule() {
|
|
|
1037
1037
|
value: customizations_segmentationCustomization
|
|
1038
1038
|
}];
|
|
1039
1039
|
}
|
|
1040
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
1041
|
-
var cornerstone_src = __webpack_require__(
|
|
1040
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 200 modules
|
|
1041
|
+
var cornerstone_src = __webpack_require__(86714);
|
|
1042
1042
|
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3682 modules
|
|
1043
1043
|
var ui_next_src = __webpack_require__(39987);
|
|
1044
1044
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/index.js
|
|
@@ -484,8 +484,8 @@ function getCustomizationModule() {
|
|
|
484
484
|
/* export default */ const maxNumImageFrames = ((study, extraData) => Math.max(...(extraData?.displaySets?.map?.(ds => ds.numImageFrames ?? 0) || [0])));
|
|
485
485
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
486
486
|
var react = __webpack_require__(86326);
|
|
487
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
488
|
-
var src = __webpack_require__(
|
|
487
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 200 modules
|
|
488
|
+
var src = __webpack_require__(86714);
|
|
489
489
|
;// CONCATENATED MODULE: ../../../extensions/test-extension/src/getPanelModule.tsx
|
|
490
490
|
|
|
491
491
|
|