@ohif/app 3.7.0-beta.57 → 3.7.0-beta.58
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/{12.bundle.e700b4f7fed061124c30.js → 12.bundle.a98f63827a148e9fdaaf.js} +2 -2
- package/dist/{128.bundle.7a19676226ebadc64139.js → 128.bundle.beabde44babc7e667e74.js} +4 -4
- package/dist/{150.bundle.283cf42533b034afbc60.js → 150.bundle.c4ea65552293aff70c7a.js} +4 -4
- package/dist/{181.bundle.478d912299d128704269.js → 181.bundle.70c4340cbe29bd14aafc.js} +4 -4
- package/dist/{236.bundle.269d01bfd535b5114980.js → 236.bundle.d588fd25d68c6c017ee3.js} +5 -5
- package/dist/{250.bundle.390cb28f078d9c4b2995.js → 250.bundle.0d497b1b8afb0cbbe02f.js} +6 -6
- package/dist/{281.bundle.97a1fa1cf2b71bbfbba1.js → 281.bundle.5b0a5e6eb03470e23d2b.js} +2 -2
- package/dist/{30.bundle.f19f9496718d60d1c2f9.js → 30.bundle.9427944862190fc79970.js} +8 -8
- package/dist/{348.bundle.2e98107bfbeb8acaf2d6.js → 348.bundle.a2e21a04f2df1e420b22.js} +4 -4
- package/dist/{359.bundle.13aa30ac6c8f4d94d1c5.js → 359.bundle.535a337486c4789e15f7.js} +4 -4
- package/dist/{654.bundle.a2d29dc0d277100f8bee.js → 362.bundle.52c5185d34f5f0dac3ab.js} +439 -35
- package/dist/{410.bundle.819f12d4a10a16f66582.js → 410.bundle.73658423c3c2c6f7263f.js} +4 -4
- package/dist/{451.bundle.353be6110631bf74541b.js → 451.bundle.a573877dff7b43382138.js} +5 -4
- package/dist/{471.bundle.26a7b18545380999bf15.js → 471.bundle.e9ecd59867a19e323234.js} +5 -4
- package/dist/{506.bundle.a283db0a482175fbb3ac.js → 506.bundle.25789c2270ca2f0d97d1.js} +2 -2
- package/dist/{663.bundle.751d2d27e38cd81e4ecb.js → 663.bundle.55721e776396d06003ca.js} +4 -4
- package/dist/{678.bundle.9995ff30e61c63ed6e9b.js → 678.bundle.eb17b616827ad2710f8f.js} +4 -4
- package/dist/{782.bundle.5209b8b8d564411c6375.js → 782.bundle.20ddd47317996fe30e16.js} +4 -4
- package/dist/{814.bundle.335d0f516f0bea5a34a5.js → 814.bundle.9dab1ac2fed309c164d9.js} +2 -2
- package/dist/{822.bundle.19500eed01bd57ee812e.js → 822.bundle.99bf759483aa32086346.js} +3 -3
- package/dist/{886.bundle.0ebaa84a7952a2e1b780.js → 886.bundle.c5a6b96760ea43352375.js} +3 -2
- package/dist/{app.bundle.583f3a50698617e6ce16.js → app.bundle.0004f951b9afebc609b8.js} +122 -32
- package/dist/app.bundle.css +1 -1
- package/dist/google.js +1 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{378.bundle.6cc7898097ba34752e81.js → 378.bundle.c3502c268c2d82c78de2.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(self["webpackChunk"] = self["webpackChunk"] || []).push([[
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[362],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 13362:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -29,8 +29,8 @@ __webpack_require__.d(utils_namespaceObject, {
|
|
|
29
29
|
|
|
30
30
|
// EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
|
|
31
31
|
var dicomweb_client_es = __webpack_require__(97604);
|
|
32
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
33
|
-
var src = __webpack_require__(
|
|
32
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
33
|
+
var src = __webpack_require__(38930);
|
|
34
34
|
// EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
|
|
35
35
|
var sortStudy = __webpack_require__(62971);
|
|
36
36
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
|
|
@@ -2054,10 +2054,10 @@ var dist = __webpack_require__(62474);
|
|
|
2054
2054
|
var es = __webpack_require__(69190);
|
|
2055
2055
|
// EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
|
|
2056
2056
|
var react_router_dist = __webpack_require__(85066);
|
|
2057
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
2058
|
-
var ui_src = __webpack_require__(
|
|
2059
|
-
// EXTERNAL MODULE: ../../i18n/src/index.js +
|
|
2060
|
-
var i18n_src = __webpack_require__(
|
|
2057
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
2058
|
+
var ui_src = __webpack_require__(33570);
|
|
2059
|
+
// EXTERNAL MODULE: ../../i18n/src/index.js + 98 modules
|
|
2060
|
+
var i18n_src = __webpack_require__(43040);
|
|
2061
2061
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
2062
2062
|
var state = __webpack_require__(62657);
|
|
2063
2063
|
// EXTERNAL MODULE: ../../../node_modules/classnames/index.js
|
|
@@ -2211,8 +2211,8 @@ function ViewerLayout(_ref) {
|
|
|
2211
2211
|
hotkeyDefinitions,
|
|
2212
2212
|
hotkeyDefaults
|
|
2213
2213
|
} = hotkeysManager;
|
|
2214
|
-
const versionNumber = "3.7.0-beta.
|
|
2215
|
-
const commitHash = "
|
|
2214
|
+
const versionNumber = "3.7.0-beta.58";
|
|
2215
|
+
const commitHash = "a336992971c07552c9dbb6e1de43169d37762ef1";
|
|
2216
2216
|
const menuOptions = [{
|
|
2217
2217
|
title: t('Header:About'),
|
|
2218
2218
|
icon: 'info',
|
|
@@ -4661,7 +4661,6 @@ function DicomTagTable(_ref2) {
|
|
|
4661
4661
|
|
|
4662
4662
|
|
|
4663
4663
|
|
|
4664
|
-
|
|
4665
4664
|
const {
|
|
4666
4665
|
ImageSet: DicomTagBrowser_ImageSet
|
|
4667
4666
|
} = src.classes;
|
|
@@ -4690,7 +4689,6 @@ const DicomTagBrowser = _ref => {
|
|
|
4690
4689
|
setSelectedDisplaySetInstanceUID(value.value);
|
|
4691
4690
|
setInstanceNumber(1);
|
|
4692
4691
|
};
|
|
4693
|
-
const searchInputRef = (0,react.useRef)(null);
|
|
4694
4692
|
const activeDisplaySet = displaySets.find(ds => ds.displaySetInstanceUID === selectedDisplaySetInstanceUID);
|
|
4695
4693
|
const isImageStack = _isImageStack(activeDisplaySet);
|
|
4696
4694
|
const showInstanceList = isImageStack && activeDisplaySet.images.length > 1;
|
|
@@ -4794,29 +4792,11 @@ const DicomTagBrowser = _ref => {
|
|
|
4794
4792
|
className: "w-full h-1 bg-black"
|
|
4795
4793
|
}), /*#__PURE__*/react.createElement("div", {
|
|
4796
4794
|
className: "flex flex-row my-3 w-1/2"
|
|
4797
|
-
}, /*#__PURE__*/react.createElement(
|
|
4798
|
-
className: "
|
|
4799
|
-
}, /*#__PURE__*/react.createElement("span", {
|
|
4800
|
-
className: "absolute inset-y-0 left-0 flex items-center pl-2"
|
|
4801
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
4802
|
-
name: "icon-search"
|
|
4803
|
-
})), /*#__PURE__*/react.createElement("input", {
|
|
4804
|
-
ref: searchInputRef,
|
|
4805
|
-
type: "text",
|
|
4806
|
-
className: "block bg-black w-full shadow transition duration-300 appearance-none border border-inputfield-main focus:border-inputfield-focus focus:outline-none disabled:border-inputfield-disabled rounded w-full py-2 px-9 text-base leading-tight placeholder:text-inputfield-placeholder",
|
|
4795
|
+
}, /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.Xe, {
|
|
4796
|
+
className: "block w-full mr-8",
|
|
4807
4797
|
placeholder: "Search metadata...",
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
}), /*#__PURE__*/react.createElement("span", {
|
|
4811
|
-
className: "absolute inset-y-0 right-0 flex items-center pr-2"
|
|
4812
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
4813
|
-
name: "icon-clear-field",
|
|
4814
|
-
className: classnames_default()('cursor-pointer', filterValue ? '' : 'hidden'),
|
|
4815
|
-
onClick: () => {
|
|
4816
|
-
searchInputRef.current.value = '';
|
|
4817
|
-
debouncedSetFilterValue('');
|
|
4818
|
-
}
|
|
4819
|
-
})))), /*#__PURE__*/react.createElement(DicomTagBrowser_DicomTagTable, {
|
|
4798
|
+
onDebounceChange: setFilterValue
|
|
4799
|
+
})), /*#__PURE__*/react.createElement(DicomTagBrowser_DicomTagTable, {
|
|
4820
4800
|
rows: filteredRows
|
|
4821
4801
|
}));
|
|
4822
4802
|
};
|
|
@@ -6331,10 +6311,419 @@ function DataSourceSelector() {
|
|
|
6331
6311
|
}, ds.sourceName), /*#__PURE__*/react.createElement("br", null)))))));
|
|
6332
6312
|
}
|
|
6333
6313
|
/* harmony default export */ const Panels_DataSourceSelector = (DataSourceSelector);
|
|
6314
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/Components/ItemListComponent.tsx
|
|
6315
|
+
|
|
6316
|
+
|
|
6317
|
+
|
|
6318
|
+
|
|
6319
|
+
function ItemListComponent(_ref) {
|
|
6320
|
+
let {
|
|
6321
|
+
itemLabel,
|
|
6322
|
+
itemList,
|
|
6323
|
+
onItemClicked
|
|
6324
|
+
} = _ref;
|
|
6325
|
+
const {
|
|
6326
|
+
t
|
|
6327
|
+
} = (0,es/* useTranslation */.$G)('DataSourceConfiguration');
|
|
6328
|
+
const [filterValue, setFilterValue] = (0,react.useState)('');
|
|
6329
|
+
(0,react.useEffect)(() => {
|
|
6330
|
+
setFilterValue('');
|
|
6331
|
+
}, [itemList]);
|
|
6332
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6333
|
+
className: "flex flex-col gap-4 min-h-[1px] grow"
|
|
6334
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
6335
|
+
className: "flex justify-between items-center"
|
|
6336
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
6337
|
+
className: "text-primary-light text-[20px]"
|
|
6338
|
+
}, t(`Select ${itemLabel}`)), /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.Xe, {
|
|
6339
|
+
className: "grow max-w-[40%]",
|
|
6340
|
+
value: filterValue,
|
|
6341
|
+
onDebounceChange: setFilterValue,
|
|
6342
|
+
placeholder: t(`Search ${itemLabel} list`)
|
|
6343
|
+
})), /*#__PURE__*/react.createElement("div", {
|
|
6344
|
+
className: "flex flex-col relative min-h-[1px] grow text-[14px] bg-black"
|
|
6345
|
+
}, itemList == null ? /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorProgress */.LE, {
|
|
6346
|
+
className: 'w-full h-full'
|
|
6347
|
+
}) : itemList.length === 0 ? /*#__PURE__*/react.createElement("div", {
|
|
6348
|
+
className: "flex flex-col h-full px-6 py-4 items-center justify-center text-primary-light"
|
|
6349
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
6350
|
+
name: "magnifier",
|
|
6351
|
+
className: "mb-4"
|
|
6352
|
+
}), /*#__PURE__*/react.createElement("span", null, t(`No ${itemLabel} available`))) : /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
6353
|
+
className: "bg-secondary-dark text-white px-3 py-1.5"
|
|
6354
|
+
}, t(itemLabel)), /*#__PURE__*/react.createElement("div", {
|
|
6355
|
+
className: "overflow-auto ohif-scrollbar"
|
|
6356
|
+
}, itemList.filter(item => !filterValue || item.name.toLowerCase().includes(filterValue.toLowerCase())).map(item => {
|
|
6357
|
+
const border = 'rounded border-transparent border-b-secondary-light border-[1px] hover:border-primary-light';
|
|
6358
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6359
|
+
className: classnames_default()('group mx-2 px-6 py-2 flex justify-between items-center hover:text-primary-light hover:bg-primary-dark', border),
|
|
6360
|
+
key: item.id
|
|
6361
|
+
}, /*#__PURE__*/react.createElement("div", null, item.name), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
|
|
6362
|
+
onClick: () => onItemClicked(item),
|
|
6363
|
+
className: "invisible group-hover:visible",
|
|
6364
|
+
endIcon: /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
6365
|
+
name: "arrow-left"
|
|
6366
|
+
})
|
|
6367
|
+
}, t('Select')));
|
|
6368
|
+
})))));
|
|
6369
|
+
}
|
|
6370
|
+
/* harmony default export */ const Components_ItemListComponent = (ItemListComponent);
|
|
6371
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/Components/DataSourceConfigurationModalComponent.tsx
|
|
6372
|
+
|
|
6373
|
+
|
|
6374
|
+
|
|
6375
|
+
|
|
6376
|
+
|
|
6377
|
+
const NO_WRAP_ELLIPSIS_CLASS_NAMES = 'text-ellipsis whitespace-nowrap overflow-hidden';
|
|
6378
|
+
function DataSourceConfigurationModalComponent(_ref) {
|
|
6379
|
+
let {
|
|
6380
|
+
configurationAPI,
|
|
6381
|
+
configuredItems,
|
|
6382
|
+
onHide
|
|
6383
|
+
} = _ref;
|
|
6384
|
+
const {
|
|
6385
|
+
t
|
|
6386
|
+
} = (0,es/* useTranslation */.$G)('DataSourceConfiguration');
|
|
6387
|
+
const [itemList, setItemList] = (0,react.useState)();
|
|
6388
|
+
const [selectedItems, setSelectedItems] = (0,react.useState)(configuredItems);
|
|
6389
|
+
|
|
6390
|
+
// Determines whether to show the full configuration for the data source.
|
|
6391
|
+
// This typically occurs when the configuration component is first displayed.
|
|
6392
|
+
const [showFullConfig, setShowFullConfig] = (0,react.useState)(true);
|
|
6393
|
+
const [errorMessage, setErrorMessage] = (0,react.useState)();
|
|
6394
|
+
const [itemLabels] = (0,react.useState)(configurationAPI.getItemLabels());
|
|
6395
|
+
|
|
6396
|
+
/**
|
|
6397
|
+
* The index of the selected item that is considered current and for which
|
|
6398
|
+
* its sub-items should be displayed in the items list component. When the
|
|
6399
|
+
* full/existing configuration for a data source is to be shown, the current
|
|
6400
|
+
* selected item is the second to last in the `selectedItems` list.
|
|
6401
|
+
*/
|
|
6402
|
+
const currentSelectedItemIndex = showFullConfig ? selectedItems.length - 2 : selectedItems.length - 1;
|
|
6403
|
+
(0,react.useEffect)(() => {
|
|
6404
|
+
let shouldUpdate = true;
|
|
6405
|
+
setErrorMessage(null);
|
|
6406
|
+
|
|
6407
|
+
// Clear out the former/old list while we fetch the next sub item list.
|
|
6408
|
+
setItemList(null);
|
|
6409
|
+
if (selectedItems.length === 0) {
|
|
6410
|
+
configurationAPI.initialize().then(items => {
|
|
6411
|
+
if (shouldUpdate) {
|
|
6412
|
+
setItemList(items);
|
|
6413
|
+
}
|
|
6414
|
+
}).catch(error => setErrorMessage(error.message));
|
|
6415
|
+
} else if (!showFullConfig && selectedItems.length === itemLabels.length) {
|
|
6416
|
+
// The last item to configure the data source (path) has been selected.
|
|
6417
|
+
configurationAPI.setCurrentItem(selectedItems[selectedItems.length - 1]);
|
|
6418
|
+
// We can hide the modal dialog now.
|
|
6419
|
+
onHide();
|
|
6420
|
+
} else {
|
|
6421
|
+
configurationAPI.setCurrentItem(selectedItems[currentSelectedItemIndex]).then(items => {
|
|
6422
|
+
if (shouldUpdate) {
|
|
6423
|
+
setItemList(items);
|
|
6424
|
+
}
|
|
6425
|
+
}).catch(error => setErrorMessage(error.message));
|
|
6426
|
+
}
|
|
6427
|
+
return () => {
|
|
6428
|
+
shouldUpdate = false;
|
|
6429
|
+
};
|
|
6430
|
+
}, [selectedItems, configurationAPI, onHide, itemLabels, showFullConfig, currentSelectedItemIndex]);
|
|
6431
|
+
const getSelectedItemCursorClasses = itemIndex => itemIndex !== itemLabels.length - 1 && itemIndex < selectedItems.length ? 'cursor-pointer' : 'cursor-auto';
|
|
6432
|
+
const getSelectedItemBackgroundClasses = itemIndex => itemIndex < selectedItems.length ? classnames_default()('bg-black/[.4]', itemIndex !== itemLabels.length - 1 ? 'hover:bg-transparent active:bg-secondary-dark' : '') : 'bg-transparent';
|
|
6433
|
+
const getSelectedItemBorderClasses = itemIndex => itemIndex === currentSelectedItemIndex + 1 ? classnames_default()('border-2', 'border-solid', 'border-primary-light') : itemIndex < selectedItems.length ? 'border border-solid border-primary-active hover:border-primary-light active:border-white' : 'border border-dashed border-secondary-light';
|
|
6434
|
+
const getSelectedItemTextClasses = itemIndex => itemIndex <= selectedItems.length ? 'text-primary-light' : 'text-primary-active';
|
|
6435
|
+
const getErrorComponent = () => {
|
|
6436
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6437
|
+
className: "flex flex-col gap-4 min-h-[1px] grow"
|
|
6438
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
6439
|
+
className: "text-primary-light text-[20px]"
|
|
6440
|
+
}, t(`Error fetching ${itemLabels[selectedItems.length]} list`)), /*#__PURE__*/react.createElement("div", {
|
|
6441
|
+
className: "bg-black text-[14px] grow p-4"
|
|
6442
|
+
}, errorMessage));
|
|
6443
|
+
};
|
|
6444
|
+
const getSelectedItemsComponent = () => {
|
|
6445
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6446
|
+
className: "flex gap-4"
|
|
6447
|
+
}, itemLabels.map((itemLabel, itemLabelIndex) => {
|
|
6448
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6449
|
+
key: itemLabel,
|
|
6450
|
+
className: classnames_default()('rounded-md p-3.5 flex flex-col gap-1 shrink min-w-[1px] basis-[200px]', getSelectedItemCursorClasses(itemLabelIndex), getSelectedItemBackgroundClasses(itemLabelIndex), getSelectedItemBorderClasses(itemLabelIndex), getSelectedItemTextClasses(itemLabelIndex)),
|
|
6451
|
+
onClick: showFullConfig && itemLabelIndex < currentSelectedItemIndex || itemLabelIndex <= currentSelectedItemIndex ? () => {
|
|
6452
|
+
setShowFullConfig(false);
|
|
6453
|
+
setSelectedItems(theList => theList.slice(0, itemLabelIndex));
|
|
6454
|
+
} : undefined
|
|
6455
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
6456
|
+
className: "flex gap-2 items-center text-"
|
|
6457
|
+
}, itemLabelIndex < selectedItems.length ? /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
6458
|
+
name: "status-tracked"
|
|
6459
|
+
}) : /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
6460
|
+
name: "status-untracked"
|
|
6461
|
+
}), /*#__PURE__*/react.createElement("div", {
|
|
6462
|
+
className: classnames_default()(NO_WRAP_ELLIPSIS_CLASS_NAMES)
|
|
6463
|
+
}, t(itemLabel))), itemLabelIndex < selectedItems.length ? /*#__PURE__*/react.createElement("div", {
|
|
6464
|
+
className: classnames_default()('text-white text-[14px]', NO_WRAP_ELLIPSIS_CLASS_NAMES)
|
|
6465
|
+
}, selectedItems[itemLabelIndex].name) : /*#__PURE__*/react.createElement("br", null));
|
|
6466
|
+
}));
|
|
6467
|
+
};
|
|
6468
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6469
|
+
className: "h-[calc(100vh-300px)] flex flex-col pt-0.5 gap-4 select-none"
|
|
6470
|
+
}, getSelectedItemsComponent(), /*#__PURE__*/react.createElement("div", {
|
|
6471
|
+
className: "w-full h-0.5 shrink-0 bg-black"
|
|
6472
|
+
}), errorMessage ? getErrorComponent() : /*#__PURE__*/react.createElement(Components_ItemListComponent, {
|
|
6473
|
+
itemLabel: itemLabels[currentSelectedItemIndex + 1],
|
|
6474
|
+
itemList: itemList,
|
|
6475
|
+
onItemClicked: item => {
|
|
6476
|
+
setShowFullConfig(false);
|
|
6477
|
+
setSelectedItems(theList => [...theList.slice(0, currentSelectedItemIndex + 1), item]);
|
|
6478
|
+
}
|
|
6479
|
+
}));
|
|
6480
|
+
}
|
|
6481
|
+
/* harmony default export */ const Components_DataSourceConfigurationModalComponent = (DataSourceConfigurationModalComponent);
|
|
6482
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/Components/DataSourceConfigurationComponent.tsx
|
|
6483
|
+
|
|
6484
|
+
|
|
6485
|
+
|
|
6486
|
+
|
|
6487
|
+
function DataSourceConfigurationComponent(_ref) {
|
|
6488
|
+
let {
|
|
6489
|
+
servicesManager,
|
|
6490
|
+
extensionManager
|
|
6491
|
+
} = _ref;
|
|
6492
|
+
const {
|
|
6493
|
+
t
|
|
6494
|
+
} = (0,es/* useTranslation */.$G)('DataSourceConfiguration');
|
|
6495
|
+
const {
|
|
6496
|
+
show,
|
|
6497
|
+
hide
|
|
6498
|
+
} = (0,ui_src/* useModal */.dd)();
|
|
6499
|
+
const {
|
|
6500
|
+
customizationService
|
|
6501
|
+
} = servicesManager.services;
|
|
6502
|
+
const [configurationAPI, setConfigurationAPI] = (0,react.useState)();
|
|
6503
|
+
const [configuredItems, setConfiguredItems] = (0,react.useState)();
|
|
6504
|
+
(0,react.useEffect)(() => {
|
|
6505
|
+
let shouldUpdate = true;
|
|
6506
|
+
const dataSourceChangedCallback = async () => {
|
|
6507
|
+
const activeDataSourceDef = extensionManager.getActiveDataSourceDefinition();
|
|
6508
|
+
if (!activeDataSourceDef.configuration.configurationAPI) {
|
|
6509
|
+
return;
|
|
6510
|
+
}
|
|
6511
|
+
const {
|
|
6512
|
+
factory: configurationAPIFactory
|
|
6513
|
+
} = customizationService.get(activeDataSourceDef.configuration.configurationAPI) ?? {};
|
|
6514
|
+
if (!configurationAPIFactory) {
|
|
6515
|
+
return;
|
|
6516
|
+
}
|
|
6517
|
+
const configAPI = configurationAPIFactory(activeDataSourceDef.sourceName);
|
|
6518
|
+
setConfigurationAPI(configAPI);
|
|
6519
|
+
configAPI.getConfiguredItems().then(list => {
|
|
6520
|
+
if (shouldUpdate) {
|
|
6521
|
+
setConfiguredItems(list);
|
|
6522
|
+
}
|
|
6523
|
+
});
|
|
6524
|
+
};
|
|
6525
|
+
const sub = extensionManager.subscribe(extensionManager.EVENTS.ACTIVE_DATA_SOURCE_CHANGED, dataSourceChangedCallback);
|
|
6526
|
+
dataSourceChangedCallback();
|
|
6527
|
+
return () => {
|
|
6528
|
+
shouldUpdate = false;
|
|
6529
|
+
sub.unsubscribe();
|
|
6530
|
+
};
|
|
6531
|
+
}, []);
|
|
6532
|
+
return configuredItems ? /*#__PURE__*/react.createElement("div", {
|
|
6533
|
+
className: "flex text-aqua-pale overflow-hidden items-center"
|
|
6534
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
6535
|
+
name: "settings",
|
|
6536
|
+
className: "cursor-pointer shrink-0 w-3.5 h-3.5 mr-2.5",
|
|
6537
|
+
onClick: () => show({
|
|
6538
|
+
content: Components_DataSourceConfigurationModalComponent,
|
|
6539
|
+
title: t('Configure Data Source'),
|
|
6540
|
+
contentProps: {
|
|
6541
|
+
configurationAPI,
|
|
6542
|
+
configuredItems,
|
|
6543
|
+
onHide: hide
|
|
6544
|
+
}
|
|
6545
|
+
})
|
|
6546
|
+
}), configuredItems.map((item, itemIndex) => {
|
|
6547
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
6548
|
+
key: itemIndex,
|
|
6549
|
+
className: "flex overflow-hidden"
|
|
6550
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
6551
|
+
key: itemIndex,
|
|
6552
|
+
className: "text-ellipsis whitespace-nowrap overflow-hidden"
|
|
6553
|
+
}, item.name), itemIndex !== configuredItems.length - 1 && /*#__PURE__*/react.createElement("div", {
|
|
6554
|
+
className: "px-2.5"
|
|
6555
|
+
}, "|"));
|
|
6556
|
+
})) : /*#__PURE__*/react.createElement(react.Fragment, null);
|
|
6557
|
+
}
|
|
6558
|
+
/* harmony default export */ const Components_DataSourceConfigurationComponent = (DataSourceConfigurationComponent);
|
|
6559
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/DataSourceConfigurationAPI/GoogleCloudDataSourceConfigurationAPI.ts
|
|
6560
|
+
/**
|
|
6561
|
+
* This file contains the implementations of BaseDataSourceConfigurationAPIItem
|
|
6562
|
+
* and BaseDataSourceConfigurationAPI for the Google cloud healthcare API. To
|
|
6563
|
+
* better understand this implementation and/or to implement custom implementations,
|
|
6564
|
+
* see the platform\core\src\types\DataSourceConfigurationAPI.ts and its JS doc
|
|
6565
|
+
* comments as a guide.
|
|
6566
|
+
*/
|
|
6567
|
+
/**
|
|
6568
|
+
* The various Google Cloud Healthcare path item types.
|
|
6569
|
+
*/
|
|
6570
|
+
var ItemType = /*#__PURE__*/function (ItemType) {
|
|
6571
|
+
ItemType[ItemType["projects"] = 0] = "projects";
|
|
6572
|
+
ItemType[ItemType["locations"] = 1] = "locations";
|
|
6573
|
+
ItemType[ItemType["datasets"] = 2] = "datasets";
|
|
6574
|
+
ItemType[ItemType["dicomStores"] = 3] = "dicomStores";
|
|
6575
|
+
return ItemType;
|
|
6576
|
+
}(ItemType || {});
|
|
6577
|
+
const initialUrl = 'https://cloudresourcemanager.googleapis.com/v1';
|
|
6578
|
+
const baseHealthcareUrl = 'https://healthcare.googleapis.com/v1';
|
|
6579
|
+
class GoogleCloudDataSourceConfigurationAPIItem {
|
|
6580
|
+
constructor() {
|
|
6581
|
+
this.id = void 0;
|
|
6582
|
+
this.name = void 0;
|
|
6583
|
+
this.url = void 0;
|
|
6584
|
+
this.itemType = void 0;
|
|
6585
|
+
}
|
|
6586
|
+
}
|
|
6587
|
+
class GoogleCloudDataSourceConfigurationAPI {
|
|
6588
|
+
constructor(dataSourceName, servicesManager, extensionManager) {
|
|
6589
|
+
this._extensionManager = void 0;
|
|
6590
|
+
this._fetchOptions = void 0;
|
|
6591
|
+
this._dataSourceName = void 0;
|
|
6592
|
+
this.getItemLabels = () => ['Project', 'Location', 'Data set', 'DICOM store'];
|
|
6593
|
+
this._dataSourceName = dataSourceName;
|
|
6594
|
+
this._extensionManager = extensionManager;
|
|
6595
|
+
const userAuthenticationService = servicesManager.services.userAuthenticationService;
|
|
6596
|
+
this._fetchOptions = {
|
|
6597
|
+
method: 'GET',
|
|
6598
|
+
headers: userAuthenticationService.getAuthorizationHeader()
|
|
6599
|
+
};
|
|
6600
|
+
}
|
|
6601
|
+
async initialize() {
|
|
6602
|
+
const url = `${initialUrl}/projects`;
|
|
6603
|
+
const projects = await GoogleCloudDataSourceConfigurationAPI._doFetch(url, ItemType.projects, this._fetchOptions);
|
|
6604
|
+
if (!projects?.length) {
|
|
6605
|
+
return [];
|
|
6606
|
+
}
|
|
6607
|
+
const projectItems = projects.map(project => {
|
|
6608
|
+
return {
|
|
6609
|
+
id: project.projectId,
|
|
6610
|
+
name: project.name,
|
|
6611
|
+
itemType: ItemType.projects,
|
|
6612
|
+
url: `${baseHealthcareUrl}/projects/${project.projectId}`
|
|
6613
|
+
};
|
|
6614
|
+
});
|
|
6615
|
+
return projectItems;
|
|
6616
|
+
}
|
|
6617
|
+
async setCurrentItem(anItem) {
|
|
6618
|
+
const googleCloudItem = anItem;
|
|
6619
|
+
if (googleCloudItem.itemType === ItemType.dicomStores) {
|
|
6620
|
+
// Last configurable item, so update the data source configuration.
|
|
6621
|
+
const url = `${googleCloudItem.url}/dicomWeb`;
|
|
6622
|
+
const dataSourceDefCopy = JSON.parse(JSON.stringify(this._extensionManager.getDataSourceDefinition(this._dataSourceName)));
|
|
6623
|
+
dataSourceDefCopy.configuration = {
|
|
6624
|
+
...dataSourceDefCopy.configuration,
|
|
6625
|
+
wadoUriRoot: url,
|
|
6626
|
+
qidoRoot: url,
|
|
6627
|
+
wadoRoot: url
|
|
6628
|
+
};
|
|
6629
|
+
this._extensionManager.updateDataSourceConfiguration(dataSourceDefCopy.sourceName, dataSourceDefCopy.configuration);
|
|
6630
|
+
return [];
|
|
6631
|
+
}
|
|
6632
|
+
const subItemType = googleCloudItem.itemType + 1;
|
|
6633
|
+
const subItemField = `${ItemType[subItemType]}`;
|
|
6634
|
+
const url = `${googleCloudItem.url}/${subItemField}`;
|
|
6635
|
+
const fetchedSubItems = await GoogleCloudDataSourceConfigurationAPI._doFetch(url, subItemType, this._fetchOptions);
|
|
6636
|
+
if (!fetchedSubItems?.length) {
|
|
6637
|
+
return [];
|
|
6638
|
+
}
|
|
6639
|
+
const subItems = fetchedSubItems.map(subItem => {
|
|
6640
|
+
const nameSplit = subItem.name.split('/');
|
|
6641
|
+
return {
|
|
6642
|
+
id: subItem.name,
|
|
6643
|
+
name: nameSplit[nameSplit.length - 1],
|
|
6644
|
+
itemType: subItemType,
|
|
6645
|
+
url: `${baseHealthcareUrl}/${subItem.name}`
|
|
6646
|
+
};
|
|
6647
|
+
});
|
|
6648
|
+
return subItems;
|
|
6649
|
+
}
|
|
6650
|
+
async getConfiguredItems() {
|
|
6651
|
+
const dataSourceDefinition = this._extensionManager.getDataSourceDefinition(this._dataSourceName);
|
|
6652
|
+
const url = dataSourceDefinition.configuration.wadoUriRoot;
|
|
6653
|
+
const projectsIndex = url.indexOf('projects');
|
|
6654
|
+
const urlSplit = url.substring(projectsIndex).split('/');
|
|
6655
|
+
const configuredItems = [];
|
|
6656
|
+
for (let itemType = 0; itemType < 4; itemType += 1) {
|
|
6657
|
+
if (itemType === ItemType.projects) {
|
|
6658
|
+
const projectId = urlSplit[1];
|
|
6659
|
+
const projectUrl = `${initialUrl}/projects/${projectId}`;
|
|
6660
|
+
const data = await GoogleCloudDataSourceConfigurationAPI._doFetch(projectUrl, ItemType.projects, this._fetchOptions);
|
|
6661
|
+
const project = data[0];
|
|
6662
|
+
configuredItems.push({
|
|
6663
|
+
id: project.projectId,
|
|
6664
|
+
name: project.name,
|
|
6665
|
+
itemType: itemType,
|
|
6666
|
+
url: `${baseHealthcareUrl}/projects/${project.projectId}`
|
|
6667
|
+
});
|
|
6668
|
+
} else {
|
|
6669
|
+
const relativePath = urlSplit.slice(0, itemType * 2 + 2).join('/');
|
|
6670
|
+
configuredItems.push({
|
|
6671
|
+
id: relativePath,
|
|
6672
|
+
name: urlSplit[itemType * 2 + 1],
|
|
6673
|
+
itemType: itemType,
|
|
6674
|
+
url: `${baseHealthcareUrl}/${relativePath}`
|
|
6675
|
+
});
|
|
6676
|
+
}
|
|
6677
|
+
}
|
|
6678
|
+
return configuredItems;
|
|
6679
|
+
}
|
|
6680
|
+
|
|
6681
|
+
/**
|
|
6682
|
+
* Fetches an array of items the specified item type.
|
|
6683
|
+
* @param urlStr the fetch url
|
|
6684
|
+
* @param fetchItemType the type to fetch
|
|
6685
|
+
* @param fetchOptions the header options for the fetch (e.g. authorization header)
|
|
6686
|
+
* @param fetchSearchParams any search query params; currently only used for paging results
|
|
6687
|
+
* @returns an array of items of the specified type
|
|
6688
|
+
*/
|
|
6689
|
+
static async _doFetch(urlStr, fetchItemType) {
|
|
6690
|
+
let fetchOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
6691
|
+
let fetchSearchParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
6692
|
+
try {
|
|
6693
|
+
const url = new URL(urlStr);
|
|
6694
|
+
url.search = new URLSearchParams(fetchSearchParams).toString();
|
|
6695
|
+
const response = await fetch(url, fetchOptions);
|
|
6696
|
+
const data = await response.json();
|
|
6697
|
+
if (response.status >= 200 && response.status < 300 && data != null) {
|
|
6698
|
+
if (data.nextPageToken != null) {
|
|
6699
|
+
fetchSearchParams.pageToken = data.nextPageToken;
|
|
6700
|
+
const subPageData = await this._doFetch(urlStr, fetchItemType, fetchOptions, fetchSearchParams);
|
|
6701
|
+
data[ItemType[fetchItemType]] = data[ItemType[fetchItemType]].concat(subPageData);
|
|
6702
|
+
}
|
|
6703
|
+
if (data[ItemType[fetchItemType]]) {
|
|
6704
|
+
return data[ItemType[fetchItemType]];
|
|
6705
|
+
} else if (data.name) {
|
|
6706
|
+
return [data];
|
|
6707
|
+
} else {
|
|
6708
|
+
return [];
|
|
6709
|
+
}
|
|
6710
|
+
} else {
|
|
6711
|
+
const message = data?.error?.message || `Error returned from Google Cloud Healthcare: ${response.status} - ${response.statusText}`;
|
|
6712
|
+
throw new Error(message);
|
|
6713
|
+
}
|
|
6714
|
+
} catch (err) {
|
|
6715
|
+
const message = err?.message || 'Error occurred during fetch request.';
|
|
6716
|
+
throw new Error(message);
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6719
|
+
}
|
|
6720
|
+
|
|
6334
6721
|
;// CONCATENATED MODULE: ../../../extensions/default/src/getCustomizationModule.tsx
|
|
6335
6722
|
|
|
6336
6723
|
|
|
6337
6724
|
|
|
6725
|
+
|
|
6726
|
+
|
|
6338
6727
|
/**
|
|
6339
6728
|
*
|
|
6340
6729
|
* Note: this is an example of how the customization module can be used
|
|
@@ -6344,7 +6733,11 @@ function DataSourceSelector() {
|
|
|
6344
6733
|
* custom page for the user to view their profile, or to add a custom
|
|
6345
6734
|
* page for login etc.
|
|
6346
6735
|
*/
|
|
6347
|
-
function getCustomizationModule() {
|
|
6736
|
+
function getCustomizationModule(_ref) {
|
|
6737
|
+
let {
|
|
6738
|
+
servicesManager,
|
|
6739
|
+
extensionManager
|
|
6740
|
+
} = _ref;
|
|
6348
6741
|
return [{
|
|
6349
6742
|
name: 'helloPage',
|
|
6350
6743
|
value: {
|
|
@@ -6458,6 +6851,17 @@ function getCustomizationModule() {
|
|
|
6458
6851
|
}
|
|
6459
6852
|
return clonedObject;
|
|
6460
6853
|
}
|
|
6854
|
+
}, {
|
|
6855
|
+
// the generic GUI component to configure a data source using an instance of a BaseDataSourceConfigurationAPI
|
|
6856
|
+
id: 'ohif.dataSourceConfigurationComponent',
|
|
6857
|
+
component: Components_DataSourceConfigurationComponent.bind(null, {
|
|
6858
|
+
servicesManager,
|
|
6859
|
+
extensionManager
|
|
6860
|
+
})
|
|
6861
|
+
}, {
|
|
6862
|
+
// The factory for creating an instance of a BaseDataSourceConfigurationAPI for Google Cloud Healthcare
|
|
6863
|
+
id: 'ohif.dataSourceConfigurationAPI.google',
|
|
6864
|
+
factory: dataSourceName => new GoogleCloudDataSourceConfigurationAPI(dataSourceName, servicesManager, extensionManager)
|
|
6461
6865
|
}]
|
|
6462
6866
|
}];
|
|
6463
6867
|
}
|
|
@@ -12,10 +12,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12
12
|
"default": () => (/* binding */ basic_dev_mode_src)
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
16
|
-
var src = __webpack_require__(
|
|
17
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
18
|
-
var core_src = __webpack_require__(
|
|
15
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
16
|
+
var src = __webpack_require__(33570);
|
|
17
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
18
|
+
var core_src = __webpack_require__(38930);
|
|
19
19
|
;// CONCATENATED MODULE: ../../../modes/basic-dev-mode/src/toolbarButtons.js
|
|
20
20
|
// TODO: torn, can either bake this here; or have to create a whole new button type
|
|
21
21
|
// Only ways that you can pass in a custom React component for render :l
|
|
@@ -19,10 +19,10 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
19
19
|
var react = __webpack_require__(43001);
|
|
20
20
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
21
21
|
var es = __webpack_require__(69190);
|
|
22
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
23
|
-
var src = __webpack_require__(
|
|
24
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
25
|
-
var ui_src = __webpack_require__(
|
|
22
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
23
|
+
var src = __webpack_require__(38930);
|
|
24
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
25
|
+
var ui_src = __webpack_require__(33570);
|
|
26
26
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
|
|
27
27
|
function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
|
|
28
28
|
const {
|
|
@@ -120,6 +120,7 @@ function _getStatusComponent(_ref) {
|
|
|
120
120
|
break;
|
|
121
121
|
case false:
|
|
122
122
|
StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
123
|
+
className: "text-aqua-pale",
|
|
123
124
|
name: "status-untracked"
|
|
124
125
|
});
|
|
125
126
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load segmentation.");
|
|
@@ -17,10 +17,10 @@ var react = __webpack_require__(43001);
|
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
18
18
|
var prop_types = __webpack_require__(3827);
|
|
19
19
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
20
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
21
|
-
var src = __webpack_require__(
|
|
22
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
23
|
-
var ui_src = __webpack_require__(
|
|
20
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
21
|
+
var src = __webpack_require__(38930);
|
|
22
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
23
|
+
var ui_src = __webpack_require__(33570);
|
|
24
24
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/_hydrateRT.ts
|
|
25
25
|
var _hydrateRT = __webpack_require__(50995);
|
|
26
26
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
@@ -114,6 +114,7 @@ function _getStatusComponent(_ref) {
|
|
|
114
114
|
break;
|
|
115
115
|
case false:
|
|
116
116
|
StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
117
|
+
className: "text-aqua-pale",
|
|
117
118
|
name: "status-untracked"
|
|
118
119
|
});
|
|
119
120
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
|
|
@@ -23,8 +23,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
23
23
|
|
|
24
24
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
25
25
|
var react = __webpack_require__(43001);
|
|
26
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
27
|
-
var src = __webpack_require__(
|
|
26
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
27
|
+
var src = __webpack_require__(38930);
|
|
28
28
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
29
29
|
var dcmjs_es = __webpack_require__(67540);
|
|
30
30
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/loadRTStruct.js
|
|
@@ -25,8 +25,8 @@ const id = package_namespaceObject.u2;
|
|
|
25
25
|
const SOPClassHandlerName = 'dicom-sr';
|
|
26
26
|
const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
27
27
|
|
|
28
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
29
|
-
var src = __webpack_require__(
|
|
28
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
29
|
+
var src = __webpack_require__(38930);
|
|
30
30
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 10 modules
|
|
31
31
|
var esm = __webpack_require__(45451);
|
|
32
32
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 323 modules
|
|
@@ -1596,8 +1596,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1596
1596
|
|
|
1597
1597
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 337 modules
|
|
1598
1598
|
var esm = __webpack_require__(45754);
|
|
1599
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
1600
|
-
var src = __webpack_require__(
|
|
1599
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
1600
|
+
var src = __webpack_require__(38930);
|
|
1601
1601
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/getLabelFromDCMJSImportedToolData.js
|
|
1602
1602
|
/**
|
|
1603
1603
|
* Extracts the label from the toolData imported from dcmjs. We need to do this
|
|
@@ -37,8 +37,8 @@ var react = __webpack_require__(43001);
|
|
|
37
37
|
var esm = __webpack_require__(45754);
|
|
38
38
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 323 modules
|
|
39
39
|
var dist_esm = __webpack_require__(26925);
|
|
40
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
41
|
-
var src = __webpack_require__(
|
|
40
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 106 modules
|
|
41
|
+
var src = __webpack_require__(38930);
|
|
42
42
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
|
|
43
43
|
var streaming_image_volume_loader_dist_esm = __webpack_require__(7087);
|
|
44
44
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
|
|
@@ -116,8 +116,8 @@ function destroy() {
|
|
|
116
116
|
}
|
|
117
117
|
webWorkers.length = 0;
|
|
118
118
|
}
|
|
119
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
120
|
-
var ui_src = __webpack_require__(
|
|
119
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
120
|
+
var ui_src = __webpack_require__(33570);
|
|
121
121
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/callInputDialog.tsx
|
|
122
122
|
|
|
123
123
|
|