@ohif/app 3.9.1 → 3.9.3
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.023fe7179faaa50019d3.js → 1185.bundle.9f4c770baf52abcf3c6d.js} +120 -53
- package/dist/{1266.bundle.e9abd5c45b5236544151.js → 1266.bundle.0097d9c4ba974905a833.js} +8 -3
- package/dist/{1374.bundle.019bbc010eeb66109e8b.js → 1374.bundle.2e1fa65e28731d98969a.js} +2 -2
- package/dist/{1436.bundle.773756cd51b69e887bac.js → 1436.bundle.be39664239aa2bbca527.js} +234 -274
- package/dist/{1927.bundle.49539e3ab5b0aad1399c.js → 1927.bundle.2b2fa0b539d6ac5b0dc3.js} +1 -1
- package/dist/{213.bundle.e663335fb0884edde6d8.js → 213.bundle.c0c23f7fd4b66d78d0fe.js} +2 -2
- package/dist/{5807.bundle.dac5ce36534a71c77723.js → 2343.bundle.f096450c21417279d4cc.js} +270 -1
- package/dist/{2424.bundle.b7da298db43541d3a7c0.js → 2424.bundle.d73e8d67dc2aace299d2.js} +2 -2
- package/dist/{2701.bundle.8c1ff2e0faaa7d2f4716.js → 2701.bundle.c8271fa4986a45fea350.js} +17 -24
- package/dist/{2825.bundle.b04c941a87fd580deb6d.js → 2825.bundle.0612b1b8ab3e8ee01b93.js} +1 -1
- package/dist/{3198.bundle.c82b7424070ffd02faf1.js → 3198.bundle.7a18515cfe4113417251.js} +10 -6
- package/dist/{3200.bundle.a12825fb5aec200d33e2.js → 3200.bundle.e46dca03aa824998973a.js} +18 -10
- package/dist/3326.bundle.d01046d6c2c31654c125.js +265 -0
- package/dist/{149.bundle.ce5596fc563276036744.js → 3900.bundle.0e4e29374e221b260ed1.js} +35 -59
- package/dist/{8295.bundle.4ecb27f9e58526f12bcb.js → 3902.bundle.8ae7b2e27f760af997dd.js} +20 -1
- package/dist/3902.css +2 -0
- package/dist/{4202.bundle.5c8120ed4841da0af211.js → 4202.bundle.497702023d73202f4f39.js} +2 -1
- package/dist/{3121.bundle.d3e7092e305cf6cecdb5.js → 4438.bundle.a945f803d0eeb11d081f.js} +24 -4
- package/dist/{4571.bundle.3b1691730b3c57bf4d35.js → 4571.bundle.a37be49663df2f4a2c8a.js} +99 -89
- package/dist/4759.bundle.1e982897292fc19ecd7c.js +265 -0
- package/dist/{4834.bundle.aad44c2628cdefb7a4dd.js → 4834.bundle.92ba088cc62a6b791000.js} +2 -2
- package/dist/{5139.bundle.367a6827071448e2923d.js → 5139.bundle.70d3be7dd1896f245d7b.js} +3 -3
- package/dist/{5247.bundle.6dc2a50f21821b2ffdf5.js → 5247.bundle.4e8669e41fd28813e643.js} +5 -5
- package/dist/{5252.bundle.5ec502c53a9cc877ed8d.js → 5252.bundle.f2675336275573a288d5.js} +13 -1
- package/dist/{1520.bundle.97dbd9bfa83148e5334d.js → 5630.bundle.44d0ca81d77b7ae5193b.js} +63 -58
- package/dist/{5687.bundle.5731ec23dd9eb43a083e.js → 5687.bundle.50b800a714486557b243.js} +5 -5
- package/dist/{5717.bundle.848e13f256818475f57f.js → 5717.bundle.9218cb67ad1994cd1a99.js} +305 -64
- package/dist/{3970.bundle.31942cc0c12a008e7ba0.js → 5758.bundle.cd1599b81bdb1f735f9d.js} +270 -1
- package/dist/{717.bundle.0f32b7b57347b5141248.js → 7013.bundle.979d3a29f6142e8c1290.js} +264 -4
- package/dist/7013.css +4 -0
- package/dist/{7197.bundle.c28453cdb392072d8bf8.js → 7197.bundle.30f8969751309ab5235c.js} +6 -6
- package/dist/{7955.bundle.6a255705b1ef5906f4a8.js → 7955.bundle.9264a10437f0a67e6057.js} +3 -3
- package/dist/{8008.bundle.5bf7b274246be10e2f05.js → 8008.bundle.6772a210a995b568f8d0.js} +2 -2
- package/dist/{8228.bundle.55ac03d7165248f47d4e.js → 8228.bundle.2c1e61eec1f9f4b3b613.js} +8 -26
- package/dist/{8259.bundle.623c29b26b170a8a085b.js → 8259.bundle.9cf9ef151893ede068bb.js} +2 -2
- package/dist/{8523.bundle.648334132159465cdc41.js → 8523.bundle.c0ec85de98ba380ebeb4.js} +55 -13
- package/dist/{8558.bundle.01d05fd73da5db8e60f9.js → 8558.bundle.9c22f000a404f1006a41.js} +10 -5
- package/dist/{9551.bundle.6c260a9869e14dcc3543.js → 9551.bundle.3507bb1d4353df13bf3a.js} +3 -3
- package/dist/{9611.bundle.767595c93877e5166c03.js → 9611.bundle.9f1aa9041196d77f2b7e.js} +2 -2
- package/dist/{app.bundle.d02143bec2df7fec9964.js → app.bundle.9af5a6d7ff3a778d05b7.js} +278 -150
- package/dist/app.bundle.css +2 -2
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.b79ae514989e86301c71.js → polySeg.bundle.6e85073e3abf2e6e6078.js} +1 -1
- package/dist/serve.json +1 -10
- package/dist/{suv-peak-worker.bundle.31c3b3b957204af93b7e.js → suv-peak-worker.bundle.e2e8e46de3e958a1a3db.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{1801.css → 3326.css} +0 -0
- /package/dist/{717.css → 4438.css} +0 -0
- /package/dist/{2591.css → 4759.css} +0 -0
- /package/dist/{9862.bundle.7146682e56aa66130ae6.js → 9862.bundle.aa2f8e0010f1be1bc87d.js} +0 -0
|
@@ -82,26 +82,6 @@ function formatDICOMTime(time, strFormat = 'HH:mm:ss') {
|
|
|
82
82
|
return moment_default()(time, 'HH:mm:ss').format(strFormat);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
/**
|
|
86
|
-
* Formats a patient name for display purposes
|
|
87
|
-
*
|
|
88
|
-
* @param {string} name
|
|
89
|
-
* @returns {string} formatted name.
|
|
90
|
-
*/
|
|
91
|
-
function formatPN(name) {
|
|
92
|
-
if (!name) {
|
|
93
|
-
return '';
|
|
94
|
-
}
|
|
95
|
-
if (typeof name === 'object') {
|
|
96
|
-
name = name.Alphabetic;
|
|
97
|
-
if (!name) {
|
|
98
|
-
return '';
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
const cleaned = name.split('^').filter(s => !!s).join(', ').trim();
|
|
102
|
-
return cleaned === ',' || cleaned === '' ? '' : cleaned;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
85
|
/**
|
|
106
86
|
* Gets compression type
|
|
107
87
|
*
|
|
@@ -122,6 +102,8 @@ function getCompression(imageId) {
|
|
|
122
102
|
}
|
|
123
103
|
return 'Lossless / Uncompressed';
|
|
124
104
|
}
|
|
105
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
106
|
+
var core_src = __webpack_require__(80818);
|
|
125
107
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.css
|
|
126
108
|
// extracted by mini-css-extract-plugin
|
|
127
109
|
|
|
@@ -133,7 +115,11 @@ function getCompression(imageId) {
|
|
|
133
115
|
|
|
134
116
|
|
|
135
117
|
|
|
118
|
+
|
|
136
119
|
const EPSILON = 1e-4;
|
|
120
|
+
const {
|
|
121
|
+
formatPN
|
|
122
|
+
} = core_src/* utils */.Wp;
|
|
137
123
|
const OverlayItemComponents = {
|
|
138
124
|
'ohif.overlayItem': OverlayItem,
|
|
139
125
|
'ohif.overlayItem.windowLevel': VOIOverlayItem,
|
|
@@ -337,7 +323,7 @@ function CustomizableViewportOverlay({
|
|
|
337
323
|
servicesManager,
|
|
338
324
|
customization: item,
|
|
339
325
|
formatters: {
|
|
340
|
-
formatPN
|
|
326
|
+
formatPN,
|
|
341
327
|
formatDate: formatDICOMDate,
|
|
342
328
|
formatTime: formatDICOMTime,
|
|
343
329
|
formatNumberPrecision: formatNumberPrecision
|
|
@@ -747,7 +733,7 @@ const useViewportActionCornersContext = () => (0,react__WEBPACK_IMPORTED_MODULE_
|
|
|
747
733
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
748
734
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62051);
|
|
749
735
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
750
|
-
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
736
|
+
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5971);
|
|
751
737
|
|
|
752
738
|
|
|
753
739
|
|
|
@@ -941,8 +927,8 @@ const Enums = {
|
|
|
941
927
|
CORNERSTONE_3D_TOOLS_SOURCE_VERSION
|
|
942
928
|
};
|
|
943
929
|
/* harmony default export */ const enums = (Enums);
|
|
944
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
945
|
-
var src = __webpack_require__(
|
|
930
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
931
|
+
var src = __webpack_require__(80818);
|
|
946
932
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/index.js
|
|
947
933
|
var loaders = __webpack_require__(19742);
|
|
948
934
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/RequestType.js
|
|
@@ -983,8 +969,8 @@ function initWADOImageLoader(userAuthenticationService, appConfig, extensionMana
|
|
|
983
969
|
function destroy() {
|
|
984
970
|
console.debug('Destroying WADO Image Loader');
|
|
985
971
|
}
|
|
986
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
987
|
-
var default_src = __webpack_require__(
|
|
972
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
|
|
973
|
+
var default_src = __webpack_require__(55630);
|
|
988
974
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
|
|
989
975
|
var state = __webpack_require__(71353);
|
|
990
976
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
|
|
@@ -1106,8 +1092,8 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
|
|
|
1106
1092
|
});
|
|
1107
1093
|
});
|
|
1108
1094
|
}
|
|
1109
|
-
// EXTERNAL MODULE: ../../core/src/utils/index.ts +
|
|
1110
|
-
var utils = __webpack_require__(
|
|
1095
|
+
// EXTERNAL MODULE: ../../core/src/utils/index.ts + 28 modules
|
|
1096
|
+
var utils = __webpack_require__(5971);
|
|
1111
1097
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
|
|
1112
1098
|
|
|
1113
1099
|
const _cachedOverlayMetadata = new Map();
|
|
@@ -4408,9 +4394,9 @@ const initMeasurementService = (measurementService, displaySetService, cornersto
|
|
|
4408
4394
|
/* Mappings */
|
|
4409
4395
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Length', Length.matchingCriteria, Length.toAnnotation, Length.toMeasurement);
|
|
4410
4396
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Crosshairs', Length.matchingCriteria, () => {
|
|
4411
|
-
|
|
4397
|
+
return null;
|
|
4412
4398
|
}, () => {
|
|
4413
|
-
|
|
4399
|
+
return null;
|
|
4414
4400
|
});
|
|
4415
4401
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'Bidirectional', Bidirectional.matchingCriteria, Bidirectional.toAnnotation, Bidirectional.toMeasurement);
|
|
4416
4402
|
measurementService.addMapping(csTools3DVer1MeasurementSource, 'EllipticalROI', EllipticalROI.matchingCriteria, EllipticalROI.toAnnotation, EllipticalROI.toMeasurement);
|
|
@@ -5278,7 +5264,7 @@ function interleaveTopToBottom({
|
|
|
5278
5264
|
const AllRequests = [];
|
|
5279
5265
|
volumes.forEach(volume => {
|
|
5280
5266
|
const requests = volume.getImageLoadRequests();
|
|
5281
|
-
if (!requests
|
|
5267
|
+
if (!requests?.[0]?.imageId) {
|
|
5282
5268
|
return;
|
|
5283
5269
|
}
|
|
5284
5270
|
|
|
@@ -5652,6 +5638,8 @@ var useLutPresentationStore = __webpack_require__(10182);
|
|
|
5652
5638
|
var usePositionPresentationStore = __webpack_require__(44646);
|
|
5653
5639
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/stores/useSegmentationPresentationStore.ts + 1 modules
|
|
5654
5640
|
var useSegmentationPresentationStore = __webpack_require__(2847);
|
|
5641
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
|
|
5642
|
+
var esm_utilities = __webpack_require__(49035);
|
|
5655
5643
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/init.tsx
|
|
5656
5644
|
|
|
5657
5645
|
|
|
@@ -5674,6 +5662,7 @@ var useSegmentationPresentationStore = __webpack_require__(2847);
|
|
|
5674
5662
|
|
|
5675
5663
|
|
|
5676
5664
|
|
|
5665
|
+
|
|
5677
5666
|
|
|
5678
5667
|
|
|
5679
5668
|
const {
|
|
@@ -5755,9 +5744,18 @@ async function init({
|
|
|
5755
5744
|
const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
5756
5745
|
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', loaders/* cornerstoneStreamingImageVolumeLoader */.FC);
|
|
5757
5746
|
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingDynamicImageVolume', loaders/* cornerstoneStreamingDynamicImageVolumeLoader */.Mr);
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5747
|
+
|
|
5748
|
+
// Register strategies using the wrapper
|
|
5749
|
+
const imageLoadStrategies = {
|
|
5750
|
+
interleaveCenter: interleaveCenterLoader,
|
|
5751
|
+
interleaveTopToBottom: interleaveTopToBottom,
|
|
5752
|
+
nth: interleaveNthLoader
|
|
5753
|
+
};
|
|
5754
|
+
Object.entries(imageLoadStrategies).forEach(([name, strategyFn]) => {
|
|
5755
|
+
hangingProtocolService.registerImageLoadStrategy(name, createMetadataWrappedStrategy(strategyFn));
|
|
5756
|
+
});
|
|
5757
|
+
|
|
5758
|
+
// ... existing code ...
|
|
5761
5759
|
|
|
5762
5760
|
// add metadata providers
|
|
5763
5761
|
esm.metaData.addProvider(esm.utilities.calibratedPixelSpacingMetadataProvider.get.bind(esm.utilities.calibratedPixelSpacingMetadataProvider)); // this provider is required for Calibration tool
|
|
@@ -5920,6 +5918,27 @@ function initializeWebWorkerProgressHandler(uiNotificationService) {
|
|
|
5920
5918
|
}
|
|
5921
5919
|
});
|
|
5922
5920
|
}
|
|
5921
|
+
|
|
5922
|
+
/**
|
|
5923
|
+
* Creates a wrapped image load strategy with metadata handling
|
|
5924
|
+
* @param strategyFn - The image loading strategy function to wrap
|
|
5925
|
+
* @returns A wrapped strategy function that handles metadata configuration
|
|
5926
|
+
*/
|
|
5927
|
+
const createMetadataWrappedStrategy = strategyFn => {
|
|
5928
|
+
return args => {
|
|
5929
|
+
const clonedConfig = esm_utilities.imageRetrieveMetadataProvider.clone();
|
|
5930
|
+
esm_utilities.imageRetrieveMetadataProvider.clear();
|
|
5931
|
+
try {
|
|
5932
|
+
const result = strategyFn(args);
|
|
5933
|
+
return result;
|
|
5934
|
+
} finally {
|
|
5935
|
+
// Ensure metadata is always restored, even if there's an error
|
|
5936
|
+
setTimeout(() => {
|
|
5937
|
+
esm_utilities.imageRetrieveMetadataProvider.restore(clonedConfig);
|
|
5938
|
+
}, 10);
|
|
5939
|
+
}
|
|
5940
|
+
};
|
|
5941
|
+
};
|
|
5923
5942
|
function CPUModal() {
|
|
5924
5943
|
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
5944
|
}
|
|
@@ -9089,7 +9108,7 @@ const frameView = {
|
|
|
9089
9108
|
required: true
|
|
9090
9109
|
}, {
|
|
9091
9110
|
attribute: 'isDisplaySetFromUrl',
|
|
9092
|
-
weight:
|
|
9111
|
+
weight: 20,
|
|
9093
9112
|
constraint: {
|
|
9094
9113
|
equals: true
|
|
9095
9114
|
}
|
|
@@ -11719,12 +11738,22 @@ class SegmentationService extends src/* PubSubService */.Rc {
|
|
|
11719
11738
|
// We should parse the segmentation as separate slices to support overlapping segments.
|
|
11720
11739
|
// This parsing should occur in the CornerstoneJS library adapters.
|
|
11721
11740
|
// For now, we use the volume returned from the library and chop it here.
|
|
11741
|
+
let firstSegmentedSliceImageId = null;
|
|
11722
11742
|
for (let i = 0; i < derivedSegmentationImages.length; i++) {
|
|
11723
11743
|
const voxelManager = derivedSegmentationImages[i].voxelManager;
|
|
11724
11744
|
const scalarData = voxelManager.getScalarData();
|
|
11725
|
-
|
|
11745
|
+
const sliceData = volumeScalarData.slice(i * scalarData.length, (i + 1) * scalarData.length);
|
|
11746
|
+
scalarData.set(sliceData);
|
|
11726
11747
|
voxelManager.setScalarData(scalarData);
|
|
11748
|
+
|
|
11749
|
+
// Check if this slice has any non-zero voxels and we haven't found one yet
|
|
11750
|
+
if (!firstSegmentedSliceImageId && sliceData.some(value => value !== 0)) {
|
|
11751
|
+
firstSegmentedSliceImageId = derivedSegmentationImages[i].referencedImageId;
|
|
11752
|
+
}
|
|
11727
11753
|
}
|
|
11754
|
+
|
|
11755
|
+
// assign the first non zero voxel image id to the segDisplaySet
|
|
11756
|
+
segDisplaySet.firstSegmentedSliceImageId = firstSegmentedSliceImageId;
|
|
11728
11757
|
this._broadcastEvent(SegmentationService_EVENTS.SEGMENTATION_LOADING_COMPLETE, {
|
|
11729
11758
|
segmentationId,
|
|
11730
11759
|
segDisplaySet
|
|
@@ -11772,7 +11801,12 @@ class SegmentationService extends src/* PubSubService */.Rc {
|
|
|
11772
11801
|
throw new Error('To create the contours from RT displaySet, the displaySet should be loaded first. You can perform rtDisplaySet.load() before calling this method.');
|
|
11773
11802
|
}
|
|
11774
11803
|
const rtDisplaySetUID = rtDisplaySet.displaySetInstanceUID;
|
|
11775
|
-
|
|
11804
|
+
const referencedDisplaySet = this.servicesManager.services.displaySetService.getDisplaySetByUID(rtDisplaySet.referencedDisplaySetInstanceUID);
|
|
11805
|
+
const referencedImageIdsWithGeometry = Array.from(structureSet.ReferencedSOPInstanceUIDsSet);
|
|
11806
|
+
const referencedImageIds = referencedDisplaySet.instances.map(image => image.imageId);
|
|
11807
|
+
// find the first image id that contains a referenced SOP instance UID
|
|
11808
|
+
const firstSegmentedSliceImageId = referencedImageIds.find(imageId => referencedImageIdsWithGeometry.some(referencedId => imageId.includes(referencedId)));
|
|
11809
|
+
rtDisplaySet.firstSegmentedSliceImageId = firstSegmentedSliceImageId;
|
|
11776
11810
|
// Map ROI contours to RT Struct Data
|
|
11777
11811
|
const allRTStructData = mapROIContoursToRTStructData(structureSet, rtDisplaySetUID);
|
|
11778
11812
|
|
|
@@ -13305,6 +13339,20 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
13305
13339
|
* individual resize observers
|
|
13306
13340
|
*/
|
|
13307
13341
|
resize(isGridResize = false) {
|
|
13342
|
+
// https://stackoverflow.com/a/26279685
|
|
13343
|
+
// This resize() call, among other things, rerenders the viewports. But when the entire viewer is
|
|
13344
|
+
// display: none'd, it makes the size of all hidden elements 0, including the viewport canvas and its containers.
|
|
13345
|
+
// Even if the viewer is later displayed again, trying to render when the size is 0 permanently "breaks" the
|
|
13346
|
+
// viewport, making it fully black even after the size is normal again. So just ignore resize events when hidden:
|
|
13347
|
+
const areViewportsHidden = Array.from(this.viewportsById.values()).every(viewportInfo => {
|
|
13348
|
+
const element = viewportInfo.getElement();
|
|
13349
|
+
return element.clientWidth === 0 && element.clientHeight === 0;
|
|
13350
|
+
});
|
|
13351
|
+
if (areViewportsHidden) {
|
|
13352
|
+
console.warn('Ignoring resize when viewports have size 0');
|
|
13353
|
+
return;
|
|
13354
|
+
}
|
|
13355
|
+
|
|
13308
13356
|
// if there is a grid resize happening, it means the viewport grid
|
|
13309
13357
|
// has been manipulated (e.g., panels closed, added, etc.) and we need
|
|
13310
13358
|
// to resize all viewports, so we will add a timeout here to make sure
|
|
@@ -13727,9 +13775,6 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
13727
13775
|
// is being used to navigate to the initial view position for measurement
|
|
13728
13776
|
// navigation and other navigation forcing specific views.
|
|
13729
13777
|
let initialImageIndexToUse = presentations?.positionPresentation?.initialImageIndex ?? initialImageIndex;
|
|
13730
|
-
if (initialImageIndexToUse === undefined || initialImageIndexToUse === null) {
|
|
13731
|
-
initialImageIndexToUse = this._getInitialImageIndexForViewport(viewportInfo, imageIds) || 0;
|
|
13732
|
-
}
|
|
13733
13778
|
const {
|
|
13734
13779
|
rotation,
|
|
13735
13780
|
flipHorizontal,
|
|
@@ -13767,13 +13812,23 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
13767
13812
|
dist_esm.utilities.stackContextPrefetch.enable(element);
|
|
13768
13813
|
});
|
|
13769
13814
|
let imageIdsToSet = imageIds;
|
|
13770
|
-
const
|
|
13771
|
-
imageIdsToSet =
|
|
13815
|
+
const overlayProcessingResult = this._processExtraDisplaySetsForViewport(viewport);
|
|
13816
|
+
imageIdsToSet = overlayProcessingResult?.imageIds ?? imageIdsToSet;
|
|
13817
|
+
const referencedImageId = presentations?.positionPresentation?.viewReference?.referencedImageId;
|
|
13818
|
+
if (referencedImageId) {
|
|
13819
|
+
initialImageIndexToUse = imageIdsToSet.indexOf(referencedImageId);
|
|
13820
|
+
}
|
|
13821
|
+
if (initialImageIndexToUse === undefined || initialImageIndexToUse === null) {
|
|
13822
|
+
initialImageIndexToUse = this._getInitialImageIndexForViewport(viewportInfo, imageIds) || 0;
|
|
13823
|
+
}
|
|
13772
13824
|
return viewport.setStack(imageIdsToSet, initialImageIndexToUse).then(() => {
|
|
13773
13825
|
viewport.setProperties({
|
|
13774
13826
|
...properties
|
|
13775
13827
|
});
|
|
13776
13828
|
this.setPresentations(viewport.id, presentations, viewportInfo);
|
|
13829
|
+
if (overlayProcessingResult?.addOverlayFn) {
|
|
13830
|
+
overlayProcessingResult.addOverlayFn();
|
|
13831
|
+
}
|
|
13777
13832
|
if (displayArea) {
|
|
13778
13833
|
viewport.setDisplayArea(displayArea);
|
|
13779
13834
|
}
|
|
@@ -13955,8 +14010,13 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
13955
14010
|
});
|
|
13956
14011
|
|
|
13957
14012
|
// For SEG and RT viewports
|
|
13958
|
-
|
|
14013
|
+
const {
|
|
14014
|
+
addOverlayFn
|
|
14015
|
+
} = this._processExtraDisplaySetsForViewport(viewport) || {};
|
|
13959
14016
|
await viewport.setVolumes(volumeInputArray);
|
|
14017
|
+
if (addOverlayFn) {
|
|
14018
|
+
addOverlayFn();
|
|
14019
|
+
}
|
|
13960
14020
|
volumesProperties.forEach(({
|
|
13961
14021
|
properties,
|
|
13962
14022
|
volumeId
|
|
@@ -13995,9 +14055,9 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
13995
14055
|
}
|
|
13996
14056
|
const referenceDisplaySet = displaySetService.getDisplaySetByUID(segOrRTSOverlayDisplaySet.referencedDisplaySetInstanceUID);
|
|
13997
14057
|
const imageIds = referenceDisplaySet.images.map(image => image.imageId);
|
|
13998
|
-
this.addOverlayRepresentationForDisplaySet(segOrRTSOverlayDisplaySet, viewport);
|
|
13999
14058
|
return {
|
|
14000
|
-
imageIds
|
|
14059
|
+
imageIds,
|
|
14060
|
+
addOverlayFn: () => this.addOverlayRepresentationForDisplaySet(segOrRTSOverlayDisplaySet, viewport)
|
|
14001
14061
|
};
|
|
14002
14062
|
}
|
|
14003
14063
|
addOverlayRepresentationForDisplaySet(displaySet, viewport) {
|
|
@@ -14140,6 +14200,11 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14140
14200
|
id: viewportId
|
|
14141
14201
|
}) => {
|
|
14142
14202
|
const presentation = this._getPositionPresentation(viewportId);
|
|
14203
|
+
|
|
14204
|
+
// During a resize, the slice index should remain unchanged. This is a temporary fix for
|
|
14205
|
+
// a larger issue regarding the definition of slice index with slab thickness.
|
|
14206
|
+
// We need to revisit this to make it more robust and understandable.
|
|
14207
|
+
delete presentation.viewReference.sliceIndex;
|
|
14143
14208
|
this.beforeResizePositionPresentations.set(viewportId, presentation);
|
|
14144
14209
|
});
|
|
14145
14210
|
|
|
@@ -14148,7 +14213,7 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14148
14213
|
renderingEngine.resize(isImmediate);
|
|
14149
14214
|
renderingEngine.render();
|
|
14150
14215
|
|
|
14151
|
-
// Reset the camera for viewports
|
|
14216
|
+
// Reset the camera for all viewports using position presentation to maintain relative size/position
|
|
14152
14217
|
// which means only those viewports that have a zoom level of 1.
|
|
14153
14218
|
this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => {
|
|
14154
14219
|
this.setPresentations(viewportId, {
|
|
@@ -14905,10 +14970,6 @@ function getDicomMicroscopySopClassHandler({
|
|
|
14905
14970
|
function getSopClassHandlerModule(params) {
|
|
14906
14971
|
return [getDicomMicroscopySopClassHandler(params)];
|
|
14907
14972
|
}
|
|
14908
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
|
|
14909
|
-
var esm_utilities = __webpack_require__(49035);
|
|
14910
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/stores/useToggleOneUpViewportGridStore.ts
|
|
14911
|
-
var useToggleOneUpViewportGridStore = __webpack_require__(73325);
|
|
14912
14973
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
14913
14974
|
var lodash_debounce = __webpack_require__(62051);
|
|
14914
14975
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
@@ -15378,6 +15439,12 @@ function PanelSegmentation({
|
|
|
15378
15439
|
const referencedImageIds = Labelmap.referencedImageIds;
|
|
15379
15440
|
const firstImageId = referencedImageIds[0];
|
|
15380
15441
|
const instance = esm.metaData.get('instance', firstImageId);
|
|
15442
|
+
if (!instance) {
|
|
15443
|
+
return {
|
|
15444
|
+
segmentationId,
|
|
15445
|
+
isExportable: false
|
|
15446
|
+
};
|
|
15447
|
+
}
|
|
15381
15448
|
const {
|
|
15382
15449
|
SOPInstanceUID,
|
|
15383
15450
|
SeriesInstanceUID
|
|
@@ -16738,7 +16805,7 @@ const cornerstoneExtension = {
|
|
|
16738
16805
|
useLutPresentationStore/* useLutPresentationStore */.I.getState().clearLutPresentationStore();
|
|
16739
16806
|
usePositionPresentationStore/* usePositionPresentationStore */.q.getState().clearPositionPresentationStore();
|
|
16740
16807
|
useSynchronizersStore/* useSynchronizersStore */.U.getState().clearSynchronizersStore();
|
|
16741
|
-
useToggleOneUpViewportGridStore
|
|
16808
|
+
default_src.useToggleOneUpViewportGridStore.getState().clearToggleOneUpViewportGridStore();
|
|
16742
16809
|
useSegmentationPresentationStore/* useSegmentationPresentationStore */.v.getState().clearSegmentationPresentationStore();
|
|
16743
16810
|
segmentationService.removeAllSegmentations();
|
|
16744
16811
|
},
|
|
@@ -16841,7 +16908,7 @@ const cornerstoneExtension = {
|
|
|
16841
16908
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
16842
16909
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
16843
16910
|
/* harmony export */ });
|
|
16844
|
-
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
16911
|
+
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80818);
|
|
16845
16912
|
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35647);
|
|
16846
16913
|
var _ViewportActionCornersService;
|
|
16847
16914
|
|
|
@@ -17114,7 +17181,7 @@ const useLutPresentationStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .creat
|
|
|
17114
17181
|
|
|
17115
17182
|
|
|
17116
17183
|
const PRESENTATION_TYPE_ID = 'positionPresentationId';
|
|
17117
|
-
const DEBUG_STORE =
|
|
17184
|
+
const DEBUG_STORE = false;
|
|
17118
17185
|
|
|
17119
17186
|
/**
|
|
17120
17187
|
* Represents the state and actions for managing position presentations.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(self["webpackChunk"] = self["webpackChunk"] || []).push([[1266,
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[1266,4182],{
|
|
3
3
|
|
|
4
4
|
/***/ 35589:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -15,8 +15,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
15
15
|
toolbarButtons: () => (/* reexport */ src_toolbarButtons)
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
19
|
-
var src = __webpack_require__(
|
|
18
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
19
|
+
var src = __webpack_require__(80818);
|
|
20
20
|
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
21
21
|
var i18next = __webpack_require__(40680);
|
|
22
22
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
|
|
@@ -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',
|
|
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../ui/src/index.js + 690 modules
|
|
16
16
|
var src = __webpack_require__(35647);
|
|
17
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
18
|
-
var core_src = __webpack_require__(
|
|
17
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
18
|
+
var core_src = __webpack_require__(80818);
|
|
19
19
|
;// CONCATENATED MODULE: ../../../modes/basic-dev-mode/src/toolbarButtons.js
|
|
20
20
|
|
|
21
21
|
|