@ohif/app 3.9.0-beta.0 → 3.9.0-beta.10

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 (43) hide show
  1. package/dist/{117.bundle.77cc4e62d0de5d843e2e.js → 117.bundle.a80b1511ef4b302fb7cc.js} +10 -12
  2. package/dist/{121.bundle.47f05840a5b3cdf75543.js → 121.bundle.b582314ec0024fdf2d15.js} +13 -8
  3. package/dist/{164.bundle.b101cb64d04a22453984.js → 164.bundle.1da1cadb56951caef1d6.js} +9 -13
  4. package/dist/{236.bundle.f774cdc955890e6cdac9.js → 236.bundle.4ca7987e1d57f60ec13a.js} +326 -5
  5. package/dist/{188.bundle.11bc3f193369fed20b66.js → 243.bundle.1f9a962620b0bf56e1f2.js} +8 -8
  6. package/dist/{295.bundle.c935ed0430aa026f7591.js → 295.bundle.9926ff25c6dbf53845b1.js} +10 -6
  7. package/dist/{325.bundle.80800ecd8fa44d3da9f0.js → 325.bundle.f66ce293e4da43b8265a.js} +20 -18
  8. package/dist/{416.bundle.9b0d7559344fd02c9e08.js → 35.bundle.0168d78bfad0cb784112.js} +378 -45
  9. package/dist/{206.bundle.78bc4a1612a65114023f.js → 390.bundle.cc22afb1fbd172483685.js} +26 -19
  10. package/dist/{448.bundle.3e632ad35be84cb97b9b.js → 448.bundle.5217fef3c97aa24f372a.js} +33 -2
  11. package/dist/{487.bundle.5a006ecd6ac5c43b46ac.js → 487.bundle.06bb8192c2549a477d98.js} +2 -2
  12. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  13. package/dist/{544.bundle.3542927ec15c3f688c8d.js → 544.bundle.e8227e98860e39636a00.js} +3 -3
  14. package/dist/{321.bundle.ff34e813e29d7aac6a7a.js → 550.bundle.5eeb4aafe96a3638b37e.js} +38 -17
  15. package/dist/{574.bundle.4b059c95cd34efdc9cb3.js → 574.bundle.72bd5061ccd504235419.js} +36 -45
  16. package/dist/{41.bundle.c1bdf399864559c022e6.js → 682.bundle.f411ab56eccea1d22d8f.js} +36 -5
  17. package/dist/{699.bundle.6f233bb6379de54e939c.js → 699.bundle.50f53a876d7f6add8bd3.js} +2 -2
  18. package/dist/{669.bundle.28e422f4ebfa501661df.js → 721.bundle.8866191388a953936146.js} +73 -73
  19. package/dist/{724.bundle.0aa33dc045a78572026c.js → 776.bundle.016de692163e683cc11a.js} +7 -7
  20. package/dist/{203.bundle.3581da3a32a0b720d3a7.js → 806.bundle.50e039eb624382ee1fce.js} +538 -450
  21. package/dist/{862.bundle.9897a9b748078d53f9ab.js → 862.bundle.55dde21bab4c841b6259.js} +1 -1
  22. package/dist/{889.bundle.a287be728fdd2c2f2685.js → 889.bundle.f82b6f155026ad1ac1a6.js} +11 -8
  23. package/dist/{905.bundle.fdbca7f4ccc752374ece.js → 905.bundle.7a8e7c20922db4f85e70.js} +14 -3
  24. package/dist/{907.bundle.0c3fdbe2bcfcca5b9c97.js → 907.bundle.db37949266a9b79c12b8.js} +2 -2
  25. package/dist/{94.bundle.e4ae2150627e9085cadf.js → 94.bundle.43efc46965f713884e2c.js} +3 -3
  26. package/dist/{961.bundle.1f3bcb85757b41e96664.js → 961.bundle.e8b0b51dad251e90be8c.js} +2 -2
  27. package/dist/{7.bundle.ab1b0e2fcab1715e7bc0.js → 981.bundle.4fab5871bfc81cfadcda.js} +10 -9
  28. package/dist/{594.bundle.4707c7487661d7ac6873.js → 989.bundle.9155edb5aee01580a8b4.js} +5 -5
  29. package/dist/{633.bundle.6894b2582a16ede205e6.js → 998.bundle.76824b99c0ce6acfd75d.js} +12 -9
  30. package/dist/{app.bundle.10e485d72790640d038e.js → app.bundle.218eab530840339a9b1d.js} +326 -380
  31. package/dist/app.bundle.css +2 -2
  32. package/dist/index.html +1 -1
  33. package/dist/{polySeg.bundle.4442dd3318266fddf4d0.js → polySeg.bundle.1799686b019040500219.js} +3 -3
  34. package/dist/{suv-peak-worker.bundle.348c016f7f973d05f2d2.js → suv-peak-worker.bundle.25f8b85eab9ec06da48d.js} +3 -3
  35. package/dist/sw.js +1 -1
  36. package/package.json +19 -19
  37. /package/dist/{342.bundle.36ee082163b01284eeba.js → 342.bundle.340982440de15f540a89.js} +0 -0
  38. /package/dist/{473.bundle.11f707c8170ade2eb56a.js → 473.bundle.6cd4be953853f35b29c3.js} +0 -0
  39. /package/dist/{483.bundle.581b242d7b90866fdfb9.js → 483.bundle.a353efc5a5dd563c903c.js} +0 -0
  40. /package/dist/{321.css → 550.css} +0 -0
  41. /package/dist/{722.bundle.52eb61926d08a08793fe.js → 722.bundle.2547630541b670f10d6e.js} +0 -0
  42. /package/dist/{783.bundle.178fb6add40f9923f61d.js → 783.bundle.ca757d64c5a3fe609b3c.js} +0 -0
  43. /package/dist/{633.css → 998.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[206],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[390],{
3
3
 
4
- /***/ 7206:
4
+ /***/ 47390:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -32,8 +32,8 @@ __webpack_require__.d(utils_namespaceObject, {
32
32
 
33
33
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
34
34
  var dicomweb_client_es = __webpack_require__(36922);
35
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
36
- var src = __webpack_require__(55411);
35
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
36
+ var src = __webpack_require__(8633);
37
37
  // EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
38
38
  var sortStudy = __webpack_require__(45476);
39
39
  ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
@@ -1345,9 +1345,9 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
1345
1345
  return xhrRequestHeaders;
1346
1346
  };
1347
1347
  generateWadoHeader = () => {
1348
- let authorizationHeader = getAuthrorizationHeader();
1348
+ const authorizationHeader = getAuthrorizationHeader();
1349
1349
  //Generate accept header depending on config params
1350
- let formattedAcceptHeader = src.utils.generateAcceptHeader(dicomWebConfig.acceptHeader, dicomWebConfig.requestTransferSyntaxUID, dicomWebConfig.omitQuotationForMultipartRequest);
1350
+ const formattedAcceptHeader = src.utils.generateAcceptHeader(dicomWebConfig.acceptHeader, dicomWebConfig.requestTransferSyntaxUID, dicomWebConfig.omitQuotationForMultipartRequest);
1351
1351
  return {
1352
1352
  ...authorizationHeader,
1353
1353
  Accept: formattedAcceptHeader
@@ -1887,6 +1887,7 @@ function createDicomJSONApi(dicomJsonConfig) {
1887
1887
  },
1888
1888
  series: {
1889
1889
  metadata: async ({
1890
+ filters,
1890
1891
  StudyInstanceUID,
1891
1892
  madeInClient = false,
1892
1893
  customSort
@@ -1901,6 +1902,12 @@ function createDicomJSONApi(dicomJsonConfig) {
1901
1902
  } else {
1902
1903
  series = study.series;
1903
1904
  }
1905
+ const seriesKeys = ['SeriesInstanceUID', 'SeriesInstanceUIDs', 'seriesInstanceUID', 'seriesInstanceUIDs'];
1906
+ const seriesFilter = seriesKeys.find(key => filters[key]);
1907
+ if (seriesFilter) {
1908
+ const seriesUIDs = filters[seriesFilter];
1909
+ series = series.filter(s => seriesUIDs.includes(s.SeriesInstanceUID));
1910
+ }
1904
1911
  const seriesSummaryMetadata = series.map(series => {
1905
1912
  const seriesSummary = {
1906
1913
  StudyInstanceUID: study.StudyInstanceUID,
@@ -2253,7 +2260,7 @@ function createDicomLocalApi(dicomLocalConfig) {
2253
2260
  return src/* IWebApiDataSource */.pt.create(implementation);
2254
2261
  }
2255
2262
 
2256
- ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebProxyDataSource/index.js
2263
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebProxyDataSource/index.ts
2257
2264
 
2258
2265
 
2259
2266
 
@@ -2280,7 +2287,7 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
2280
2287
  throw new Error(`No url for '${name}'`);
2281
2288
  } else {
2282
2289
  const response = await fetch(url);
2283
- let data = await response.json();
2290
+ const data = await response.json();
2284
2291
  if (!data.servers?.dicomWeb?.[0]) {
2285
2292
  throw new Error('Invalid configuration returned by url');
2286
2293
  }
@@ -2750,8 +2757,8 @@ function ViewerHeader({
2750
2757
  hotkeyDefinitions,
2751
2758
  hotkeyDefaults
2752
2759
  } = hotkeysManager;
2753
- const versionNumber = "3.9.0-beta.0";
2754
- const commitHash = "f95255e8cd79d881a5b5d1be33a6568754738d23";
2760
+ const versionNumber = "3.9.0-beta.10";
2761
+ const commitHash = "70bb6c46267b3733a665f12534b849c890ce54ad";
2755
2762
  const menuOptions = [{
2756
2763
  title: t('Header:About'),
2757
2764
  icon: 'info',
@@ -3037,7 +3044,7 @@ ViewerLayout.propTypes = {
3037
3044
  getModuleEntry: (prop_types_default()).func.isRequired
3038
3045
  }).isRequired,
3039
3046
  commandsManager: prop_types_default().instanceOf(src/* CommandsManager */.Sp),
3040
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS),
3047
+ servicesManager: (prop_types_default()).object.isRequired,
3041
3048
  // From modes
3042
3049
  leftPanels: (prop_types_default()).array,
3043
3050
  rightPanels: (prop_types_default()).array,
@@ -3709,6 +3716,7 @@ async function createReportAsync({
3709
3716
  message: error.message || `Failed to store ${reportType}`,
3710
3717
  type: 'error'
3711
3718
  });
3719
+ throw new Error(`Failed to store ${reportType}. Error: ${error.message || 'Unknown error'}`);
3712
3720
  } finally {
3713
3721
  uiDialogService.dismiss({
3714
3722
  id: loadingDialogId
@@ -4012,7 +4020,7 @@ function PanelMeasurementTable({
4012
4020
  })));
4013
4021
  }
4014
4022
  PanelMeasurementTable.propTypes = {
4015
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS).isRequired
4023
+ servicesManager: (prop_types_default()).object.isRequired
4016
4024
  };
4017
4025
  function _getMappedMeasurements(measurementService) {
4018
4026
  const measurements = measurementService.getMeasurements();
@@ -4744,7 +4752,6 @@ function ToolbarLayoutSelector_extends() { ToolbarLayoutSelector_extends = Objec
4744
4752
 
4745
4753
 
4746
4754
 
4747
-
4748
4755
  const defaultCommonPresets = [{
4749
4756
  icon: 'layout-common-1x1',
4750
4757
  commandOptions: {
@@ -4933,7 +4940,7 @@ LayoutSelector.propTypes = {
4933
4940
  rows: (prop_types_default()).number,
4934
4941
  columns: (prop_types_default()).number,
4935
4942
  onLayoutChange: (prop_types_default()).func,
4936
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS)
4943
+ servicesManager: (prop_types_default()).object.isRequired
4937
4944
  };
4938
4945
  LayoutSelector.defaultProps = {
4939
4946
  columns: 4,
@@ -8013,7 +8020,7 @@ function getPTImageIdInstanceMetadata(imageId) {
8013
8020
  if (!dicomMetaData) {
8014
8021
  throw new Error('dicom metadata are required');
8015
8022
  }
8016
- if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime === undefined) {
8023
+ if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime === undefined) {
8017
8024
  throw new Error('required metadata are missing');
8018
8025
  }
8019
8026
  if (dicomMetaData.PatientWeight === undefined) {
@@ -8022,10 +8029,10 @@ function getPTImageIdInstanceMetadata(imageId) {
8022
8029
  const instanceMetadata = {
8023
8030
  CorrectedImage: dicomMetaData.CorrectedImage,
8024
8031
  Units: dicomMetaData.Units,
8025
- RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife,
8026
- RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose,
8027
- RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime,
8028
- RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime,
8032
+ RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife,
8033
+ RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose,
8034
+ RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime,
8035
+ RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime,
8029
8036
  DecayCorrection: dicomMetaData.DecayCorrection,
8030
8037
  PatientWeight: dicomMetaData.PatientWeight,
8031
8038
  SeriesDate: dicomMetaData.SeriesDate,
@@ -12,8 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ basic_test_mode_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
16
- var src = __webpack_require__(55411);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
16
+ var src = __webpack_require__(8633);
17
17
  // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
18
18
  var ui_src = __webpack_require__(5085);
19
19
  ;// CONCATENATED MODULE: ../../../modes/basic-test-mode/src/toolbarButtons.ts
@@ -240,6 +240,16 @@ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-test"
240
240
  const id = package_namespaceObject.UU;
241
241
 
242
242
  ;// CONCATENATED MODULE: ../../../modes/basic-test-mode/src/initToolGroups.ts
243
+ const colours = {
244
+ 'viewport-0': 'rgb(200, 0, 0)',
245
+ 'viewport-1': 'rgb(200, 200, 0)',
246
+ 'viewport-2': 'rgb(0, 200, 0)'
247
+ };
248
+ const colorsByOrientation = {
249
+ axial: 'rgb(200, 0, 0)',
250
+ sagittal: 'rgb(200, 200, 0)',
251
+ coronal: 'rgb(0, 200, 0)'
252
+ };
243
253
  function initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {
244
254
  const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
245
255
  const {
@@ -375,6 +385,10 @@ function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
375
385
  }
376
386
  function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
377
387
  const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
388
+ const serviceManager = extensionManager._servicesManager;
389
+ const {
390
+ cornerstoneViewportService
391
+ } = serviceManager.services;
378
392
  const {
379
393
  toolNames,
380
394
  Enums
@@ -440,6 +454,16 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
440
454
  autoPan: {
441
455
  enabled: false,
442
456
  panSize: 10
457
+ },
458
+ getReferenceLineColor: viewportId => {
459
+ const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
460
+ const viewportOptions = viewportInfo?.viewportOptions;
461
+ if (viewportOptions) {
462
+ return colours[viewportOptions.id] || colorsByOrientation[viewportOptions.orientation] || '#0c0';
463
+ } else {
464
+ console.warn('missing viewport?', viewportId);
465
+ return '#0c0';
466
+ }
443
467
  }
444
468
  }
445
469
  }, {
@@ -610,6 +634,13 @@ const moreTools = [{
610
634
  tooltip: 'Angle',
611
635
  commands: setToolActiveToolbar,
612
636
  evaluate: 'evaluate.cornerstoneTool'
637
+ }), moreTools_createButton({
638
+ id: 'CobbAngle',
639
+ icon: 'tool-angle',
640
+ label: 'Cobb Angle',
641
+ tooltip: 'Cobb Angle',
642
+ commands: setToolActiveToolbar,
643
+ evaluate: 'evaluate.cornerstoneTool'
613
644
  }), moreTools_createButton({
614
645
  id: 'Magnify',
615
646
  icon: 'tool-magnify',
@@ -26,8 +26,8 @@ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-
26
26
  const id = package_namespaceObject.UU;
27
27
  const SOPClassHandlerName = 'dynamic-volume';
28
28
 
29
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
30
- var src = __webpack_require__(55411);
29
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
30
+ var src = __webpack_require__(8633);
31
31
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
32
32
  var esm = __webpack_require__(92136);
33
33
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
@@ -12,10 +12,10 @@ __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
13
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41766);
14
14
  /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80619);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55411);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8633);
16
16
  /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74334);
17
17
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5085);
18
- /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77089);
18
+ /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31808);
19
19
  /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15575);
20
20
  /* harmony import */ var _utils_createReferencedImageDisplaySet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(92643);
21
21
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -330,7 +330,7 @@ OHIFCornerstoneSRViewport.propTypes = {
330
330
  viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
331
331
  customProps: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
332
332
  viewportOptions: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
333
- servicesManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ServicesManager */ .CS).isRequired,
333
+ servicesManager: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object).isRequired,
334
334
  extensionManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ExtensionManager */ .nH).isRequired
335
335
  };
336
336
  OHIFCornerstoneSRViewport.defaultProps = {
@@ -256,10 +256,10 @@ const itemGenerator = props => {
256
256
  }, content.value)));
257
257
  };
258
258
  /* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
259
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
260
- var core_src = __webpack_require__(55411);
259
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
260
+ var core_src = __webpack_require__(8633);
261
261
  // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
262
- var default_src = __webpack_require__(7206);
262
+ var default_src = __webpack_require__(47390);
263
263
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
264
264
 
265
265
 
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[321],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[550],{
3
3
 
4
4
  /***/ 76255:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -141,7 +141,7 @@ const useViewportActionCornersContext = () => (0,react__WEBPACK_IMPORTED_MODULE_
141
141
 
142
142
  /***/ }),
143
143
 
144
- /***/ 12702:
144
+ /***/ 550:
145
145
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
146
146
 
147
147
  // ESM COMPAT FLAG
@@ -181,8 +181,8 @@ var esm = __webpack_require__(92136);
181
181
  var dist_esm = __webpack_require__(39371);
182
182
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
183
183
  var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
184
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
185
- var src = __webpack_require__(55411);
184
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
185
+ var src = __webpack_require__(8633);
186
186
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
187
187
  var cornerstoneDICOMImageLoader_min = __webpack_require__(54578);
188
188
  var cornerstoneDICOMImageLoader_min_default = /*#__PURE__*/__webpack_require__.n(cornerstoneDICOMImageLoader_min);
@@ -3590,7 +3590,7 @@ const measurementServiceMappingsFactory = (measurementService, displaySetService
3590
3590
  return factories;
3591
3591
  };
3592
3592
  /* harmony default export */ const measurementServiceMappings_measurementServiceMappingsFactory = (measurementServiceMappingsFactory);
3593
- ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/initMeasurementService.js
3593
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/initMeasurementService.ts
3594
3594
 
3595
3595
 
3596
3596
 
@@ -8602,8 +8602,11 @@ const ToolGroupService_EVENTS = {
8602
8602
  PRIMARY_TOOL_ACTIVATED: 'event::cornerstone::toolgroupservice:primarytoolactivated'
8603
8603
  };
8604
8604
  class ToolGroupService {
8605
- constructor(serviceManager) {
8606
- this.serviceManager = void 0;
8605
+ constructor(servicesManager) {
8606
+ this.servicesManager = void 0;
8607
+ this.cornerstoneViewportService = void 0;
8608
+ this.viewportGridService = void 0;
8609
+ this.uiNotificationService = void 0;
8607
8610
  this.toolGroupIds = new Set();
8608
8611
  /**
8609
8612
  * Service-specific
@@ -8631,7 +8634,7 @@ class ToolGroupService {
8631
8634
  cornerstoneViewportService,
8632
8635
  viewportGridService,
8633
8636
  uiNotificationService
8634
- } = serviceManager.services;
8637
+ } = servicesManager.services;
8635
8638
  this.cornerstoneViewportService = cornerstoneViewportService;
8636
8639
  this.viewportGridService = viewportGridService;
8637
8640
  this.uiNotificationService = uiNotificationService;
@@ -8892,7 +8895,7 @@ const asSyncGroup = syncGroup => typeof syncGroup === 'string' ? {
8892
8895
  type: syncGroup
8893
8896
  } : syncGroup;
8894
8897
  class SyncGroupService {
8895
- constructor(serviceManager) {
8898
+ constructor(servicesManager) {
8896
8899
  this.servicesManager = void 0;
8897
8900
  this.listeners = {};
8898
8901
  this.EVENTS = void 0;
@@ -8906,7 +8909,7 @@ class SyncGroupService {
8906
8909
  [IMAGE_SLICE]: dist_esm.synchronizers.createImageSliceSynchronizer
8907
8910
  };
8908
8911
  this.synchronizersByType = {};
8909
- this.servicesManager = serviceManager;
8912
+ this.servicesManager = servicesManager;
8910
8913
  this.listeners = {};
8911
8914
  this.EVENTS = SyncGroupService_EVENTS;
8912
8915
  //
@@ -10058,7 +10061,11 @@ class SegmentationService extends src/* PubSubService */.Rc {
10058
10061
  x,
10059
10062
  y,
10060
10063
  z
10061
- } = segDisplaySet.centroids.get(segmentIndex);
10064
+ } = segDisplaySet.centroids.get(segmentIndex) || {
10065
+ x: 0,
10066
+ y: 0,
10067
+ z: 0
10068
+ };
10062
10069
  const centerWorld = derivedVolume.imageData.indexToWorld([x, y, z]);
10063
10070
  segmentation.cachedStats = {
10064
10071
  ...segmentation.cachedStats,
@@ -10777,7 +10784,23 @@ class CornerstoneCacheService {
10777
10784
  }
10778
10785
  async invalidateViewportData(viewportData, invalidatedDisplaySetInstanceUID, dataSource, displaySetService) {
10779
10786
  if (viewportData.viewportType === esm.Enums.ViewportType.STACK) {
10780
- return this._getCornerstoneStackImageIds(displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID), dataSource);
10787
+ const displaySet = displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID);
10788
+ const imageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10789
+
10790
+ // remove images from the cache to be able to re-load them
10791
+ imageIds.forEach(imageId => {
10792
+ if (esm.cache.getImageLoadObject(imageId)) {
10793
+ esm.cache.removeImageLoadObject(imageId);
10794
+ }
10795
+ });
10796
+ return {
10797
+ viewportType: esm.Enums.ViewportType.STACK,
10798
+ data: {
10799
+ StudyInstanceUID: displaySet.StudyInstanceUID,
10800
+ displaySetInstanceUID: invalidatedDisplaySetInstanceUID,
10801
+ imageIds
10802
+ }
10803
+ };
10781
10804
  }
10782
10805
 
10783
10806
  // Todo: grab the volume and get the id from the viewport itself
@@ -12708,7 +12731,6 @@ const getViewportVolumeHistogram = async (viewport, volume, options) => {
12708
12731
 
12709
12732
 
12710
12733
 
12711
-
12712
12734
  const {
12713
12735
  Events
12714
12736
  } = esm.Enums;
@@ -12998,7 +13020,7 @@ const ViewportWindowLevel = ({
12998
13020
  }));
12999
13021
  };
13000
13022
  ViewportWindowLevel.propTypes = {
13001
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS),
13023
+ servicesManager: (prop_types_default()).object.isRequired,
13002
13024
  viewportId: (prop_types_default()).string.isRequired
13003
13025
  };
13004
13026
  /* harmony default export */ const ViewportWindowLevel_ViewportWindowLevel = (ViewportWindowLevel);
@@ -13007,7 +13029,6 @@ ViewportWindowLevel.propTypes = {
13007
13029
 
13008
13030
 
13009
13031
 
13010
-
13011
13032
  const ActiveViewportWindowLevel = ({
13012
13033
  servicesManager
13013
13034
  }) => {
@@ -13021,7 +13042,7 @@ const ActiveViewportWindowLevel = ({
13021
13042
  }));
13022
13043
  };
13023
13044
  ActiveViewportWindowLevel.propTypes = {
13024
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS)
13045
+ servicesManager: (prop_types_default()).object.isRequired
13025
13046
  };
13026
13047
  /* harmony default export */ const ActiveViewportWindowLevel_ActiveViewportWindowLevel = (ActiveViewportWindowLevel);
13027
13048
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/ActiveViewportWindowLevel/index.js
@@ -13211,7 +13232,7 @@ const cornerstoneExtension = {
13211
13232
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13212
13233
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
13213
13234
  /* harmony export */ });
13214
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55411);
13235
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8633);
13215
13236
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5085);
13216
13237
  var _ViewportActionCornersService;
13217
13238