@ohif/app 3.12.0-beta.114 → 3.12.0-beta.116
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/{2842.bundle.72b8e407027b26a34584.js → 2842.bundle.323078a1185dc9a58ac7.js} +80 -18
- package/dist/{5448.bundle.95f9ed97b8ab5ca9e6b0.js → 4410.bundle.09d2d3bfb23511a9a7d4.js} +202 -6
- package/dist/{5549.bundle.1a5e24f59873b7a30799.js → 5549.bundle.64c0f91bbed858352e1a.js} +93 -21
- package/dist/{7412.bundle.3256f92f3f2d6aa25008.js → 7412.bundle.3c1ced74bcd0c83da9fb.js} +13 -2
- package/dist/{7431.bundle.999b2b65d4973bc56218.js → 7431.bundle.d772d0b75ef6dc75acfc.js} +5 -3
- package/dist/{9195.bundle.0ebdd4b679ee7967a0e9.js → 9195.bundle.67370bcce2b967affbcb.js} +17 -9
- package/dist/{app.bundle.23afbbef42ad1c18e04f.js → app.bundle.41cea80449abee3ded4a.js} +270 -7
- package/dist/{compute.bundle.9d2a75c300c39d48be90.js → compute.bundle.85de00d380fec20ac4ac.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.1cc6ecabd5fb8ab1d99c.js → polySeg.bundle.87769c9338f2425c7e65.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- /package/dist/{1403.bundle.57cb00001011a891c721.js → 1403.bundle.07faca348a17d5196684.js} +0 -0
- /package/dist/{1459.bundle.b18c0c265cfdffc50ad4.js → 1459.bundle.f95395ba0842cdb55872.js} +0 -0
- /package/dist/{147.bundle.ee7de13189cf1963aea9.js → 147.bundle.85a9ed9fd123f57f23a6.js} +0 -0
- /package/dist/{1730.bundle.fd7196fce95a907c02b2.js → 1730.bundle.2d640ae38d6daaf94bad.js} +0 -0
- /package/dist/{1933.bundle.c0be85081628cbd5b634.js → 1933.bundle.4aa316f1107dc4fba61d.js} +0 -0
- /package/dist/{2018.bundle.868c69572d25f819b8aa.js → 2018.bundle.4b5535def5790b39b4ef.js} +0 -0
- /package/dist/{213.bundle.738f3f3bad9747d87251.js → 213.bundle.972f7d138a5ccedd2ebe.js} +0 -0
- /package/dist/{2424.bundle.608a0fedf823bc6d318d.js → 2424.bundle.6d521c39961d6534b624.js} +0 -0
- /package/dist/{3081.bundle.532a14bbf71da3f4f48c.js → 3081.bundle.0eb28da956e1adc92769.js} +0 -0
- /package/dist/{3353.bundle.7d5f628fe7eb8fe738ce.js → 3353.bundle.9d3e114b02d6fbbd927f.js} +0 -0
- /package/dist/{3461.bundle.f229ee13ccc18b7de681.js → 3461.bundle.ae61e218788c806786a6.js} +0 -0
- /package/dist/{3584.bundle.839a16d349815b3f7c97.js → 3584.bundle.318f292fda0d5e1f54df.js} +0 -0
- /package/dist/{4019.bundle.cdb81fb4777792f6175d.js → 4019.bundle.9f338ce1c5ae27f6eab5.js} +0 -0
- /package/dist/{4775.bundle.ce3cbcb52f3c118eb042.js → 4775.bundle.61505e4164f4c8fb43bd.js} +0 -0
- /package/dist/{4819.bundle.6f0174dea6faae4b10ca.js → 4819.bundle.0d1374b815eab24b5e36.js} +0 -0
- /package/dist/{5028.bundle.25f0de3a61ba3a0efcf8.js → 5028.bundle.af3b3976f082fd2ea752.js} +0 -0
- /package/dist/{5400.bundle.be4bdac337da734fdcd3.js → 5400.bundle.c1c101c5b66a1667bdfd.js} +0 -0
- /package/dist/{5457.bundle.8cbdf4da0e12f88f4010.js → 5457.bundle.ff5bac682c54abd38847.js} +0 -0
- /package/dist/{5485.bundle.f96a631f8d341cb15cc3.js → 5485.bundle.ab20c9303bf0ad373a0e.js} +0 -0
- /package/dist/{5802.bundle.aef18b250a1927d84108.js → 5802.bundle.aed34ddbad09f03edefe.js} +0 -0
- /package/dist/{6027.bundle.e4c090cb74a219798e83.js → 6027.bundle.e3877fc3c30d5034ef45.js} +0 -0
- /package/dist/{6163.bundle.ba7bd975bc702d2ea746.js → 6163.bundle.acd5a50004e160b9e1de.js} +0 -0
- /package/dist/{7639.bundle.7fdafc277c50936d40aa.js → 7639.bundle.5ac65cc1b14ab07e3393.js} +0 -0
- /package/dist/{8305.bundle.abad864a52838a31af66.js → 8305.bundle.b4b3fb49e18e0c1fb920.js} +0 -0
- /package/dist/{85.bundle.c05988a8c5ca1c644d91.js → 85.bundle.6a969322aa9a2819a00d.js} +0 -0
- /package/dist/{8558.bundle.b83784a541bed16b8b29.js → 8558.bundle.270e7f151717f17853c4.js} +0 -0
- /package/dist/{8583.bundle.4d9bfa4b52e5fbf5cff4.js → 8583.bundle.f69048e5ccf36a31d5c1.js} +0 -0
- /package/dist/{9862.bundle.2992313d0e19d394e6a5.js → 9862.bundle.2763343cffe86fcafa33.js} +0 -0
- /package/dist/{9927.bundle.2aad1abce48144437803.js → 9927.bundle.dc2207f374d1b8cc50db.js} +0 -0
|
@@ -5168,6 +5168,8 @@ const chartHandler = {
|
|
|
5168
5168
|
}
|
|
5169
5169
|
};
|
|
5170
5170
|
|
|
5171
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
5172
|
+
var dist_esm = __webpack_require__(15327);
|
|
5171
5173
|
;// ../../../extensions/default/src/getSopClassHandlerModule.js
|
|
5172
5174
|
|
|
5173
5175
|
|
|
@@ -5175,6 +5177,7 @@ const chartHandler = {
|
|
|
5175
5177
|
|
|
5176
5178
|
|
|
5177
5179
|
|
|
5180
|
+
|
|
5178
5181
|
const {
|
|
5179
5182
|
isImage,
|
|
5180
5183
|
sortStudyInstances,
|
|
@@ -5221,10 +5224,15 @@ function getDisplaySetInfo(instances) {
|
|
|
5221
5224
|
if (isDynamicVolume) {
|
|
5222
5225
|
const timePoint = timePoints[0];
|
|
5223
5226
|
const instancesMap = new Map();
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5227
|
+
let firstTimePointInstances;
|
|
5228
|
+
if (instances[0].NumberOfFrames > 1 && timePoints.length > 1) {
|
|
5229
|
+
// handle multiframe dynamic volume
|
|
5230
|
+
firstTimePointInstances = timePoints[0].map(imageId => dist_esm.metaData.get('instance', imageId));
|
|
5231
|
+
} else {
|
|
5232
|
+
// O(n) to convert it into a map and O(1) to find each instance
|
|
5233
|
+
instances.forEach(instance => instancesMap.set(instance.imageId, instance));
|
|
5234
|
+
firstTimePointInstances = timePoint.map(imageId => instancesMap.get(imageId));
|
|
5235
|
+
}
|
|
5228
5236
|
displaySetInfo = getSopClassHandlerModule_isDisplaySetReconstructable(firstTimePointInstances, appConfig);
|
|
5229
5237
|
} else {
|
|
5230
5238
|
displaySetInfo = getSopClassHandlerModule_isDisplaySetReconstructable(instances, appConfig);
|
|
@@ -6077,7 +6085,7 @@ function adaptItem(item, subProps) {
|
|
|
6077
6085
|
return newItem;
|
|
6078
6086
|
}
|
|
6079
6087
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
6080
|
-
var
|
|
6088
|
+
var tools_dist_esm = __webpack_require__(4667);
|
|
6081
6089
|
;// ../../../extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx
|
|
6082
6090
|
var _ContextMenuController;
|
|
6083
6091
|
|
|
@@ -6131,7 +6139,7 @@ class ContextMenuController {
|
|
|
6131
6139
|
const {
|
|
6132
6140
|
locking,
|
|
6133
6141
|
visibility
|
|
6134
|
-
} =
|
|
6142
|
+
} = tools_dist_esm.annotation;
|
|
6135
6143
|
const targetAnnotationId = selectorProps?.nearbyToolData?.annotationUID;
|
|
6136
6144
|
if (targetAnnotationId) {
|
|
6137
6145
|
const isLocked = locking.isAnnotationLocked(targetAnnotationId);
|
|
@@ -10408,8 +10416,8 @@ function AboutModalDefault() {
|
|
|
10408
10416
|
name
|
|
10409
10417
|
} = (0,browser_detect_es5/* default */.A)();
|
|
10410
10418
|
const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
|
|
10411
|
-
const versionNumber = "3.12.0-beta.
|
|
10412
|
-
const commitHash = "
|
|
10419
|
+
const versionNumber = "3.12.0-beta.116";
|
|
10420
|
+
const commitHash = "a74648f8ec23c01b91588ff7c6ee1620ca456ed7";
|
|
10413
10421
|
const [main, beta] = versionNumber.split('-');
|
|
10414
10422
|
return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
|
|
10415
10423
|
className: "w-[400px]"
|
|
@@ -11492,7 +11500,7 @@ async function callInputDialogAutoComplete({
|
|
|
11492
11500
|
const labellingDoneCallback = newValue => {
|
|
11493
11501
|
uiDialogService.hide('select-annotation');
|
|
11494
11502
|
if (measurement && typeof newValue === 'string') {
|
|
11495
|
-
const sourceAnnotation =
|
|
11503
|
+
const sourceAnnotation = tools_dist_esm.annotation.state.getAnnotation(measurement.uid);
|
|
11496
11504
|
(0,utilities.setAnnotationLabel)(sourceAnnotation, element, newValue);
|
|
11497
11505
|
}
|
|
11498
11506
|
resolve(newValue);
|
|
@@ -5241,6 +5241,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
|
|
|
5241
5241
|
colormap,
|
|
5242
5242
|
preset,
|
|
5243
5243
|
slabThickness,
|
|
5244
|
+
sampleDistanceMultiplier,
|
|
5244
5245
|
});
|
|
5245
5246
|
}
|
|
5246
5247
|
if (invert !== undefined && this.viewportProperties.invert !== invert) {
|
|
@@ -23485,8 +23486,8 @@ class BaseStreamingImageVolume extends _ImageVolume__WEBPACK_IMPORTED_MODULE_9__
|
|
|
23485
23486
|
}
|
|
23486
23487
|
getLoaderImageOptions(imageId) {
|
|
23487
23488
|
const { transferSyntaxUID: transferSyntaxUID } = _metaData__WEBPACK_IMPORTED_MODULE_0__.get('transferSyntax', imageId) || {};
|
|
23488
|
-
const
|
|
23489
|
-
const
|
|
23489
|
+
const targetRows = this.dimensions[1];
|
|
23490
|
+
const targetCols = this.dimensions[0];
|
|
23490
23491
|
const imageIdIndex = this.getImageIdIndex(imageId);
|
|
23491
23492
|
const modalityLutModule = _metaData__WEBPACK_IMPORTED_MODULE_0__.get('modalityLutModule', imageId) || {};
|
|
23492
23493
|
const generalSeriesModule = _metaData__WEBPACK_IMPORTED_MODULE_0__.get('generalSeriesModule', imageId) || {};
|
|
@@ -23519,8 +23520,8 @@ class BaseStreamingImageVolume extends _ImageVolume__WEBPACK_IMPORTED_MODULE_9__
|
|
|
23519
23520
|
}
|
|
23520
23521
|
const targetBuffer = {
|
|
23521
23522
|
type: this.dataType,
|
|
23522
|
-
rows,
|
|
23523
|
-
columns,
|
|
23523
|
+
rows: targetRows,
|
|
23524
|
+
columns: targetCols,
|
|
23524
23525
|
};
|
|
23525
23526
|
return {
|
|
23526
23527
|
targetBuffer,
|
|
@@ -28496,6 +28497,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
28496
28497
|
createViewportElement: () => (/* reexport */ getOrCreateCanvas/* createViewportElement */.V0),
|
|
28497
28498
|
createVolumeActor: () => (/* reexport */ createVolumeActor/* default */.A),
|
|
28498
28499
|
createVolumeMapper: () => (/* reexport */ createVolumeMapper/* default */.A),
|
|
28500
|
+
decimatedVolumeLoader: () => (/* reexport */ decimatedVolumeLoader/* decimatedVolumeLoader */.o),
|
|
28499
28501
|
eventTarget: () => (/* reexport */ eventTarget/* default */.A),
|
|
28500
28502
|
geometryLoader: () => (/* reexport */ geometryLoader),
|
|
28501
28503
|
getConfiguration: () => (/* reexport */ init/* getConfiguration */.D0),
|
|
@@ -28780,6 +28782,8 @@ var imageLoader = __webpack_require__(80068);
|
|
|
28780
28782
|
var geometryLoader = __webpack_require__(52269);
|
|
28781
28783
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
|
|
28782
28784
|
var ProgressiveRetrieveImages = __webpack_require__(36822);
|
|
28785
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/decimatedVolumeLoader.js + 3 modules
|
|
28786
|
+
var decimatedVolumeLoader = __webpack_require__(18481);
|
|
28783
28787
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 46 modules
|
|
28784
28788
|
var utilities = __webpack_require__(33592);
|
|
28785
28789
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
@@ -28829,6 +28833,8 @@ var helpers = __webpack_require__(40661);
|
|
|
28829
28833
|
|
|
28830
28834
|
|
|
28831
28835
|
|
|
28836
|
+
|
|
28837
|
+
|
|
28832
28838
|
|
|
28833
28839
|
|
|
28834
28840
|
|
|
@@ -29912,6 +29918,188 @@ function cornerstoneStreamingImageVolumeLoader(volumeId, options) {
|
|
|
29912
29918
|
|
|
29913
29919
|
|
|
29914
29920
|
|
|
29921
|
+
/***/ }),
|
|
29922
|
+
|
|
29923
|
+
/***/ 18481:
|
|
29924
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
29925
|
+
|
|
29926
|
+
"use strict";
|
|
29927
|
+
|
|
29928
|
+
// EXPORTS
|
|
29929
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
29930
|
+
o: () => (/* binding */ decimatedVolumeLoader)
|
|
29931
|
+
});
|
|
29932
|
+
|
|
29933
|
+
// UNUSED EXPORTS: default
|
|
29934
|
+
|
|
29935
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/classes/StreamingImageVolume.js
|
|
29936
|
+
var StreamingImageVolume = __webpack_require__(50180);
|
|
29937
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/generateVolumePropsFromImageIds.js
|
|
29938
|
+
var generateVolumePropsFromImageIds = __webpack_require__(9734);
|
|
29939
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/decimate.js
|
|
29940
|
+
var decimate = __webpack_require__(63470);
|
|
29941
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/VoxelManager.js
|
|
29942
|
+
var VoxelManager = __webpack_require__(24623);
|
|
29943
|
+
;// ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/decimatedVolumeModifiers/applyDecimatedVolumeModifiers.js
|
|
29944
|
+
function applyDecimatedVolumeModifiers(baseProps, modifiers, context) {
|
|
29945
|
+
return modifiers.reduce((currentProps, modifier) => modifier.apply(currentProps, context), baseProps);
|
|
29946
|
+
}
|
|
29947
|
+
|
|
29948
|
+
;// ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/decimatedVolumeModifiers/inPlaneDecimationModifier.js
|
|
29949
|
+
const inPlaneDecimationModifier = {
|
|
29950
|
+
name: 'InPlaneDecimationModifier',
|
|
29951
|
+
apply(volumeProps, context) {
|
|
29952
|
+
const [iDecimation = 1, jDecimation = iDecimation] = context.options.ijkDecimation ?? [];
|
|
29953
|
+
const columnFactor = Math.max(1, Math.floor(iDecimation));
|
|
29954
|
+
const rowFactor = Math.max(1, Math.floor(jDecimation));
|
|
29955
|
+
if (columnFactor === 1 && rowFactor === 1) {
|
|
29956
|
+
return volumeProps;
|
|
29957
|
+
}
|
|
29958
|
+
const [columns, rows] = volumeProps.dimensions;
|
|
29959
|
+
const newColumns = Math.max(1, Math.floor(columns / columnFactor));
|
|
29960
|
+
const newRows = Math.max(1, Math.floor(rows / rowFactor));
|
|
29961
|
+
const newDimensions = [
|
|
29962
|
+
newColumns,
|
|
29963
|
+
newRows,
|
|
29964
|
+
volumeProps.dimensions[2],
|
|
29965
|
+
];
|
|
29966
|
+
const newSpacing = [
|
|
29967
|
+
volumeProps.spacing[0] * columnFactor,
|
|
29968
|
+
volumeProps.spacing[1] * rowFactor,
|
|
29969
|
+
volumeProps.spacing[2],
|
|
29970
|
+
];
|
|
29971
|
+
const metadata = {
|
|
29972
|
+
...volumeProps.metadata,
|
|
29973
|
+
Columns: newColumns,
|
|
29974
|
+
Rows: newRows,
|
|
29975
|
+
PixelSpacing: [newSpacing[1], newSpacing[0]],
|
|
29976
|
+
};
|
|
29977
|
+
return {
|
|
29978
|
+
...volumeProps,
|
|
29979
|
+
dimensions: newDimensions,
|
|
29980
|
+
spacing: newSpacing,
|
|
29981
|
+
metadata,
|
|
29982
|
+
};
|
|
29983
|
+
},
|
|
29984
|
+
};
|
|
29985
|
+
|
|
29986
|
+
;// ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/decimatedVolumeModifiers/index.js
|
|
29987
|
+
|
|
29988
|
+
|
|
29989
|
+
|
|
29990
|
+
;// ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/decimatedVolumeLoader.js
|
|
29991
|
+
|
|
29992
|
+
|
|
29993
|
+
|
|
29994
|
+
|
|
29995
|
+
|
|
29996
|
+
function decimatedVolumeLoader(volumeId, options) {
|
|
29997
|
+
if (!options || !options.imageIds || !options.imageIds.length) {
|
|
29998
|
+
throw new Error('ImageIds must be provided to create a streaming image volume ');
|
|
29999
|
+
}
|
|
30000
|
+
const [iDecimation = 1, jDecimation = iDecimation, kDecimation = 1] = options.ijkDecimation ?? [];
|
|
30001
|
+
const columnDecimation = Math.max(1, Math.floor(iDecimation));
|
|
30002
|
+
const rowDecimation = jDecimation > 1 ? Math.max(1, Math.floor(jDecimation)) : columnDecimation;
|
|
30003
|
+
const kAxisDecimation = Math.max(1, Math.floor(kDecimation));
|
|
30004
|
+
const hasInPlaneDecimation = columnDecimation > 1 || rowDecimation > 1;
|
|
30005
|
+
const modifierOptions = {
|
|
30006
|
+
ijkDecimation: [
|
|
30007
|
+
columnDecimation,
|
|
30008
|
+
rowDecimation,
|
|
30009
|
+
kAxisDecimation,
|
|
30010
|
+
],
|
|
30011
|
+
};
|
|
30012
|
+
const modifiers = [inPlaneDecimationModifier];
|
|
30013
|
+
function addDecimationToImageId(imageId, factor) {
|
|
30014
|
+
if (factor === 1) {
|
|
30015
|
+
return imageId;
|
|
30016
|
+
}
|
|
30017
|
+
return `${imageId}#decimation=${factor}`;
|
|
30018
|
+
}
|
|
30019
|
+
const expectedDecimatedCount = Math.floor(options.imageIds.length / kAxisDecimation);
|
|
30020
|
+
const isAlreadyDecimated = kAxisDecimation > 1 &&
|
|
30021
|
+
options.imageIds.length <= expectedDecimatedCount + 1;
|
|
30022
|
+
if (kAxisDecimation > 1 && !isAlreadyDecimated) {
|
|
30023
|
+
const decimatedResult = (0,decimate/* default */.A)(options.imageIds, kAxisDecimation);
|
|
30024
|
+
const decimatedImageIds = Array.isArray(decimatedResult) &&
|
|
30025
|
+
decimatedResult.length &&
|
|
30026
|
+
typeof decimatedResult[0] === 'number'
|
|
30027
|
+
? decimatedResult.map((idx) => options.imageIds[idx])
|
|
30028
|
+
: decimatedResult;
|
|
30029
|
+
options.imageIds = decimatedImageIds;
|
|
30030
|
+
}
|
|
30031
|
+
if (columnDecimation > 1) {
|
|
30032
|
+
options.imageIds = options.imageIds.map((imageId) => addDecimationToImageId(imageId, columnDecimation));
|
|
30033
|
+
}
|
|
30034
|
+
async function getStreamingImageVolume() {
|
|
30035
|
+
const baseVolumeProps = (0,generateVolumePropsFromImageIds/* generateVolumePropsFromImageIds */.D)(options.imageIds, volumeId);
|
|
30036
|
+
const modifierContext = {
|
|
30037
|
+
volumeId,
|
|
30038
|
+
imageIds: options.imageIds,
|
|
30039
|
+
options: modifierOptions,
|
|
30040
|
+
};
|
|
30041
|
+
const volumeProps = applyDecimatedVolumeModifiers(baseVolumeProps, modifiers, modifierContext);
|
|
30042
|
+
const { dimensions, spacing, origin, direction, metadata, imageIds, dataType, numberOfComponents, } = volumeProps;
|
|
30043
|
+
const streamingImageVolume = new StreamingImageVolume/* default */.A({
|
|
30044
|
+
volumeId,
|
|
30045
|
+
metadata,
|
|
30046
|
+
dimensions,
|
|
30047
|
+
spacing,
|
|
30048
|
+
origin,
|
|
30049
|
+
direction,
|
|
30050
|
+
imageIds,
|
|
30051
|
+
dataType,
|
|
30052
|
+
numberOfComponents,
|
|
30053
|
+
}, {
|
|
30054
|
+
imageIds,
|
|
30055
|
+
loadStatus: {
|
|
30056
|
+
loaded: false,
|
|
30057
|
+
loading: false,
|
|
30058
|
+
cancelled: false,
|
|
30059
|
+
cachedFrames: [],
|
|
30060
|
+
callbacks: [],
|
|
30061
|
+
},
|
|
30062
|
+
});
|
|
30063
|
+
if (hasInPlaneDecimation) {
|
|
30064
|
+
const vtkImageData = streamingImageVolume.imageData;
|
|
30065
|
+
if (vtkImageData) {
|
|
30066
|
+
vtkImageData.setDimensions(streamingImageVolume.dimensions);
|
|
30067
|
+
vtkImageData.setSpacing(streamingImageVolume.spacing);
|
|
30068
|
+
vtkImageData.modified();
|
|
30069
|
+
}
|
|
30070
|
+
const newVoxelManager = VoxelManager/* default */.A.createImageVolumeVoxelManager({
|
|
30071
|
+
dimensions: streamingImageVolume.dimensions,
|
|
30072
|
+
imageIds: streamingImageVolume.imageIds,
|
|
30073
|
+
numberOfComponents: numberOfComponents,
|
|
30074
|
+
});
|
|
30075
|
+
streamingImageVolume.voxelManager = newVoxelManager;
|
|
30076
|
+
if (vtkImageData) {
|
|
30077
|
+
vtkImageData.set({
|
|
30078
|
+
voxelManager: newVoxelManager,
|
|
30079
|
+
});
|
|
30080
|
+
}
|
|
30081
|
+
}
|
|
30082
|
+
return streamingImageVolume;
|
|
30083
|
+
}
|
|
30084
|
+
const streamingImageVolumePromise = getStreamingImageVolume();
|
|
30085
|
+
return {
|
|
30086
|
+
promise: streamingImageVolumePromise,
|
|
30087
|
+
decache: () => {
|
|
30088
|
+
streamingImageVolumePromise.then((streamingImageVolume) => {
|
|
30089
|
+
streamingImageVolume.destroy();
|
|
30090
|
+
streamingImageVolume = null;
|
|
30091
|
+
});
|
|
30092
|
+
},
|
|
30093
|
+
cancel: () => {
|
|
30094
|
+
streamingImageVolumePromise.then((streamingImageVolume) => {
|
|
30095
|
+
streamingImageVolume.cancelLoading();
|
|
30096
|
+
});
|
|
30097
|
+
},
|
|
30098
|
+
};
|
|
30099
|
+
}
|
|
30100
|
+
/* harmony default export */ const loaders_decimatedVolumeLoader = ((/* unused pure expression or super */ null && (decimatedVolumeLoader)));
|
|
30101
|
+
|
|
30102
|
+
|
|
29915
30103
|
/***/ }),
|
|
29916
30104
|
|
|
29917
30105
|
/***/ 52269:
|
|
@@ -42209,6 +42397,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
42209
42397
|
deepMerge: () => (/* reexport */ deepMerge/* default */.A),
|
|
42210
42398
|
eventListener: () => (/* reexport */ eventListener_namespaceObject),
|
|
42211
42399
|
fnv1aHash: () => (/* reexport */ fnv1aHash/* default */.A),
|
|
42400
|
+
generateFrameImageId: () => (/* reexport */ generateFrameImageId),
|
|
42212
42401
|
generateVolumePropsFromImageIds: () => (/* reexport */ generateVolumePropsFromImageIds/* generateVolumePropsFromImageIds */.D),
|
|
42213
42402
|
genericMetadataProvider: () => (/* reexport */ genericMetadataProvider/* default */.A),
|
|
42214
42403
|
getBufferConfiguration: () => (/* reexport */ getBufferConfiguration/* getBufferConfiguration */.h),
|
|
@@ -42240,6 +42429,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
42240
42429
|
getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
|
|
42241
42430
|
getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
|
|
42242
42431
|
getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
|
|
42432
|
+
handleMultiframe4D: () => (/* reexport */ handleMultiframe4D),
|
|
42243
42433
|
hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters/* hasFloatScalingParameters */.a),
|
|
42244
42434
|
hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
|
|
42245
42435
|
imageIdToURI: () => (/* reexport */ imageIdToURI/* default */.A),
|
|
@@ -43734,6 +43924,74 @@ function _getViewportModality(viewport, volumeId, getVolume) {
|
|
|
43734
43924
|
|
|
43735
43925
|
;// ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/splitImageIdsBy4DTags.js
|
|
43736
43926
|
|
|
43927
|
+
function generateFrameImageId(baseImageId, frameNumber) {
|
|
43928
|
+
const framePattern = /\/frames\/\d+/;
|
|
43929
|
+
if (!framePattern.test(baseImageId)) {
|
|
43930
|
+
throw new Error(`generateFrameImageId: baseImageId must contain a "/frames/" pattern followed by a digit. ` +
|
|
43931
|
+
`Expected format: e.g., "wadouri:http://example.com/image/frames/1" or "wadors:/path/to/image.dcm/frames/1". ` +
|
|
43932
|
+
`Received: ${baseImageId}`);
|
|
43933
|
+
}
|
|
43934
|
+
return baseImageId.replace(framePattern, `/frames/${frameNumber}`);
|
|
43935
|
+
}
|
|
43936
|
+
function handleMultiframe4D(imageIds) {
|
|
43937
|
+
if (!imageIds || imageIds.length === 0) {
|
|
43938
|
+
return null;
|
|
43939
|
+
}
|
|
43940
|
+
const baseImageId = imageIds[0];
|
|
43941
|
+
const instance = metaData.get('instance', baseImageId);
|
|
43942
|
+
if (!instance) {
|
|
43943
|
+
return null;
|
|
43944
|
+
}
|
|
43945
|
+
const numberOfFrames = instance.NumberOfFrames;
|
|
43946
|
+
if (!numberOfFrames || numberOfFrames <= 1) {
|
|
43947
|
+
return null;
|
|
43948
|
+
}
|
|
43949
|
+
const timeSlotVector = instance.TimeSlotVector;
|
|
43950
|
+
if (!timeSlotVector || !Array.isArray(timeSlotVector)) {
|
|
43951
|
+
return null;
|
|
43952
|
+
}
|
|
43953
|
+
const sliceVector = instance.SliceVector;
|
|
43954
|
+
const numberOfSlices = instance.NumberOfSlices;
|
|
43955
|
+
if (timeSlotVector.length !== numberOfFrames) {
|
|
43956
|
+
console.warn('TimeSlotVector length does not match NumberOfFrames:', timeSlotVector.length, 'vs', numberOfFrames);
|
|
43957
|
+
return null;
|
|
43958
|
+
}
|
|
43959
|
+
if (sliceVector) {
|
|
43960
|
+
if (!Array.isArray(sliceVector)) {
|
|
43961
|
+
console.warn('SliceVector exists but is not an array. Expected length:', numberOfFrames);
|
|
43962
|
+
return null;
|
|
43963
|
+
}
|
|
43964
|
+
if (sliceVector.length !== numberOfFrames ||
|
|
43965
|
+
sliceVector.some((val) => val === undefined)) {
|
|
43966
|
+
console.warn('SliceVector exists but has invalid length or undefined entries. Expected length:', numberOfFrames, 'Actual length:', sliceVector.length);
|
|
43967
|
+
return null;
|
|
43968
|
+
}
|
|
43969
|
+
}
|
|
43970
|
+
const timeSlotGroups = new Map();
|
|
43971
|
+
for (let frameIndex = 0; frameIndex < numberOfFrames; frameIndex++) {
|
|
43972
|
+
const timeSlot = timeSlotVector[frameIndex];
|
|
43973
|
+
const sliceIndex = sliceVector?.[frameIndex] ?? frameIndex;
|
|
43974
|
+
if (!timeSlotGroups.has(timeSlot)) {
|
|
43975
|
+
timeSlotGroups.set(timeSlot, []);
|
|
43976
|
+
}
|
|
43977
|
+
timeSlotGroups.get(timeSlot).push({ frameIndex, sliceIndex });
|
|
43978
|
+
}
|
|
43979
|
+
const sortedTimeSlots = Array.from(timeSlotGroups.keys()).sort((a, b) => a - b);
|
|
43980
|
+
const imageIdGroups = sortedTimeSlots.map((timeSlot) => {
|
|
43981
|
+
const frames = timeSlotGroups.get(timeSlot);
|
|
43982
|
+
frames.sort((a, b) => a.sliceIndex - b.sliceIndex);
|
|
43983
|
+
return frames.map((frame) => generateFrameImageId(baseImageId, frame.frameIndex + 1));
|
|
43984
|
+
});
|
|
43985
|
+
const expectedSlicesPerTimeSlot = numberOfSlices || imageIdGroups[0]?.length;
|
|
43986
|
+
const allGroupsHaveSameLength = imageIdGroups.every((group) => group.length === expectedSlicesPerTimeSlot);
|
|
43987
|
+
if (!allGroupsHaveSameLength) {
|
|
43988
|
+
console.warn('Multiframe 4D split resulted in uneven time slot groups. Expected', expectedSlicesPerTimeSlot, 'slices per time slot.');
|
|
43989
|
+
}
|
|
43990
|
+
return {
|
|
43991
|
+
imageIdGroups,
|
|
43992
|
+
splittingTag: 'TimeSlotVector',
|
|
43993
|
+
};
|
|
43994
|
+
}
|
|
43737
43995
|
const groupBy = (array, key) => {
|
|
43738
43996
|
return array.reduce((rv, x) => {
|
|
43739
43997
|
(rv[x[key]] = rv[x[key]] || []).push(x);
|
|
@@ -43855,6 +44113,10 @@ function getPetFrameReferenceTime(imageId) {
|
|
|
43855
44113
|
return moduleInfo ? moduleInfo['frameReferenceTime'] : 0;
|
|
43856
44114
|
}
|
|
43857
44115
|
function splitImageIdsBy4DTags(imageIds) {
|
|
44116
|
+
const multiframeResult = handleMultiframe4D(imageIds);
|
|
44117
|
+
if (multiframeResult) {
|
|
44118
|
+
return multiframeResult;
|
|
44119
|
+
}
|
|
43858
44120
|
const positionGroups = getIPPGroups(imageIds);
|
|
43859
44121
|
if (!positionGroups) {
|
|
43860
44122
|
return { imageIdGroups: [imageIds], splittingTag: null };
|
|
@@ -43895,6 +44157,7 @@ function splitImageIdsBy4DTags(imageIds) {
|
|
|
43895
44157
|
}
|
|
43896
44158
|
/* harmony default export */ const utilities_splitImageIdsBy4DTags = (splitImageIdsBy4DTags);
|
|
43897
44159
|
|
|
44160
|
+
|
|
43898
44161
|
;// ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getDynamicVolumeInfo.js
|
|
43899
44162
|
|
|
43900
44163
|
function getDynamicVolumeInfo(imageIds) {
|
|
@@ -45162,7 +45425,7 @@ function toLowHighRange(windowWidth, windowCenter, voiLUTFunction = _enums_VOILU
|
|
|
45162
45425
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
45163
45426
|
/* harmony export */ r: () => (/* binding */ version)
|
|
45164
45427
|
/* harmony export */ });
|
|
45165
|
-
const version = '4.
|
|
45428
|
+
const version = '4.15.2';
|
|
45166
45429
|
|
|
45167
45430
|
|
|
45168
45431
|
/***/ }),
|
|
@@ -86370,7 +86633,7 @@ const detectionOptions = {
|
|
|
86370
86633
|
}
|
|
86371
86634
|
});
|
|
86372
86635
|
;// ../../i18n/package.json
|
|
86373
|
-
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.12.0-beta.
|
|
86636
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.12.0-beta.115"}');
|
|
86374
86637
|
;// ../../i18n/src/utils.js
|
|
86375
86638
|
const languagesMap = {
|
|
86376
86639
|
ar: 'Arabic',
|
|
@@ -391721,7 +391984,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
|
391721
391984
|
/******/ // This function allow to reference async chunks
|
|
391722
391985
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
391723
391986
|
/******/ // return url for filenames based on template
|
|
391724
|
-
/******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"
|
|
391987
|
+
/******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"6a969322aa9a2819a00d","147":"85a9ed9fd123f57f23a6","213":"972f7d138a5ccedd2ebe","572":"87769c9338f2425c7e65","732":"6978ac30a1e36abf06db","1403":"07faca348a17d5196684","1459":"f95395ba0842cdb55872","1608":"0687c661f1c9edfb3b8a","1730":"2d640ae38d6daaf94bad","1927":"3050588e95f43cf57cdd","1933":"4aa316f1107dc4fba61d","2007":"1938b79f9d6db363528a","2018":"4b5535def5790b39b4ef","2108":"e84aa8d858d8c4f2413e","2424":"6d521c39961d6534b624","2591":"6537b857138d8465d410","2701":"12bd01a80a9f8ea4cd94","3054":"d4e40a8018d2698b072e","3081":"0eb28da956e1adc92769","3343":"d7578ce8f75d158c0bab","3353":"9d3e114b02d6fbbd927f","3461":"ae61e218788c806786a6","3584":"318f292fda0d5e1f54df","3694":"85de00d380fec20ac4ac","4019":"9f338ce1c5ae27f6eab5","4202":"5a0f8e4004c5d8a68548","4775":"61505e4164f4c8fb43bd","4819":"0d1374b815eab24b5e36","5028":"af3b3976f082fd2ea752","5261":"6e1a017f8f1027557f5b","5400":"c1c101c5b66a1667bdfd","5457":"ff5bac682c54abd38847","5462":"21beddaca145b7465c72","5485":"ab20c9303bf0ad373a0e","5802":"aed34ddbad09f03edefe","6027":"e3877fc3c30d5034ef45","6163":"acd5a50004e160b9e1de","6939":"41fbdef87597b5172ec6","7159":"a5991a5d4f0dd8f1c95f","7412":"3c1ced74bcd0c83da9fb","7431":"d772d0b75ef6dc75acfc","7639":"5ac65cc1b14ab07e3393","8094":"5c44190a325ac23e3e5c","8305":"b4b3fb49e18e0c1fb920","8558":"270e7f151717f17853c4","8583":"f69048e5ccf36a31d5c1","9195":"67370bcce2b967affbcb","9845":"255e7c7f7a88193b4e47","9862":"2763343cffe86fcafa33","9927":"dc2207f374d1b8cc50db"}[chunkId] + ".js";
|
|
391725
391988
|
/******/ };
|
|
391726
391989
|
/******/ })();
|
|
391727
391990
|
/******/
|
package/dist/{compute.bundle.9d2a75c300c39d48be90.js → compute.bundle.85de00d380fec20ac4ac.js}
RENAMED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
/******/ __webpack_require__.x = () => {
|
|
45
45
|
/******/ // Load entry module and return exports
|
|
46
46
|
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
|
47
|
-
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [4019,5400,6354,
|
|
47
|
+
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [4019,5400,6354,4410,2842], () => (__webpack_require__(82487)))
|
|
48
48
|
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
|
49
49
|
/******/ return __webpack_exports__;
|
|
50
50
|
/******/ };
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
|
137
137
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
138
138
|
/******/ // return url for filenames based on template
|
|
139
|
-
/******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"2842":"
|
|
139
|
+
/******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"2842":"323078a1185dc9a58ac7","3694":"85de00d380fec20ac4ac","4019":"9f338ce1c5ae27f6eab5","4410":"09d2d3bfb23511a9a7d4","5400":"c1c101c5b66a1667bdfd","6354":"c387737dc09c9cab4ff2"}[chunkId] + ".js";
|
|
140
140
|
/******/ };
|
|
141
141
|
/******/ })();
|
|
142
142
|
/******/
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
/******/ (() => {
|
|
238
238
|
/******/ var next = __webpack_require__.x;
|
|
239
239
|
/******/ __webpack_require__.x = () => {
|
|
240
|
-
/******/ return Promise.all([4019,5400,6354,
|
|
240
|
+
/******/ return Promise.all([4019,5400,6354,4410,2842].map(__webpack_require__.e, __webpack_require__)).then(next);
|
|
241
241
|
/******/ };
|
|
242
242
|
/******/ })();
|
|
243
243
|
/******/
|
package/dist/index.html
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
return import(moduleId);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.
|
|
6
|
+
window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.41cea80449abee3ded4a.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
|
package/dist/{polySeg.bundle.1cc6ecabd5fb8ab1d99c.js → polySeg.bundle.87769c9338f2425c7e65.js}
RENAMED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
/******/ __webpack_require__.x = () => {
|
|
45
45
|
/******/ // Load entry module and return exports
|
|
46
46
|
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
|
47
|
-
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [4019,3584,6354,
|
|
47
|
+
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [4019,3584,6354,4410,5549], () => (__webpack_require__(27862)))
|
|
48
48
|
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
|
49
49
|
/******/ return __webpack_exports__;
|
|
50
50
|
/******/ };
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
|
137
137
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
138
138
|
/******/ // return url for filenames based on template
|
|
139
|
-
/******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3584":"
|
|
139
|
+
/******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3584":"318f292fda0d5e1f54df","3694":"85de00d380fec20ac4ac","4019":"9f338ce1c5ae27f6eab5","4410":"09d2d3bfb23511a9a7d4","5549":"64c0f91bbed858352e1a","6354":"c387737dc09c9cab4ff2","7758":"c8d106364298e7d288f0"}[chunkId] + ".js";
|
|
140
140
|
/******/ };
|
|
141
141
|
/******/ })();
|
|
142
142
|
/******/
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
/******/ (() => {
|
|
238
238
|
/******/ var next = __webpack_require__.x;
|
|
239
239
|
/******/ __webpack_require__.x = () => {
|
|
240
|
-
/******/ return Promise.all([4019,3584,6354,
|
|
240
|
+
/******/ return Promise.all([4019,3584,6354,4410,5549].map(__webpack_require__.e, __webpack_require__)).then(next);
|
|
241
241
|
/******/ };
|
|
242
242
|
/******/ })();
|
|
243
243
|
/******/
|