@ohif/app 3.8.0-beta.85 → 3.8.0-beta.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{183.bundle.fd870b9c566be6b8de8d.js → 183.bundle.c88c4355c4829ed94a88.js} +46 -4
- package/dist/{206.bundle.f944f8146169a6867103.js → 206.bundle.1203a96e327b365264e5.js} +24 -14
- package/dist/{217.bundle.c8c6e6cc3a615ceb5db3.js → 217.bundle.bbc6090836dcca555dfc.js} +46 -4
- package/dist/{321.bundle.eee08c35b8ae9177aef8.js → 321.bundle.5bd98d3324768715f634.js} +2 -11
- package/dist/{325.bundle.3a548f7563cf7f4fa0c3.js → 325.bundle.ac07a6ca0a4e66bed604.js} +3 -2
- package/dist/{41.bundle.0bbfc8b185335a6af3d2.js → 41.bundle.45737afb9f85e7e69ff3.js} +4 -4
- package/dist/{448.bundle.1c84f0bdf33114ffaa23.js → 448.bundle.fde8b8e0fd744f39389d.js} +4 -4
- package/dist/{633.bundle.7df396e5ce55038d73f8.js → 633.bundle.3961c49efec0b913b9cc.js} +3 -2
- package/dist/{699.bundle.c61a6ee18edaa82bbcb8.js → 699.bundle.7228b225e0c2b8100077.js} +4 -4
- package/dist/{722.bundle.2ee939850f552481d21f.js → 722.bundle.a91ce7b563b901b25db0.js} +3 -1
- package/dist/{app.bundle.6173c1de2db725433585.js → app.bundle.ce0e385dbbb6c1c1769f.js} +92 -40
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.f75afca9b957abed095e.js → polySeg.bundle.c2653f8ce77f44ae095b.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{164.bundle.1b5c53db66679bcafad8.js → 164.bundle.288b10692cc72b81a98d.js} +0 -0
- /package/dist/{188.bundle.382a4f6122f36663fe1b.js → 188.bundle.d9b13c4a2910858bca9b.js} +0 -0
- /package/dist/{335.bundle.40079fc4db9cd9e1ea25.js → 335.bundle.fab6af469f98e7a59bfa.js} +0 -0
- /package/dist/{487.bundle.1e939666fcf482a3f483.js → 487.bundle.8d0477af42cf9f8c0937.js} +0 -0
- /package/dist/{594.bundle.a92b4affca5dd5a19008.js → 594.bundle.e8e1b20c5c46cf16ffa3.js} +0 -0
- /package/dist/{669.bundle.7a2e02cf4a5ddd9f93d0.js → 669.bundle.5652fa450c1d63575a5a.js} +0 -0
- /package/dist/{724.bundle.4b4c12fd4021b8e731c8.js → 724.bundle.634bee9667a518d1202f.js} +0 -0
- /package/dist/{889.bundle.3f2ce46ff0852cd05e2d.js → 889.bundle.e2700d7456565ce71dad.js} +0 -0
- /package/dist/{905.bundle.353dbb336dd069f813fc.js → 905.bundle.ec6275a2096f7f096618.js} +0 -0
- /package/dist/{907.bundle.b18e66ce363df0b55c58.js → 907.bundle.d2823642d3a32b5209a2.js} +0 -0
- /package/dist/{94.bundle.258d632602d599e426a9.js → 94.bundle.b35c818d871de99336d8.js} +0 -0
- /package/dist/{961.bundle.c2fd81693f7f1a075bbd.js → 961.bundle.34a9b1fbf372d18b9b36.js} +0 -0
|
@@ -9715,13 +9715,19 @@ PanTool.toolName = 'Pan';
|
|
|
9715
9715
|
|
|
9716
9716
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/Math.js
|
|
9717
9717
|
var Core_Math = __webpack_require__(61199);
|
|
9718
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 3 modules
|
|
9719
|
+
var enums = __webpack_require__(84901);
|
|
9718
9720
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
9719
9721
|
var gl_matrix_esm = __webpack_require__(44753);
|
|
9722
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js
|
|
9723
|
+
var ToolGroupManager = __webpack_require__(52610);
|
|
9720
9724
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/TrackballRotateTool.js
|
|
9721
9725
|
|
|
9722
9726
|
|
|
9723
9727
|
|
|
9724
9728
|
|
|
9729
|
+
|
|
9730
|
+
|
|
9725
9731
|
class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
9726
9732
|
constructor(toolProps = {}, defaultToolProps = {
|
|
9727
9733
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -9730,6 +9736,7 @@ class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
|
9730
9736
|
},
|
|
9731
9737
|
}) {
|
|
9732
9738
|
super(toolProps, defaultToolProps);
|
|
9739
|
+
this._resizeObservers = new Map();
|
|
9733
9740
|
this.preMouseDownCallback = (evt) => {
|
|
9734
9741
|
const eventDetail = evt.detail;
|
|
9735
9742
|
const { element } = eventDetail;
|
|
@@ -9750,6 +9757,45 @@ class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
|
9750
9757
|
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
9751
9758
|
return true;
|
|
9752
9759
|
};
|
|
9760
|
+
this._getViewportsInfo = () => {
|
|
9761
|
+
const viewports = (0,ToolGroupManager.getToolGroup)(this.toolGroupId).viewportsInfo;
|
|
9762
|
+
return viewports;
|
|
9763
|
+
};
|
|
9764
|
+
this.onSetToolActive = () => {
|
|
9765
|
+
const subscribeToElementResize = () => {
|
|
9766
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
9767
|
+
viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
|
|
9768
|
+
if (!this._resizeObservers.has(viewportId)) {
|
|
9769
|
+
const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
9770
|
+
const { element } = viewport;
|
|
9771
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
9772
|
+
const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
9773
|
+
viewport.resetCamera();
|
|
9774
|
+
viewport.render();
|
|
9775
|
+
});
|
|
9776
|
+
resizeObserver.observe(element);
|
|
9777
|
+
this._resizeObservers.set(viewportId, resizeObserver);
|
|
9778
|
+
}
|
|
9779
|
+
});
|
|
9780
|
+
};
|
|
9781
|
+
subscribeToElementResize();
|
|
9782
|
+
this._viewportAddedListener = (evt) => {
|
|
9783
|
+
if (evt.detail.toolGroupId === this.toolGroupId) {
|
|
9784
|
+
subscribeToElementResize();
|
|
9785
|
+
}
|
|
9786
|
+
};
|
|
9787
|
+
esm.eventTarget.addEventListener(enums.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
9788
|
+
};
|
|
9789
|
+
this.onSetToolDisabled = () => {
|
|
9790
|
+
this._resizeObservers.forEach((resizeObserver, viewportId) => {
|
|
9791
|
+
resizeObserver.disconnect();
|
|
9792
|
+
this._resizeObservers.delete(viewportId);
|
|
9793
|
+
});
|
|
9794
|
+
if (this._viewportAddedListener) {
|
|
9795
|
+
esm.eventTarget.removeEventListener(enums.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
9796
|
+
this._viewportAddedListener = null;
|
|
9797
|
+
}
|
|
9798
|
+
};
|
|
9753
9799
|
this.rotateCamera = (viewport, centerWorld, axis, angle) => {
|
|
9754
9800
|
const vtkCamera = viewport.getVtkActiveCamera();
|
|
9755
9801
|
const viewUp = vtkCamera.getViewUp();
|
|
@@ -10428,8 +10474,6 @@ VolumeRotateMouseWheelTool.toolName = 'VolumeRotateMouseWheel';
|
|
|
10428
10474
|
var planar = __webpack_require__(84797);
|
|
10429
10475
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewport/jumpToWorld.js
|
|
10430
10476
|
var jumpToWorld = __webpack_require__(88240);
|
|
10431
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js
|
|
10432
|
-
var ToolGroupManager = __webpack_require__(52610);
|
|
10433
10477
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/MIPJumpToClickTool.js
|
|
10434
10478
|
|
|
10435
10479
|
|
|
@@ -10498,8 +10542,6 @@ var annotationState = __webpack_require__(38296);
|
|
|
10498
10542
|
var drawingSvg = __webpack_require__(2746);
|
|
10499
10543
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/index.js + 4 modules
|
|
10500
10544
|
var store = __webpack_require__(61738);
|
|
10501
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 3 modules
|
|
10502
|
-
var enums = __webpack_require__(84901);
|
|
10503
10545
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/index.js + 4 modules
|
|
10504
10546
|
var viewportFilters = __webpack_require__(90252);
|
|
10505
10547
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
|
|
@@ -2750,8 +2750,8 @@ function ViewerHeader({
|
|
|
2750
2750
|
hotkeyDefinitions,
|
|
2751
2751
|
hotkeyDefaults
|
|
2752
2752
|
} = hotkeysManager;
|
|
2753
|
-
const versionNumber = "3.8.0-beta.
|
|
2754
|
-
const commitHash = "
|
|
2753
|
+
const versionNumber = "3.8.0-beta.86";
|
|
2754
|
+
const commitHash = "d250d04580883446fcb8d748b2a97c5c198922af";
|
|
2755
2755
|
const menuOptions = [{
|
|
2756
2756
|
title: t('Header:About'),
|
|
2757
2757
|
icon: 'info',
|
|
@@ -3117,7 +3117,8 @@ function PanelStudyBrowser({
|
|
|
3117
3117
|
} = (0,ui_src/* useImageViewer */.Bz)();
|
|
3118
3118
|
const [{
|
|
3119
3119
|
activeViewportId,
|
|
3120
|
-
viewports
|
|
3120
|
+
viewports,
|
|
3121
|
+
isHangingProtocolLayout
|
|
3121
3122
|
}, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
3122
3123
|
const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
|
|
3123
3124
|
const [expandedStudyInstanceUIDs, setExpandedStudyInstanceUIDs] = (0,react.useState)([...StudyInstanceUIDs]);
|
|
@@ -3128,7 +3129,7 @@ function PanelStudyBrowser({
|
|
|
3128
3129
|
let updatedViewports = [];
|
|
3129
3130
|
const viewportId = activeViewportId;
|
|
3130
3131
|
try {
|
|
3131
|
-
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
|
|
3132
|
+
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID, isHangingProtocolLayout);
|
|
3132
3133
|
} catch (error) {
|
|
3133
3134
|
console.warn(error);
|
|
3134
3135
|
uiNotificationService.show({
|
|
@@ -4560,6 +4561,9 @@ function getDisplaySetInfo(instances) {
|
|
|
4560
4561
|
timePoints
|
|
4561
4562
|
} = dynamicVolumeInfo;
|
|
4562
4563
|
let displaySetInfo;
|
|
4564
|
+
const {
|
|
4565
|
+
appConfig
|
|
4566
|
+
} = appContext;
|
|
4563
4567
|
if (isDynamicVolume) {
|
|
4564
4568
|
const timePoint = timePoints[0];
|
|
4565
4569
|
const instancesMap = new Map();
|
|
@@ -4567,9 +4571,9 @@ function getDisplaySetInfo(instances) {
|
|
|
4567
4571
|
// O(n) to convert it into a map and O(1) to find each instance
|
|
4568
4572
|
instances.forEach(instance => instancesMap.set(instance.imageId, instance));
|
|
4569
4573
|
const firstTimePointInstances = timePoint.map(imageId => instancesMap.get(imageId));
|
|
4570
|
-
displaySetInfo = (0,isDisplaySetReconstructable/* default */.Ay)(firstTimePointInstances);
|
|
4574
|
+
displaySetInfo = (0,isDisplaySetReconstructable/* default */.Ay)(firstTimePointInstances, appConfig);
|
|
4571
4575
|
} else {
|
|
4572
|
-
displaySetInfo = (0,isDisplaySetReconstructable/* default */.Ay)(instances);
|
|
4576
|
+
displaySetInfo = (0,isDisplaySetReconstructable/* default */.Ay)(instances, appConfig);
|
|
4573
4577
|
}
|
|
4574
4578
|
return {
|
|
4575
4579
|
isDynamicVolume,
|
|
@@ -4786,6 +4790,9 @@ const generateAdvancedPresets = ({
|
|
|
4786
4790
|
return [];
|
|
4787
4791
|
}
|
|
4788
4792
|
const displaySetInsaneUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewportId);
|
|
4793
|
+
if (!displaySetInsaneUIDs) {
|
|
4794
|
+
return [];
|
|
4795
|
+
}
|
|
4789
4796
|
const displaySets = displaySetInsaneUIDs.map(uid => displaySetService.getDisplaySetByUID(uid));
|
|
4790
4797
|
return hangingProtocols.map(hp => {
|
|
4791
4798
|
if (!hp.isPreset) {
|
|
@@ -6178,7 +6185,7 @@ const reuseCachedLayout = (state, hangingProtocolService, syncService) => {
|
|
|
6178
6185
|
* This class uses the options to store the already viewed
|
|
6179
6186
|
* display sets, filling it initially with the pre-existing viewports.
|
|
6180
6187
|
*/
|
|
6181
|
-
const findViewportsByPosition_findOrCreateViewport = (hangingProtocolService, viewportsByPosition, position, positionId, options) => {
|
|
6188
|
+
const findViewportsByPosition_findOrCreateViewport = (hangingProtocolService, isHangingProtocolLayout, viewportsByPosition, position, positionId, options) => {
|
|
6182
6189
|
const byPositionViewport = viewportsByPosition?.[positionId];
|
|
6183
6190
|
if (byPositionViewport) {
|
|
6184
6191
|
return {
|
|
@@ -6194,8 +6201,9 @@ const findViewportsByPosition_findOrCreateViewport = (hangingProtocolService, vi
|
|
|
6194
6201
|
if (!options.inDisplay) {
|
|
6195
6202
|
options.inDisplay = [...viewportsByPosition.initialInDisplay];
|
|
6196
6203
|
}
|
|
6197
|
-
|
|
6198
|
-
|
|
6204
|
+
|
|
6205
|
+
// See if there is a default viewport for new views
|
|
6206
|
+
const missing = hangingProtocolService.getMissingViewport(isHangingProtocolLayout ? protocolId : 'default', stageIndex, options);
|
|
6199
6207
|
if (missing) {
|
|
6200
6208
|
const displaySetInstanceUIDs = missing.displaySetsInfo.map(it => it.displaySetInstanceUID);
|
|
6201
6209
|
options.inDisplay.push(...displaySetInstanceUIDs);
|
|
@@ -6534,7 +6542,7 @@ const commandsModule = ({
|
|
|
6534
6542
|
numRows,
|
|
6535
6543
|
numCols
|
|
6536
6544
|
}, stateSyncService);
|
|
6537
|
-
const findOrCreateViewport = findViewportsByPosition_findOrCreateViewport.bind(null, hangingProtocolService, stateReduce.viewportsByPosition);
|
|
6545
|
+
const findOrCreateViewport = findViewportsByPosition_findOrCreateViewport.bind(null, hangingProtocolService, isHangingProtocolLayout, stateReduce.viewportsByPosition);
|
|
6538
6546
|
viewportGridService.setLayout({
|
|
6539
6547
|
numRows,
|
|
6540
6548
|
numCols,
|
|
@@ -6551,7 +6559,8 @@ const commandsModule = ({
|
|
|
6551
6559
|
const {
|
|
6552
6560
|
activeViewportId,
|
|
6553
6561
|
viewports,
|
|
6554
|
-
layout
|
|
6562
|
+
layout,
|
|
6563
|
+
isHangingProtocolLayout
|
|
6555
6564
|
} = viewportGridState;
|
|
6556
6565
|
const {
|
|
6557
6566
|
displaySetInstanceUIDs,
|
|
@@ -6575,7 +6584,7 @@ const commandsModule = ({
|
|
|
6575
6584
|
// updatedViewportsViaHP below contains the viewports applicable to the HP that existed
|
|
6576
6585
|
// prior to the toggle to one-up - including the updated viewports if a display
|
|
6577
6586
|
// set swap were to have occurred.
|
|
6578
|
-
const updatedViewportsViaHP = displaySetInstanceUIDs.length > 1 ? [] : displaySetInstanceUIDs.map(displaySetInstanceUID => hangingProtocolService.getViewportsRequireUpdate(viewportIdToUpdate, displaySetInstanceUID)).flat();
|
|
6587
|
+
const updatedViewportsViaHP = displaySetInstanceUIDs.length > 1 ? [] : displaySetInstanceUIDs.map(displaySetInstanceUID => hangingProtocolService.getViewportsRequireUpdate(viewportIdToUpdate, displaySetInstanceUID, isHangingProtocolLayout)).flat();
|
|
6579
6588
|
|
|
6580
6589
|
// findOrCreateViewport returns either one of the updatedViewportsViaHP
|
|
6581
6590
|
// returned from the HP service OR if there is not one from the HP service then
|
|
@@ -6742,7 +6751,8 @@ const commandsModule = ({
|
|
|
6742
6751
|
currentDisplaySets.sort(dsSortFn);
|
|
6743
6752
|
const {
|
|
6744
6753
|
activeViewportId,
|
|
6745
|
-
viewports
|
|
6754
|
+
viewports,
|
|
6755
|
+
isHangingProtocolLayout
|
|
6746
6756
|
} = viewportGridService.getState();
|
|
6747
6757
|
const {
|
|
6748
6758
|
displaySetInstanceUIDs
|
|
@@ -6762,7 +6772,7 @@ const commandsModule = ({
|
|
|
6762
6772
|
} = currentDisplaySets[displaySetIndexToShow];
|
|
6763
6773
|
let updatedViewports = [];
|
|
6764
6774
|
try {
|
|
6765
|
-
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(activeViewportId, displaySetInstanceUID);
|
|
6775
|
+
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(activeViewportId, displaySetInstanceUID, isHangingProtocolLayout);
|
|
6766
6776
|
} catch (error) {
|
|
6767
6777
|
console.warn(error);
|
|
6768
6778
|
uiNotificationService.show({
|
|
@@ -53278,13 +53278,19 @@ PanTool.toolName = 'Pan';
|
|
|
53278
53278
|
|
|
53279
53279
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/Math.js
|
|
53280
53280
|
var Core_Math = __webpack_require__(61199);
|
|
53281
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 3 modules
|
|
53282
|
+
var enums = __webpack_require__(84901);
|
|
53281
53283
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
53282
53284
|
var gl_matrix_esm = __webpack_require__(44753);
|
|
53285
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js
|
|
53286
|
+
var ToolGroupManager = __webpack_require__(52610);
|
|
53283
53287
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/TrackballRotateTool.js
|
|
53284
53288
|
|
|
53285
53289
|
|
|
53286
53290
|
|
|
53287
53291
|
|
|
53292
|
+
|
|
53293
|
+
|
|
53288
53294
|
class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
53289
53295
|
constructor(toolProps = {}, defaultToolProps = {
|
|
53290
53296
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -53293,6 +53299,7 @@ class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
|
53293
53299
|
},
|
|
53294
53300
|
}) {
|
|
53295
53301
|
super(toolProps, defaultToolProps);
|
|
53302
|
+
this._resizeObservers = new Map();
|
|
53296
53303
|
this.preMouseDownCallback = (evt) => {
|
|
53297
53304
|
const eventDetail = evt.detail;
|
|
53298
53305
|
const { element } = eventDetail;
|
|
@@ -53313,6 +53320,45 @@ class TrackballRotateTool extends base/* BaseTool */.oS {
|
|
|
53313
53320
|
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
53314
53321
|
return true;
|
|
53315
53322
|
};
|
|
53323
|
+
this._getViewportsInfo = () => {
|
|
53324
|
+
const viewports = (0,ToolGroupManager.getToolGroup)(this.toolGroupId).viewportsInfo;
|
|
53325
|
+
return viewports;
|
|
53326
|
+
};
|
|
53327
|
+
this.onSetToolActive = () => {
|
|
53328
|
+
const subscribeToElementResize = () => {
|
|
53329
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
53330
|
+
viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
|
|
53331
|
+
if (!this._resizeObservers.has(viewportId)) {
|
|
53332
|
+
const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
53333
|
+
const { element } = viewport;
|
|
53334
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
53335
|
+
const { viewport } = (0,esm.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
53336
|
+
viewport.resetCamera();
|
|
53337
|
+
viewport.render();
|
|
53338
|
+
});
|
|
53339
|
+
resizeObserver.observe(element);
|
|
53340
|
+
this._resizeObservers.set(viewportId, resizeObserver);
|
|
53341
|
+
}
|
|
53342
|
+
});
|
|
53343
|
+
};
|
|
53344
|
+
subscribeToElementResize();
|
|
53345
|
+
this._viewportAddedListener = (evt) => {
|
|
53346
|
+
if (evt.detail.toolGroupId === this.toolGroupId) {
|
|
53347
|
+
subscribeToElementResize();
|
|
53348
|
+
}
|
|
53349
|
+
};
|
|
53350
|
+
esm.eventTarget.addEventListener(enums.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
53351
|
+
};
|
|
53352
|
+
this.onSetToolDisabled = () => {
|
|
53353
|
+
this._resizeObservers.forEach((resizeObserver, viewportId) => {
|
|
53354
|
+
resizeObserver.disconnect();
|
|
53355
|
+
this._resizeObservers.delete(viewportId);
|
|
53356
|
+
});
|
|
53357
|
+
if (this._viewportAddedListener) {
|
|
53358
|
+
esm.eventTarget.removeEventListener(enums.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
53359
|
+
this._viewportAddedListener = null;
|
|
53360
|
+
}
|
|
53361
|
+
};
|
|
53316
53362
|
this.rotateCamera = (viewport, centerWorld, axis, angle) => {
|
|
53317
53363
|
const vtkCamera = viewport.getVtkActiveCamera();
|
|
53318
53364
|
const viewUp = vtkCamera.getViewUp();
|
|
@@ -53991,8 +54037,6 @@ VolumeRotateMouseWheelTool.toolName = 'VolumeRotateMouseWheel';
|
|
|
53991
54037
|
var planar = __webpack_require__(84797);
|
|
53992
54038
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewport/jumpToWorld.js
|
|
53993
54039
|
var jumpToWorld = __webpack_require__(88240);
|
|
53994
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js
|
|
53995
|
-
var ToolGroupManager = __webpack_require__(52610);
|
|
53996
54040
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/MIPJumpToClickTool.js
|
|
53997
54041
|
|
|
53998
54042
|
|
|
@@ -54061,8 +54105,6 @@ var annotationState = __webpack_require__(38296);
|
|
|
54061
54105
|
var drawingSvg = __webpack_require__(2746);
|
|
54062
54106
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/index.js + 4 modules
|
|
54063
54107
|
var store = __webpack_require__(61738);
|
|
54064
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 3 modules
|
|
54065
|
-
var enums = __webpack_require__(84901);
|
|
54066
54108
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/index.js + 4 modules
|
|
54067
54109
|
var viewportFilters = __webpack_require__(90252);
|
|
54068
54110
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
|
|
@@ -823,6 +823,7 @@ ImageOverlayViewerTool.addOverlayPlaneModule = tools_OverlayPlaneModuleProvider.
|
|
|
823
823
|
function initCornerstoneTools(configuration = {}) {
|
|
824
824
|
dist_esm.CrosshairsTool.isAnnotation = false;
|
|
825
825
|
dist_esm.ReferenceLinesTool.isAnnotation = false;
|
|
826
|
+
dist_esm.AdvancedMagnifyTool.isAnnotation = false;
|
|
826
827
|
(0,dist_esm.init)(configuration);
|
|
827
828
|
(0,dist_esm.addTool)(dist_esm.PanTool);
|
|
828
829
|
(0,dist_esm.addTool)(dist_esm.WindowLevelTool);
|
|
@@ -7717,17 +7718,7 @@ const mpr = {
|
|
|
7717
7718
|
numberOfPriorsReferenced: 0,
|
|
7718
7719
|
protocolMatchingRules: [],
|
|
7719
7720
|
imageLoadStrategy: 'nth',
|
|
7720
|
-
callbacks: {
|
|
7721
|
-
// Switches out of MPR mode when the layout change button is used
|
|
7722
|
-
onLayoutChange: [{
|
|
7723
|
-
commandName: 'toggleHangingProtocol',
|
|
7724
|
-
commandOptions: {
|
|
7725
|
-
protocolId: 'mpr'
|
|
7726
|
-
},
|
|
7727
|
-
context: 'DEFAULT'
|
|
7728
|
-
}]
|
|
7729
|
-
// Turns off crosshairs when switching out of MPR mode
|
|
7730
|
-
},
|
|
7721
|
+
callbacks: {},
|
|
7731
7722
|
displaySetSelectors: {
|
|
7732
7723
|
activeDisplaySet: {
|
|
7733
7724
|
seriesMatchingRules: [{
|
|
@@ -1293,7 +1293,8 @@ function PanelStudyBrowserTracking({
|
|
|
1293
1293
|
} = (0,ui_src/* useImageViewer */.Bz)();
|
|
1294
1294
|
const [{
|
|
1295
1295
|
activeViewportId,
|
|
1296
|
-
viewports
|
|
1296
|
+
viewports,
|
|
1297
|
+
isHangingProtocolLayout
|
|
1297
1298
|
}, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
1298
1299
|
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.B)();
|
|
1299
1300
|
const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
|
|
@@ -1306,7 +1307,7 @@ function PanelStudyBrowserTracking({
|
|
|
1306
1307
|
let updatedViewports = [];
|
|
1307
1308
|
const viewportId = activeViewportId;
|
|
1308
1309
|
try {
|
|
1309
|
-
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
|
|
1310
|
+
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID, isHangingProtocolLayout);
|
|
1310
1311
|
} catch (error) {
|
|
1311
1312
|
console.warn(error);
|
|
1312
1313
|
uiNotificationService.show({
|
|
@@ -611,8 +611,8 @@ const moreTools = [{
|
|
|
611
611
|
}), moreTools_createButton({
|
|
612
612
|
id: 'Magnify',
|
|
613
613
|
icon: 'tool-magnify',
|
|
614
|
-
label: '
|
|
615
|
-
tooltip: '
|
|
614
|
+
label: 'Zoom-in',
|
|
615
|
+
tooltip: 'Zoom-in',
|
|
616
616
|
commands: setToolActiveToolbar,
|
|
617
617
|
evaluate: 'evaluate.cornerstoneTool'
|
|
618
618
|
}), moreTools_createButton({
|
|
@@ -631,8 +631,8 @@ const moreTools = [{
|
|
|
631
631
|
}), moreTools_createButton({
|
|
632
632
|
id: 'AdvancedMagnify',
|
|
633
633
|
icon: 'icon-tool-loupe',
|
|
634
|
-
label: '
|
|
635
|
-
tooltip: '
|
|
634
|
+
label: 'Magnify Probe',
|
|
635
|
+
tooltip: 'Magnify Probe',
|
|
636
636
|
commands: 'toggleActiveDisabledToolbar',
|
|
637
637
|
evaluate: 'evaluate.cornerstoneTool.toggle.ifStrictlyDisabled'
|
|
638
638
|
}), moreTools_createButton({
|
|
@@ -613,8 +613,8 @@ const moreTools = [{
|
|
|
613
613
|
}), moreTools_createButton({
|
|
614
614
|
id: 'Magnify',
|
|
615
615
|
icon: 'tool-magnify',
|
|
616
|
-
label: '
|
|
617
|
-
tooltip: '
|
|
616
|
+
label: 'Zoom-in',
|
|
617
|
+
tooltip: 'Zoom-in',
|
|
618
618
|
commands: setToolActiveToolbar,
|
|
619
619
|
evaluate: 'evaluate.cornerstoneTool'
|
|
620
620
|
}), moreTools_createButton({
|
|
@@ -640,8 +640,8 @@ const moreTools = [{
|
|
|
640
640
|
}), moreTools_createButton({
|
|
641
641
|
id: 'AdvancedMagnify',
|
|
642
642
|
icon: 'icon-tool-loupe',
|
|
643
|
-
label: '
|
|
644
|
-
tooltip: '
|
|
643
|
+
label: 'Magnify Probe',
|
|
644
|
+
tooltip: 'Magnify Probe',
|
|
645
645
|
commands: 'toggleActiveDisabledToolbar',
|
|
646
646
|
evaluate: 'evaluate.cornerstoneTool.toggle.ifStrictlyDisabled'
|
|
647
647
|
}), moreTools_createButton({
|
|
@@ -980,7 +980,8 @@ function getUpdatedViewportsForSegmentation({
|
|
|
980
980
|
viewportGridService
|
|
981
981
|
} = servicesManager.services;
|
|
982
982
|
const {
|
|
983
|
-
viewports
|
|
983
|
+
viewports,
|
|
984
|
+
isHangingProtocolLayout
|
|
984
985
|
} = viewportGridService.getState();
|
|
985
986
|
const viewport = getTargetViewport({
|
|
986
987
|
viewportId,
|
|
@@ -991,7 +992,7 @@ function getUpdatedViewportsForSegmentation({
|
|
|
991
992
|
const referenceDisplaySetInstanceUID = referencedDisplaySetInstanceUID || displaySetInstanceUIDs[0];
|
|
992
993
|
const referencedDisplaySet = displaySetService.getDisplaySetByUID(referenceDisplaySetInstanceUID);
|
|
993
994
|
const segmentationFrameOfReferenceUID = referencedDisplaySet.instances[0].FrameOfReferenceUID;
|
|
994
|
-
const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(targetViewportId, referenceDisplaySetInstanceUID);
|
|
995
|
+
const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(targetViewportId, referenceDisplaySetInstanceUID, isHangingProtocolLayout);
|
|
995
996
|
viewports.forEach((viewport, viewportId) => {
|
|
996
997
|
if (targetViewportId === viewportId || updatedViewports.find(v => v.viewportId === viewportId)) {
|
|
997
998
|
return;
|
|
@@ -206,8 +206,8 @@ const toolbarButtons = [{
|
|
|
206
206
|
}), createButton({
|
|
207
207
|
id: 'Magnify',
|
|
208
208
|
icon: 'tool-magnify',
|
|
209
|
-
label: '
|
|
210
|
-
tooltip: '
|
|
209
|
+
label: 'Zoom-in',
|
|
210
|
+
tooltip: 'Zoom-in',
|
|
211
211
|
commands: setToolActiveToolbar,
|
|
212
212
|
evaluate: 'evaluate.cornerstoneTool'
|
|
213
213
|
}), createButton({
|
|
@@ -233,8 +233,8 @@ const toolbarButtons = [{
|
|
|
233
233
|
}), createButton({
|
|
234
234
|
id: 'AdvancedMagnify',
|
|
235
235
|
icon: 'icon-tool-loupe',
|
|
236
|
-
label: '
|
|
237
|
-
tooltip: '
|
|
236
|
+
label: 'Magnify Probe',
|
|
237
|
+
tooltip: 'Magnify Probe',
|
|
238
238
|
commands: 'toggleActiveDisabledToolbar',
|
|
239
239
|
evaluate: 'evaluate.cornerstoneTool.toggle.ifStrictlyDisabled'
|
|
240
240
|
}), createButton({
|
|
@@ -435,6 +435,8 @@ class BaseStreamingImageVolume extends esm.ImageVolume {
|
|
|
435
435
|
const eventDetail = {
|
|
436
436
|
FrameOfReferenceUID,
|
|
437
437
|
imageVolume: this,
|
|
438
|
+
numberOfFrames: numFrames,
|
|
439
|
+
framesProcessed: this.framesProcessed,
|
|
438
440
|
};
|
|
439
441
|
(0,esm.triggerEvent)(esm.eventTarget, esm.Enums.Events.IMAGE_VOLUME_MODIFIED, eventDetail);
|
|
440
442
|
if (complete && this.framesProcessed === this.totalNumFrames) {
|
|
@@ -670,7 +672,7 @@ class BaseStreamingImageVolume extends esm.ImageVolume {
|
|
|
670
672
|
});
|
|
671
673
|
}
|
|
672
674
|
_scaleIfNecessary(image, scalingParametersToUse) {
|
|
673
|
-
if (!image.preScale
|
|
675
|
+
if (!image.preScale?.enabled) {
|
|
674
676
|
return image.getPixelData().slice(0);
|
|
675
677
|
}
|
|
676
678
|
const imageIsAlreadyScaled = image.preScale?.scaled;
|
|
@@ -1004,8 +1004,8 @@ function WorkList({
|
|
|
1004
1004
|
};
|
|
1005
1005
|
});
|
|
1006
1006
|
const hasStudies = numOfStudies > 0;
|
|
1007
|
-
const versionNumber = "3.8.0-beta.
|
|
1008
|
-
const commitHash = "
|
|
1007
|
+
const versionNumber = "3.8.0-beta.86";
|
|
1008
|
+
const commitHash = "d250d04580883446fcb8d748b2a97c5c198922af";
|
|
1009
1009
|
const menuOptions = [{
|
|
1010
1010
|
title: t('Header:About'),
|
|
1011
1011
|
icon: 'info',
|
|
@@ -1618,15 +1618,9 @@ function ViewerViewportGrid(props) {
|
|
|
1618
1618
|
});
|
|
1619
1619
|
};
|
|
1620
1620
|
const _getUpdatedViewports = (0,react.useCallback)((viewportId, displaySetInstanceUID) => {
|
|
1621
|
-
if (!isHangingProtocolLayout) {
|
|
1622
|
-
return [{
|
|
1623
|
-
viewportId,
|
|
1624
|
-
displaySetInstanceUIDs: [displaySetInstanceUID]
|
|
1625
|
-
}];
|
|
1626
|
-
}
|
|
1627
1621
|
let updatedViewports = [];
|
|
1628
1622
|
try {
|
|
1629
|
-
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
|
|
1623
|
+
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID, isHangingProtocolLayout);
|
|
1630
1624
|
} catch (error) {
|
|
1631
1625
|
console.warn(error);
|
|
1632
1626
|
uiNotificationService.show({
|
|
@@ -3270,6 +3264,12 @@ function App({
|
|
|
3270
3264
|
oidc,
|
|
3271
3265
|
showStudyList
|
|
3272
3266
|
} = appConfigState;
|
|
3267
|
+
|
|
3268
|
+
// get the maximum 3D texture size
|
|
3269
|
+
const canvas = document.createElement('canvas');
|
|
3270
|
+
const gl = canvas.getContext('webgl2');
|
|
3271
|
+
const max3DTextureSize = gl.getParameter(gl.MAX_3D_TEXTURE_SIZE);
|
|
3272
|
+
appConfigState.max3DTextureSize = max3DTextureSize;
|
|
3273
3273
|
const {
|
|
3274
3274
|
uiDialogService,
|
|
3275
3275
|
uiModalService,
|
|
@@ -5123,7 +5123,7 @@ const iopTolerance = 0.01;
|
|
|
5123
5123
|
*
|
|
5124
5124
|
* @param {Object[]} instances An array of `OHIFInstanceMetadata` objects.
|
|
5125
5125
|
*/
|
|
5126
|
-
function isDisplaySetReconstructable(instances) {
|
|
5126
|
+
function isDisplaySetReconstructable(instances, appConfig) {
|
|
5127
5127
|
if (!instances.length) {
|
|
5128
5128
|
return {
|
|
5129
5129
|
value: false
|
|
@@ -5131,7 +5131,15 @@ function isDisplaySetReconstructable(instances) {
|
|
|
5131
5131
|
}
|
|
5132
5132
|
const firstInstance = instances[0];
|
|
5133
5133
|
const isMultiframe = firstInstance.NumberOfFrames > 1;
|
|
5134
|
-
|
|
5134
|
+
if (appConfig) {
|
|
5135
|
+
const rows = (0,_toNumber__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(firstInstance.Rows);
|
|
5136
|
+
const columns = (0,_toNumber__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(firstInstance.Columns);
|
|
5137
|
+
if (rows > appConfig.max3DTextureSize || columns > appConfig.max3DTextureSize) {
|
|
5138
|
+
return {
|
|
5139
|
+
value: false
|
|
5140
|
+
};
|
|
5141
|
+
}
|
|
5142
|
+
}
|
|
5135
5143
|
// We used to check is reconstructable modalities here, but the logic is removed
|
|
5136
5144
|
// in favor of the calculation by metadata (orientation and positions)
|
|
5137
5145
|
|
|
@@ -6607,7 +6615,7 @@ const detectionOptions = {
|
|
|
6607
6615
|
}
|
|
6608
6616
|
});
|
|
6609
6617
|
;// CONCATENATED MODULE: ../../i18n/package.json
|
|
6610
|
-
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.8.0-beta.
|
|
6618
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.8.0-beta.85"}');
|
|
6611
6619
|
;// CONCATENATED MODULE: ../../i18n/src/utils.js
|
|
6612
6620
|
const languagesMap = {
|
|
6613
6621
|
ar: 'Arabic',
|
|
@@ -19399,7 +19407,6 @@ function ViewportGridProvider({
|
|
|
19399
19407
|
// If empty viewportOptions, we use numRow and numCols to calculate number of viewports
|
|
19400
19408
|
const hasOptions = layoutOptions?.length;
|
|
19401
19409
|
const viewports = new Map();
|
|
19402
|
-
|
|
19403
19410
|
// Options is a temporary state store which can be used by the
|
|
19404
19411
|
// findOrCreate to store state about already found viewports. Typically,
|
|
19405
19412
|
// it will be used to store the display set UID's which are already
|
|
@@ -19411,7 +19418,23 @@ function ViewportGridProvider({
|
|
|
19411
19418
|
for (let col = 0; col < numCols; col++) {
|
|
19412
19419
|
const position = col + row * numCols;
|
|
19413
19420
|
const layoutOption = layoutOptions[position];
|
|
19414
|
-
|
|
19421
|
+
let xPos, yPos, w, h;
|
|
19422
|
+
if (layoutOptions && layoutOptions[position]) {
|
|
19423
|
+
({
|
|
19424
|
+
x: xPos,
|
|
19425
|
+
y: yPos,
|
|
19426
|
+
width: w,
|
|
19427
|
+
height: h
|
|
19428
|
+
} = layoutOptions[position]);
|
|
19429
|
+
} else {
|
|
19430
|
+
w = 1 / numCols;
|
|
19431
|
+
h = 1 / numRows;
|
|
19432
|
+
xPos = col * w;
|
|
19433
|
+
yPos = row * h;
|
|
19434
|
+
}
|
|
19435
|
+
const colIndex = Math.round(xPos * numCols);
|
|
19436
|
+
const rowIndex = Math.round(yPos * numRows);
|
|
19437
|
+
const positionId = layoutOption?.positionId || `${colIndex}-${rowIndex}`;
|
|
19415
19438
|
if (hasOptions && position >= layoutOptions.length) {
|
|
19416
19439
|
continue;
|
|
19417
19440
|
}
|
|
@@ -19432,20 +19455,6 @@ function ViewportGridProvider({
|
|
|
19432
19455
|
// Create a new viewport object as it is getting updated here
|
|
19433
19456
|
// and it is part of the read only state
|
|
19434
19457
|
viewports.set(viewport.viewportId, viewport);
|
|
19435
|
-
let xPos, yPos, w, h;
|
|
19436
|
-
if (layoutOptions && layoutOptions[position]) {
|
|
19437
|
-
({
|
|
19438
|
-
x: xPos,
|
|
19439
|
-
y: yPos,
|
|
19440
|
-
width: w,
|
|
19441
|
-
height: h
|
|
19442
|
-
} = layoutOptions[position]);
|
|
19443
|
-
} else {
|
|
19444
|
-
w = 1 / numCols;
|
|
19445
|
-
h = 1 / numRows;
|
|
19446
|
-
xPos = col * w;
|
|
19447
|
-
yPos = row * h;
|
|
19448
|
-
}
|
|
19449
19458
|
Object.assign(viewport, {
|
|
19450
19459
|
width: w,
|
|
19451
19460
|
height: h,
|
|
@@ -35983,21 +35992,30 @@ const Thumbnail = ({
|
|
|
35983
35992
|
return Object.keys(dragData).length !== 0;
|
|
35984
35993
|
}
|
|
35985
35994
|
});
|
|
35995
|
+
const [lastTap, setLastTap] = (0,react.useState)(0);
|
|
35996
|
+
const handleTouchEnd = e => {
|
|
35997
|
+
const currentTime = new Date().getTime();
|
|
35998
|
+
const tapLength = currentTime - lastTap;
|
|
35999
|
+
if (tapLength < 300 && tapLength > 0) {
|
|
36000
|
+
onDoubleClick(e);
|
|
36001
|
+
} else {
|
|
36002
|
+
onClick(e);
|
|
36003
|
+
}
|
|
36004
|
+
setLastTap(currentTime);
|
|
36005
|
+
};
|
|
35986
36006
|
return /*#__PURE__*/react.createElement("div", {
|
|
35987
36007
|
className: classnames_default()(className, 'group mb-8 flex flex-1 cursor-pointer select-none flex-col px-3 outline-none'),
|
|
35988
36008
|
id: `thumbnail-${displaySetInstanceUID}`,
|
|
35989
36009
|
"data-cy": `study-browser-thumbnail`,
|
|
35990
36010
|
onClick: onClick,
|
|
35991
36011
|
onDoubleClick: onDoubleClick,
|
|
36012
|
+
onTouchEnd: handleTouchEnd,
|
|
35992
36013
|
role: "button",
|
|
35993
36014
|
tabIndex: "0"
|
|
35994
36015
|
}, /*#__PURE__*/react.createElement("div", {
|
|
35995
36016
|
ref: drag
|
|
35996
36017
|
}, /*#__PURE__*/react.createElement("div", {
|
|
35997
|
-
className: classnames_default()('flex h-32 flex-1 items-center justify-center overflow-hidden rounded-md bg-black text-base text-white', isActive ? 'border-primary-light border-2' : 'border-secondary-light border hover:border-blue-300')
|
|
35998
|
-
style: {
|
|
35999
|
-
margin: isActive ? '0' : '1px'
|
|
36000
|
-
}
|
|
36018
|
+
className: classnames_default()('flex h-32 flex-1 items-center justify-center overflow-hidden rounded-md bg-black text-base text-white', isActive ? 'border-primary-light border-2' : 'border-secondary-light border hover:border-blue-300')
|
|
36001
36019
|
}, imageSrc ? /*#__PURE__*/react.createElement("img", {
|
|
36002
36020
|
src: imageSrc,
|
|
36003
36021
|
alt: imageAltText,
|
|
@@ -36085,6 +36103,17 @@ const ThumbnailNoImage = ({
|
|
|
36085
36103
|
return Object.keys(dragData).length !== 0;
|
|
36086
36104
|
}
|
|
36087
36105
|
});
|
|
36106
|
+
const [lastTap, setLastTap] = (0,react.useState)(0);
|
|
36107
|
+
const handleTouchEnd = e => {
|
|
36108
|
+
const currentTime = new Date().getTime();
|
|
36109
|
+
const tapLength = currentTime - lastTap;
|
|
36110
|
+
if (tapLength < 300 && tapLength > 0) {
|
|
36111
|
+
onDoubleClick(e);
|
|
36112
|
+
} else {
|
|
36113
|
+
onClick(e);
|
|
36114
|
+
}
|
|
36115
|
+
setLastTap(currentTime);
|
|
36116
|
+
};
|
|
36088
36117
|
return /*#__PURE__*/react.createElement("div", {
|
|
36089
36118
|
className: classnames_default()('flex flex-1 cursor-pointer select-none flex-row rounded outline-none hover:border-blue-300 focus:border-blue-300', isActive ? 'border-primary-light border-2' : 'border border-transparent'),
|
|
36090
36119
|
style: {
|
|
@@ -36093,6 +36122,7 @@ const ThumbnailNoImage = ({
|
|
|
36093
36122
|
id: `thumbnail-${displaySetInstanceUID}`,
|
|
36094
36123
|
onClick: onClick,
|
|
36095
36124
|
onDoubleClick: onDoubleClick,
|
|
36125
|
+
onTouchEnd: handleTouchEnd,
|
|
36096
36126
|
role: "button",
|
|
36097
36127
|
tabIndex: "0",
|
|
36098
36128
|
"data-cy": `study-browser-thumbnail-no-image`
|
|
@@ -67116,7 +67146,33 @@ class HangingProtocolService extends pubSubServiceInterface/* PubSubService */.R
|
|
|
67116
67146
|
protocol: validatedProtocol
|
|
67117
67147
|
};
|
|
67118
67148
|
}
|
|
67119
|
-
|
|
67149
|
+
|
|
67150
|
+
/**
|
|
67151
|
+
* This will return the viewports that need to be updated based on the
|
|
67152
|
+
* hanging protocol layout and the displaySetInstanceUID that needs to be updated.
|
|
67153
|
+
*
|
|
67154
|
+
* This is useful, when for instance we drag and drop a displaySet into a viewport
|
|
67155
|
+
* which is in MPR, and we need to update the other viewports that are showing the same
|
|
67156
|
+
* layout.
|
|
67157
|
+
*
|
|
67158
|
+
* However, sometimes since we get out of sync with the hanging protocol layout, when
|
|
67159
|
+
* the user use the custom grid layout, we should not update the other viewports, and that is
|
|
67160
|
+
* when the isHangingProtocolLayout is set to false.
|
|
67161
|
+
*
|
|
67162
|
+
* @param viewportId - the id of the viewport that needs to be updated
|
|
67163
|
+
* @param displaySetInstanceUID - the displaySetInstanceUID that needs to be updated
|
|
67164
|
+
* @param isHangingProtocolLayout - whether the layout is a hanging protocol layout
|
|
67165
|
+
* @returns
|
|
67166
|
+
*/
|
|
67167
|
+
getViewportsRequireUpdate(viewportId, displaySetInstanceUID, isHangingProtocolLayout = true) {
|
|
67168
|
+
const newDisplaySetInstanceUID = displaySetInstanceUID;
|
|
67169
|
+
const defaultReturn = [{
|
|
67170
|
+
viewportId,
|
|
67171
|
+
displaySetInstanceUIDs: [newDisplaySetInstanceUID]
|
|
67172
|
+
}];
|
|
67173
|
+
if (!isHangingProtocolLayout) {
|
|
67174
|
+
return defaultReturn;
|
|
67175
|
+
}
|
|
67120
67176
|
const {
|
|
67121
67177
|
displaySetService
|
|
67122
67178
|
} = this._servicesManager.services;
|
|
@@ -67124,14 +67180,9 @@ class HangingProtocolService extends pubSubServiceInterface/* PubSubService */.R
|
|
|
67124
67180
|
if (displaySet?.unsupported) {
|
|
67125
67181
|
throw new Error('Unsupported displaySet');
|
|
67126
67182
|
}
|
|
67127
|
-
const newDisplaySetInstanceUID = displaySetInstanceUID;
|
|
67128
67183
|
const protocol = this.protocol;
|
|
67129
67184
|
const protocolStage = protocol.stages[this.stageIndex];
|
|
67130
67185
|
const protocolViewports = protocolStage.viewports;
|
|
67131
|
-
const defaultReturn = [{
|
|
67132
|
-
viewportId,
|
|
67133
|
-
displaySetInstanceUIDs: [newDisplaySetInstanceUID]
|
|
67134
|
-
}];
|
|
67135
67186
|
if (!protocolViewports) {
|
|
67136
67187
|
return defaultReturn;
|
|
67137
67188
|
}
|
|
@@ -67513,7 +67564,8 @@ class HangingProtocolService extends pubSubServiceInterface/* PubSubService */.R
|
|
|
67513
67564
|
*/
|
|
67514
67565
|
getMissingViewport(protocolId, stageIdx, options) {
|
|
67515
67566
|
if (this.protocol.id !== protocolId) {
|
|
67516
|
-
|
|
67567
|
+
console.warn('setting protocol');
|
|
67568
|
+
this.protocol = this.getProtocolById(protocolId);
|
|
67517
67569
|
}
|
|
67518
67570
|
const protocol = this.protocol;
|
|
67519
67571
|
const stage = protocol.stages[stageIdx];
|
|
@@ -255619,7 +255671,7 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
255619
255671
|
/******/ // This function allow to reference async chunks
|
|
255620
255672
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
255621
255673
|
/******/ // return url for filenames based on template
|
|
255622
|
-
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"41":"
|
|
255674
|
+
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"41":"45737afb9f85e7e69ff3","54":"829e14ec12c2b41a4323","94":"b35c818d871de99336d8","109":"b4fee2a22b622839baf5","121":"47f05840a5b3cdf75543","164":"288b10692cc72b81a98d","183":"c88c4355c4829ed94a88","188":"d9b13c4a2910858bca9b","206":"1203a96e327b365264e5","295":"5ace95771ced62bdcab8","297":"194d8985ab974839b5b6","321":"5bd98d3324768715f634","325":"ac07a6ca0a4e66bed604","335":"fab6af469f98e7a59bfa","342":"8c74ac4c7871bd4a6f60","433":"c92d3f716a797127c1be","445":"38c6d2af64e41cd7c614","448":"fde8b8e0fd744f39389d","481":"a2b01ffe06a262fa9375","487":"8d0477af42cf9f8c0937","525":"d3a56dc9f62df5e11019","530":"207b38c15c4c01e4db0e","544":"80c013bb477a263bcf10","572":"c2653f8ce77f44ae095b","574":"9919f94ea252d4a45aaf","594":"e8e1b20c5c46cf16ffa3","633":"3961c49efec0b913b9cc","644":"1e77691d2eeb96a423b0","669":"5652fa450c1d63575a5a","699":"7228b225e0c2b8100077","722":"a91ce7b563b901b25db0","724":"634bee9667a518d1202f","726":"0b3d9277d22fe7e15b89","835":"15aff0b7433bb0dd6d6d","862":"217ce894d955626c78c5","889":"e2700d7456565ce71dad","905":"ec6275a2096f7f096618","907":"d2823642d3a32b5209a2","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"34a9b1fbf372d18b9b36"}[chunkId] + ".js";
|
|
255623
255675
|
/******/ };
|
|
255624
255676
|
/******/ })();
|
|
255625
255677
|
/******/
|
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.
|
|
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.ce0e385dbbb6c1c1769f.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>
|
package/dist/{polySeg.bundle.f75afca9b957abed095e.js → polySeg.bundle.c2653f8ce77f44ae095b.js}
RENAMED
|
@@ -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":"
|
|
139
|
+
/******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"217":"bbc6090836dcca555dfc","433":"c92d3f716a797127c1be","572":"c2653f8ce77f44ae095b","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.47f05840a5b3cdf75543.js'},{'revision':null,'url':'/141.bundle.556b4c1e4cab770417ac.js'},{'revision':null,'url':'/164.bundle.1b5c53db66679bcafad8.js'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/183.bundle.fd870b9c566be6b8de8d.js'},{'revision':null,'url':'/188.bundle.382a4f6122f36663fe1b.js'},{'revision':null,'url':'/206.bundle.f944f8146169a6867103.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/217.bundle.c8c6e6cc3a615ceb5db3.js'},{'revision':null,'url':'/295.bundle.5ace95771ced62bdcab8.js'},{'revision':null,'url':'/297.bundle.194d8985ab974839b5b6.js'},{'revision':null,'url':'/321.bundle.eee08c35b8ae9177aef8.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/321.css'},{'revision':null,'url':'/325.bundle.3a548f7563cf7f4fa0c3.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/325.css'},{'revision':null,'url':'/335.bundle.40079fc4db9cd9e1ea25.js'},{'revision':null,'url':'/342.bundle.8c74ac4c7871bd4a6f60.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/41.bundle.0bbfc8b185335a6af3d2.js'},{'revision':null,'url':'/433.bundle.c92d3f716a797127c1be.js'},{'revision':null,'url':'/445.bundle.38c6d2af64e41cd7c614.js'},{'revision':null,'url':'/448.bundle.1c84f0bdf33114ffaa23.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/481.css'},{'revision':null,'url':'/487.bundle.1e939666fcf482a3f483.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/530.bundle.207b38c15c4c01e4db0e.js'},{'revision':null,'url':'/544.bundle.80c013bb477a263bcf10.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/544.css'},{'revision':null,'url':'/574.bundle.9919f94ea252d4a45aaf.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/574.css'},{'revision':null,'url':'/594.bundle.a92b4affca5dd5a19008.js'},{'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.7df396e5ce55038d73f8.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/633.css'},{'revision':null,'url':'/644.bundle.1e77691d2eeb96a423b0.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/669.bundle.7a2e02cf4a5ddd9f93d0.js'},{'revision':null,'url':'/699.bundle.c61a6ee18edaa82bbcb8.js'},{'revision':null,'url':'/702.bundle.963481fbf871984b646f.js'},{'revision':null,'url':'/722.bundle.2ee939850f552481d21f.js'},{'revision':null,'url':'/724.bundle.4b4c12fd4021b8e731c8.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.217ce894d955626c78c5.js'},{'revision':null,'url':'/889.bundle.3f2ce46ff0852cd05e2d.js'},{'revision':null,'url':'/905.bundle.353dbb336dd069f813fc.js'},{'revision':null,'url':'/907.bundle.b18e66ce363df0b55c58.js'},{'revision':null,'url':'/931.bundle.d270a1fda9a2836c3cc5.js'},{'revision':null,'url':'/939.bundle.9d93b2e47c52338747a2.js'},{'revision':null,'url':'/94.bundle.258d632602d599e426a9.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/961.bundle.c2fd81693f7f1a075bbd.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'2c0f91522bd3a5072b6b2c1b0ea93a4f','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.6173c1de2db725433585.js'},{'revision':'9d23631dfa9ae4237bff849edc5e8c0a','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':'1a1a46826e3f7eeeacea15da7417e6d6','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'338b8847ebdcc49a1e250ddaf55adfc2','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':'3e2e789497bb6467374c3382a54c2d43','url':'/index.html'},{'revision':'9046c04c3af284876bdd62b8052507d1','url':'/index.worker.f4bda803c15bc6359d5f.worker.js'},{'revision':'5a2e75731a97dfa37207b574921d0fff','url':'/index.worker.f4bda803c15bc6359d5f.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.f75afca9b957abed095e.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.47f05840a5b3cdf75543.js'},{'revision':null,'url':'/141.bundle.556b4c1e4cab770417ac.js'},{'revision':null,'url':'/164.bundle.288b10692cc72b81a98d.js'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/183.bundle.c88c4355c4829ed94a88.js'},{'revision':null,'url':'/188.bundle.d9b13c4a2910858bca9b.js'},{'revision':null,'url':'/206.bundle.1203a96e327b365264e5.js'},{'revision':'d32549aa3716d55d525e59e31e2f6591','url':'/20fc4c659b85ccd2a9c0.wasm'},{'revision':null,'url':'/217.bundle.bbc6090836dcca555dfc.js'},{'revision':null,'url':'/295.bundle.5ace95771ced62bdcab8.js'},{'revision':null,'url':'/297.bundle.194d8985ab974839b5b6.js'},{'revision':null,'url':'/321.bundle.5bd98d3324768715f634.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/321.css'},{'revision':null,'url':'/325.bundle.ac07a6ca0a4e66bed604.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/325.css'},{'revision':null,'url':'/335.bundle.fab6af469f98e7a59bfa.js'},{'revision':null,'url':'/342.bundle.8c74ac4c7871bd4a6f60.js'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/41.bundle.45737afb9f85e7e69ff3.js'},{'revision':null,'url':'/433.bundle.c92d3f716a797127c1be.js'},{'revision':null,'url':'/445.bundle.38c6d2af64e41cd7c614.js'},{'revision':null,'url':'/448.bundle.fde8b8e0fd744f39389d.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/481.css'},{'revision':null,'url':'/487.bundle.8d0477af42cf9f8c0937.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/530.bundle.207b38c15c4c01e4db0e.js'},{'revision':null,'url':'/544.bundle.80c013bb477a263bcf10.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/544.css'},{'revision':null,'url':'/574.bundle.9919f94ea252d4a45aaf.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/574.css'},{'revision':null,'url':'/594.bundle.e8e1b20c5c46cf16ffa3.js'},{'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.3961c49efec0b913b9cc.js'},{'revision':'aa1d1f3e32367e42fe90399144d94577','url':'/633.css'},{'revision':null,'url':'/644.bundle.1e77691d2eeb96a423b0.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/669.bundle.5652fa450c1d63575a5a.js'},{'revision':null,'url':'/699.bundle.7228b225e0c2b8100077.js'},{'revision':null,'url':'/702.bundle.963481fbf871984b646f.js'},{'revision':null,'url':'/722.bundle.a91ce7b563b901b25db0.js'},{'revision':null,'url':'/724.bundle.634bee9667a518d1202f.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.217ce894d955626c78c5.js'},{'revision':null,'url':'/889.bundle.e2700d7456565ce71dad.js'},{'revision':null,'url':'/905.bundle.ec6275a2096f7f096618.js'},{'revision':null,'url':'/907.bundle.d2823642d3a32b5209a2.js'},{'revision':null,'url':'/931.bundle.d270a1fda9a2836c3cc5.js'},{'revision':null,'url':'/939.bundle.9d93b2e47c52338747a2.js'},{'revision':null,'url':'/94.bundle.b35c818d871de99336d8.js'},{'revision':'74c9647440e51f149ad12923d6ead952','url':'/945.min.worker.js'},{'revision':'cdf6f0457d4af2cef04fc41816241bc1','url':'/945.min.worker.js.map'},{'revision':null,'url':'/961.bundle.34a9b1fbf372d18b9b36.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':'2c0f91522bd3a5072b6b2c1b0ea93a4f','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.ce0e385dbbb6c1c1769f.js'},{'revision':'9d23631dfa9ae4237bff849edc5e8c0a','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':'1a1a46826e3f7eeeacea15da7417e6d6','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'338b8847ebdcc49a1e250ddaf55adfc2','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':'3e7ba71c5ab07109c7f878594baf8c9c','url':'/index.html'},{'revision':'9046c04c3af284876bdd62b8052507d1','url':'/index.worker.f4bda803c15bc6359d5f.worker.js'},{'revision':'5a2e75731a97dfa37207b574921d0fff','url':'/index.worker.f4bda803c15bc6359d5f.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.c2653f8ce77f44ae095b.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.
|
|
3
|
+
"version": "3.8.0-beta.86",
|
|
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.
|
|
57
|
+
"@cornerstonejs/dicom-image-loader": "^1.70.9",
|
|
58
58
|
"@emotion/serialize": "^1.1.3",
|
|
59
|
-
"@ohif/core": "3.8.0-beta.
|
|
60
|
-
"@ohif/extension-cornerstone": "3.8.0-beta.
|
|
61
|
-
"@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.
|
|
62
|
-
"@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.
|
|
63
|
-
"@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.
|
|
64
|
-
"@ohif/extension-default": "3.8.0-beta.
|
|
65
|
-
"@ohif/extension-dicom-microscopy": "3.8.0-beta.
|
|
66
|
-
"@ohif/extension-dicom-pdf": "3.8.0-beta.
|
|
67
|
-
"@ohif/extension-dicom-video": "3.8.0-beta.
|
|
68
|
-
"@ohif/extension-test": "3.8.0-beta.
|
|
69
|
-
"@ohif/i18n": "3.8.0-beta.
|
|
70
|
-
"@ohif/mode-basic-dev-mode": "3.8.0-beta.
|
|
71
|
-
"@ohif/mode-longitudinal": "3.8.0-beta.
|
|
72
|
-
"@ohif/mode-microscopy": "3.8.0-beta.
|
|
73
|
-
"@ohif/mode-test": "3.8.0-beta.
|
|
74
|
-
"@ohif/ui": "3.8.0-beta.
|
|
59
|
+
"@ohif/core": "3.8.0-beta.86",
|
|
60
|
+
"@ohif/extension-cornerstone": "3.8.0-beta.86",
|
|
61
|
+
"@ohif/extension-cornerstone-dicom-rt": "3.8.0-beta.86",
|
|
62
|
+
"@ohif/extension-cornerstone-dicom-seg": "3.8.0-beta.86",
|
|
63
|
+
"@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.86",
|
|
64
|
+
"@ohif/extension-default": "3.8.0-beta.86",
|
|
65
|
+
"@ohif/extension-dicom-microscopy": "3.8.0-beta.86",
|
|
66
|
+
"@ohif/extension-dicom-pdf": "3.8.0-beta.86",
|
|
67
|
+
"@ohif/extension-dicom-video": "3.8.0-beta.86",
|
|
68
|
+
"@ohif/extension-test": "3.8.0-beta.86",
|
|
69
|
+
"@ohif/i18n": "3.8.0-beta.86",
|
|
70
|
+
"@ohif/mode-basic-dev-mode": "3.8.0-beta.86",
|
|
71
|
+
"@ohif/mode-longitudinal": "3.8.0-beta.86",
|
|
72
|
+
"@ohif/mode-microscopy": "3.8.0-beta.86",
|
|
73
|
+
"@ohif/mode-test": "3.8.0-beta.86",
|
|
74
|
+
"@ohif/ui": "3.8.0-beta.86",
|
|
75
75
|
"@types/react": "^17.0.38",
|
|
76
76
|
"classnames": "^2.3.2",
|
|
77
77
|
"core-js": "^3.16.1",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|