@ohif/app 3.13.0-beta.122 → 3.13.0-beta.124
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/{1206.bundle.e04ca1efe6f987ba.js → 1206.bundle.7a21a6529153cd92.js} +2 -2
- package/dist/{1602.bundle.cd2e106bd1438fbb.js → 1602.bundle.24b9864929b729f6.js} +6 -6
- package/dist/{2493.bundle.f3b6a64d158365da.js → 2493.bundle.d16ea70ddcc1fb6b.js} +68 -12
- package/dist/{7231.bundle.1063d727ad99108a.js → 2623.bundle.996244ad1ee6448d.js} +144 -35
- package/dist/{2779.bundle.5dc197604cc6ef42.js → 2779.bundle.380bb40d48e1cf2a.js} +2 -2
- package/dist/{3330.bundle.b1297ef8c94e5440.js → 3330.bundle.1b8bc8f7c4071336.js} +46 -2
- package/dist/{3500.bundle.153e80b55f1dedb4.js → 3500.bundle.d7e34e8f22c86274.js} +1 -1
- package/dist/{3568.bundle.45dc681ef6890166.js → 3568.bundle.9aa4b4b27294ff6d.js} +41 -10
- package/dist/{3760.bundle.040c5960d2324a23.js → 3760.bundle.b45b0dae2238e5ca.js} +8 -8
- package/dist/{5189.bundle.ea191ea99047fd6f.js → 5189.bundle.84584748945c30ec.js} +4 -4
- package/dist/{5448.bundle.5686ebb99c379f64.js → 5448.bundle.2f95037652efed71.js} +2 -2
- package/dist/{5910.bundle.0f19608f3e76859b.js → 5910.bundle.c7e18d6fa8052576.js} +4 -4
- package/dist/{6495.bundle.a6764fdb8c0c252f.js → 6495.bundle.5ad5a10d2c9dcba1.js} +48 -3
- package/dist/{7248.bundle.ffc730f7131663b5.js → 7248.bundle.ff49139ac01030d9.js} +28 -10
- package/dist/{7499.bundle.cf7e3863a046ea45.js → 7499.bundle.85bfb09dd02d7520.js} +76 -31
- package/dist/{781.bundle.f8fe016b3c6f7247.js → 781.bundle.bf60b1836cf34a09.js} +102 -47
- package/dist/{8423.bundle.edee0022549d0a69.js → 8423.bundle.f5f24c52db0bbeeb.js} +2 -2
- package/dist/{5642.bundle.98e17a4413db6ef1.js → 8478.bundle.163d258bf75a0aed.js} +32847 -7919
- package/dist/{8668.bundle.0e47f7231aa07da2.js → 8668.bundle.e254939790f776e2.js} +44 -0
- package/dist/{8832.bundle.d5469e59f146f5ab.js → 8832.bundle.d76327dbbeb700f3.js} +5 -5
- package/dist/{2343.bundle.2f0d1dcc2c98c6ef.js → 89.bundle.631d496d9c26208d.js} +16345 -1020
- package/dist/{899.bundle.50c16f860acbc848.js → 899.bundle.ba3210c3df4f2185.js} +4 -4
- package/dist/{9068.bundle.95f1e638ef694ea9.js → 9068.bundle.a54a83cf310fed3f.js} +4 -4
- package/dist/{9415.bundle.4631e14c554852b8.js → 9415.bundle.d6212220bebc52d1.js} +2 -2
- package/dist/app-config.js +16 -0
- package/dist/{app.bundle.41cbf372286f0f33.js → app.bundle.835e751aa267d5b6.js} +184416 -184180
- package/dist/app.bundle.css +1 -1
- package/dist/{compute.bundle.9cc3697d07fbb082.js → compute.bundle.690de60973ccebc4.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.a526954fc2fed311.js → polySeg.bundle.369c7996934b22e3.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +6 -6
- package/dist/8432.bundle.7d5ebe1ed1610bc3.js +0 -24931
- package/dist/8595.css +0 -2
- package/dist/9402.bundle.d6f2b78374472970.js +0 -13041
- /package/dist/{100.bundle.0d3d69d5df0349ed.js → 100.bundle.cdcc5d2b1941765c.js} +0 -0
- /package/dist/{1180.bundle.7e332fa34109403e.js → 1180.bundle.54ba435527d0df45.js} +0 -0
- /package/dist/{1483.bundle.2b4770a9bcbc979a.js → 1483.bundle.2faed979a01ea8d1.js} +0 -0
- /package/dist/{7231.css → 2623.css} +0 -0
- /package/dist/{4556.bundle.51ef7351e956466c.js → 4556.bundle.2ed6014424141e16.js} +0 -0
- /package/dist/{4683.bundle.21c60514c9d785fa.js → 4683.bundle.50ee653f21f90988.js} +0 -0
- /package/dist/{5696.bundle.e69c9f340e70968a.js → 5696.bundle.d69220aab3ba0b86.js} +0 -0
- /package/dist/{6749.bundle.454ea7ca21d3c0a8.js → 6749.bundle.879ed481e4259338.js} +0 -0
- /package/dist/{8492.bundle.b065c8a96d49950a.js → 8492.bundle.7f8ae6ac4719730e.js} +0 -0
- /package/dist/{9116.bundle.8f9fc67d1fb2ac81.js → 9116.bundle.b963a7a271c7ec9b.js} +0 -0
- /package/dist/{9290.bundle.52e56719bbca68ff.js → 9290.bundle.96adb43569d5319b.js} +0 -0
- /package/dist/{9383.bundle.ec44c452ccc23e93.js → 9383.bundle.885123e100c1b477.js} +0 -0
- /package/dist/{9437.bundle.72f5fd25db7e85f2.js → 9437.bundle.bcae5965a3a33b5e.js} +0 -0
- /package/dist/{9560.bundle.517f0ef7ee3a20bf.js → 9560.bundle.4c9bc48e09c0bae1.js} +0 -0
|
@@ -3174,6 +3174,8 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3174
3174
|
}
|
|
3175
3175
|
viewport.removeActors([uid]);
|
|
3176
3176
|
const oldMapper = actor.getMapper();
|
|
3177
|
+
const sharedImageData = oldMapper.getInputData();
|
|
3178
|
+
const originalScalars = sharedImageData.getPointData().getScalars() ?? null;
|
|
3177
3179
|
const mapper = (0,esm.convertMapperToNotSharedMapper)(oldMapper);
|
|
3178
3180
|
actor.setMapper(mapper);
|
|
3179
3181
|
mapper.setBlendMode(esm.Enums.BlendModes.LABELMAP_EDGE_PROJECTION_BLEND);
|
|
@@ -3190,9 +3192,16 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3190
3192
|
.getProperty()
|
|
3191
3193
|
.getIndependentComponents();
|
|
3192
3194
|
actor.getProperty().setIndependentComponents(true);
|
|
3195
|
+
const oldUseLabelOutline = actor.getProperty().getUseLabelOutline();
|
|
3196
|
+
const oldLabelOutlineOpacity = actor.getProperty().getLabelOutlineOpacity();
|
|
3197
|
+
const oldLabelOutlineThickness = actor
|
|
3198
|
+
.getProperty()
|
|
3199
|
+
.getLabelOutlineThickness();
|
|
3200
|
+
const representationUID = volumeInputArray[0].representationUID ??
|
|
3201
|
+
`${segmentationId}-${enums.SegmentationRepresentations.Labelmap}`;
|
|
3193
3202
|
viewport.addActor({
|
|
3194
3203
|
...defaultActor,
|
|
3195
|
-
representationUID
|
|
3204
|
+
representationUID,
|
|
3196
3205
|
});
|
|
3197
3206
|
internalCache.set(uid, {
|
|
3198
3207
|
added: true,
|
|
@@ -3204,7 +3213,7 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3204
3213
|
preLoad: load,
|
|
3205
3214
|
});
|
|
3206
3215
|
function onSegmentationDataModified(evt) {
|
|
3207
|
-
const { segmentationId } = evt.detail;
|
|
3216
|
+
const { segmentationId, modifiedSlicesToUse } = evt.detail;
|
|
3208
3217
|
const { representationData } = (0,getSegmentation/* .getSegmentation */.T)(segmentationId);
|
|
3209
3218
|
const { volumeId: segVolumeId } = representationData.Labelmap;
|
|
3210
3219
|
if (segVolumeId !== segImageVolume.volumeId) {
|
|
@@ -3214,19 +3223,30 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3214
3223
|
const segVoxelManager = segmentationVolume.voxelManager;
|
|
3215
3224
|
const imageData = mapper.getInputData();
|
|
3216
3225
|
const array = imageData.getPointData().getArray(0);
|
|
3217
|
-
const
|
|
3226
|
+
const combinedData = array.getData();
|
|
3218
3227
|
const newComp = 2;
|
|
3219
3228
|
const dims = segImageData.getDimensions();
|
|
3220
|
-
const
|
|
3229
|
+
const sliceSize = dims[0] * dims[1];
|
|
3230
|
+
const slices = modifiedSlicesToUse?.length
|
|
3231
|
+
? modifiedSlicesToUse
|
|
3232
|
+
: Array.from({ length: dims[2] }, (_, i) => i);
|
|
3221
3233
|
for (const z of slices) {
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3234
|
+
const sliceStart = z * sliceSize;
|
|
3235
|
+
const sliceImage = esm.cache.getImage(segmentationVolume.imageIds?.[z]);
|
|
3236
|
+
const sliceData = sliceImage?.voxelManager?.getScalarData?.();
|
|
3237
|
+
if (sliceData?.length === sliceSize) {
|
|
3238
|
+
for (let i = 0; i < sliceSize; ++i) {
|
|
3239
|
+
combinedData[(sliceStart + i) * newComp + 1] = sliceData[i];
|
|
3240
|
+
}
|
|
3241
|
+
}
|
|
3242
|
+
else {
|
|
3243
|
+
for (let i = 0; i < sliceSize; ++i) {
|
|
3244
|
+
const iTuple = sliceStart + i;
|
|
3245
|
+
combinedData[iTuple * newComp + 1] = segVoxelManager.getAtIndex(iTuple);
|
|
3226
3246
|
}
|
|
3227
3247
|
}
|
|
3228
3248
|
}
|
|
3229
|
-
array.setData(
|
|
3249
|
+
array.setData(combinedData);
|
|
3230
3250
|
imageData.modified();
|
|
3231
3251
|
viewport.render();
|
|
3232
3252
|
}
|
|
@@ -3235,7 +3255,7 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3235
3255
|
if (evt.detail.viewportId !== viewport.id) {
|
|
3236
3256
|
return;
|
|
3237
3257
|
}
|
|
3238
|
-
esm.eventTarget.
|
|
3258
|
+
esm.eventTarget.removeEventListenerDebounced(enums.Events.SEGMENTATION_DATA_MODIFIED, onSegmentationDataModified);
|
|
3239
3259
|
esm.eventTarget.removeEventListener(enums.Events.SEGMENTATION_REPRESENTATION_REMOVED, onSegmentationRepresentationRemoved);
|
|
3240
3260
|
const actorEntry = viewport.getActor(uid);
|
|
3241
3261
|
if (actorEntry) {
|
|
@@ -3246,11 +3266,22 @@ async function addVolumesAsIndependentComponents({ viewport, volumeInputs, segme
|
|
|
3246
3266
|
return;
|
|
3247
3267
|
}
|
|
3248
3268
|
actor.setMapper(oldMapper);
|
|
3269
|
+
const pointData = sharedImageData.getPointData();
|
|
3270
|
+
if (originalScalars) {
|
|
3271
|
+
pointData.setScalars(originalScalars);
|
|
3272
|
+
}
|
|
3273
|
+
else {
|
|
3274
|
+
pointData.removeArray('Pixels');
|
|
3275
|
+
}
|
|
3276
|
+
sharedImageData.modified();
|
|
3249
3277
|
actor.getProperty().setColorMixPreset(oldColorMixPreset);
|
|
3250
3278
|
actor
|
|
3251
3279
|
.getProperty()
|
|
3252
3280
|
.setForceNearestInterpolation(1, oldForceNearestInterpolation);
|
|
3253
3281
|
actor.getProperty().setIndependentComponents(oldIndependentComponents);
|
|
3282
|
+
actor.getProperty().setUseLabelOutline(oldUseLabelOutline);
|
|
3283
|
+
actor.getProperty().setLabelOutlineOpacity(oldLabelOutlineOpacity);
|
|
3284
|
+
actor.getProperty().setLabelOutlineThickness(oldLabelOutlineThickness);
|
|
3254
3285
|
viewport.addActor({
|
|
3255
3286
|
...defaultActor,
|
|
3256
3287
|
});
|
|
@@ -111,8 +111,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
111
111
|
var es = __webpack_require__(29084);
|
|
112
112
|
// EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 8 modules
|
|
113
113
|
var react_es = __webpack_require__(12269);
|
|
114
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
115
|
-
var src = __webpack_require__(
|
|
114
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3684 modules
|
|
115
|
+
var src = __webpack_require__(42255);
|
|
116
116
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
|
|
117
117
|
|
|
118
118
|
const RESPONSE = {
|
|
@@ -1087,8 +1087,8 @@ var src = __webpack_require__(50679);
|
|
|
1087
1087
|
var thumbnailNoImageModalities = __webpack_require__(88555);
|
|
1088
1088
|
// EXTERNAL MODULE: ../../../extensions/default/src/Panels/StudyBrowser/PanelStudyBrowser.tsx + 3 modules
|
|
1089
1089
|
var PanelStudyBrowser = __webpack_require__(36341);
|
|
1090
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
1091
|
-
var ui_next_src = __webpack_require__(
|
|
1090
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3684 modules
|
|
1091
|
+
var ui_next_src = __webpack_require__(42255);
|
|
1092
1092
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/untrackSeriesModal.tsx
|
|
1093
1093
|
|
|
1094
1094
|
|
|
@@ -1267,8 +1267,8 @@ function getImageSrcFromImageId(cornerstone, imageId) {
|
|
|
1267
1267
|
});
|
|
1268
1268
|
}
|
|
1269
1269
|
/* export default */ const PanelStudyBrowserTracking_getImageSrcFromImageId = (getImageSrcFromImageId);
|
|
1270
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
1271
|
-
var default_src = __webpack_require__(
|
|
1270
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 148 modules
|
|
1271
|
+
var default_src = __webpack_require__(50904);
|
|
1272
1272
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/index.tsx
|
|
1273
1273
|
|
|
1274
1274
|
//
|
|
@@ -1329,8 +1329,8 @@ function _createGetImageSrcFromImageIdFn(extensionManager) {
|
|
|
1329
1329
|
}
|
|
1330
1330
|
}
|
|
1331
1331
|
/* export default */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
|
|
1332
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
1333
|
-
var cornerstone_src = __webpack_require__(
|
|
1332
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 211 modules
|
|
1333
|
+
var cornerstone_src = __webpack_require__(75609);
|
|
1334
1334
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx
|
|
1335
1335
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
1336
1336
|
|
|
@@ -11,8 +11,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
11
11
|
|
|
12
12
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
13
13
|
var react = __webpack_require__(86326);
|
|
14
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
15
|
-
var src = __webpack_require__(
|
|
14
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 148 modules
|
|
15
|
+
var src = __webpack_require__(50904);
|
|
16
16
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
|
|
17
17
|
// extracted by css-extract-rspack-plugin
|
|
18
18
|
|
|
@@ -46,8 +46,8 @@ const listComponentGenerator = props => {
|
|
|
46
46
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/components/ViewportOverlay/ViewportOverlay.css
|
|
47
47
|
// extracted by css-extract-rspack-plugin
|
|
48
48
|
|
|
49
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
50
|
-
var ui_next_src = __webpack_require__(
|
|
49
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3684 modules
|
|
50
|
+
var ui_next_src = __webpack_require__(42255);
|
|
51
51
|
// EXTERNAL MODULE: ../../../node_modules/moment/moment.js
|
|
52
52
|
var moment = __webpack_require__(14867);
|
|
53
53
|
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
@@ -8,8 +8,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
8
8
|
/* import */ var prop_types__rspack_import_0 = __webpack_require__(97598);
|
|
9
9
|
/* import */ var prop_types__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(prop_types__rspack_import_0);
|
|
10
10
|
/* import */ var react__rspack_import_1 = __webpack_require__(86326);
|
|
11
|
-
/* import */ var _ohif_ui_next__rspack_import_2 = __webpack_require__(
|
|
12
|
-
/* import */ var _ohif_extension_cornerstone__rspack_import_3 = __webpack_require__(
|
|
11
|
+
/* import */ var _ohif_ui_next__rspack_import_2 = __webpack_require__(42255);
|
|
12
|
+
/* import */ var _ohif_extension_cornerstone__rspack_import_3 = __webpack_require__(75609);
|
|
13
13
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
14
|
|
|
15
15
|
|
|
@@ -14,10 +14,10 @@ var react = __webpack_require__(86326);
|
|
|
14
14
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
15
15
|
var prop_types = __webpack_require__(97598);
|
|
16
16
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
17
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
18
|
-
var src = __webpack_require__(
|
|
19
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
20
|
-
var cornerstone_src = __webpack_require__(
|
|
17
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3684 modules
|
|
18
|
+
var src = __webpack_require__(42255);
|
|
19
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 211 modules
|
|
20
|
+
var cornerstone_src = __webpack_require__(75609);
|
|
21
21
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
22
22
|
|
|
23
23
|
function promptHydrateRT({
|
|
@@ -4333,7 +4333,7 @@ const onSegmentationDataModified = function (evt) {
|
|
|
4333
4333
|
if (representationData.Labelmap) {
|
|
4334
4334
|
(0,_labelmap_onLabelmapSegmentationDataModified_js__rspack_import_1/* ["default"] */.A)(evt);
|
|
4335
4335
|
}
|
|
4336
|
-
(0,_stateManagement_segmentation_SegmentationRenderingEngine_js__rspack_import_0/* .
|
|
4336
|
+
(0,_stateManagement_segmentation_SegmentationRenderingEngine_js__rspack_import_0/* .triggerSegmentationRenderForModified */.X8)(segmentationId);
|
|
4337
4337
|
};
|
|
4338
4338
|
/* export default */ const __rspack_default_export = (onSegmentationDataModified);
|
|
4339
4339
|
|
|
@@ -5060,7 +5060,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
5060
5060
|
store: () => (/* reexport module object */ _store_index_js__rspack_import_1),
|
|
5061
5061
|
synchronizers: () => (/* reexport module object */ _synchronizers_index_js__rspack_import_5),
|
|
5062
5062
|
utilities: () => (/* reexport module object */ _utilities_index_js__rspack_import_7),
|
|
5063
|
-
version: () => (/* reexport safe */ (/* inlined export _version_js__rspack_import_4 */"5.4.
|
|
5063
|
+
version: () => (/* reexport safe */ (/* inlined export _version_js__rspack_import_4 */"5.4.17"))
|
|
5064
5064
|
});
|
|
5065
5065
|
/* import */ var _init_js__rspack_import_0 = __webpack_require__(70210);
|
|
5066
5066
|
/* import */ var _store_index_js__rspack_import_1 = __webpack_require__(37872);
|
|
@@ -6291,6 +6291,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
6291
6291
|
},
|
|
6292
6292
|
88330(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6293
6293
|
__webpack_require__.d(__webpack_exports__, {
|
|
6294
|
+
X8: () => (triggerSegmentationRenderForModified),
|
|
6294
6295
|
fy: () => (triggerSegmentationRenderBySegmentationId),
|
|
6295
6296
|
h6: () => (triggerSegmentationRender)
|
|
6296
6297
|
});
|
|
@@ -6475,6 +6476,50 @@ function triggerSegmentationRender(viewportId) {
|
|
|
6475
6476
|
function triggerSegmentationRenderBySegmentationId(segmentationId) {
|
|
6476
6477
|
segmentationRenderingEngine.renderSegmentation(segmentationId);
|
|
6477
6478
|
}
|
|
6479
|
+
const DEFERRED_SEGMENTATION_RENDER_DELAY_MS = 240;
|
|
6480
|
+
const deferredSegmentationRenderTimers = new Map();
|
|
6481
|
+
function isProjectionHeavySegmentationViewport(viewport) {
|
|
6482
|
+
const blendMode = viewport.getBlendMode?.();
|
|
6483
|
+
if (blendMode === _cornerstonejs_core__rspack_import_0.Enums.BlendModes.LABELMAP_EDGE_PROJECTION_BLEND) {
|
|
6484
|
+
return true;
|
|
6485
|
+
}
|
|
6486
|
+
const planarViewport = viewport;
|
|
6487
|
+
if (typeof planarViewport.getDisplaySetPresentation !== 'function') {
|
|
6488
|
+
return false;
|
|
6489
|
+
}
|
|
6490
|
+
const dataIds = [];
|
|
6491
|
+
const sourceDataId = planarViewport.getSourceDataId?.();
|
|
6492
|
+
if (sourceDataId) {
|
|
6493
|
+
dataIds.push(sourceDataId);
|
|
6494
|
+
}
|
|
6495
|
+
planarViewport.getActors?.().forEach((actorEntry) => {
|
|
6496
|
+
if (actorEntry.representationUID) {
|
|
6497
|
+
dataIds.push(String(actorEntry.representationUID));
|
|
6498
|
+
}
|
|
6499
|
+
});
|
|
6500
|
+
return dataIds.some((dataId) => (planarViewport.getDisplaySetPresentation(dataId)?.slabThickness ?? 0) > 0);
|
|
6501
|
+
}
|
|
6502
|
+
function triggerSegmentationRenderForModified(segmentationId) {
|
|
6503
|
+
const viewportIds = segmentationRenderingEngine._getViewportIdsForSegmentation(segmentationId);
|
|
6504
|
+
viewportIds.forEach((viewportId) => {
|
|
6505
|
+
const { viewport } = (0,_cornerstonejs_core__rspack_import_0.getEnabledElementByViewportId)(viewportId) || {};
|
|
6506
|
+
if (!viewport) {
|
|
6507
|
+
return;
|
|
6508
|
+
}
|
|
6509
|
+
if (!isProjectionHeavySegmentationViewport(viewport)) {
|
|
6510
|
+
segmentationRenderingEngine.renderSegmentationsForViewport(viewportId);
|
|
6511
|
+
return;
|
|
6512
|
+
}
|
|
6513
|
+
const existingTimer = deferredSegmentationRenderTimers.get(viewportId);
|
|
6514
|
+
if (existingTimer !== undefined) {
|
|
6515
|
+
clearTimeout(existingTimer);
|
|
6516
|
+
}
|
|
6517
|
+
deferredSegmentationRenderTimers.set(viewportId, setTimeout(() => {
|
|
6518
|
+
deferredSegmentationRenderTimers.delete(viewportId);
|
|
6519
|
+
segmentationRenderingEngine.renderSegmentationsForViewport(viewportId);
|
|
6520
|
+
}, DEFERRED_SEGMENTATION_RENDER_DELAY_MS));
|
|
6521
|
+
});
|
|
6522
|
+
}
|
|
6478
6523
|
const segmentationRenderingEngine = new SegmentationRenderingEngine();
|
|
6479
6524
|
|
|
6480
6525
|
|
|
@@ -45750,7 +45795,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
45750
45795
|
|
|
45751
45796
|
},
|
|
45752
45797
|
80274() {
|
|
45753
|
-
const version = '5.4.
|
|
45798
|
+
const version = '5.4.17';
|
|
45754
45799
|
|
|
45755
45800
|
|
|
45756
45801
|
},
|
|
@@ -65,8 +65,8 @@ var react = __webpack_require__(86326);
|
|
|
65
65
|
var src = __webpack_require__(50679);
|
|
66
66
|
// EXTERNAL MODULE: ../../i18n/src/index.js + 300 modules
|
|
67
67
|
var i18n_src = __webpack_require__(90119);
|
|
68
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
69
|
-
var cornerstone_src = __webpack_require__(
|
|
68
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 211 modules
|
|
69
|
+
var cornerstone_src = __webpack_require__(75609);
|
|
70
70
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 83 modules
|
|
71
71
|
var esm = __webpack_require__(86186);
|
|
72
72
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
@@ -1452,12 +1452,14 @@ function hydrateStructuredReport({
|
|
|
1452
1452
|
// For 3d annotations there are no image IDs,
|
|
1453
1453
|
// so we need to find the display sets by frame of reference to get the SeriesInstanceUIDs
|
|
1454
1454
|
const frameOfReferenceUIDs = getFrameOfReferenceUIDs(hydratableMeasurementsInSR, sopInstanceUIDToImageId);
|
|
1455
|
+
const displaySetsByFrameOfReferenceUID = new Map();
|
|
1455
1456
|
for (const FrameOfReferenceUID of frameOfReferenceUIDs) {
|
|
1456
1457
|
const displaySetsFOR = displaySetService.getDisplaySetsBy(ds => ds.FrameOfReferenceUID === FrameOfReferenceUID && !ds.isDerivedDisplaySet);
|
|
1457
|
-
const ds =
|
|
1458
|
+
const ds = getReferencedDisplaySet(displaySet, displaySetsFOR, FrameOfReferenceUID, displaySetService);
|
|
1458
1459
|
if (!ds) {
|
|
1459
1460
|
continue;
|
|
1460
1461
|
}
|
|
1462
|
+
displaySetsByFrameOfReferenceUID.set(FrameOfReferenceUID, ds);
|
|
1461
1463
|
if (!SeriesInstanceUIDs.includes(ds.SeriesInstanceUID)) {
|
|
1462
1464
|
SeriesInstanceUIDs.push(ds.SeriesInstanceUID);
|
|
1463
1465
|
}
|
|
@@ -1480,7 +1482,7 @@ function hydrateStructuredReport({
|
|
|
1480
1482
|
const frameNumber = toolData.annotation.data && toolData.annotation.data.frameNumber || 1;
|
|
1481
1483
|
const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
|
|
1482
1484
|
if (!imageId) {
|
|
1483
|
-
return getReferenceData3D(toolData, servicesManager);
|
|
1485
|
+
return getReferenceData3D(toolData, servicesManager, displaySetsByFrameOfReferenceUID);
|
|
1484
1486
|
}
|
|
1485
1487
|
const instance = core_dist_esm.metaData.get('instance', imageId);
|
|
1486
1488
|
const {
|
|
@@ -1602,21 +1604,37 @@ function chooseDisplaySet(displaySets, reference) {
|
|
|
1602
1604
|
console.warn('No display set found for', reference);
|
|
1603
1605
|
return;
|
|
1604
1606
|
}
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
+
const sortedDisplaySets = src/* ["default"].utils.sortDisplaySetsCopy */.Ay.utils.sortDisplaySetsCopy(displaySets);
|
|
1608
|
+
if (sortedDisplaySets.length === 1) {
|
|
1609
|
+
return sortedDisplaySets[0];
|
|
1607
1610
|
}
|
|
1608
|
-
const volumeDs =
|
|
1611
|
+
const volumeDs = sortedDisplaySets.find(ds => ds.isReconstructable);
|
|
1609
1612
|
if (volumeDs) {
|
|
1610
1613
|
return volumeDs;
|
|
1611
1614
|
}
|
|
1612
|
-
return
|
|
1615
|
+
return sortedDisplaySets[0];
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
/**
|
|
1619
|
+
* SCOORD3D only identifies a frame of reference, so many series can be valid
|
|
1620
|
+
* candidates. The SR loader has already selected and recorded a stable display
|
|
1621
|
+
* set for each measurement. Reuse that selection during hydration so the
|
|
1622
|
+
* viewport series and annotation volume cannot depend on display-set load order.
|
|
1623
|
+
*/
|
|
1624
|
+
function getReferencedDisplaySet(srDisplaySet, displaySets, FrameOfReferenceUID, displaySetService) {
|
|
1625
|
+
const referencedDisplaySetInstanceUID = srDisplaySet.measurements?.find(measurement => measurement.coords?.some(coord => coord.ValueType === 'SCOORD3D' && coord.ReferencedFrameOfReferenceSequence === FrameOfReferenceUID))?.displaySetInstanceUID;
|
|
1626
|
+
const referencedDisplaySet = referencedDisplaySetInstanceUID ? displaySetService.getDisplaySetByUID(referencedDisplaySetInstanceUID) : undefined;
|
|
1627
|
+
if (referencedDisplaySet?.FrameOfReferenceUID === FrameOfReferenceUID && !referencedDisplaySet.isDerivedDisplaySet) {
|
|
1628
|
+
return referencedDisplaySet;
|
|
1629
|
+
}
|
|
1630
|
+
return chooseDisplaySet(displaySets, FrameOfReferenceUID);
|
|
1613
1631
|
}
|
|
1614
1632
|
|
|
1615
1633
|
/**
|
|
1616
1634
|
* Gets the additional reference data appropriate for a 3d reference.
|
|
1617
1635
|
* This will choose a volume id, frame of reference and a plane restriction.
|
|
1618
1636
|
*/
|
|
1619
|
-
function getReferenceData3D(toolData, servicesManager) {
|
|
1637
|
+
function getReferenceData3D(toolData, servicesManager, displaySetsByFrameOfReferenceUID = new Map()) {
|
|
1620
1638
|
const {
|
|
1621
1639
|
FrameOfReferenceUID
|
|
1622
1640
|
} = toolData.annotation.metadata;
|
|
@@ -1632,7 +1650,7 @@ function getReferenceData3D(toolData, servicesManager) {
|
|
|
1632
1650
|
FrameOfReferenceUID
|
|
1633
1651
|
};
|
|
1634
1652
|
}
|
|
1635
|
-
const ds = chooseDisplaySet(displaySetsFOR, toolData.annotation);
|
|
1653
|
+
const ds = displaySetsByFrameOfReferenceUID.get(FrameOfReferenceUID) || chooseDisplaySet(displaySetsFOR, toolData.annotation);
|
|
1636
1654
|
const cameraView = chooseCameraView(ds, points);
|
|
1637
1655
|
const viewReference = {
|
|
1638
1656
|
...cameraView,
|