@ohif/app 3.10.0-beta.2 → 3.10.0-beta.20
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.52f04f41c08dc5853aed.js → 1185.bundle.f5bdc6fbf5cf6e77f1ca.js} +129 -29
- package/dist/{1266.bundle.4f06772fcf6b303d894d.js → 1266.bundle.723b1e14a8c03300ca49.js} +30 -0
- package/dist/1266.css +1 -1
- package/dist/1801.css +1 -1
- package/dist/{1927.bundle.49539e3ab5b0aad1399c.js → 1927.bundle.c55edd5a362e7d79e23d.js} +1 -1
- package/dist/{2701.bundle.8c1ff2e0faaa7d2f4716.js → 2701.bundle.caa28a0b2f7e0b79088a.js} +14 -22
- package/dist/{149.bundle.b8d177954628f4631fc0.js → 3022.bundle.51a7056ea0e39b06e095.js} +2095 -389
- package/dist/{3198.bundle.3b22ad50fb086338b85e.js → 3198.bundle.a27ad30339285ee88574.js} +2 -2
- package/dist/3198.css +1 -1
- package/dist/{3200.bundle.768571169c3d6e603324.js → 3200.bundle.eff6d0c695d962fe4b5b.js} +17 -9
- package/dist/3200.css +1 -1
- package/dist/{3677.bundle.7d9110e8c5682b56a456.js → 3677.bundle.d3c30c37d00fc58b4442.js} +876 -18
- package/dist/{3970.bundle.31942cc0c12a008e7ba0.js → 3970.bundle.216ca9d37288f34b8f0b.js} +15 -5
- package/dist/4182.css +1 -1
- package/dist/{4571.bundle.3b1691730b3c57bf4d35.js → 4571.bundle.142e8f6150bf81f1b7d2.js} +129 -107
- package/dist/5139.css +1 -1
- package/dist/{5247.bundle.17495c3d97cf29e44e73.js → 5247.bundle.affc956197b6220e3c94.js} +4 -4
- package/dist/{5252.bundle.5ec502c53a9cc877ed8d.js → 5252.bundle.9d1855f7fb56235709ec.js} +713 -280
- package/dist/{1520.bundle.83586195deb9d61702d9.js → 5630.bundle.d206792a2f04f7156442.js} +90 -70
- package/dist/{5687.bundle.2665d32af98b253b78fd.js → 5687.bundle.022f94286f70741366b3.js} +4 -4
- package/dist/{5823.bundle.cb588e5e33eea80cd49f.js → 573.bundle.d08dcb8e65e3b7729b58.js} +27 -865
- package/dist/{1436.bundle.773756cd51b69e887bac.js → 6498.bundle.02f5b640a94509a11180.js} +1057 -536
- package/dist/{717.bundle.ba680e992f721c5d8b4a.js → 717.bundle.0b47b3dba812d4554266.js} +2 -2
- package/dist/717.css +1 -1
- package/dist/{7197.bundle.c4ff7a71122131167cbb.js → 7197.bundle.580576f8db68a65a10ce.js} +4 -4
- package/dist/{5717.bundle.848e13f256818475f57f.js → 727.bundle.f93673c292647f58ee1e.js} +1833 -817
- package/dist/{7955.bundle.dd665937d280f9427909.js → 7955.bundle.70fe7524bf3c8b78cd15.js} +1 -1
- package/dist/{8228.bundle.55ac03d7165248f47d4e.js → 8228.bundle.22df751df68b512fc6fb.js} +2 -2
- package/dist/8228.css +2 -2
- package/dist/{8558.bundle.dfedfd13f3845ea7104a.js → 8558.bundle.487a5e67207aa1f91da9.js} +3 -0
- package/dist/{9551.bundle.01a1567f174986f74fcf.js → 9551.bundle.26cea86f50cb4800bdaa.js} +1 -1
- package/dist/{9611.bundle.767595c93877e5166c03.js → 9611.bundle.0feebcae79e65852d610.js} +14 -9
- package/dist/{5807.bundle.dac5ce36534a71c77723.js → 967.bundle.fee0d6c1e9e244ad5bb3.js} +1134 -1128
- package/dist/{8523.bundle.648334132159465cdc41.js → 9809.bundle.9d3afbcc67703574e298.js} +1265 -185
- package/dist/{9862.bundle.7146682e56aa66130ae6.js → 9862.bundle.6ea7e474a390b386e2b2.js} +1 -1
- package/dist/{app.bundle.b81b47f20105288797e2.js → app.bundle.64d91e75036855d4e31a.js} +9080 -8397
- package/dist/app.bundle.css +18 -18
- package/dist/{histogram-worker.bundle.f0e060cf2637a2ca94b7.js → histogram-worker.bundle.f978654858500a3080cc.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.b79ae514989e86301c71.js → polySeg.bundle.70ed683f467a47e3c92d.js} +3 -3
- package/dist/serve.json +1 -10
- package/dist/{suv-peak-worker.bundle.76dd4fdf82aaa2c3ad41.js → suv-peak-worker.bundle.8c83e6e99d48223569b6.js} +4 -4
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{1374.bundle.e5b05fd7e1295bf06867.js → 1374.bundle.afdb21e02ca5a08f8060.js} +0 -0
- /package/dist/{213.bundle.68c723cdf7de1ebb18f2.js → 213.bundle.2e20b24ab08945ba56bb.js} +0 -0
- /package/dist/{2424.bundle.acefd29e9b3948544119.js → 2424.bundle.a72e288e00a909f3930b.js} +0 -0
- /package/dist/{2825.bundle.9b280fd4de22a0b2b729.js → 2825.bundle.9fcf88214bf70b49356f.js} +0 -0
- /package/dist/{3121.bundle.d3e7092e305cf6cecdb5.js → 3121.bundle.67ff7e799683191bb324.js} +0 -0
- /package/dist/{3334.bundle.0e6ba24024018199ab66.js → 3334.bundle.e36011d0fd5fcb7e8b84.js} +0 -0
- /package/dist/{4202.bundle.5c8120ed4841da0af211.js → 4202.bundle.1311396ecdb6c0b09eb0.js} +0 -0
- /package/dist/{4834.bundle.1deb034b995ef76461a3.js → 4834.bundle.71f72158944e5afd94e8.js} +0 -0
- /package/dist/{5139.bundle.61d9101ea220a8382f2b.js → 5139.bundle.36ec15905a109af39099.js} +0 -0
- /package/dist/{5261.bundle.74682659cce85f3ae592.js → 5261.bundle.54d7af66923a3bae707d.js} +0 -0
- /package/dist/{6939.bundle.9b79da82315a25f37d96.js → 6939.bundle.5e77a634e8784085c00e.js} +0 -0
- /package/dist/{7159.bundle.9f4856182f1eda29c59d.js → 7159.bundle.4ee84ebbce84383e30d4.js} +0 -0
- /package/dist/{8008.bundle.d24be79eebc455c4512a.js → 8008.bundle.6be72115a1d79d69e7ab.js} +0 -0
- /package/dist/{8259.bundle.a91eb7639bc72f522c16.js → 8259.bundle.127e657e46bcff886565.js} +0 -0
- /package/dist/{8295.bundle.4ecb27f9e58526f12bcb.js → 8295.bundle.14cddaccdcd3a7093398.js} +0 -0
|
@@ -931,8 +931,8 @@ __webpack_require__.r(types_namespaceObject);
|
|
|
931
931
|
var react = __webpack_require__(86326);
|
|
932
932
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
933
933
|
var esm = __webpack_require__(81985);
|
|
934
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js +
|
|
935
|
-
var dist_esm = __webpack_require__(
|
|
934
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 85 modules
|
|
935
|
+
var dist_esm = __webpack_require__(69489);
|
|
936
936
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/enums.ts
|
|
937
937
|
const CORNERSTONE_3D_TOOLS_SOURCE_NAME = 'Cornerstone3DTools';
|
|
938
938
|
const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1';
|
|
@@ -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 + 43 modules
|
|
5656
|
+
var esm_utilities = __webpack_require__(25242);
|
|
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
|
}
|
|
@@ -11679,12 +11712,13 @@ class SegmentationService extends src/* PubSubService */.Rc {
|
|
|
11679
11712
|
} = segmentInfo;
|
|
11680
11713
|
colorLUT.push(rgba);
|
|
11681
11714
|
const segmentIndex = Number(SegmentNumber);
|
|
11682
|
-
const
|
|
11715
|
+
const centroid = segDisplaySet.centroids?.get(index);
|
|
11716
|
+
const imageCentroidXYZ = centroid?.image || {
|
|
11683
11717
|
x: 0,
|
|
11684
11718
|
y: 0,
|
|
11685
11719
|
z: 0
|
|
11686
11720
|
};
|
|
11687
|
-
const worldCentroidXYZ =
|
|
11721
|
+
const worldCentroidXYZ = centroid?.world || {
|
|
11688
11722
|
x: 0,
|
|
11689
11723
|
y: 0,
|
|
11690
11724
|
z: 0
|
|
@@ -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
|
|
@@ -14140,6 +14188,11 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14140
14188
|
id: viewportId
|
|
14141
14189
|
}) => {
|
|
14142
14190
|
const presentation = this._getPositionPresentation(viewportId);
|
|
14191
|
+
|
|
14192
|
+
// During a resize, the slice index should remain unchanged. This is a temporary fix for
|
|
14193
|
+
// a larger issue regarding the definition of slice index with slab thickness.
|
|
14194
|
+
// We need to revisit this to make it more robust and understandable.
|
|
14195
|
+
delete presentation.viewReference?.sliceIndex;
|
|
14143
14196
|
this.beforeResizePositionPresentations.set(viewportId, presentation);
|
|
14144
14197
|
});
|
|
14145
14198
|
|
|
@@ -14148,7 +14201,7 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
|
14148
14201
|
renderingEngine.resize(isImmediate);
|
|
14149
14202
|
renderingEngine.render();
|
|
14150
14203
|
|
|
14151
|
-
// Reset the camera for viewports
|
|
14204
|
+
// Reset the camera for all viewports using position presentation to maintain relative size/position
|
|
14152
14205
|
// which means only those viewports that have a zoom level of 1.
|
|
14153
14206
|
this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => {
|
|
14154
14207
|
this.setPresentations(viewportId, {
|
|
@@ -14905,10 +14958,6 @@ function getDicomMicroscopySopClassHandler({
|
|
|
14905
14958
|
function getSopClassHandlerModule(params) {
|
|
14906
14959
|
return [getDicomMicroscopySopClassHandler(params)];
|
|
14907
14960
|
}
|
|
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
14961
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
14913
14962
|
var lodash_debounce = __webpack_require__(62051);
|
|
14914
14963
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
@@ -15359,6 +15408,57 @@ function PanelSegmentation({
|
|
|
15359
15408
|
id: 'default.showAddSegment',
|
|
15360
15409
|
showAddSegment: true
|
|
15361
15410
|
});
|
|
15411
|
+
const CustomDropdownMenuContent = customizationService.getCustomComponent('PanelSegmentation.CustomDropdownMenuContent', ({
|
|
15412
|
+
activeSegmentation,
|
|
15413
|
+
onSegmentationAdd,
|
|
15414
|
+
onSegmentationRemoveFromViewport,
|
|
15415
|
+
onSegmentationEdit,
|
|
15416
|
+
onSegmentationDelete,
|
|
15417
|
+
allowExport,
|
|
15418
|
+
storeSegmentation,
|
|
15419
|
+
onSegmentationDownload,
|
|
15420
|
+
onSegmentationDownloadRTSS,
|
|
15421
|
+
t
|
|
15422
|
+
}) => /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuContent */.SQ, {
|
|
15423
|
+
align: "start"
|
|
15424
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15425
|
+
onClick: () => onSegmentationAdd(activeSegmentation.id)
|
|
15426
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Add, {
|
|
15427
|
+
className: "text-foreground"
|
|
15428
|
+
}), /*#__PURE__*/react.createElement("span", {
|
|
15429
|
+
className: "pl-2"
|
|
15430
|
+
}, t('Create New Segmentation'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSeparator */.mB, null), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuLabel */.lp, null, t('Manage Current Segmentation')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15431
|
+
onClick: () => onSegmentationRemoveFromViewport(activeSegmentation.id)
|
|
15432
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Series, {
|
|
15433
|
+
className: "text-foreground"
|
|
15434
|
+
}), /*#__PURE__*/react.createElement("span", {
|
|
15435
|
+
className: "pl-2"
|
|
15436
|
+
}, t('Remove from Viewport'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15437
|
+
onClick: () => onSegmentationEdit(activeSegmentation.id)
|
|
15438
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Rename, {
|
|
15439
|
+
className: "text-foreground"
|
|
15440
|
+
}), /*#__PURE__*/react.createElement("span", {
|
|
15441
|
+
className: "pl-2"
|
|
15442
|
+
}, t('Rename'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSub */.lv, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSubTrigger */.nV, {
|
|
15443
|
+
disabled: !allowExport,
|
|
15444
|
+
className: "pl-1"
|
|
15445
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Export, {
|
|
15446
|
+
className: "text-foreground"
|
|
15447
|
+
}), /*#__PURE__*/react.createElement("span", {
|
|
15448
|
+
className: "pl-2"
|
|
15449
|
+
}, t('Export & Download'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuPortal */.dc, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSubContent */.M5, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15450
|
+
onClick: () => storeSegmentation(activeSegmentation.id)
|
|
15451
|
+
}, t('Export DICOM SEG')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15452
|
+
onClick: () => onSegmentationDownload(activeSegmentation.id)
|
|
15453
|
+
}, t('Download DICOM SEG')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15454
|
+
onClick: () => onSegmentationDownloadRTSS(activeSegmentation.id)
|
|
15455
|
+
}, t('Download DICOM RTSTRUCT'))))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSeparator */.mB, null), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
|
|
15456
|
+
onClick: () => onSegmentationDelete(activeSegmentation.id)
|
|
15457
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Delete, {
|
|
15458
|
+
className: "text-red-600"
|
|
15459
|
+
}), /*#__PURE__*/react.createElement("span", {
|
|
15460
|
+
className: "pl-2 text-red-600"
|
|
15461
|
+
}, t('Delete')))));
|
|
15362
15462
|
const exportOptions = segmentationsWithRepresentations.map(({
|
|
15363
15463
|
segmentation
|
|
15364
15464
|
}) => {
|
|
@@ -15421,7 +15521,7 @@ function PanelSegmentation({
|
|
|
15421
15521
|
setRenderOutline: handlers.setRenderOutline,
|
|
15422
15522
|
setFillAlphaInactive: handlers.setFillAlphaInactive,
|
|
15423
15523
|
renderInactiveSegmentations: handlers.getRenderInactiveSegmentations()
|
|
15424
|
-
}, children, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Config, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentationRow, null), SegmentationTableMode === 'collapsed' ? /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Collapsed, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.SelectorHeader, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentRow, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null)) : /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Expanded, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Header, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null))));
|
|
15524
|
+
}, children, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Config, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentationRow, null), SegmentationTableMode === 'collapsed' ? /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Collapsed, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.SelectorHeader, null, /*#__PURE__*/react.createElement(CustomDropdownMenuContent, null)), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentRow, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null)) : /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Expanded, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Header, null, /*#__PURE__*/react.createElement(CustomDropdownMenuContent, null)), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null))));
|
|
15425
15525
|
}
|
|
15426
15526
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
15427
15527
|
var prop_types = __webpack_require__(97598);
|
|
@@ -16738,7 +16838,7 @@ const cornerstoneExtension = {
|
|
|
16738
16838
|
useLutPresentationStore/* useLutPresentationStore */.I.getState().clearLutPresentationStore();
|
|
16739
16839
|
usePositionPresentationStore/* usePositionPresentationStore */.q.getState().clearPositionPresentationStore();
|
|
16740
16840
|
useSynchronizersStore/* useSynchronizersStore */.U.getState().clearSynchronizersStore();
|
|
16741
|
-
useToggleOneUpViewportGridStore
|
|
16841
|
+
default_src.useToggleOneUpViewportGridStore.getState().clearToggleOneUpViewportGridStore();
|
|
16742
16842
|
useSegmentationPresentationStore/* useSegmentationPresentationStore */.v.getState().clearSegmentationPresentationStore();
|
|
16743
16843
|
segmentationService.removeAllSegmentations();
|
|
16744
16844
|
},
|
|
@@ -16992,8 +17092,8 @@ const addUniqueIndex = (arr, key, viewports, isUpdatingSameViewport) => {
|
|
|
16992
17092
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
16993
17093
|
/* harmony export */ I: () => (/* binding */ useLutPresentationStore)
|
|
16994
17094
|
/* harmony export */ });
|
|
16995
|
-
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
16996
|
-
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
17095
|
+
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
|
|
17096
|
+
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
|
|
16997
17097
|
/* harmony import */ var _presentationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46026);
|
|
16998
17098
|
|
|
16999
17099
|
|
|
@@ -17107,8 +17207,8 @@ const useLutPresentationStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .creat
|
|
|
17107
17207
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
17108
17208
|
/* harmony export */ q: () => (/* binding */ usePositionPresentationStore)
|
|
17109
17209
|
/* harmony export */ });
|
|
17110
|
-
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
17111
|
-
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
17210
|
+
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
|
|
17211
|
+
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
|
|
17112
17212
|
/* harmony import */ var _presentationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46026);
|
|
17113
17213
|
|
|
17114
17214
|
|
|
@@ -17221,10 +17321,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
17221
17321
|
v: () => (/* binding */ useSegmentationPresentationStore)
|
|
17222
17322
|
});
|
|
17223
17323
|
|
|
17224
|
-
// EXTERNAL MODULE:
|
|
17225
|
-
var esm = __webpack_require__(
|
|
17226
|
-
// EXTERNAL MODULE:
|
|
17227
|
-
var middleware = __webpack_require__(
|
|
17324
|
+
// EXTERNAL MODULE: ../../../node_modules/zustand/esm/index.mjs + 1 modules
|
|
17325
|
+
var esm = __webpack_require__(78713);
|
|
17326
|
+
// EXTERNAL MODULE: ../../../node_modules/zustand/esm/middleware.mjs
|
|
17327
|
+
var middleware = __webpack_require__(21978);
|
|
17228
17328
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/stores/presentationUtils.ts
|
|
17229
17329
|
var presentationUtils = __webpack_require__(46026);
|
|
17230
17330
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
@@ -17427,8 +17527,8 @@ const useSegmentationPresentationStore = (0,esm/* create */.vt)()(DEBUG_STORE ?
|
|
|
17427
17527
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
17428
17528
|
/* harmony export */ U: () => (/* binding */ useSynchronizersStore)
|
|
17429
17529
|
/* harmony export */ });
|
|
17430
|
-
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
17431
|
-
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
17530
|
+
/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
|
|
17531
|
+
/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
|
|
17432
17532
|
|
|
17433
17533
|
|
|
17434
17534
|
|
|
@@ -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',
|
|
@@ -778,6 +783,31 @@ const performCustomizations = customizationService => {
|
|
|
778
783
|
// { value: 'Toe', label: 'Toe' },
|
|
779
784
|
// ],
|
|
780
785
|
// },
|
|
786
|
+
/**
|
|
787
|
+
* Custom Dropdown Menu Item
|
|
788
|
+
*/
|
|
789
|
+
// {
|
|
790
|
+
// id: 'PanelSegmentation.CustomDropdownMenuContent',
|
|
791
|
+
// content: ({
|
|
792
|
+
// activeSegmentation,
|
|
793
|
+
// onSegmentationAdd,
|
|
794
|
+
// onSegmentationRemoveFromViewport,
|
|
795
|
+
// onSegmentationEdit,
|
|
796
|
+
// onSegmentationDelete,
|
|
797
|
+
// allowExport,
|
|
798
|
+
// storeSegmentation,
|
|
799
|
+
// onSegmentationDownload,
|
|
800
|
+
// onSegmentationDownloadRTSS,
|
|
801
|
+
// t,
|
|
802
|
+
// }) => (
|
|
803
|
+
// <DropdownMenuContent align="start">
|
|
804
|
+
// <DropdownMenuItem onClick={() => onSegmentationDelete(activeSegmentation.id)}>
|
|
805
|
+
// <Icons.Delete className="text-red-600" />
|
|
806
|
+
// <span className="pl-2 text-red-600">{t('My Custom Dropdown Menu Item')}</span>
|
|
807
|
+
// </DropdownMenuItem>
|
|
808
|
+
// </DropdownMenuContent>
|
|
809
|
+
// ),
|
|
810
|
+
// },
|
|
781
811
|
]);
|
|
782
812
|
};
|
|
783
813
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.ts
|
package/dist/1266.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
.dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
|
|
2
2
|
.chrome-picker{background:#090c29!important}
|
|
3
3
|
.viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
|
|
4
|
-
.dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50
|
|
4
|
+
.dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
|
package/dist/1801.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
.dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
|
|
2
2
|
.chrome-picker{background:#090c29!important}
|
|
3
3
|
.viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
|
|
4
|
-
.dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50
|
|
4
|
+
.dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
|
173
173
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
174
174
|
/******/ // return url for filenames based on template
|
|
175
|
-
/******/ return "" + chunkId + ".bundle." + {"732":"532947c280e1a8f6e020","4571":"
|
|
175
|
+
/******/ return "" + chunkId + ".bundle." + {"732":"532947c280e1a8f6e020","4571":"142e8f6150bf81f1b7d2","8094":"411698eaf81975a7f12d"}[chunkId] + ".js";
|
|
176
176
|
/******/ };
|
|
177
177
|
/******/ })();
|
|
178
178
|
/******/
|
|
@@ -31,6 +31,8 @@ var hydrateStructuredReport = __webpack_require__(22989);
|
|
|
31
31
|
var state = __webpack_require__(45981);
|
|
32
32
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/createReferencedImageDisplaySet.ts
|
|
33
33
|
var createReferencedImageDisplaySet = __webpack_require__(92643);
|
|
34
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
35
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
34
36
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/components/OHIFCornerstoneSRMeasurementViewport.tsx
|
|
35
37
|
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); }
|
|
36
38
|
|
|
@@ -42,11 +44,11 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
42
44
|
|
|
43
45
|
|
|
44
46
|
|
|
47
|
+
|
|
45
48
|
const MEASUREMENT_TRACKING_EXTENSION_ID = '@ohif/extension-measurement-tracking';
|
|
46
49
|
const SR_TOOLGROUP_BASE_NAME = 'SRToolGroup';
|
|
47
50
|
function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
48
51
|
const {
|
|
49
|
-
commandsManager,
|
|
50
52
|
children,
|
|
51
53
|
dataSource,
|
|
52
54
|
displaySets,
|
|
@@ -57,7 +59,6 @@ function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
|
57
59
|
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
58
60
|
const {
|
|
59
61
|
displaySetService,
|
|
60
|
-
cornerstoneViewportService,
|
|
61
62
|
measurementService,
|
|
62
63
|
viewportActionCornersService
|
|
63
64
|
} = servicesManager.services;
|
|
@@ -68,6 +69,9 @@ function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
|
68
69
|
throw new Error('SR viewport should only have a single display set');
|
|
69
70
|
}
|
|
70
71
|
const srDisplaySet = displaySets[0];
|
|
72
|
+
const {
|
|
73
|
+
setPositionPresentation
|
|
74
|
+
} = (0,cornerstone_src.usePositionPresentationStore)();
|
|
71
75
|
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
72
76
|
const [measurementSelected, setMeasurementSelected] = (0,react.useState)(0);
|
|
73
77
|
const [measurementCount, setMeasurementCount] = (0,react.useState)(1);
|
|
@@ -171,25 +175,15 @@ function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
|
171
175
|
setMeasurementSelected(newMeasurementSelected);
|
|
172
176
|
setActiveImageDisplaySetData(referencedDisplaySet);
|
|
173
177
|
setReferencedDisplaySetMetadata(referencedDisplaySetMetadata);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
// are the same we just need to use measurementService to jump to the
|
|
182
|
-
// new measurement
|
|
183
|
-
const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
|
184
|
-
if (!csViewport) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
const imageIds = csViewport.getImageIds();
|
|
188
|
-
const imageIdIndex = imageIds.indexOf(measurements[newMeasurementSelected].imageId);
|
|
189
|
-
if (imageIdIndex !== -1) {
|
|
190
|
-
csViewport.setImageIdIndex(imageIdIndex);
|
|
178
|
+
const {
|
|
179
|
+
presentationIds
|
|
180
|
+
} = viewportOptions;
|
|
181
|
+
const measurement = srDisplaySet.measurements[newMeasurementSelected];
|
|
182
|
+
setPositionPresentation(presentationIds.positionPresentationId, {
|
|
183
|
+
viewReference: {
|
|
184
|
+
referencedImageId: measurement.imageId
|
|
191
185
|
}
|
|
192
|
-
}
|
|
186
|
+
});
|
|
193
187
|
});
|
|
194
188
|
}, [dataSource, srDisplaySet, activeImageDisplaySetData, viewportId]);
|
|
195
189
|
const getCornerstoneViewport = (0,react.useCallback)(() => {
|
|
@@ -206,7 +200,6 @@ function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
|
206
200
|
if (!measurement) {
|
|
207
201
|
return null;
|
|
208
202
|
}
|
|
209
|
-
const initialImageIndex = activeImageDisplaySetData.images.findIndex(image => image.imageId === measurement.imageId);
|
|
210
203
|
return /*#__PURE__*/react.createElement(Component, _extends({}, props, {
|
|
211
204
|
// should be passed second since we don't want SR displaySet to
|
|
212
205
|
// override the activeImageDisplaySetData
|
|
@@ -230,7 +223,6 @@ function OHIFCornerstoneSRMeasurementViewport(props) {
|
|
|
230
223
|
props.onElementEnabled?.(evt);
|
|
231
224
|
onElementEnabled(evt);
|
|
232
225
|
},
|
|
233
|
-
initialImageIndex: initialImageIndex,
|
|
234
226
|
isJumpToMeasurementDisabled: true
|
|
235
227
|
}));
|
|
236
228
|
}, [activeImageDisplaySetData, viewportId, measurementSelected]);
|