@ohif/app 3.8.0-beta.78 → 3.8.0-beta.79

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 (30) hide show
  1. package/dist/{183.bundle.25293de927ef032a6695.js → 183.bundle.72bf18ad23ee6624986d.js} +62 -8
  2. package/dist/{206.bundle.9b4e6ef30bae039230eb.js → 206.bundle.9d1fa8c5c6527d5577e6.js} +2 -2
  3. package/dist/{217.bundle.9631d914f170f8d7ef63.js → 217.bundle.be1cc412f8e26be87d21.js} +62 -8
  4. package/dist/{335.bundle.ba5ea00dc1d118fc3379.js → 335.bundle.2048d4a4764a366499d5.js} +20 -1
  5. package/dist/{433.bundle.1474591f213852cffcba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +1 -6
  6. package/dist/{574.bundle.917e891da6052b63a770.js → 574.bundle.3ce3583da9b5ab902557.js} +2 -5
  7. package/dist/{606.bundle.18fb0e8c81cc911b3dbe.js → 606.bundle.97b10da82b21f72df781.js} +9 -4
  8. package/dist/{724.bundle.20253a825aa8f3896767.js → 724.bundle.0e99ca1d14fa8c73b5db.js} +21 -1
  9. package/dist/{889.bundle.eea045e12285e4ccc2ec.js → 889.bundle.efdc2cc8419be1616a3e.js} +9 -2
  10. package/dist/{app.bundle.08268c9111a524d1fa28.js → app.bundle.f57f833ce0358673a21a.js} +9 -5
  11. package/dist/index.html +1 -1
  12. package/dist/{polySeg.bundle.c503e9460cef894737cd.js → polySeg.bundle.63011312c3c79e717ea9.js} +1 -1
  13. package/dist/sw.js +1 -1
  14. package/package.json +18 -18
  15. /package/dist/{164.bundle.fc6038e6fc1bfead1075.js → 164.bundle.989a4ada32dcf32a4569.js} +0 -0
  16. /package/dist/{188.bundle.9faf48d6216ffa6be18c.js → 188.bundle.5f381d9783df8735f3e6.js} +0 -0
  17. /package/dist/{325.bundle.c720f2049c00c529a4c3.js → 325.bundle.dd0e466d544c86c6de0c.js} +0 -0
  18. /package/dist/{342.bundle.c6165579c4ac3ef0d6a8.js → 342.bundle.e6d0bba29351b5650a8c.js} +0 -0
  19. /package/dist/{41.bundle.02704aafbf876e2c8f2b.js → 41.bundle.b720bbff6d0a8847b77a.js} +0 -0
  20. /package/dist/{448.bundle.b6aa785d3591bc9ad289.js → 448.bundle.8e35640d81b9cf06e002.js} +0 -0
  21. /package/dist/{487.bundle.2112ce27af3007bfc8e5.js → 487.bundle.0910e5f0cf0c9e255ab4.js} +0 -0
  22. /package/dist/{540.bundle.b3002f0a0f672eb1dbbb.js → 540.bundle.fd7f8cb69114e4b80605.js} +0 -0
  23. /package/dist/{594.bundle.797e1cebdb56cd0d1a2d.js → 594.bundle.d8a118d205da29aa4ef7.js} +0 -0
  24. /package/dist/{633.bundle.24077b5d4a0f1ac00ea8.js → 633.bundle.39398415cab1ba43b071.js} +0 -0
  25. /package/dist/{699.bundle.802c2cb6ec27eefd4020.js → 699.bundle.2b231db64d73635192c9.js} +0 -0
  26. /package/dist/{862.bundle.f49a379497bb3b43a942.js → 862.bundle.c0ee6e1d4d97e1353213.js} +0 -0
  27. /package/dist/{905.bundle.030b7b9d68fd7690c3db.js → 905.bundle.b09656972daa071cb47c.js} +0 -0
  28. /package/dist/{907.bundle.f52948a73ce925f83edf.js → 907.bundle.0301d1f194afd0e08677.js} +0 -0
  29. /package/dist/{94.bundle.75e83f7ebcbe97cc97b7.js → 94.bundle.ac3f837897688b61b5e3.js} +0 -0
  30. /package/dist/{961.bundle.abd068e616d1d155c5e4.js → 961.bundle.b7eb25f8a8177258aa02.js} +0 -0
@@ -3102,7 +3102,7 @@ function voiSyncCallback(synchronizerInstance, sourceViewport, targetViewport, m
3102
3102
 
3103
3103
 
3104
3104
  function createVOISynchronizer(synchronizerName, options) {
3105
- options = Object.assign({ syncInvertState: true }, options);
3105
+ options = Object.assign({ syncInvertState: true, syncColormap: true }, options);
3106
3106
  const VOISynchronizer = (0,SynchronizerManager.createSynchronizer)(synchronizerName, esm.Enums.Events.VOI_MODIFIED, voiSyncCallback, {
3107
3107
  auxiliaryEventNames: [esm.Enums.Events.COLORMAP_MODIFIED],
3108
3108
  ...options,
@@ -16781,13 +16781,20 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
16781
16781
  this.configuration.preventHandleOutsideImage) {
16782
16782
  (0,annotationState.removeAnnotation)(annotation.annotationUID);
16783
16783
  }
16784
- this.fireChangeOnUpdate ||= {
16785
- annotationUID: annotation.annotationUID,
16786
- changeType: newAnnotation
16787
- ? enums.ChangeTypes.Completed
16788
- : enums.ChangeTypes.HandlesUpdated,
16789
- contourHoleProcessingEnabled,
16790
- };
16784
+ const changeType = newAnnotation
16785
+ ? enums.ChangeTypes.Completed
16786
+ : enums.ChangeTypes.HandlesUpdated;
16787
+ if (!this.fireChangeOnUpdate) {
16788
+ this.fireChangeOnUpdate = {
16789
+ annotationUID: annotation.annotationUID,
16790
+ changeType,
16791
+ contourHoleProcessingEnabled,
16792
+ };
16793
+ }
16794
+ else {
16795
+ this.fireChangeOnUpdate.annotationUID = annotation.annotationUID;
16796
+ this.fireChangeOnUpdate.changeType = changeType;
16797
+ }
16791
16798
  (0,utilities.triggerAnnotationRenderForViewportIds)(renderingEngine, viewportIdsToRender);
16792
16799
  this.editData = null;
16793
16800
  this.isDrawing = false;
@@ -21980,6 +21987,7 @@ var PolyData = __webpack_require__(27398);
21980
21987
 
21981
21988
 
21982
21989
 
21990
+
21983
21991
  const OverlayMarkerType = {
21984
21992
  ANNOTATED_CUBE: 1,
21985
21993
  AXES: 2,
@@ -22030,16 +22038,37 @@ class OrientationMarkerTool extends base/* BaseTool */.oS {
22030
22038
  },
22031
22039
  }) {
22032
22040
  super(toolProps, defaultToolProps);
22041
+ this._resizeObservers = new Map();
22033
22042
  this.configuration_invalidated = true;
22034
22043
  this.onSetToolEnabled = () => {
22035
22044
  this.initViewports();
22036
22045
  this.configuration_invalidated = true;
22046
+ this._subscribeToViewportEvents();
22037
22047
  };
22038
22048
  this.onSetToolActive = () => {
22039
22049
  this.initViewports();
22050
+ this.configuration_invalidated = true;
22051
+ this._subscribeToViewportEvents();
22040
22052
  };
22041
22053
  this.onSetToolDisabled = () => {
22042
22054
  this.cleanUpData();
22055
+ this._unsubscribeToViewportNewVolumeSet();
22056
+ };
22057
+ this.reset = () => {
22058
+ this.configuration_invalidated = true;
22059
+ this.initViewports();
22060
+ };
22061
+ this._getViewportsInfo = () => {
22062
+ const viewports = (0,ToolGroupManager.getToolGroup)(this.toolGroupId).viewportsInfo;
22063
+ return viewports;
22064
+ };
22065
+ this.resize = (viewportId) => {
22066
+ const orientationMarker = this.orientationMarkers[viewportId];
22067
+ if (!orientationMarker) {
22068
+ return;
22069
+ }
22070
+ const { orientationWidget } = orientationMarker;
22071
+ orientationWidget.updateViewport();
22043
22072
  };
22044
22073
  this.orientationMarkers = {};
22045
22074
  this.configuration_invalidated = true;
@@ -22048,6 +22077,31 @@ class OrientationMarkerTool extends base/* BaseTool */.oS {
22048
22077
  static { this.AXIS = 2; }
22049
22078
  static { this.VTPFILE = 3; }
22050
22079
  static { this.OVERLAY_MARKER_TYPES = OverlayMarkerType; }
22080
+ _unsubscribeToViewportNewVolumeSet() {
22081
+ const viewportsInfo = this._getViewportsInfo();
22082
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
22083
+ const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
22084
+ const { element } = viewport;
22085
+ element.removeEventListener(esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.reset);
22086
+ const resizeObserver = this._resizeObservers.get(viewportId);
22087
+ resizeObserver.unobserve(element);
22088
+ });
22089
+ }
22090
+ _subscribeToViewportEvents() {
22091
+ const viewportsInfo = this._getViewportsInfo();
22092
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
22093
+ const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
22094
+ const { element } = viewport;
22095
+ element.addEventListener(esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.reset);
22096
+ const resizeObserver = new ResizeObserver(() => {
22097
+ setTimeout(() => {
22098
+ this.reset();
22099
+ }, 100);
22100
+ });
22101
+ resizeObserver.observe(element);
22102
+ this._resizeObservers.set(viewportId, resizeObserver);
22103
+ });
22104
+ }
22051
22105
  cleanUpData() {
22052
22106
  const renderingEngines = (0,esm.getRenderingEngines)();
22053
22107
  const renderingEngine = renderingEngines[0];
@@ -2750,8 +2750,8 @@ function ViewerHeader({
2750
2750
  hotkeyDefinitions,
2751
2751
  hotkeyDefaults
2752
2752
  } = hotkeysManager;
2753
- const versionNumber = "3.8.0-beta.78";
2754
- const commitHash = "2b83393f91cb16ea06821d79d14ff60f80c29c90";
2753
+ const versionNumber = "3.8.0-beta.79";
2754
+ const commitHash = "df49a653be61a93f6e9fb3663aabe9775c31fd13";
2755
2755
  const menuOptions = [{
2756
2756
  title: t('Header:About'),
2757
2757
  icon: 'info',
@@ -46630,7 +46630,7 @@ function voiSyncCallback_voiSyncCallback(synchronizerInstance, sourceViewport, t
46630
46630
 
46631
46631
 
46632
46632
  function createVOISynchronizer(synchronizerName, options) {
46633
- options = Object.assign({ syncInvertState: true }, options);
46633
+ options = Object.assign({ syncInvertState: true, syncColormap: true }, options);
46634
46634
  const VOISynchronizer = createSynchronizer(synchronizerName, Enums.Events.VOI_MODIFIED, voiSyncCallback, {
46635
46635
  auxiliaryEventNames: [Enums.Events.COLORMAP_MODIFIED],
46636
46636
  ...options,
@@ -60257,13 +60257,20 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
60257
60257
  this.configuration.preventHandleOutsideImage) {
60258
60258
  (0,annotationState.removeAnnotation)(annotation.annotationUID);
60259
60259
  }
60260
- this.fireChangeOnUpdate ||= {
60261
- annotationUID: annotation.annotationUID,
60262
- changeType: newAnnotation
60263
- ? enums.ChangeTypes.Completed
60264
- : enums.ChangeTypes.HandlesUpdated,
60265
- contourHoleProcessingEnabled,
60266
- };
60260
+ const changeType = newAnnotation
60261
+ ? enums.ChangeTypes.Completed
60262
+ : enums.ChangeTypes.HandlesUpdated;
60263
+ if (!this.fireChangeOnUpdate) {
60264
+ this.fireChangeOnUpdate = {
60265
+ annotationUID: annotation.annotationUID,
60266
+ changeType,
60267
+ contourHoleProcessingEnabled,
60268
+ };
60269
+ }
60270
+ else {
60271
+ this.fireChangeOnUpdate.annotationUID = annotation.annotationUID;
60272
+ this.fireChangeOnUpdate.changeType = changeType;
60273
+ }
60267
60274
  (0,utilities.triggerAnnotationRenderForViewportIds)(renderingEngine, viewportIdsToRender);
60268
60275
  this.editData = null;
60269
60276
  this.isDrawing = false;
@@ -65456,6 +65463,7 @@ var PolyData = __webpack_require__(27398);
65456
65463
 
65457
65464
 
65458
65465
 
65466
+
65459
65467
  const OverlayMarkerType = {
65460
65468
  ANNOTATED_CUBE: 1,
65461
65469
  AXES: 2,
@@ -65506,16 +65514,37 @@ class OrientationMarkerTool extends base/* BaseTool */.oS {
65506
65514
  },
65507
65515
  }) {
65508
65516
  super(toolProps, defaultToolProps);
65517
+ this._resizeObservers = new Map();
65509
65518
  this.configuration_invalidated = true;
65510
65519
  this.onSetToolEnabled = () => {
65511
65520
  this.initViewports();
65512
65521
  this.configuration_invalidated = true;
65522
+ this._subscribeToViewportEvents();
65513
65523
  };
65514
65524
  this.onSetToolActive = () => {
65515
65525
  this.initViewports();
65526
+ this.configuration_invalidated = true;
65527
+ this._subscribeToViewportEvents();
65516
65528
  };
65517
65529
  this.onSetToolDisabled = () => {
65518
65530
  this.cleanUpData();
65531
+ this._unsubscribeToViewportNewVolumeSet();
65532
+ };
65533
+ this.reset = () => {
65534
+ this.configuration_invalidated = true;
65535
+ this.initViewports();
65536
+ };
65537
+ this._getViewportsInfo = () => {
65538
+ const viewports = (0,ToolGroupManager.getToolGroup)(this.toolGroupId).viewportsInfo;
65539
+ return viewports;
65540
+ };
65541
+ this.resize = (viewportId) => {
65542
+ const orientationMarker = this.orientationMarkers[viewportId];
65543
+ if (!orientationMarker) {
65544
+ return;
65545
+ }
65546
+ const { orientationWidget } = orientationMarker;
65547
+ orientationWidget.updateViewport();
65519
65548
  };
65520
65549
  this.orientationMarkers = {};
65521
65550
  this.configuration_invalidated = true;
@@ -65524,6 +65553,31 @@ class OrientationMarkerTool extends base/* BaseTool */.oS {
65524
65553
  static { this.AXIS = 2; }
65525
65554
  static { this.VTPFILE = 3; }
65526
65555
  static { this.OVERLAY_MARKER_TYPES = OverlayMarkerType; }
65556
+ _unsubscribeToViewportNewVolumeSet() {
65557
+ const viewportsInfo = this._getViewportsInfo();
65558
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
65559
+ const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
65560
+ const { element } = viewport;
65561
+ element.removeEventListener(esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.reset);
65562
+ const resizeObserver = this._resizeObservers.get(viewportId);
65563
+ resizeObserver.unobserve(element);
65564
+ });
65565
+ }
65566
+ _subscribeToViewportEvents() {
65567
+ const viewportsInfo = this._getViewportsInfo();
65568
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
65569
+ const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
65570
+ const { element } = viewport;
65571
+ element.addEventListener(esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.reset);
65572
+ const resizeObserver = new ResizeObserver(() => {
65573
+ setTimeout(() => {
65574
+ this.reset();
65575
+ }, 100);
65576
+ });
65577
+ resizeObserver.observe(element);
65578
+ this._resizeObservers.set(viewportId, resizeObserver);
65579
+ });
65580
+ }
65527
65581
  cleanUpData() {
65528
65582
  const renderingEngines = (0,esm.getRenderingEngines)();
65529
65583
  const renderingEngine = renderingEngines[0];
@@ -980,7 +980,8 @@ function PanelRoiThresholdSegmentation({
980
980
  commandsManager
981
981
  }) {
982
982
  const {
983
- segmentationService
983
+ segmentationService,
984
+ uiNotificationService
984
985
  } = servicesManager.services;
985
986
  const {
986
987
  t
@@ -1013,6 +1014,24 @@ function PanelRoiThresholdSegmentation({
1013
1014
  }, []);
1014
1015
  const tmtvValue = segmentations?.[0]?.cachedStats?.tmtv?.value || null;
1015
1016
  const config = segmentations?.[0]?.cachedStats?.tmtv?.config || {};
1017
+ segmentations.forEach(segmentation => {
1018
+ const {
1019
+ cachedStats
1020
+ } = segmentation;
1021
+ if (!cachedStats) {
1022
+ return;
1023
+ }
1024
+
1025
+ // segment 1
1026
+ const suvPeak = cachedStats?.['1']?.suvPeak?.suvPeak;
1027
+ if (Number.isNaN(suvPeak)) {
1028
+ uiNotificationService.show({
1029
+ title: 'Unable to calculate SUV Peak',
1030
+ message: 'The resulting threshold is not big enough.',
1031
+ type: 'warning'
1032
+ });
1033
+ }
1034
+ });
1016
1035
  const actions = [{
1017
1036
  label: 'Export CSV',
1018
1037
  onClick: () => {
@@ -6546,12 +6546,7 @@ async function addLabelmapToElement(element, labelMapData, segmentationRepresent
6546
6546
  function removeLabelmapFromElement(element, segmentationRepresentationUID, removeFromCache = false) {
6547
6547
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6548
6548
  const { viewport } = enabledElement;
6549
- if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.StackViewport) {
6550
- return;
6551
- }
6552
- viewport.removeVolumeActors([
6553
- segmentationRepresentationUID,
6554
- ]);
6549
+ viewport.removeActors([segmentationRepresentationUID]);
6555
6550
  }
6556
6551
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (removeLabelmapFromElement);
6557
6552
 
@@ -2193,8 +2193,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2193
2193
  // Note: you SHOULD NOT use the initialImageIdOrIndex for manipulation
2194
2194
  // of the imageData in the OHIFCornerstoneViewport. This prop is used
2195
2195
  // to set the initial state of the viewport's first image to render
2196
- initialImageIndex,
2197
- onReady
2196
+ initialImageIndex
2198
2197
  } = props;
2199
2198
  const viewportId = viewportOptions.viewportId;
2200
2199
 
@@ -2216,8 +2215,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2216
2215
  cornerstoneCacheService,
2217
2216
  viewportGridService,
2218
2217
  stateSyncService,
2219
- viewportActionCornersService,
2220
- customizationService
2218
+ viewportActionCornersService
2221
2219
  } = servicesManager.services;
2222
2220
  const [viewportDialogState] = (0,ui_src/* useViewportDialog */.OR)();
2223
2221
  // useCallback for scroll bar height calculation
@@ -2264,7 +2262,6 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2264
2262
  }
2265
2263
  if (onElementEnabled) {
2266
2264
  onElementEnabled(evt);
2267
- onReady?.(evt);
2268
2265
  }
2269
2266
  }, [viewportId, onElementEnabled, toolGroupService]);
2270
2267
 
@@ -859,6 +859,7 @@ function initCornerstoneTools(configuration = {}) {
859
859
  (0,dist_esm.addTool)(dist_esm.PlanarFreehandROITool);
860
860
  (0,dist_esm.addTool)(dist_esm.SplineROITool);
861
861
  (0,dist_esm.addTool)(dist_esm.LivewireContourTool);
862
+ (0,dist_esm.addTool)(dist_esm.OrientationMarkerTool);
862
863
 
863
864
  // Modify annotation tools to use dashed lines on SR
864
865
  const annotationStyle = {
@@ -908,7 +909,8 @@ const toolNames = {
908
909
  UltrasoundDirectional: dist_esm.UltrasoundDirectionalTool.toolName,
909
910
  SplineROI: dist_esm.SplineROITool.toolName,
910
911
  LivewireContour: dist_esm.LivewireContourTool.toolName,
911
- PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName
912
+ PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName,
913
+ OrientationMarker: dist_esm.OrientationMarkerTool.toolName
912
914
  };
913
915
 
914
916
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
@@ -6207,7 +6209,8 @@ function commandsModule({
6207
6209
  },
6208
6210
  setToolEnabled: ({
6209
6211
  toolName,
6210
- toggle
6212
+ toggle,
6213
+ toolGroupId
6211
6214
  }) => {
6212
6215
  const {
6213
6216
  viewports
@@ -6215,8 +6218,8 @@ function commandsModule({
6215
6218
  if (!viewports.size) {
6216
6219
  return;
6217
6220
  }
6218
- const toolGroup = toolGroupService.getToolGroup(null);
6219
- if (!toolGroup) {
6221
+ const toolGroup = toolGroupService.getToolGroup(toolGroupId ?? null);
6222
+ if (!toolGroup || !toolGroup.hasTool(toolName)) {
6220
6223
  return;
6221
6224
  }
6222
6225
  const toolIsEnabled = toolGroup.getToolOptions(toolName).mode === dist_esm.Enums.ToolModes.Enabled;
@@ -6224,6 +6227,8 @@ function commandsModule({
6224
6227
  // Toggle the tool's state only if the toggle is true
6225
6228
  if (toggle) {
6226
6229
  toolIsEnabled ? toolGroup.setToolDisabled(toolName) : toolGroup.setToolEnabled(toolName);
6230
+ } else {
6231
+ toolGroup.setToolEnabled(toolName);
6227
6232
  }
6228
6233
  const renderingEngine = cornerstoneViewportService.getRenderingEngine();
6229
6234
  renderingEngine.render();
@@ -131,6 +131,13 @@ function _initToolGroups(toolNames, Enums, toolGroupService, commandsManager, mo
131
131
  }],
132
132
  enabled: [{
133
133
  toolName: toolNames.SegmentationDisplay
134
+ }, {
135
+ toolName: toolNames.OrientationMarker,
136
+ configuration: {
137
+ orientationWidget: {
138
+ viewportCorner: 'BOTTOM_LEFT'
139
+ }
140
+ }
134
141
  }]
135
142
  };
136
143
  toolGroupService.createToolGroupAndAddTools(toolGroupIds.MIP, mipTools);
@@ -363,7 +370,8 @@ function modeFactory({
363
370
  toolGroupService,
364
371
  customizationService,
365
372
  hangingProtocolService,
366
- displaySetService
373
+ displaySetService,
374
+ viewportGridService
367
375
  } = servicesManager.services;
368
376
  const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
369
377
  const {
@@ -398,6 +406,18 @@ function modeFactory({
398
406
  }
399
407
  }]);
400
408
 
409
+ // This is a hack and we need to find a better way to enable
410
+ // some tools that require the viewport to be ready
411
+ const {
412
+ unsubscribe: unsub1
413
+ } = viewportGridService.subscribe(viewportGridService.EVENTS.VIEWPORTS_READY, () => {
414
+ commandsManager.run('setToolEnabled', {
415
+ toolName: 'OrientationMarker',
416
+ toolGroupId: 'mipToolGroup'
417
+ });
418
+ unsub1();
419
+ });
420
+
401
421
  // For the hanging protocol we need to decide on the window level
402
422
  // based on whether the SUV is corrected or not, hence we can't hard
403
423
  // code the window level in the hanging protocol but we add a custom
@@ -1943,6 +1943,13 @@ function MicroscopyPanel(props) {
1943
1943
  uid
1944
1944
  }, 'MICROSCOPY');
1945
1945
  };
1946
+ const onMeasurementDeleteHandler = ({
1947
+ uid,
1948
+ isActive
1949
+ }) => {
1950
+ const roiAnnotation = microscopyService.getAnnotation(uid);
1951
+ microscopyService.removeAnnotation(roiAnnotation);
1952
+ };
1946
1953
 
1947
1954
  // Convert ROI annotations managed by microscopyService into our
1948
1955
  // own format for display
@@ -1976,7 +1983,6 @@ function MicroscopyPanel(props) {
1976
1983
  roiAnnotation
1977
1984
  };
1978
1985
  });
1979
- const disabled = data.length === 0;
1980
1986
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
1981
1987
  className: "ohif-scrollbar overflow-y-auto overflow-x-hidden",
1982
1988
  "data-cy": 'measurements-panel'
@@ -1985,7 +1991,8 @@ function MicroscopyPanel(props) {
1985
1991
  servicesManager: props.servicesManager,
1986
1992
  data: data,
1987
1993
  onClick: onMeasurementItemClickHandler,
1988
- onEdit: onMeasurementItemEditHandler
1994
+ onEdit: onMeasurementItemEditHandler,
1995
+ onDelete: onMeasurementDeleteHandler
1989
1996
  })));
1990
1997
  }
1991
1998
  const connectedMicroscopyPanel = (0,es/* withTranslation */.CI)(['MicroscopyTable', 'Common'])(MicroscopyPanel);
@@ -1004,8 +1004,8 @@ function WorkList({
1004
1004
  };
1005
1005
  });
1006
1006
  const hasStudies = numOfStudies > 0;
1007
- const versionNumber = "3.8.0-beta.78";
1008
- const commitHash = "2b83393f91cb16ea06821d79d14ff60f80c29c90";
1007
+ const versionNumber = "3.8.0-beta.79";
1008
+ const commitHash = "df49a653be61a93f6e9fb3663aabe9775c31fd13";
1009
1009
  const menuOptions = [{
1010
1010
  title: t('Header:About'),
1011
1011
  icon: 'info',
@@ -1827,7 +1827,7 @@ function ViewerViewportGrid(props) {
1827
1827
  viewportOptions: viewportOptions,
1828
1828
  displaySetOptions: displaySetOptions,
1829
1829
  needsRerendering: displaySetsNeedsRerendering,
1830
- onReady: () => {
1830
+ onElementEnabled: () => {
1831
1831
  viewportGridService.setViewportIsReady(viewportId, true);
1832
1832
  }
1833
1833
  })));
@@ -6580,7 +6580,7 @@ const detectionOptions = {
6580
6580
  }
6581
6581
  });
6582
6582
  ;// CONCATENATED MODULE: ../../i18n/package.json
6583
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.8.0-beta.77"}');
6583
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.8.0-beta.78"}');
6584
6584
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
6585
6585
  const languagesMap = {
6586
6586
  ar: 'Arabic',
@@ -32761,6 +32761,7 @@ const MeasurementTable = ({
32761
32761
  title,
32762
32762
  onClick,
32763
32763
  onEdit,
32764
+ onDelete,
32764
32765
  servicesManager
32765
32766
  }) => {
32766
32767
  servicesManager = servicesManager;
@@ -32781,6 +32782,9 @@ const MeasurementTable = ({
32781
32782
  uid
32782
32783
  }) => {
32783
32784
  const measurement = measurementService.getMeasurement(uid);
32785
+ onDelete?.({
32786
+ uid
32787
+ });
32784
32788
  measurementService.remove(uid, {
32785
32789
  ...measurement
32786
32790
  }, true);
@@ -255435,7 +255439,7 @@ var selectOrdinal = function selectOrdinal() {
255435
255439
  /******/ // This function allow to reference async chunks
255436
255440
  /******/ __webpack_require__.u = (chunkId) => {
255437
255441
  /******/ // return url for filenames based on template
255438
- /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"41":"02704aafbf876e2c8f2b","54":"829e14ec12c2b41a4323","94":"75e83f7ebcbe97cc97b7","109":"b4fee2a22b622839baf5","121":"bd8acf52b6a7047ae832","164":"fc6038e6fc1bfead1075","183":"25293de927ef032a6695","188":"9faf48d6216ffa6be18c","206":"9b4e6ef30bae039230eb","295":"688b6bbff493cd904ae7","297":"194d8985ab974839b5b6","325":"c720f2049c00c529a4c3","335":"ba5ea00dc1d118fc3379","342":"c6165579c4ac3ef0d6a8","433":"1474591f213852cffcba","445":"38c6d2af64e41cd7c614","448":"b6aa785d3591bc9ad289","481":"a2b01ffe06a262fa9375","487":"2112ce27af3007bfc8e5","525":"d3a56dc9f62df5e11019","530":"7c94543955552475c56a","540":"b3002f0a0f672eb1dbbb","544":"1c1f57118560046649c1","572":"c503e9460cef894737cd","574":"917e891da6052b63a770","594":"797e1cebdb56cd0d1a2d","606":"18fb0e8c81cc911b3dbe","633":"24077b5d4a0f1ac00ea8","644":"1e77691d2eeb96a423b0","699":"802c2cb6ec27eefd4020","722":"afab1fe6bfcd569130ac","724":"20253a825aa8f3896767","726":"0b3d9277d22fe7e15b89","835":"15aff0b7433bb0dd6d6d","862":"f49a379497bb3b43a942","889":"eea045e12285e4ccc2ec","905":"030b7b9d68fd7690c3db","907":"f52948a73ce925f83edf","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"abd068e616d1d155c5e4"}[chunkId] + ".js";
255442
+ /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"41":"b720bbff6d0a8847b77a","54":"829e14ec12c2b41a4323","94":"ac3f837897688b61b5e3","109":"b4fee2a22b622839baf5","121":"bd8acf52b6a7047ae832","164":"989a4ada32dcf32a4569","183":"72bf18ad23ee6624986d","188":"5f381d9783df8735f3e6","206":"9d1fa8c5c6527d5577e6","295":"688b6bbff493cd904ae7","297":"194d8985ab974839b5b6","325":"dd0e466d544c86c6de0c","335":"2048d4a4764a366499d5","342":"e6d0bba29351b5650a8c","433":"4c77c1fe8fc90ac14218","445":"38c6d2af64e41cd7c614","448":"8e35640d81b9cf06e002","481":"a2b01ffe06a262fa9375","487":"0910e5f0cf0c9e255ab4","525":"d3a56dc9f62df5e11019","530":"7c94543955552475c56a","540":"fd7f8cb69114e4b80605","544":"1c1f57118560046649c1","572":"63011312c3c79e717ea9","574":"3ce3583da9b5ab902557","594":"d8a118d205da29aa4ef7","606":"97b10da82b21f72df781","633":"39398415cab1ba43b071","644":"1e77691d2eeb96a423b0","699":"2b231db64d73635192c9","722":"afab1fe6bfcd569130ac","724":"0e99ca1d14fa8c73b5db","726":"0b3d9277d22fe7e15b89","835":"15aff0b7433bb0dd6d6d","862":"c0ee6e1d4d97e1353213","889":"efdc2cc8419be1616a3e","905":"b09656972daa071cb47c","907":"0301d1f194afd0e08677","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"b7eb25f8a8177258aa02"}[chunkId] + ".js";
255439
255443
  /******/ };
255440
255444
  /******/ })();
255441
255445
  /******/
package/dist/index.html CHANGED
@@ -1,2 +1,2 @@
1
1
  <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="mobile-web-app-capable" content="yes"/><meta name="application-name" content="OHIF Viewer"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="apple-mobile-web-app-title" content="@ohif/app"/><meta name="msapplication-TileColor" content="#fff"/><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"/><meta name="msapplication-config" content="/assets/browserconfig.xml"/><script>console.time('scriptToView');
2
- window.PUBLIC_URL = '/';</script><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.08268c9111a524d1fa28.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
2
+ window.PUBLIC_URL = '/';</script><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.f57f833ce0358673a21a.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"217":"9631d914f170f8d7ef63","433":"1474591f213852cffcba","572":"c503e9460cef894737cd","702":"963481fbf871984b646f"}[chunkId] + ".js";
139
+ /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"217":"be1cc412f8e26be87d21","433":"4c77c1fe8fc90ac14218","572":"63011312c3c79e717ea9","702":"963481fbf871984b646f"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/
package/dist/sw.js CHANGED
@@ -51,7 +51,7 @@ self.addEventListener('message', event => {
51
51
  }
52
52
  }
53
53
  });
54
- workbox.precaching.precacheAndRoute([{'revision':null,'url':'/109.bundle.b4fee2a22b622839baf5.js'},{'revision':null,'url':'/121.bundle.bd8acf52b6a7047ae832.js'},{'revision':null,'url':'/141.bundle.556b4c1e4cab770417ac.js'},{'revision':null,'url':'/164.bundle.fc6038e6fc1bfead1075.js'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/183.bundle.25293de927ef032a6695.js'},{'revision':null,'url':'/188.bundle.9faf48d6216ffa6be18c.js'},{'revision':null,'url':'/206.bundle.9b4e6ef30bae039230eb.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/217.bundle.9631d914f170f8d7ef63.js'},{'revision':null,'url':'/295.bundle.688b6bbff493cd904ae7.js'},{'revision':null,'url':'/297.bundle.194d8985ab974839b5b6.js'},{'revision':null,'url':'/325.bundle.c720f2049c00c529a4c3.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/325.css'},{'revision':null,'url':'/335.bundle.ba5ea00dc1d118fc3379.js'},{'revision':null,'url':'/342.bundle.c6165579c4ac3ef0d6a8.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/41.bundle.02704aafbf876e2c8f2b.js'},{'revision':null,'url':'/433.bundle.1474591f213852cffcba.js'},{'revision':null,'url':'/445.bundle.38c6d2af64e41cd7c614.js'},{'revision':null,'url':'/448.bundle.b6aa785d3591bc9ad289.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/481.css'},{'revision':null,'url':'/487.bundle.2112ce27af3007bfc8e5.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/530.bundle.7c94543955552475c56a.js'},{'revision':null,'url':'/540.bundle.b3002f0a0f672eb1dbbb.js'},{'revision':null,'url':'/544.bundle.1c1f57118560046649c1.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/544.css'},{'revision':null,'url':'/574.bundle.917e891da6052b63a770.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/574.css'},{'revision':null,'url':'/594.bundle.797e1cebdb56cd0d1a2d.js'},{'revision':null,'url':'/606.bundle.18fb0e8c81cc911b3dbe.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/606.css'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/633.bundle.24077b5d4a0f1ac00ea8.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/633.css'},{'revision':null,'url':'/644.bundle.1e77691d2eeb96a423b0.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/699.bundle.802c2cb6ec27eefd4020.js'},{'revision':null,'url':'/702.bundle.963481fbf871984b646f.js'},{'revision':null,'url':'/722.bundle.afab1fe6bfcd569130ac.js'},{'revision':null,'url':'/724.bundle.20253a825aa8f3896767.js'},{'revision':null,'url':'/726.bundle.0b3d9277d22fe7e15b89.js'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/835.bundle.15aff0b7433bb0dd6d6d.js'},{'revision':null,'url':'/862.bundle.f49a379497bb3b43a942.js'},{'revision':null,'url':'/889.bundle.eea045e12285e4ccc2ec.js'},{'revision':null,'url':'/905.bundle.030b7b9d68fd7690c3db.js'},{'revision':null,'url':'/907.bundle.f52948a73ce925f83edf.js'},{'revision':null,'url':'/931.bundle.d270a1fda9a2836c3cc5.js'},{'revision':null,'url':'/939.bundle.9d93b2e47c52338747a2.js'},{'revision':null,'url':'/94.bundle.75e83f7ebcbe97cc97b7.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/961.bundle.abd068e616d1d155c5e4.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'2c0f91522bd3a5072b6b2c1b0ea93a4f','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.08268c9111a524d1fa28.js'},{'revision':'2127fb785031587d8e0e0af24bca9b35','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/b6b803111e2d06a825bd.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':'7d23c7c4a72cde7c495e8560d50b4f87','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'9bd8ab941789dadbbc10aca3e9a85a08','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js'},{'revision':'9d8c85b42d04bb117a3b583d654fbb08','url':'/dicomMicroscopyViewer.min.js'},{'revision':'450494c199cf8dd8e8c34d5e98bf5334','url':'/dicomMicroscopyViewer.min.js.LICENSE.txt'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'791565db341e8852807303918f5f9939','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.829e14ec12c2b41a4323.js'},{'revision':'f81bea716d2b06cb706037b5efe645c5','url':'/index.html'},{'revision':'df70845c6ce2109b2bc2c1bf14bd65a0','url':'/index.worker.64c896c4316fcd506666.worker.js'},{'revision':'143490b997e10b23c1debfa35afeb9e4','url':'/index.worker.64c896c4316fcd506666.worker.js.map'},{'revision':'71cec55513e051f0778ad89be760c11a','url':'/index.worker.min.worker.js'},{'revision':'fd1116add443fee52a935df926396e0f','url':'/index.worker.min.worker.js.map'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':null,'url':'/polySeg.bundle.c503e9460cef894737cd.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'af9346d3e597071ba9ee8cd32f8cc0ea','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
54
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/109.bundle.b4fee2a22b622839baf5.js'},{'revision':null,'url':'/121.bundle.bd8acf52b6a7047ae832.js'},{'revision':null,'url':'/141.bundle.556b4c1e4cab770417ac.js'},{'revision':null,'url':'/164.bundle.989a4ada32dcf32a4569.js'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/183.bundle.72bf18ad23ee6624986d.js'},{'revision':null,'url':'/188.bundle.5f381d9783df8735f3e6.js'},{'revision':null,'url':'/206.bundle.9d1fa8c5c6527d5577e6.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/217.bundle.be1cc412f8e26be87d21.js'},{'revision':null,'url':'/295.bundle.688b6bbff493cd904ae7.js'},{'revision':null,'url':'/297.bundle.194d8985ab974839b5b6.js'},{'revision':null,'url':'/325.bundle.dd0e466d544c86c6de0c.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/325.css'},{'revision':null,'url':'/335.bundle.2048d4a4764a366499d5.js'},{'revision':null,'url':'/342.bundle.e6d0bba29351b5650a8c.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/41.bundle.b720bbff6d0a8847b77a.js'},{'revision':null,'url':'/433.bundle.4c77c1fe8fc90ac14218.js'},{'revision':null,'url':'/445.bundle.38c6d2af64e41cd7c614.js'},{'revision':null,'url':'/448.bundle.8e35640d81b9cf06e002.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/481.css'},{'revision':null,'url':'/487.bundle.0910e5f0cf0c9e255ab4.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/530.bundle.7c94543955552475c56a.js'},{'revision':null,'url':'/540.bundle.fd7f8cb69114e4b80605.js'},{'revision':null,'url':'/544.bundle.1c1f57118560046649c1.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/544.css'},{'revision':null,'url':'/574.bundle.3ce3583da9b5ab902557.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/574.css'},{'revision':null,'url':'/594.bundle.d8a118d205da29aa4ef7.js'},{'revision':null,'url':'/606.bundle.97b10da82b21f72df781.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/606.css'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/633.bundle.39398415cab1ba43b071.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/633.css'},{'revision':null,'url':'/644.bundle.1e77691d2eeb96a423b0.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/699.bundle.2b231db64d73635192c9.js'},{'revision':null,'url':'/702.bundle.963481fbf871984b646f.js'},{'revision':null,'url':'/722.bundle.afab1fe6bfcd569130ac.js'},{'revision':null,'url':'/724.bundle.0e99ca1d14fa8c73b5db.js'},{'revision':null,'url':'/726.bundle.0b3d9277d22fe7e15b89.js'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/835.bundle.15aff0b7433bb0dd6d6d.js'},{'revision':null,'url':'/862.bundle.c0ee6e1d4d97e1353213.js'},{'revision':null,'url':'/889.bundle.efdc2cc8419be1616a3e.js'},{'revision':null,'url':'/905.bundle.b09656972daa071cb47c.js'},{'revision':null,'url':'/907.bundle.0301d1f194afd0e08677.js'},{'revision':null,'url':'/931.bundle.d270a1fda9a2836c3cc5.js'},{'revision':null,'url':'/939.bundle.9d93b2e47c52338747a2.js'},{'revision':null,'url':'/94.bundle.ac3f837897688b61b5e3.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/961.bundle.b7eb25f8a8177258aa02.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'2c0f91522bd3a5072b6b2c1b0ea93a4f','url':'/app-config.js'},{'revision':'2127fb785031587d8e0e0af24bca9b35','url':'/app.bundle.css'},{'revision':null,'url':'/app.bundle.f57f833ce0358673a21a.js'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/b6b803111e2d06a825bd.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':'7d23c7c4a72cde7c495e8560d50b4f87','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'9bd8ab941789dadbbc10aca3e9a85a08','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js'},{'revision':'9d8c85b42d04bb117a3b583d654fbb08','url':'/dicomMicroscopyViewer.min.js'},{'revision':'450494c199cf8dd8e8c34d5e98bf5334','url':'/dicomMicroscopyViewer.min.js.LICENSE.txt'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'791565db341e8852807303918f5f9939','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.829e14ec12c2b41a4323.js'},{'revision':'c21ad1114590e548d16886ab216ba00f','url':'/index.html'},{'revision':'df70845c6ce2109b2bc2c1bf14bd65a0','url':'/index.worker.64c896c4316fcd506666.worker.js'},{'revision':'143490b997e10b23c1debfa35afeb9e4','url':'/index.worker.64c896c4316fcd506666.worker.js.map'},{'revision':'71cec55513e051f0778ad89be760c11a','url':'/index.worker.min.worker.js'},{'revision':'fd1116add443fee52a935df926396e0f','url':'/index.worker.min.worker.js.map'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':null,'url':'/polySeg.bundle.63011312c3c79e717ea9.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'af9346d3e597071ba9ee8cd32f8cc0ea','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
55
55
 
56
56
  // TODO: Cache API
57
57
  // https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/app",
3
- "version": "3.8.0-beta.78",
3
+ "version": "3.8.0-beta.79",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -54,24 +54,24 @@
54
54
  "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
55
55
  "@cornerstonejs/codec-openjpeg": "^1.2.2",
56
56
  "@cornerstonejs/codec-openjph": "^2.4.5",
57
- "@cornerstonejs/dicom-image-loader": "^1.70.0",
57
+ "@cornerstonejs/dicom-image-loader": "^1.70.5",
58
58
  "@emotion/serialize": "^1.1.3",
59
- "@ohif/core": "3.8.0-beta.78",
60
- "@ohif/extension-cornerstone": "3.8.0-beta.78",
61
- "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.78",
62
- "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.78",
63
- "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.78",
64
- "@ohif/extension-default": "3.8.0-beta.78",
65
- "@ohif/extension-dicom-microscopy": "3.8.0-beta.78",
66
- "@ohif/extension-dicom-pdf": "3.8.0-beta.78",
67
- "@ohif/extension-dicom-video": "3.8.0-beta.78",
68
- "@ohif/extension-test": "3.8.0-beta.78",
69
- "@ohif/i18n": "3.8.0-beta.78",
70
- "@ohif/mode-basic-dev-mode": "3.8.0-beta.78",
71
- "@ohif/mode-longitudinal": "3.8.0-beta.78",
72
- "@ohif/mode-microscopy": "3.8.0-beta.78",
73
- "@ohif/mode-test": "3.8.0-beta.78",
74
- "@ohif/ui": "3.8.0-beta.78",
59
+ "@ohif/core": "3.8.0-beta.79",
60
+ "@ohif/extension-cornerstone": "3.8.0-beta.79",
61
+ "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.79",
62
+ "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.79",
63
+ "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.79",
64
+ "@ohif/extension-default": "3.8.0-beta.79",
65
+ "@ohif/extension-dicom-microscopy": "3.8.0-beta.79",
66
+ "@ohif/extension-dicom-pdf": "3.8.0-beta.79",
67
+ "@ohif/extension-dicom-video": "3.8.0-beta.79",
68
+ "@ohif/extension-test": "3.8.0-beta.79",
69
+ "@ohif/i18n": "3.8.0-beta.79",
70
+ "@ohif/mode-basic-dev-mode": "3.8.0-beta.79",
71
+ "@ohif/mode-longitudinal": "3.8.0-beta.79",
72
+ "@ohif/mode-microscopy": "3.8.0-beta.79",
73
+ "@ohif/mode-test": "3.8.0-beta.79",
74
+ "@ohif/ui": "3.8.0-beta.79",
75
75
  "@types/react": "^17.0.38",
76
76
  "classnames": "^2.3.2",
77
77
  "core-js": "^3.16.1",