@ohif/app 3.8.0-beta.29 → 3.8.0-beta.30

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 (21) hide show
  1. package/dist/{170.bundle.57dff48fc09ba5fa844b.js → 170.bundle.38b187c9f7abe2dfb84d.js} +43 -9
  2. package/dist/{456.bundle.475e0e878872ad61e39e.js → 456.bundle.fe30ae09d7a9936591a6.js} +27 -9
  3. package/dist/{738.bundle.7c78f93180d8405b167c.js → 738.bundle.6501818304f8ce87ed61.js} +27 -19
  4. package/dist/{app.bundle.88eb088709ac23e29da0.js → app.bundle.431384e9f0df107cc122.js} +6 -9
  5. package/dist/index.html +1 -1
  6. package/dist/sw.js +1 -1
  7. package/package.json +17 -17
  8. /package/dist/{12.bundle.abb6ab88fda1125f3b47.js → 12.bundle.48ee708331b38142c47c.js} +0 -0
  9. /package/dist/{185.bundle.0251703d5b77f265cc11.js → 185.bundle.e3bcbc2c96dd51868295.js} +0 -0
  10. /package/dist/{19.bundle.55796dd5a6dfecf02682.js → 19.bundle.08a41384953ab98fbf7d.js} +0 -0
  11. /package/dist/{199.bundle.f62693c1405b52bc6580.js → 199.bundle.2a998ffc15ffcc122e59.js} +0 -0
  12. /package/dist/{281.bundle.a934356f89499eb6ec48.js → 281.bundle.33ca053a4954a538b521.js} +0 -0
  13. /package/dist/{359.bundle.1f2a03766e18f1e3cca4.js → 359.bundle.e53e83a1a90cecf70cb3.js} +0 -0
  14. /package/dist/{410.bundle.b59d9d09407856f9babc.js → 410.bundle.30567596b262e047951a.js} +0 -0
  15. /package/dist/{466.bundle.667b31151880a262d475.js → 466.bundle.8622576a3d6310735b2f.js} +0 -0
  16. /package/dist/{483.bundle.775438e850fbee318b63.js → 483.bundle.85c3ead1edaca231f6de.js} +0 -0
  17. /package/dist/{506.bundle.dcae1c16f61651daa74d.js → 506.bundle.3c072a4f72c4d7a07c32.js} +0 -0
  18. /package/dist/{613.bundle.d080a15569910ff63fc8.js → 613.bundle.26a981b3a01a8b444ade.js} +0 -0
  19. /package/dist/{687.bundle.fc36244c7ec3b1146f13.js → 687.bundle.60ed47940e558d41e984.js} +0 -0
  20. /package/dist/{814.bundle.9c9805cd0d54a8ea9697.js → 814.bundle.b9661e9acf9e6ba052f9.js} +0 -0
  21. /package/dist/{965.bundle.26d8f982af77f304a038.js → 965.bundle.06fb371211ed7b4b45d0.js} +0 -0
@@ -259,7 +259,9 @@ class DICOMSRDisplayTool extends dist_esm.AnnotationTool {
259
259
  }
260
260
  const textLines = this._getTextBoxLinesFromLabels(label);
261
261
  const canvasTextBoxCoords = dist_esm.utilities.drawing.getTextBoxCoordsCanvas(adaptedCanvasCoordinates);
262
- annotation.data.handles.textBox.worldPosition = viewport.canvasToWorld(canvasTextBoxCoords);
262
+ if (!annotation.data?.handles?.textBox?.worldPosition) {
263
+ annotation.data.handles.textBox.worldPosition = viewport.canvasToWorld(canvasTextBoxCoords);
264
+ }
263
265
  const textBoxPosition = viewport.worldToCanvas(annotation.data.handles.textBox.worldPosition);
264
266
  const textBoxUID = '1';
265
267
  const textBoxOptions = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
@@ -355,7 +357,7 @@ function addMeasurement(measurement, imageId, displaySetInstanceUID) {
355
357
  data: {
356
358
  label: measurement.labels,
357
359
  handles: {
358
- textBox: {}
360
+ textBox: measurement.textBox ?? {}
359
361
  },
360
362
  cachedStats: {
361
363
  TrackingUniqueIdentifier: measurementData.TrackingUniqueIdentifier,
@@ -692,7 +694,7 @@ function _load(displaySet, servicesManager, extensionManager) {
692
694
 
693
695
  // Check currently added displaySets and add measurements if the sources exist.
694
696
  displaySetService.activeDisplaySets.forEach(activeDisplaySet => {
695
- _checkIfCanAddMeasurementsToDisplaySet(displaySet, activeDisplaySet, dataSource);
697
+ _checkIfCanAddMeasurementsToDisplaySet(displaySet, activeDisplaySet, dataSource, servicesManager);
696
698
  });
697
699
 
698
700
  // Subscribe to new displaySets as the source may come in after.
@@ -703,11 +705,14 @@ function _load(displaySet, servicesManager, extensionManager) {
703
705
  // If there are still some measurements that have not yet been loaded into cornerstone,
704
706
  // See if we can load them onto any of the new displaySets.
705
707
  displaySetsAdded.forEach(newDisplaySet => {
706
- _checkIfCanAddMeasurementsToDisplaySet(displaySet, newDisplaySet, dataSource);
708
+ _checkIfCanAddMeasurementsToDisplaySet(displaySet, newDisplaySet, dataSource, servicesManager);
707
709
  });
708
710
  });
709
711
  }
710
- function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dataSource) {
712
+ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dataSource, servicesManager) {
713
+ const {
714
+ customizationService
715
+ } = servicesManager.services;
711
716
  let unloadedMeasurements = srDisplaySet.measurements.filter(measurement => measurement.loaded === false);
712
717
  if (unloadedMeasurements.length === 0) {
713
718
  // All already loaded!
@@ -754,7 +759,15 @@ function _checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, newDisplaySet, dat
754
759
  } = metadataProvider.getUIDsFromImageID(imageId);
755
760
  if (SOPInstanceUIDs.includes(SOPInstanceUID)) {
756
761
  for (let j = unloadedMeasurements.length - 1; j >= 0; j--) {
757
- const measurement = unloadedMeasurements[j];
762
+ let measurement = unloadedMeasurements[j];
763
+ const onBeforeSRAddMeasurement = customizationService.getModeCustomization('onBeforeSRAddMeasurement')?.value;
764
+ if (typeof onBeforeSRAddMeasurement === 'function') {
765
+ measurement = onBeforeSRAddMeasurement({
766
+ measurement,
767
+ StudyInstanceUID: srDisplaySet.StudyInstanceUID,
768
+ SeriesInstanceUID: srDisplaySet.SeriesInstanceUID
769
+ });
770
+ }
758
771
  if (_measurementReferencesSOPInstanceUID(measurement, SOPInstanceUID, frameNumber)) {
759
772
  addMeasurement(measurement, imageId, newDisplaySet.displaySetInstanceUID);
760
773
  unloadedMeasurements.splice(j, 1);
@@ -1206,7 +1219,13 @@ const _generateReport = (measurementData, additionalFindingTypes, options = {})
1206
1219
  }
1207
1220
  return dataset;
1208
1221
  };
1209
- const commandsModule = ({}) => {
1222
+ const commandsModule = props => {
1223
+ const {
1224
+ servicesManager
1225
+ } = props;
1226
+ const {
1227
+ customizationService
1228
+ } = servicesManager.services;
1210
1229
  const actions = {
1211
1230
  /**
1212
1231
  *
@@ -1263,7 +1282,15 @@ const commandsModule = ({}) => {
1263
1282
  console.log('naturalizedReport missing imaging content', naturalizedReport);
1264
1283
  throw new Error('Invalid report, no content');
1265
1284
  }
1266
- await dataSource.store.dicom(naturalizedReport);
1285
+ const onBeforeDicomStore = customizationService.getModeCustomization('onBeforeDicomStore')?.value;
1286
+ let dicomDict;
1287
+ if (typeof onBeforeDicomStore === 'function') {
1288
+ dicomDict = onBeforeDicomStore({
1289
+ measurementData,
1290
+ naturalizedReport
1291
+ });
1292
+ }
1293
+ await dataSource.store.dicom(naturalizedReport, null, dicomDict);
1267
1294
  if (StudyInstanceUID) {
1268
1295
  dataSource.deleteStudyMetadataPromise(StudyInstanceUID);
1269
1296
  }
@@ -1699,12 +1726,19 @@ function hydrateStructuredReport({
1699
1726
  const datasetToUse = _mapLegacyDataSet(instance);
1700
1727
 
1701
1728
  // Use dcmjs to generate toolState.
1702
- const storedMeasurementByAnnotationType = MeasurementReport.generateToolState(datasetToUse,
1729
+ let storedMeasurementByAnnotationType = MeasurementReport.generateToolState(datasetToUse,
1703
1730
  // NOTE: we need to pass in the imageIds to dcmjs since the we use them
1704
1731
  // for the imageToWorld transformation. The following assumes that the order
1705
1732
  // that measurements were added to the display set are the same order as
1706
1733
  // the measurementGroups in the instance.
1707
1734
  sopInstanceUIDToImageId, esm.utilities.imageToWorldCoords, esm.metaData);
1735
+ const onBeforeSRHydration = customizationService.getModeCustomization('onBeforeSRHydration')?.value;
1736
+ if (typeof onBeforeSRHydration === 'function') {
1737
+ storedMeasurementByAnnotationType = onBeforeSRHydration({
1738
+ storedMeasurementByAnnotationType,
1739
+ displaySet
1740
+ });
1741
+ }
1708
1742
 
1709
1743
  // Filter what is found by DICOM SR to measurements we support.
1710
1744
  const mappingDefinitions = mappings.map(m => m.annotationType);
@@ -734,7 +734,8 @@ const Length = {
734
734
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
735
735
  }
736
736
  const {
737
- points
737
+ points,
738
+ textBox
738
739
  } = data.handles;
739
740
  const mappedAnnotations = getMappedAnnotations(annotation, displaySetService);
740
741
  const displayText = getDisplayText(mappedAnnotations, displaySet);
@@ -744,6 +745,7 @@ const Length = {
744
745
  SOPInstanceUID,
745
746
  FrameOfReferenceUID,
746
747
  points,
748
+ textBox,
747
749
  metadata,
748
750
  referenceSeriesUID: SeriesInstanceUID,
749
751
  referenceStudyUID: StudyInstanceUID,
@@ -971,7 +973,8 @@ const Bidirectional = {
971
973
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
972
974
  }
973
975
  const {
974
- points
976
+ points,
977
+ textBox
975
978
  } = data.handles;
976
979
  const mappedAnnotations = Bidirectional_getMappedAnnotations(annotation, displaySetService);
977
980
  const displayText = Bidirectional_getDisplayText(mappedAnnotations, displaySet);
@@ -981,6 +984,7 @@ const Bidirectional = {
981
984
  SOPInstanceUID,
982
985
  FrameOfReferenceUID,
983
986
  points,
987
+ textBox,
984
988
  metadata,
985
989
  referenceSeriesUID: SeriesInstanceUID,
986
990
  referenceStudyUID: StudyInstanceUID,
@@ -1152,7 +1156,8 @@ const EllipticalROI = {
1152
1156
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1153
1157
  }
1154
1158
  const {
1155
- points
1159
+ points,
1160
+ textBox
1156
1161
  } = data.handles;
1157
1162
  const mappedAnnotations = EllipticalROI_getMappedAnnotations(annotation, displaySetService);
1158
1163
  const displayText = EllipticalROI_getDisplayText(mappedAnnotations, displaySet);
@@ -1162,6 +1167,7 @@ const EllipticalROI = {
1162
1167
  SOPInstanceUID,
1163
1168
  FrameOfReferenceUID,
1164
1169
  points,
1170
+ textBox,
1165
1171
  metadata,
1166
1172
  referenceSeriesUID: SeriesInstanceUID,
1167
1173
  referenceStudyUID: StudyInstanceUID,
@@ -1361,7 +1367,8 @@ const CircleROI = {
1361
1367
  displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1362
1368
  }
1363
1369
  const {
1364
- points
1370
+ points,
1371
+ textBox
1365
1372
  } = data.handles;
1366
1373
  const mappedAnnotations = CircleROI_getMappedAnnotations(annotation, DisplaySetService);
1367
1374
  const displayText = CircleROI_getDisplayText(mappedAnnotations, displaySet);
@@ -1371,6 +1378,7 @@ const CircleROI = {
1371
1378
  SOPInstanceUID,
1372
1379
  FrameOfReferenceUID,
1373
1380
  points,
1381
+ textBox,
1374
1382
  metadata,
1375
1383
  referenceSeriesUID: SeriesInstanceUID,
1376
1384
  referenceStudyUID: StudyInstanceUID,
@@ -1576,7 +1584,8 @@ const ArrowAnnotate_Length = {
1576
1584
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1577
1585
  }
1578
1586
  const {
1579
- points
1587
+ points,
1588
+ textBox
1580
1589
  } = data.handles;
1581
1590
  const mappedAnnotations = ArrowAnnotate_getMappedAnnotations(annotation, displaySetService);
1582
1591
  const displayText = ArrowAnnotate_getDisplayText(mappedAnnotations, displaySet);
@@ -1585,6 +1594,7 @@ const ArrowAnnotate_Length = {
1585
1594
  SOPInstanceUID,
1586
1595
  FrameOfReferenceUID,
1587
1596
  points,
1597
+ textBox,
1588
1598
  metadata,
1589
1599
  referenceSeriesUID: SeriesInstanceUID,
1590
1600
  referenceStudyUID: StudyInstanceUID,
@@ -1702,7 +1712,8 @@ const CobbAngle = {
1702
1712
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1703
1713
  }
1704
1714
  const {
1705
- points
1715
+ points,
1716
+ textBox
1706
1717
  } = data.handles;
1707
1718
  const mappedAnnotations = CobbAngle_getMappedAnnotations(annotation, displaySetService);
1708
1719
  const displayText = CobbAngle_getDisplayText(mappedAnnotations, displaySet);
@@ -1712,6 +1723,7 @@ const CobbAngle = {
1712
1723
  SOPInstanceUID,
1713
1724
  FrameOfReferenceUID,
1714
1725
  points,
1726
+ textBox,
1715
1727
  metadata,
1716
1728
  referenceSeriesUID: SeriesInstanceUID,
1717
1729
  referenceStudyUID: StudyInstanceUID,
@@ -1885,7 +1897,8 @@ const Angle = {
1885
1897
  displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1886
1898
  }
1887
1899
  const {
1888
- points
1900
+ points,
1901
+ textBox
1889
1902
  } = data.handles;
1890
1903
  const mappedAnnotations = Angle_getMappedAnnotations(annotation, displaySetService);
1891
1904
  const displayText = Angle_getDisplayText(mappedAnnotations, displaySet);
@@ -1895,6 +1908,7 @@ const Angle = {
1895
1908
  SOPInstanceUID,
1896
1909
  FrameOfReferenceUID,
1897
1910
  points,
1911
+ textBox,
1898
1912
  metadata,
1899
1913
  referenceSeriesUID: SeriesInstanceUID,
1900
1914
  referenceStudyUID: StudyInstanceUID,
@@ -2066,7 +2080,8 @@ const PlanarFreehandROI = {
2066
2080
  displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2067
2081
  }
2068
2082
  const {
2069
- points
2083
+ points,
2084
+ textBox
2070
2085
  } = data.handles;
2071
2086
  const mappedAnnotations = PlanarFreehandROI_getMappedAnnotations(annotation, DisplaySetService);
2072
2087
  const displayText = PlanarFreehandROI_getDisplayText(mappedAnnotations);
@@ -2076,6 +2091,7 @@ const PlanarFreehandROI = {
2076
2091
  SOPInstanceUID,
2077
2092
  FrameOfReferenceUID,
2078
2093
  points,
2094
+ textBox,
2079
2095
  metadata,
2080
2096
  referenceSeriesUID: SeriesInstanceUID,
2081
2097
  referenceStudyUID: StudyInstanceUID,
@@ -2196,7 +2212,8 @@ const RectangleROI = {
2196
2212
  displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2197
2213
  }
2198
2214
  const {
2199
- points
2215
+ points,
2216
+ textBox
2200
2217
  } = data.handles;
2201
2218
  const mappedAnnotations = RectangleROI_getMappedAnnotations(annotation, DisplaySetService);
2202
2219
  const displayText = RectangleROI_getDisplayText(mappedAnnotations, displaySet);
@@ -2206,6 +2223,7 @@ const RectangleROI = {
2206
2223
  SOPInstanceUID,
2207
2224
  FrameOfReferenceUID,
2208
2225
  points,
2226
+ textBox,
2209
2227
  metadata,
2210
2228
  referenceSeriesUID: SeriesInstanceUID,
2211
2229
  referenceStudyUID: StudyInstanceUID,
@@ -1068,7 +1068,11 @@ const metadataProvider = src.classes.MetadataProvider;
1068
1068
  * @param {bool} lazyLoadStudy - "enableStudyLazyLoad"; Request series meta async instead of blocking
1069
1069
  * @param {string|bool} singlepart - indicates of the retrieves can fetch singlepart. Options are bulkdata, video, image or boolean true
1070
1070
  */
1071
- function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1071
+ function createDicomWebApi(dicomWebConfig, servicesManager) {
1072
+ const {
1073
+ userAuthenticationService,
1074
+ customizationService
1075
+ } = servicesManager.services;
1072
1076
  let dicomWebConfigCopy, qidoConfig, wadoConfig, qidoDicomWebClient, wadoDicomWebClient, getAuthrorizationHeader, generateWadoHeader;
1073
1077
  const implementation = {
1074
1078
  initialize: ({
@@ -1205,7 +1209,7 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1205
1209
  }
1206
1210
  },
1207
1211
  store: {
1208
- dicom: async (dataset, request) => {
1212
+ dicom: async (dataset, request, dicomDict) => {
1209
1213
  wadoDicomWebClient.headers = getAuthrorizationHeader();
1210
1214
  if (dataset instanceof ArrayBuffer) {
1211
1215
  const options = {
@@ -1214,18 +1218,22 @@ function createDicomWebApi(dicomWebConfig, userAuthenticationService) {
1214
1218
  };
1215
1219
  await wadoDicomWebClient.storeInstances(options);
1216
1220
  } else {
1217
- const meta = {
1218
- FileMetaInformationVersion: dataset._meta?.FileMetaInformationVersion?.Value,
1219
- MediaStorageSOPClassUID: dataset.SOPClassUID,
1220
- MediaStorageSOPInstanceUID: dataset.SOPInstanceUID,
1221
- TransferSyntaxUID: EXPLICIT_VR_LITTLE_ENDIAN,
1222
- ImplementationClassUID,
1223
- ImplementationVersionName
1224
- };
1225
- const denaturalized = denaturalizeDataset(meta);
1226
- const dicomDict = new DicomDict(denaturalized);
1227
- dicomDict.dict = denaturalizeDataset(dataset);
1228
- const part10Buffer = dicomDict.write();
1221
+ let effectiveDicomDict = dicomDict;
1222
+ if (!dicomDict) {
1223
+ const meta = {
1224
+ FileMetaInformationVersion: dataset._meta?.FileMetaInformationVersion?.Value,
1225
+ MediaStorageSOPClassUID: dataset.SOPClassUID,
1226
+ MediaStorageSOPInstanceUID: dataset.SOPInstanceUID,
1227
+ TransferSyntaxUID: EXPLICIT_VR_LITTLE_ENDIAN,
1228
+ ImplementationClassUID,
1229
+ ImplementationVersionName
1230
+ };
1231
+ const denaturalized = denaturalizeDataset(meta);
1232
+ const defaultDicomDict = new DicomDict(denaturalized);
1233
+ defaultDicomDict.dict = denaturalizeDataset(dataset);
1234
+ effectiveDicomDict = defaultDicomDict;
1235
+ }
1236
+ const part10Buffer = effectiveDicomDict.write();
1229
1237
  const options = {
1230
1238
  datasets: [part10Buffer],
1231
1239
  request
@@ -1987,7 +1995,7 @@ function createDicomLocalApi(dicomLocalConfig) {
1987
1995
  * dicomWeb configuration array
1988
1996
  *
1989
1997
  */
1990
- function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService) {
1998
+ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
1991
1999
  const {
1992
2000
  name
1993
2001
  } = dicomWebProxyConfig;
@@ -2006,7 +2014,7 @@ function createDicomWebProxyApi(dicomWebProxyConfig, UserAuthenticationService)
2006
2014
  if (!data.servers?.dicomWeb?.[0]) {
2007
2015
  throw new Error('Invalid configuration returned by url');
2008
2016
  }
2009
- dicomWebDelegate = createDicomWebApi(data.servers.dicomWeb[0].configuration, UserAuthenticationService);
2017
+ dicomWebDelegate = createDicomWebApi(data.servers.dicomWeb[0].configuration, servicesManager);
2010
2018
  dicomWebDelegate.initialize({
2011
2019
  params,
2012
2020
  query
@@ -2188,7 +2196,7 @@ const callByRetrieveAETitle = ({
2188
2196
  const [dataSource] = extensionManager.getDataSources(seriesMetadata.RetrieveAETitle || defaultDataSourceName);
2189
2197
  return dataSource[path](...args);
2190
2198
  };
2191
- function createMergeDataSourceApi(mergeConfig, UserAuthenticationService, extensionManager) {
2199
+ function createMergeDataSourceApi(mergeConfig, servicesManager, extensionManager) {
2192
2200
  const {
2193
2201
  seriesMerge
2194
2202
  } = mergeConfig;
@@ -2454,8 +2462,8 @@ function ViewerHeader({
2454
2462
  hotkeyDefinitions,
2455
2463
  hotkeyDefaults
2456
2464
  } = hotkeysManager;
2457
- const versionNumber = "3.8.0-beta.29";
2458
- const commitHash = "f707b4ebc996f379cd30337badc06b07e6e35ac5";
2465
+ const versionNumber = "3.8.0-beta.30";
2466
+ const commitHash = "e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23";
2459
2467
  const menuOptions = [{
2460
2468
  title: t('Header:About'),
2461
2469
  icon: 'info',
@@ -987,8 +987,8 @@ function WorkList({
987
987
  };
988
988
  });
989
989
  const hasStudies = numOfStudies > 0;
990
- const versionNumber = "3.8.0-beta.29";
991
- const commitHash = "f707b4ebc996f379cd30337badc06b07e6e35ac5";
990
+ const versionNumber = "3.8.0-beta.30";
991
+ const commitHash = "e1f55e65f2d2a34136ad5d0b1ada77d337a0ea23";
992
992
  const menuOptions = [{
993
993
  title: t('Header:About'),
994
994
  icon: 'info',
@@ -6428,7 +6428,7 @@ const detectionOptions = {
6428
6428
  }
6429
6429
  });
6430
6430
  ;// CONCATENATED MODULE: ../../i18n/package.json
6431
- const package_namespaceObject = JSON.parse('{"i8":"3.8.0-beta.28"}');
6431
+ const package_namespaceObject = JSON.parse('{"i8":"3.8.0-beta.29"}');
6432
6432
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
6433
6433
  const languagesMap = {
6434
6434
  ar: 'Arabic',
@@ -49960,7 +49960,7 @@ const MEASUREMENT_SCHEMA_KEYS = ['uid', 'data', 'getReport', 'displayText', 'SOP
49960
49960
  // Todo: we shouldn't need to have all these here.
49961
49961
  'area',
49962
49962
  // TODO: Add concept names instead (descriptor)
49963
- 'mean', 'stdDev', 'length', 'shortestDiameter', 'longestDiameter', 'cachedStats', 'selected'];
49963
+ 'mean', 'stdDev', 'length', 'shortestDiameter', 'longestDiameter', 'cachedStats', 'selected', 'textBox'];
49964
49964
  const EVENTS = {
49965
49965
  MEASUREMENT_UPDATED: 'event::measurement_updated',
49966
49966
  INTERNAL_MEASUREMENT_UPDATED: 'event:internal_measurement_updated',
@@ -55327,10 +55327,7 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
55327
55327
  return;
55328
55328
  }
55329
55329
  this.dataSourceDefs[dataSourceDef.sourceName] = dataSourceDef;
55330
- const {
55331
- userAuthenticationService
55332
- } = this._servicesManager.services;
55333
- const dataSourceInstance = module.createDataSource(dataSourceDef.configuration, userAuthenticationService, this);
55330
+ const dataSourceInstance = module.createDataSource(dataSourceDef.configuration, this._servicesManager, this);
55334
55331
  this.dataSourceMap[dataSourceDef.sourceName] = [dataSourceInstance];
55335
55332
  }
55336
55333
  _initDataSourcesModule(extensionModule, extensionId, dataSources = []) {
@@ -240460,7 +240457,7 @@ var selectOrdinal = function selectOrdinal() {
240460
240457
  /******/ // This function allow to reference async chunks
240461
240458
  /******/ __webpack_require__.u = (chunkId) => {
240462
240459
  /******/ // return url for filenames based on template
240463
- /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"12":"abb6ab88fda1125f3b47","18":"a7d5060eead13771e784","19":"55796dd5a6dfecf02682","23":"9d989522a6e4fdcb9c72","95":"d7a9f450bed3b770504d","125":"df666cb677e5a8982157","170":"57dff48fc09ba5fa844b","181":"ae92b8a551d041d06e90","185":"0251703d5b77f265cc11","199":"f62693c1405b52bc6580","202":"0ca2f2479d2578f539b0","223":"d4ac6ef2cfe47a9c4afc","250":"09c69d348a5d965debc8","281":"a934356f89499eb6ec48","359":"1f2a03766e18f1e3cca4","410":"b59d9d09407856f9babc","417":"5c66801d23d0e98c00e6","451":"68a551a7d1746cf904cb","456":"475e0e878872ad61e39e","466":"667b31151880a262d475","471":"5809b10f75c8fc2f7167","483":"775438e850fbee318b63","485":"5b6c33cc43d8f3470642","506":"dcae1c16f61651daa74d","530":"f904325ef4195d69ac0e","566":"4840518afd323372c70f","579":"8c45043bf461a6808b54","613":"d080a15569910ff63fc8","661":"28ef6d8cd035876bd8e2","686":"62c827fe4f0d054c164e","687":"fc36244c7ec3b1146f13","738":"7c78f93180d8405b167c","814":"9c9805cd0d54a8ea9697","822":"55759fd8e9b0b489cc6b","886":"4496fc7fb83b8c897d20","965":"26d8f982af77f304a038"}[chunkId] + ".js";
240460
+ /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"12":"48ee708331b38142c47c","18":"a7d5060eead13771e784","19":"08a41384953ab98fbf7d","23":"9d989522a6e4fdcb9c72","95":"d7a9f450bed3b770504d","125":"df666cb677e5a8982157","170":"38b187c9f7abe2dfb84d","181":"ae92b8a551d041d06e90","185":"e3bcbc2c96dd51868295","199":"2a998ffc15ffcc122e59","202":"0ca2f2479d2578f539b0","223":"d4ac6ef2cfe47a9c4afc","250":"09c69d348a5d965debc8","281":"33ca053a4954a538b521","359":"e53e83a1a90cecf70cb3","410":"30567596b262e047951a","417":"5c66801d23d0e98c00e6","451":"68a551a7d1746cf904cb","456":"fe30ae09d7a9936591a6","466":"8622576a3d6310735b2f","471":"5809b10f75c8fc2f7167","483":"85c3ead1edaca231f6de","485":"5b6c33cc43d8f3470642","506":"3c072a4f72c4d7a07c32","530":"f904325ef4195d69ac0e","566":"4840518afd323372c70f","579":"8c45043bf461a6808b54","613":"26a981b3a01a8b444ade","661":"28ef6d8cd035876bd8e2","686":"62c827fe4f0d054c164e","687":"60ed47940e558d41e984","738":"6501818304f8ce87ed61","814":"b9661e9acf9e6ba052f9","822":"55759fd8e9b0b489cc6b","886":"4496fc7fb83b8c897d20","965":"06fb371211ed7b4b45d0"}[chunkId] + ".js";
240464
240461
  /******/ };
240465
240462
  /******/ })();
240466
240463
  /******/
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.88eb088709ac23e29da0.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><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.431384e9f0df107cc122.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
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':'/12.bundle.abb6ab88fda1125f3b47.js'},{'revision':null,'url':'/125.bundle.df666cb677e5a8982157.js'},{'revision':null,'url':'/170.bundle.57dff48fc09ba5fa844b.js'},{'revision':null,'url':'/181.bundle.ae92b8a551d041d06e90.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/181.css'},{'revision':null,'url':'/185.bundle.0251703d5b77f265cc11.js'},{'revision':null,'url':'/19.bundle.55796dd5a6dfecf02682.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/19.css'},{'revision':null,'url':'/199.bundle.f62693c1405b52bc6580.js'},{'revision':null,'url':'/202.bundle.0ca2f2479d2578f539b0.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/223.bundle.d4ac6ef2cfe47a9c4afc.js'},{'revision':null,'url':'/23.bundle.9d989522a6e4fdcb9c72.js'},{'revision':null,'url':'/250.bundle.09c69d348a5d965debc8.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/250.css'},{'revision':null,'url':'/281.bundle.a934356f89499eb6ec48.js'},{'revision':null,'url':'/359.bundle.1f2a03766e18f1e3cca4.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/410.bundle.b59d9d09407856f9babc.js'},{'revision':null,'url':'/417.bundle.5c66801d23d0e98c00e6.js'},{'revision':null,'url':'/451.bundle.68a551a7d1746cf904cb.js'},{'revision':null,'url':'/456.bundle.475e0e878872ad61e39e.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/456.css'},{'revision':null,'url':'/466.bundle.667b31151880a262d475.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/466.css'},{'revision':null,'url':'/471.bundle.5809b10f75c8fc2f7167.js'},{'revision':null,'url':'/483.bundle.775438e850fbee318b63.js'},{'revision':null,'url':'/485.bundle.5b6c33cc43d8f3470642.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/506.bundle.dcae1c16f61651daa74d.js'},{'revision':null,'url':'/530.bundle.f904325ef4195d69ac0e.js'},{'revision':null,'url':'/566.bundle.4840518afd323372c70f.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/579.css'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':null,'url':'/613.bundle.d080a15569910ff63fc8.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/661.bundle.28ef6d8cd035876bd8e2.js'},{'revision':null,'url':'/686.bundle.62c827fe4f0d054c164e.js'},{'revision':null,'url':'/687.bundle.fc36244c7ec3b1146f13.js'},{'revision':null,'url':'/738.bundle.7c78f93180d8405b167c.js'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/814.bundle.9c9805cd0d54a8ea9697.js'},{'revision':null,'url':'/822.bundle.55759fd8e9b0b489cc6b.js'},{'revision':null,'url':'/886.bundle.4496fc7fb83b8c897d20.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/95.bundle.d7a9f450bed3b770504d.js'},{'revision':null,'url':'/965.bundle.26d8f982af77f304a038.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'41bb4b36a914c2db5c383a627162b3da','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.88eb088709ac23e29da0.js'},{'revision':'56a285c8999c3867c6553e714d27dbb5','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':'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':'26545f2fe5a0df854c8f9b8dc7386f31','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'884bd58a767459994b9c3c0c1deabb3c','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.a7d5060eead13771e784.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':'5d3111010ae1e58f0ae4edccf46edf61','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':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'af9346d3e597071ba9ee8cd32f8cc0ea','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
54
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/12.bundle.48ee708331b38142c47c.js'},{'revision':null,'url':'/125.bundle.df666cb677e5a8982157.js'},{'revision':null,'url':'/170.bundle.38b187c9f7abe2dfb84d.js'},{'revision':null,'url':'/181.bundle.ae92b8a551d041d06e90.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/181.css'},{'revision':null,'url':'/185.bundle.e3bcbc2c96dd51868295.js'},{'revision':null,'url':'/19.bundle.08a41384953ab98fbf7d.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/19.css'},{'revision':null,'url':'/199.bundle.2a998ffc15ffcc122e59.js'},{'revision':null,'url':'/202.bundle.0ca2f2479d2578f539b0.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/223.bundle.d4ac6ef2cfe47a9c4afc.js'},{'revision':null,'url':'/23.bundle.9d989522a6e4fdcb9c72.js'},{'revision':null,'url':'/250.bundle.09c69d348a5d965debc8.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/250.css'},{'revision':null,'url':'/281.bundle.33ca053a4954a538b521.js'},{'revision':null,'url':'/359.bundle.e53e83a1a90cecf70cb3.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/410.bundle.30567596b262e047951a.js'},{'revision':null,'url':'/417.bundle.5c66801d23d0e98c00e6.js'},{'revision':null,'url':'/451.bundle.68a551a7d1746cf904cb.js'},{'revision':null,'url':'/456.bundle.fe30ae09d7a9936591a6.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/456.css'},{'revision':null,'url':'/466.bundle.8622576a3d6310735b2f.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/466.css'},{'revision':null,'url':'/471.bundle.5809b10f75c8fc2f7167.js'},{'revision':null,'url':'/483.bundle.85c3ead1edaca231f6de.js'},{'revision':null,'url':'/485.bundle.5b6c33cc43d8f3470642.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/506.bundle.3c072a4f72c4d7a07c32.js'},{'revision':null,'url':'/530.bundle.f904325ef4195d69ac0e.js'},{'revision':null,'url':'/566.bundle.4840518afd323372c70f.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/579.css'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':null,'url':'/613.bundle.26a981b3a01a8b444ade.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/661.bundle.28ef6d8cd035876bd8e2.js'},{'revision':null,'url':'/686.bundle.62c827fe4f0d054c164e.js'},{'revision':null,'url':'/687.bundle.60ed47940e558d41e984.js'},{'revision':null,'url':'/738.bundle.6501818304f8ce87ed61.js'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/814.bundle.b9661e9acf9e6ba052f9.js'},{'revision':null,'url':'/822.bundle.55759fd8e9b0b489cc6b.js'},{'revision':null,'url':'/886.bundle.4496fc7fb83b8c897d20.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/95.bundle.d7a9f450bed3b770504d.js'},{'revision':null,'url':'/965.bundle.06fb371211ed7b4b45d0.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'41bb4b36a914c2db5c383a627162b3da','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.431384e9f0df107cc122.js'},{'revision':'56a285c8999c3867c6553e714d27dbb5','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':'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':'26545f2fe5a0df854c8f9b8dc7386f31','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'884bd58a767459994b9c3c0c1deabb3c','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.a7d5060eead13771e784.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':'fab2a323663d57562b32c1be8ca21271','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':'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.29",
3
+ "version": "3.8.0-beta.30",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -52,22 +52,22 @@
52
52
  "@cornerstonejs/codec-openjpeg": "^1.2.2",
53
53
  "@cornerstonejs/codec-openjph": "^2.4.5",
54
54
  "@cornerstonejs/dicom-image-loader": "^1.36.1",
55
- "@ohif/core": "3.8.0-beta.29",
56
- "@ohif/extension-cornerstone": "3.8.0-beta.29",
57
- "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.29",
58
- "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.29",
59
- "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.29",
60
- "@ohif/extension-default": "3.8.0-beta.29",
61
- "@ohif/extension-dicom-microscopy": "3.8.0-beta.29",
62
- "@ohif/extension-dicom-pdf": "3.8.0-beta.29",
63
- "@ohif/extension-dicom-video": "3.8.0-beta.29",
64
- "@ohif/extension-test": "3.8.0-beta.29",
65
- "@ohif/i18n": "3.8.0-beta.29",
66
- "@ohif/mode-basic-dev-mode": "3.8.0-beta.29",
67
- "@ohif/mode-longitudinal": "3.8.0-beta.29",
68
- "@ohif/mode-microscopy": "3.8.0-beta.29",
69
- "@ohif/mode-test": "3.8.0-beta.29",
70
- "@ohif/ui": "3.8.0-beta.29",
55
+ "@ohif/core": "3.8.0-beta.30",
56
+ "@ohif/extension-cornerstone": "3.8.0-beta.30",
57
+ "@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.30",
58
+ "@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.30",
59
+ "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.30",
60
+ "@ohif/extension-default": "3.8.0-beta.30",
61
+ "@ohif/extension-dicom-microscopy": "3.8.0-beta.30",
62
+ "@ohif/extension-dicom-pdf": "3.8.0-beta.30",
63
+ "@ohif/extension-dicom-video": "3.8.0-beta.30",
64
+ "@ohif/extension-test": "3.8.0-beta.30",
65
+ "@ohif/i18n": "3.8.0-beta.30",
66
+ "@ohif/mode-basic-dev-mode": "3.8.0-beta.30",
67
+ "@ohif/mode-longitudinal": "3.8.0-beta.30",
68
+ "@ohif/mode-microscopy": "3.8.0-beta.30",
69
+ "@ohif/mode-test": "3.8.0-beta.30",
70
+ "@ohif/ui": "3.8.0-beta.30",
71
71
  "@types/react": "^17.0.38",
72
72
  "classnames": "^2.3.2",
73
73
  "core-js": "^3.16.1",