@ohif/app 3.10.0-beta.10 → 3.10.0-beta.12
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/{1185.bundle.e63cef8446357b933672.js → 1185.bundle.e14e887b605ce2a35a63.js} +48 -14
- package/dist/{1266.bundle.6ffa84cbf1408fcfd010.js → 1266.bundle.0c506f77a0e49257cdf2.js} +5 -0
- package/dist/{3200.bundle.efc18fabd0ffd53057ad.js → 3200.bundle.b383a5f9defa09bb78ea.js} +15 -7
- package/dist/{5247.bundle.dc1f8916871daa28d1ec.js → 5247.bundle.67e7f20397d3acf84555.js} +2 -2
- package/dist/{1520.bundle.5ebd373bdb50045c845d.js → 5630.bundle.eba918a3c4d1364ee360.js} +70 -59
- package/dist/{7197.bundle.d65cb32c7302143947d9.js → 7197.bundle.b0ff54a2888019751558.js} +2 -2
- package/dist/{7955.bundle.408d0c295e30bc15ec21.js → 7955.bundle.15af812d807ae1f35aed.js} +1 -1
- package/dist/{8228.bundle.0c1f0d650adb9be44119.js → 8228.bundle.159ad73e559a130f3c50.js} +2 -2
- package/dist/{9551.bundle.5fafcf2062ff29fcc7d4.js → 9551.bundle.21940f434eac465d1736.js} +1 -1
- package/dist/{app.bundle.a1b3010c5d6c12837e17.js → app.bundle.bb043a756afd7b0b4c32.js} +56 -51
- package/dist/app.bundle.css +2 -2
- package/dist/index.html +1 -1
- package/dist/serve.json +1 -10
- package/dist/{suv-peak-worker.bundle.cad6eeb6d738dc482be2.js → suv-peak-worker.bundle.2b1dc60a3ca73b7f3b13.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{1374.bundle.833030ac08325d881c61.js → 1374.bundle.d5e05d8637d0d43d6ed4.js} +0 -0
- /package/dist/{213.bundle.f197401cd6547f6ff838.js → 213.bundle.0298fb120da820273211.js} +0 -0
- /package/dist/{2424.bundle.8dc654dd5b8a1ea90c90.js → 2424.bundle.5ab5fe8fce09eafab7f0.js} +0 -0
- /package/dist/{2825.bundle.96074384e8e37e0e021e.js → 2825.bundle.743978e5f62ee10b4350.js} +0 -0
- /package/dist/{3198.bundle.4482082ca49ae5eea878.js → 3198.bundle.a4547fefbdca8fdf6a52.js} +0 -0
- /package/dist/{4834.bundle.7ee289df357aa46f131c.js → 4834.bundle.45d2574d2cd375bebc95.js} +0 -0
- /package/dist/{5139.bundle.d8f900bab68939cfd9fa.js → 5139.bundle.7637408f98aa3b4e8e06.js} +0 -0
- /package/dist/{5687.bundle.0e0b349a72046c0e37bf.js → 5687.bundle.e4fcd6296e7e61fefcac.js} +0 -0
- /package/dist/{717.bundle.06d5b435702c14013575.js → 717.bundle.eac821ca0f8e0ff94cac.js} +0 -0
- /package/dist/{8008.bundle.6dd3113a5e440da583d1.js → 8008.bundle.3df6e8a15a9bdc3faad4.js} +0 -0
- /package/dist/{8104.bundle.e1a5126a7f7ba0e15fae.js → 8104.bundle.c531eb360d74b235704a.js} +0 -0
- /package/dist/{8259.bundle.61d6c45f3146ae624d3f.js → 8259.bundle.0d8b09183475a750fdb6.js} +0 -0
- /package/dist/{8558.bundle.34b846e3b0f870ea33cb.js → 8558.bundle.a732a4523906a6332c89.js} +0 -0
- /package/dist/{9611.bundle.bde27586a38e3b906f40.js → 9611.bundle.8a0208eb6b187c83e43b.js} +0 -0
- /package/dist/{9862.bundle.589cd2f5bf71e03152a1.js → 9862.bundle.c967a6f6ff9ba90811e6.js} +0 -0
- /package/dist/{9909.bundle.3d2b059390abcf2c925b.js → 9909.bundle.0a5f1ba3b82fae90def1.js} +0 -0
|
@@ -983,8 +983,8 @@ function initWADOImageLoader(userAuthenticationService, appConfig, extensionMana
|
|
|
983
983
|
function destroy() {
|
|
984
984
|
console.debug('Destroying WADO Image Loader');
|
|
985
985
|
}
|
|
986
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
987
|
-
var default_src = __webpack_require__(
|
|
986
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
987
|
+
var default_src = __webpack_require__(55630);
|
|
988
988
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
|
|
989
989
|
var state = __webpack_require__(71353);
|
|
990
990
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
|
|
@@ -4408,9 +4408,9 @@ const initMeasurementService = (measurementService, displaySetService, cornersto
|
|
|
4408
4408
|
/* Mappings */
|
|
4409
4409
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Length', Length.matchingCriteria, Length.toAnnotation, Length.toMeasurement);
|
|
4410
4410
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Crosshairs', Length.matchingCriteria, () => {
|
|
4411
|
-
|
|
4411
|
+
return null;
|
|
4412
4412
|
}, () => {
|
|
4413
|
-
|
|
4413
|
+
return null;
|
|
4414
4414
|
});
|
|
4415
4415
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Bidirectional', Bidirectional.matchingCriteria, Bidirectional.toAnnotation, Bidirectional.toMeasurement);
|
|
4416
4416
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'EllipticalROI', EllipticalROI.matchingCriteria, EllipticalROI.toAnnotation, EllipticalROI.toMeasurement);
|
|
@@ -5278,7 +5278,7 @@ function interleaveTopToBottom({
|
|
|
5278
5278
|
const AllRequests = [];
|
|
5279
5279
|
volumes.forEach(volume => {
|
|
5280
5280
|
const requests = volume.getImageLoadRequests();
|
|
5281
|
-
if (!requests
|
|
5281
|
+
if (!requests?.[0]?.imageId) {
|
|
5282
5282
|
return;
|
|
5283
5283
|
}
|
|
5284
5284
|
|
|
@@ -5652,6 +5652,8 @@ var useLutPresentationStore = __webpack_require__(10182);
|
|
|
5652
5652
|
var usePositionPresentationStore = __webpack_require__(44646);
|
|
5653
5653
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/stores/useSegmentationPresentationStore.ts + 1 modules
|
|
5654
5654
|
var useSegmentationPresentationStore = __webpack_require__(2847);
|
|
5655
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
|
|
5656
|
+
var esm_utilities = __webpack_require__(49035);
|
|
5655
5657
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/init.tsx
|
|
5656
5658
|
|
|
5657
5659
|
|
|
@@ -5674,6 +5676,7 @@ var useSegmentationPresentationStore = __webpack_require__(2847);
|
|
|
5674
5676
|
|
|
5675
5677
|
|
|
5676
5678
|
|
|
5679
|
+
|
|
5677
5680
|
|
|
5678
5681
|
|
|
5679
5682
|
const {
|
|
@@ -5755,9 +5758,18 @@ async function init({
|
|
|
5755
5758
|
const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
5756
5759
|
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', loaders/* cornerstoneStreamingImageVolumeLoader */.FC);
|
|
5757
5760
|
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingDynamicImageVolume', loaders/* cornerstoneStreamingDynamicImageVolumeLoader */.Mr);
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
+
|
|
5762
|
+
// Register strategies using the wrapper
|
|
5763
|
+
const imageLoadStrategies = {
|
|
5764
|
+
interleaveCenter: interleaveCenterLoader,
|
|
5765
|
+
interleaveTopToBottom: interleaveTopToBottom,
|
|
5766
|
+
nth: interleaveNthLoader
|
|
5767
|
+
};
|
|
5768
|
+
Object.entries(imageLoadStrategies).forEach(([name, strategyFn]) => {
|
|
5769
|
+
hangingProtocolService.registerImageLoadStrategy(name, createMetadataWrappedStrategy(strategyFn));
|
|
5770
|
+
});
|
|
5771
|
+
|
|
5772
|
+
// ... existing code ...
|
|
5761
5773
|
|
|
5762
5774
|
// add metadata providers
|
|
5763
5775
|
esm.metaData.addProvider(esm.utilities.calibratedPixelSpacingMetadataProvider.get.bind(esm.utilities.calibratedPixelSpacingMetadataProvider)); // this provider is required for Calibration tool
|
|
@@ -5920,6 +5932,27 @@ function initializeWebWorkerProgressHandler(uiNotificationService) {
|
|
|
5920
5932
|
}
|
|
5921
5933
|
});
|
|
5922
5934
|
}
|
|
5935
|
+
|
|
5936
|
+
/**
|
|
5937
|
+
* Creates a wrapped image load strategy with metadata handling
|
|
5938
|
+
* @param strategyFn - The image loading strategy function to wrap
|
|
5939
|
+
* @returns A wrapped strategy function that handles metadata configuration
|
|
5940
|
+
*/
|
|
5941
|
+
const createMetadataWrappedStrategy = strategyFn => {
|
|
5942
|
+
return args => {
|
|
5943
|
+
const clonedConfig = esm_utilities.imageRetrieveMetadataProvider.clone();
|
|
5944
|
+
esm_utilities.imageRetrieveMetadataProvider.clear();
|
|
5945
|
+
try {
|
|
5946
|
+
const result = strategyFn(args);
|
|
5947
|
+
return result;
|
|
5948
|
+
} finally {
|
|
5949
|
+
// Ensure metadata is always restored, even if there's an error
|
|
5950
|
+
setTimeout(() => {
|
|
5951
|
+
esm_utilities.imageRetrieveMetadataProvider.restore(clonedConfig);
|
|
5952
|
+
}, 10);
|
|
5953
|
+
}
|
|
5954
|
+
};
|
|
5955
|
+
};
|
|
5923
5956
|
function CPUModal() {
|
|
5924
5957
|
return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("p", null, "Your computer does not have enough GPU power to support the default GPU rendering mode. OHIF has switched to CPU rendering mode. Please note that CPU rendering does not support all features such as Volume Rendering, Multiplanar Reconstruction, and Segmentation Overlays."));
|
|
5925
5958
|
}
|
|
@@ -14154,6 +14187,11 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14154
14187
|
id: viewportId
|
|
14155
14188
|
}) => {
|
|
14156
14189
|
const presentation = this._getPositionPresentation(viewportId);
|
|
14190
|
+
|
|
14191
|
+
// During a resize, the slice index should remain unchanged. This is a temporary fix for
|
|
14192
|
+
// a larger issue regarding the definition of slice index with slab thickness.
|
|
14193
|
+
// We need to revisit this to make it more robust and understandable.
|
|
14194
|
+
delete presentation.viewReference.sliceIndex;
|
|
14157
14195
|
this.beforeResizePositionPresentations.set(viewportId, presentation);
|
|
14158
14196
|
});
|
|
14159
14197
|
|
|
@@ -14162,7 +14200,7 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14162
14200
|
renderingEngine.resize(isImmediate);
|
|
14163
14201
|
renderingEngine.render();
|
|
14164
14202
|
|
|
14165
|
-
// Reset the camera for viewports
|
|
14203
|
+
// Reset the camera for all viewports using position presentation to maintain relative size/position
|
|
14166
14204
|
// which means only those viewports that have a zoom level of 1.
|
|
14167
14205
|
this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => {
|
|
14168
14206
|
this.setPresentations(viewportId, {
|
|
@@ -14919,10 +14957,6 @@ function getDicomMicroscopySopClassHandler({
|
|
|
14919
14957
|
function getSopClassHandlerModule(params) {
|
|
14920
14958
|
return [getDicomMicroscopySopClassHandler(params)];
|
|
14921
14959
|
}
|
|
14922
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
|
|
14923
|
-
var esm_utilities = __webpack_require__(49035);
|
|
14924
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/stores/useToggleOneUpViewportGridStore.ts
|
|
14925
|
-
var useToggleOneUpViewportGridStore = __webpack_require__(73325);
|
|
14926
14960
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
14927
14961
|
var lodash_debounce = __webpack_require__(62051);
|
|
14928
14962
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
@@ -16803,7 +16837,7 @@ const cornerstoneExtension = {
|
|
|
16803
16837
|
useLutPresentationStore/* useLutPresentationStore */.I.getState().clearLutPresentationStore();
|
|
16804
16838
|
usePositionPresentationStore/* usePositionPresentationStore */.q.getState().clearPositionPresentationStore();
|
|
16805
16839
|
useSynchronizersStore/* useSynchronizersStore */.U.getState().clearSynchronizersStore();
|
|
16806
|
-
useToggleOneUpViewportGridStore
|
|
16840
|
+
default_src.useToggleOneUpViewportGridStore.getState().clearToggleOneUpViewportGridStore();
|
|
16807
16841
|
useSegmentationPresentationStore/* useSegmentationPresentationStore */.v.getState().clearSegmentationPresentationStore();
|
|
16808
16842
|
segmentationService.removeAllSegmentations();
|
|
16809
16843
|
},
|
|
@@ -762,6 +762,11 @@ const performCustomizations = customizationService => {
|
|
|
762
762
|
id: 'PanelSegmentation.disableEditing',
|
|
763
763
|
disableEditing: true
|
|
764
764
|
}
|
|
765
|
+
// to only show current study in the panel study browser
|
|
766
|
+
// {
|
|
767
|
+
// id: 'PanelStudyBrowser.studyMode',
|
|
768
|
+
// mode: 'primary',
|
|
769
|
+
// },
|
|
765
770
|
// To disable editing in the MeasurementTable
|
|
766
771
|
// {
|
|
767
772
|
// id: 'PanelMeasurement.disableEditing',
|
|
@@ -22,8 +22,8 @@ var es = __webpack_require__(70574);
|
|
|
22
22
|
var react_es = __webpack_require__(95261);
|
|
23
23
|
// EXTERNAL MODULE: ../../ui/src/index.js + 690 modules
|
|
24
24
|
var src = __webpack_require__(35647);
|
|
25
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
26
|
-
var default_src = __webpack_require__(
|
|
25
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
26
|
+
var default_src = __webpack_require__(55630);
|
|
27
27
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
|
|
28
28
|
|
|
29
29
|
const RESPONSE = {
|
|
@@ -1159,8 +1159,8 @@ var src = __webpack_require__(29463);
|
|
|
1159
1159
|
var ui_src = __webpack_require__(35647);
|
|
1160
1160
|
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 2483 modules
|
|
1161
1161
|
var ui_next_src = __webpack_require__(35570);
|
|
1162
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
1163
|
-
var default_src = __webpack_require__(
|
|
1162
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
1163
|
+
var default_src = __webpack_require__(55630);
|
|
1164
1164
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/constants/actionIcons.ts
|
|
1165
1165
|
const defaultActionIcons = [{
|
|
1166
1166
|
id: 'settings',
|
|
@@ -1222,6 +1222,12 @@ function PanelStudyBrowserTracking({
|
|
|
1222
1222
|
customizationService
|
|
1223
1223
|
} = servicesManager.services;
|
|
1224
1224
|
const navigate = (0,dist/* useNavigate */.Zp)();
|
|
1225
|
+
const {
|
|
1226
|
+
mode: studyMode
|
|
1227
|
+
} = customizationService.getCustomization('PanelStudyBrowser.studyMode', {
|
|
1228
|
+
id: 'default',
|
|
1229
|
+
mode: 'all'
|
|
1230
|
+
});
|
|
1225
1231
|
const {
|
|
1226
1232
|
t
|
|
1227
1233
|
} = (0,es/* useTranslation */.Bd)('Common');
|
|
@@ -1238,7 +1244,7 @@ function PanelStudyBrowserTracking({
|
|
|
1238
1244
|
isHangingProtocolLayout
|
|
1239
1245
|
}, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
1240
1246
|
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.B)();
|
|
1241
|
-
const [activeTabName, setActiveTabName] = (0,react.useState)(
|
|
1247
|
+
const [activeTabName, setActiveTabName] = (0,react.useState)(studyMode);
|
|
1242
1248
|
const [expandedStudyInstanceUIDs, setExpandedStudyInstanceUIDs] = (0,react.useState)([...StudyInstanceUIDs]);
|
|
1243
1249
|
const [studyDisplayList, setStudyDisplayList] = (0,react.useState)([]);
|
|
1244
1250
|
const [hasLoadedViewports, setHasLoadedViewports] = (0,react.useState)(false);
|
|
@@ -1283,6 +1289,9 @@ function PanelStudyBrowserTracking({
|
|
|
1283
1289
|
const {
|
|
1284
1290
|
trackedSeries
|
|
1285
1291
|
} = trackedMeasurements.context;
|
|
1292
|
+
(0,react.useEffect)(() => {
|
|
1293
|
+
setActiveTabName(studyMode);
|
|
1294
|
+
}, [studyMode]);
|
|
1286
1295
|
|
|
1287
1296
|
// ~~ studyDisplayList
|
|
1288
1297
|
(0,react.useEffect)(() => {
|
|
@@ -1604,7 +1613,6 @@ PanelStudyBrowserTracking.propTypes = {
|
|
|
1604
1613
|
getStudiesForPatientByMRN: (prop_types_default()).func.isRequired,
|
|
1605
1614
|
requestDisplaySetCreationForStudy: (prop_types_default()).func.isRequired
|
|
1606
1615
|
};
|
|
1607
|
-
/* harmony default export */ const PanelStudyBrowserTracking_PanelStudyBrowserTracking = (PanelStudyBrowserTracking);
|
|
1608
1616
|
function getImageIdForThumbnail(displaySet, imageIds) {
|
|
1609
1617
|
let imageId;
|
|
1610
1618
|
if (displaySet.isDynamicVolume) {
|
|
@@ -1841,7 +1849,7 @@ function WrappedPanelStudyBrowserTracking({
|
|
|
1841
1849
|
const _getStudiesForPatientByMRN = getStudiesForPatientByMRN.bind(null, dataSource);
|
|
1842
1850
|
const _getImageSrcFromImageId = (0,react.useCallback)(_createGetImageSrcFromImageIdFn(extensionManager), []);
|
|
1843
1851
|
const _requestDisplaySetCreationForStudy = PanelStudyBrowserTracking_requestDisplaySetCreationForStudy.bind(null, dataSource);
|
|
1844
|
-
return /*#__PURE__*/react.createElement(
|
|
1852
|
+
return /*#__PURE__*/react.createElement(PanelStudyBrowserTracking, {
|
|
1845
1853
|
servicesManager: servicesManager,
|
|
1846
1854
|
commandsManager: commandsManager,
|
|
1847
1855
|
dataSource: dataSource,
|
|
@@ -1379,8 +1379,8 @@ MicroscopyService.REGISTRATION = servicesManager => {
|
|
|
1379
1379
|
|
|
1380
1380
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
1381
1381
|
var dcmjs_es = __webpack_require__(5842);
|
|
1382
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
1383
|
-
var default_src = __webpack_require__(
|
|
1382
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
1383
|
+
var default_src = __webpack_require__(55630);
|
|
1384
1384
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/DEVICE_OBSERVER_UID.js
|
|
1385
1385
|
// We need to define a UID for this extension as a device, and it should be the same for all saves:
|
|
1386
1386
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(self["webpackChunk"] = self["webpackChunk"] || []).push([[
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[5630],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 55630:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -29,7 +29,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
29
29
|
useHangingProtocolStageIndexStore: () => (/* reexport */ useHangingProtocolStageIndexStore),
|
|
30
30
|
usePatientInfo: () => (/* reexport */ hooks_usePatientInfo),
|
|
31
31
|
useToggleHangingProtocolStore: () => (/* reexport */ useToggleHangingProtocolStore),
|
|
32
|
-
useToggleOneUpViewportGridStore: () => (/* reexport */ useToggleOneUpViewportGridStore
|
|
32
|
+
useToggleOneUpViewportGridStore: () => (/* reexport */ useToggleOneUpViewportGridStore),
|
|
33
33
|
useUIStateStore: () => (/* reexport */ useUIStateStore),
|
|
34
34
|
useViewportGridStore: () => (/* reexport */ useViewportGridStore),
|
|
35
35
|
useViewportsByPositionStore: () => (/* reexport */ useViewportsByPositionStore),
|
|
@@ -1726,23 +1726,35 @@ function createDicomWebApi(dicomWebConfig, servicesManager) {
|
|
|
1726
1726
|
naturalizedInstances.forEach(instance => {
|
|
1727
1727
|
instance.wadoRoot = dicomWebConfig.wadoRoot;
|
|
1728
1728
|
instance.wadoUri = dicomWebConfig.wadoUri;
|
|
1729
|
-
const
|
|
1730
|
-
|
|
1731
|
-
|
|
1729
|
+
const {
|
|
1730
|
+
StudyInstanceUID,
|
|
1731
|
+
SeriesInstanceUID,
|
|
1732
|
+
SOPInstanceUID
|
|
1733
|
+
} = instance;
|
|
1734
|
+
const numberOfFrames = instance.NumberOfFrames || 1;
|
|
1735
|
+
// Process all frames consistently, whether single or multiframe
|
|
1736
|
+
for (let i = 0; i < numberOfFrames; i++) {
|
|
1737
|
+
const frameNumber = i + 1;
|
|
1738
|
+
const frameImageId = implementation.getImageIdsForInstance({
|
|
1739
|
+
instance,
|
|
1740
|
+
frame: frameNumber
|
|
1741
|
+
});
|
|
1742
|
+
// Add imageId specific mapping to this data as the URL isn't necessarily WADO-URI.
|
|
1743
|
+
metadataProvider.addImageIdToUIDs(frameImageId, {
|
|
1744
|
+
StudyInstanceUID,
|
|
1745
|
+
SeriesInstanceUID,
|
|
1746
|
+
SOPInstanceUID,
|
|
1747
|
+
frameNumber: numberOfFrames > 1 ? frameNumber : undefined
|
|
1748
|
+
});
|
|
1749
|
+
}
|
|
1732
1750
|
|
|
1733
1751
|
// Adding imageId to each instance
|
|
1734
1752
|
// Todo: This is not the best way I can think of to let external
|
|
1735
1753
|
// metadata handlers know about the imageId that is stored in the store
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
// Adding UIDs to metadataProvider
|
|
1739
|
-
// Note: storing imageURI in metadataProvider since stack viewports
|
|
1740
|
-
// will use the same imageURI
|
|
1741
|
-
metadataProvider.addImageIdToUIDs(imageId, {
|
|
1742
|
-
StudyInstanceUID,
|
|
1743
|
-
SeriesInstanceUID: instance.SeriesInstanceUID,
|
|
1744
|
-
SOPInstanceUID: instance.SOPInstanceUID
|
|
1754
|
+
const imageId = implementation.getImageIdsForInstance({
|
|
1755
|
+
instance
|
|
1745
1756
|
});
|
|
1757
|
+
instance.imageId = imageId;
|
|
1746
1758
|
});
|
|
1747
1759
|
src/* DicomMetadataStore */.H8.addInstances(naturalizedInstances, madeInClient);
|
|
1748
1760
|
}
|
|
@@ -1964,7 +1976,7 @@ function createDicomJSONApi(dicomJsonConfig) {
|
|
|
1964
1976
|
query
|
|
1965
1977
|
} = query_string.parseUrl(instance.url);
|
|
1966
1978
|
|
|
1967
|
-
// Add imageId specific mapping to this data as the URL isn't
|
|
1979
|
+
// Add imageId specific mapping to this data as the URL isn't necessarily WADO-URI.
|
|
1968
1980
|
DicomJSONDataSource_metadataProvider.addImageIdToUIDs(imageId, {
|
|
1969
1981
|
StudyInstanceUID,
|
|
1970
1982
|
SeriesInstanceUID,
|
|
@@ -2322,8 +2334,7 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2322
2334
|
const {
|
|
2323
2335
|
SeriesInstanceUID
|
|
2324
2336
|
} = aSeries;
|
|
2325
|
-
|
|
2326
|
-
aSeries.instances.forEach((instance, index) => {
|
|
2337
|
+
aSeries.instances.forEach(instance => {
|
|
2327
2338
|
const {
|
|
2328
2339
|
url: imageId,
|
|
2329
2340
|
StudyInstanceUID,
|
|
@@ -2331,14 +2342,22 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2331
2342
|
SOPInstanceUID
|
|
2332
2343
|
} = instance;
|
|
2333
2344
|
instance.imageId = imageId;
|
|
2334
|
-
|
|
2335
|
-
//
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2345
|
+
const numberOfFrames = instance.NumberOfFrames || 1;
|
|
2346
|
+
// Process all frames consistently, whether single or multiframe
|
|
2347
|
+
for (let i = 0; i < numberOfFrames; i++) {
|
|
2348
|
+
const frameNumber = i + 1;
|
|
2349
|
+
const frameImageId = implementation.getImageIdsForInstance({
|
|
2350
|
+
instance,
|
|
2351
|
+
frame: frameNumber
|
|
2352
|
+
});
|
|
2353
|
+
// Add imageId specific mapping to this data as the URL isn't necessarily WADO-URI.
|
|
2354
|
+
DicomLocalDataSource_metadataProvider.addImageIdToUIDs(frameImageId, {
|
|
2355
|
+
StudyInstanceUID,
|
|
2356
|
+
SeriesInstanceUID,
|
|
2357
|
+
SOPInstanceUID,
|
|
2358
|
+
frameNumber: numberOfFrames > 1 ? frameNumber : undefined
|
|
2359
|
+
});
|
|
2360
|
+
}
|
|
2342
2361
|
});
|
|
2343
2362
|
src/* DicomMetadataStore */.H8._broadcastEvent(EVENTS.INSTANCES_ADDED, {
|
|
2344
2363
|
StudyInstanceUID,
|
|
@@ -2388,9 +2407,12 @@ function createDicomLocalApi(dicomLocalConfig) {
|
|
|
2388
2407
|
instance,
|
|
2389
2408
|
frame
|
|
2390
2409
|
}) {
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2410
|
+
// Important: Never use instance.imageId because it might be multiframe,
|
|
2411
|
+
// which would make it an invalid imageId.
|
|
2412
|
+
// if (instance.imageId) {
|
|
2413
|
+
// return instance.imageId;
|
|
2414
|
+
// }
|
|
2415
|
+
|
|
2394
2416
|
const {
|
|
2395
2417
|
StudyInstanceUID,
|
|
2396
2418
|
SeriesInstanceUID,
|
|
@@ -3056,8 +3078,8 @@ function ViewerHeader({
|
|
|
3056
3078
|
hotkeyDefinitions,
|
|
3057
3079
|
hotkeyDefaults
|
|
3058
3080
|
} = hotkeysManager;
|
|
3059
|
-
const versionNumber = "3.10.0-beta.
|
|
3060
|
-
const commitHash = "
|
|
3081
|
+
const versionNumber = "3.10.0-beta.12";
|
|
3082
|
+
const commitHash = "085590a4ca64bebad9ef60503411e1a6dd4d93f9";
|
|
3061
3083
|
const menuOptions = [{
|
|
3062
3084
|
title: t('Header:About'),
|
|
3063
3085
|
icon: 'info',
|
|
@@ -6495,8 +6517,21 @@ const createToggleHangingProtocolStore = set => ({
|
|
|
6495
6517
|
const useToggleHangingProtocolStore = (0,zustand_esm/* create */.vt)()(useToggleHangingProtocolStore_DEBUG_STORE ? (0,middleware/* devtools */.lt)(createToggleHangingProtocolStore, {
|
|
6496
6518
|
name: 'ToggleHangingProtocolStore'
|
|
6497
6519
|
}) : createToggleHangingProtocolStore);
|
|
6498
|
-
|
|
6499
|
-
|
|
6520
|
+
;// CONCATENATED MODULE: ../../../extensions/default/src/stores/useToggleOneUpViewportGridStore.ts
|
|
6521
|
+
|
|
6522
|
+
const useToggleOneUpViewportGridStore_PRESENTATION_TYPE_ID = 'toggleOneUpViewportGridId';
|
|
6523
|
+
// Stores the entire ViewportGridService getState when toggling to one up
|
|
6524
|
+
// (e.g. via a double click) so that it can be restored when toggling back.
|
|
6525
|
+
const useToggleOneUpViewportGridStore = (0,zustand_esm/* create */.vt)(set => ({
|
|
6526
|
+
toggleOneUpViewportGridStore: null,
|
|
6527
|
+
type: useToggleOneUpViewportGridStore_PRESENTATION_TYPE_ID,
|
|
6528
|
+
setToggleOneUpViewportGridStore: state => set({
|
|
6529
|
+
toggleOneUpViewportGridStore: state
|
|
6530
|
+
}),
|
|
6531
|
+
clearToggleOneUpViewportGridStore: () => set({
|
|
6532
|
+
toggleOneUpViewportGridStore: null
|
|
6533
|
+
})
|
|
6534
|
+
}));
|
|
6500
6535
|
;// CONCATENATED MODULE: ../../../extensions/default/src/commandsModule.ts
|
|
6501
6536
|
|
|
6502
6537
|
|
|
@@ -6806,7 +6841,7 @@ const commandsModule = ({
|
|
|
6806
6841
|
// The viewer is in one-up. Check if there is a state to restore/toggle back to.
|
|
6807
6842
|
const {
|
|
6808
6843
|
toggleOneUpViewportGridStore
|
|
6809
|
-
} = useToggleOneUpViewportGridStore
|
|
6844
|
+
} = useToggleOneUpViewportGridStore.getState();
|
|
6810
6845
|
if (!toggleOneUpViewportGridStore) {
|
|
6811
6846
|
return;
|
|
6812
6847
|
}
|
|
@@ -6862,7 +6897,7 @@ const commandsModule = ({
|
|
|
6862
6897
|
// Store the current viewport grid state so we can toggle it back later.
|
|
6863
6898
|
const {
|
|
6864
6899
|
setToggleOneUpViewportGridStore
|
|
6865
|
-
} = useToggleOneUpViewportGridStore
|
|
6900
|
+
} = useToggleOneUpViewportGridStore.getState();
|
|
6866
6901
|
setToggleOneUpViewportGridStore(viewportGridState);
|
|
6867
6902
|
|
|
6868
6903
|
// one being toggled to one up.
|
|
@@ -9628,30 +9663,6 @@ const defaultExtension = {
|
|
|
9628
9663
|
/* harmony default export */ const default_src = (defaultExtension);
|
|
9629
9664
|
|
|
9630
9665
|
|
|
9631
|
-
/***/ }),
|
|
9632
|
-
|
|
9633
|
-
/***/ 73325:
|
|
9634
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9635
|
-
|
|
9636
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9637
|
-
/* harmony export */ Y: () => (/* binding */ useToggleOneUpViewportGridStore)
|
|
9638
|
-
/* harmony export */ });
|
|
9639
|
-
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
|
|
9640
|
-
|
|
9641
|
-
const PRESENTATION_TYPE_ID = 'toggleOneUpViewportGridId';
|
|
9642
|
-
// Stores the entire ViewportGridService getState when toggling to one up
|
|
9643
|
-
// (e.g. via a double click) so that it can be restored when toggling back.
|
|
9644
|
-
const useToggleOneUpViewportGridStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .create */ .vt)(set => ({
|
|
9645
|
-
toggleOneUpViewportGridStore: null,
|
|
9646
|
-
type: PRESENTATION_TYPE_ID,
|
|
9647
|
-
setToggleOneUpViewportGridStore: state => set({
|
|
9648
|
-
toggleOneUpViewportGridStore: state
|
|
9649
|
-
}),
|
|
9650
|
-
clearToggleOneUpViewportGridStore: () => set({
|
|
9651
|
-
toggleOneUpViewportGridStore: null
|
|
9652
|
-
})
|
|
9653
|
-
}));
|
|
9654
|
-
|
|
9655
9666
|
/***/ })
|
|
9656
9667
|
|
|
9657
9668
|
}]);
|
|
@@ -345,8 +345,8 @@ function getHangingProtocolModule() {
|
|
|
345
345
|
}
|
|
346
346
|
/* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
|
|
347
347
|
|
|
348
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
349
|
-
var default_src = __webpack_require__(
|
|
348
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
349
|
+
var default_src = __webpack_require__(55630);
|
|
350
350
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js + 2 modules
|
|
351
351
|
var ImageMarchingSquares = __webpack_require__(38993);
|
|
352
352
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/DataArray.js
|
|
@@ -694,7 +694,7 @@ function modeFactory({
|
|
|
694
694
|
lesionStats: 'Lesion Statistics',
|
|
695
695
|
minValue: 'Minimum Value',
|
|
696
696
|
maxValue: 'Maximum Value',
|
|
697
|
-
meanValue: 'Mean Value',
|
|
697
|
+
meanValue: 'Mean Value (ml)',
|
|
698
698
|
volume: 'Volume',
|
|
699
699
|
suvPeak: 'SUV Peak',
|
|
700
700
|
suvMax: 'Maximum SUV',
|
|
@@ -19,8 +19,8 @@ var prop_types = __webpack_require__(97598);
|
|
|
19
19
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
20
20
|
// EXTERNAL MODULE: ../../ui/src/index.js + 690 modules
|
|
21
21
|
var src = __webpack_require__(35647);
|
|
22
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
23
|
-
var default_src = __webpack_require__(
|
|
22
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
23
|
+
var default_src = __webpack_require__(55630);
|
|
24
24
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
|
|
25
25
|
// extracted by mini-css-extract-plugin
|
|
26
26
|
|