@ohif/app 3.9.0-beta.76 → 3.9.0-beta.78
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/{1169.bundle.a3d3d310f1d8d7e335bf.js → 1169.bundle.d32f38ab5aa329346850.js} +46 -106
- package/dist/{1202.bundle.1468f0e71fea0c593081.js → 1202.bundle.55f140afb05e1ad5512c.js} +503 -153
- package/dist/{2568.css → 1540.css} +1 -0
- package/dist/{1994.bundle.d347a831c1be751d0627.js → 1994.bundle.083fb36bc0648f2dbda6.js} +3 -3
- package/dist/{9824.bundle.e16a5ef35eedfa74b3be.js → 2119.bundle.3446480f91f1200cd45c.js} +4 -4
- package/dist/{9824.css → 2119.css} +1 -0
- package/dist/{2650.bundle.1f7d90198b9e361dfb9c.js → 2650.bundle.feb3b241748314884ae4.js} +57 -35
- package/dist/{3117.bundle.c83d0f403d17104a7c4c.js → 3117.bundle.463d5fa4671a93939d36.js} +8 -7
- package/dist/{4210.bundle.fb376c67d110f8177eea.js → 4210.bundle.38eb5056ac41a0b04d21.js} +2 -2
- package/dist/{4842.bundle.619edd60983634d9f8dd.js → 4842.bundle.0427b8aa1b52aa050ed2.js} +12 -8
- package/dist/{5888.bundle.91227a2efe569869fdd0.js → 5888.bundle.ebca6329037cf353968f.js} +14 -7
- package/dist/{2417.bundle.4a0334c8c4047005979e.js → 5898.bundle.be696e0b355efc1c7f05.js} +1947 -1
- package/dist/{2281.bundle.216a0d86eaed7f4870ae.js → 655.bundle.28f107410332c62993a3.js} +170 -66
- package/dist/{6591.bundle.ace15b11ac7df3edf1bb.js → 6591.bundle.92a28f98c3f45ac3b3f1.js} +15 -1
- package/dist/{7502.bundle.abf1ade64f101ba01596.js → 7502.bundle.550aee57ecd221eab7c1.js} +4 -6
- package/dist/{3424.bundle.1b6101d721148c04242b.js → 79.bundle.b03daeeef3e6faf9dca3.js} +5 -47
- package/dist/{8993.bundle.256bb3c84d2564a5f3cf.js → 8993.bundle.23cd5f8560800a97d798.js} +39 -32
- package/dist/{2065.bundle.5d8f4c26b1fa393e26a4.js → 8999.bundle.e23beb310b14ca9ded76.js} +13 -133
- package/dist/{9579.bundle.7212d7a737a71bb61502.js → 9579.bundle.f9c9be0c5ab6cddbde3d.js} +8 -7
- package/dist/{5516.bundle.074fac92088b103bf0e3.js → 962.bundle.04afab064299df16f869.js} +408 -179
- package/dist/app-config.js +1 -0
- package/dist/{app.bundle.016cbb7783086e131b26.js → app.bundle.53faac5b01b67714fad2.js} +658 -352
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.40b9a8c9006bb15691ee.js → polySeg.bundle.0a70e65fe89169ec7508.js} +1 -1
- package/dist/{suv-peak-worker.bundle.a70e70b9ef87c18b896c.js → suv-peak-worker.bundle.54d68bc1808ad3d77994.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- package/dist/7604.bundle.42d3f08efb3a9eae4581.js +0 -1950
- package/dist/{1498.bundle.d8f5281952d09c57ef87.js → 1498.bundle.a2d05ac1f27d0c2d2c9f.js} +0 -0
- package/dist/{153.bundle.35f9f8c81db7a40221cf.js → 153.bundle.3ba838ef3c08a266ae35.js} +0 -0
- package/dist/{2791.bundle.29069810b8cf85d6aa0f.js → 2791.bundle.cfa27e4347069ab301b7.js} +0 -0
- package/dist/{3497.bundle.a04a2444975bf50fddf8.js → 3497.bundle.512610422a2862584c55.js} +0 -0
- package/dist/{3962.bundle.9a463bda1035e46ebbba.js → 3962.bundle.31bfadcde7f5a2dd8932.js} +0 -0
- package/dist/{4353.bundle.ac8577aa909c2c56db16.js → 4353.bundle.c13a0c72c607850ea3c0.js} +0 -0
- package/dist/{4978.bundle.19b43e91a7fe302599c6.js → 4978.bundle.655344cfd52d9f0641e5.js} +0 -0
- package/dist/{5793.bundle.eed3fe9019c31999efff.js → 5793.bundle.d1b4e887564bbb98752d.js} +0 -0
- package/dist/{6904.bundle.27abf08c0f2e4fe5e06d.js → 6904.bundle.da0d83fcd48a48cfaac1.js} +0 -0
- package/dist/{7246.bundle.11a6fa77c63c0df329bc.js → 7246.bundle.f1cbdd5ec9387bb6f8fe.js} +0 -0
- package/dist/{7360.bundle.114b1294460b2d9bfeb9.js → 7360.bundle.d0bdb43af1494bccc433.js} +0 -0
- package/dist/{7376.bundle.e9fea4789985d4409171.js → 7376.bundle.d6b445de2d468ab2e8b3.js} +0 -0
- package/dist/{3424.css → 79.css} +1 -1
- /package/dist/{7913.bundle.dc45c449f89985c7dd7c.js → 7913.bundle.353baac2e2a5b4bb330d.js} +0 -0
- /package/dist/{818.bundle.b64fae7e982e16a82ca2.js → 818.bundle.b6027359846cc90e32ff.js} +0 -0
- /package/dist/{8944.bundle.a3cecebcc7b2ca3c7259.js → 8944.bundle.29926bb653a467c7e7d8.js} +0 -0
|
@@ -10047,8 +10047,8 @@ class OrientationMarkerTool extends _base__WEBPACK_IMPORTED_MODULE_7__/* .BaseTo
|
|
|
10047
10047
|
overlayConfiguration: {
|
|
10048
10048
|
[OrientationMarkerTool.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE]: {
|
|
10049
10049
|
faceProperties: {
|
|
10050
|
-
xPlus: { text: '
|
|
10051
|
-
xMinus: { text: '
|
|
10050
|
+
xPlus: { text: 'L', faceColor: '#ffff00', faceRotation: 90 },
|
|
10051
|
+
xMinus: { text: 'R', faceColor: '#ffff00', faceRotation: 270 },
|
|
10052
10052
|
yPlus: {
|
|
10053
10053
|
text: 'P',
|
|
10054
10054
|
faceColor: '#00ffff',
|
|
@@ -12186,7 +12186,10 @@ class StackScrollMouseWheelTool extends _base__WEBPACK_IMPORTED_MODULE_1__/* .Ba
|
|
|
12186
12186
|
const { invert } = this.configuration;
|
|
12187
12187
|
const { viewport } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
12188
12188
|
const delta = direction * (invert ? -1 : 1);
|
|
12189
|
-
|
|
12189
|
+
let volumeId;
|
|
12190
|
+
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
|
|
12191
|
+
volumeId = this.getTargetVolumeId(viewport);
|
|
12192
|
+
}
|
|
12190
12193
|
(0,_utilities_scroll__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(viewport, {
|
|
12191
12194
|
delta,
|
|
12192
12195
|
debounceLoading: this.configuration.debounceIfNotLoaded,
|
|
@@ -12869,7 +12872,7 @@ class WindowLevelTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseTool */
|
|
|
12869
12872
|
scalarData = imageData.getScalarData();
|
|
12870
12873
|
}
|
|
12871
12874
|
else {
|
|
12872
|
-
scalarData = imageData.getPointData().getScalars();
|
|
12875
|
+
scalarData = imageData.getPointData().getScalars().getData();
|
|
12873
12876
|
}
|
|
12874
12877
|
if (dimensions[2] !== 1) {
|
|
12875
12878
|
return this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
|
|
@@ -12924,8 +12927,8 @@ class ZoomTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .BaseTool */ .ml {
|
|
|
12924
12927
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
12925
12928
|
configuration: {
|
|
12926
12929
|
zoomToCenter: false,
|
|
12927
|
-
minZoomScale: 0.
|
|
12928
|
-
maxZoomScale:
|
|
12930
|
+
minZoomScale: 0.001,
|
|
12931
|
+
maxZoomScale: 3000,
|
|
12929
12932
|
pinchToZoom: true,
|
|
12930
12933
|
pan: true,
|
|
12931
12934
|
invert: false,
|
|
@@ -22460,11 +22463,6 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
22460
22463
|
this.configuration.preventHandleOutsideImage) {
|
|
22461
22464
|
(0,stateManagement/* removeAnnotation */._x)(annotation.annotationUID);
|
|
22462
22465
|
}
|
|
22463
|
-
const targetId = this.getTargetId(enabledElement.viewport);
|
|
22464
|
-
const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
22465
|
-
if (this.configuration.calculatePointsInsideVolume) {
|
|
22466
|
-
this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
|
|
22467
|
-
}
|
|
22468
22466
|
(0,triggerAnnotationRenderForViewportIds/* default */.Z)(enabledElement.renderingEngine, viewportIdsToRender);
|
|
22469
22467
|
if (newAnnotation) {
|
|
22470
22468
|
(0,state/* triggerAnnotationCompleted */.F$)(annotation);
|
|
@@ -22499,9 +22497,12 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
22499
22497
|
let endCoord = endCoordinate;
|
|
22500
22498
|
if (Array.isArray(startCoordinate)) {
|
|
22501
22499
|
startCoord = this._getCoordinateForViewplaneNormal(startCoord, viewplaneNormal);
|
|
22500
|
+
data.startCoordinate = startCoord;
|
|
22501
|
+
data.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(viewplaneNormal)] = startCoord;
|
|
22502
22502
|
}
|
|
22503
22503
|
if (Array.isArray(endCoordinate)) {
|
|
22504
22504
|
endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
|
|
22505
|
+
data.endCoordinate = endCoord;
|
|
22505
22506
|
}
|
|
22506
22507
|
const roundedStartCoord = esm.utilities.roundToPrecision(startCoord);
|
|
22507
22508
|
const roundedEndCoord = esm.utilities.roundToPrecision(endCoord);
|
|
@@ -22701,6 +22702,9 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
22701
22702
|
const targetId = this.getTargetId(viewport);
|
|
22702
22703
|
const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
22703
22704
|
this._computeProjectionPoints(annotation, imageVolume);
|
|
22705
|
+
if (this.configuration.calculatePointsInsideVolume) {
|
|
22706
|
+
this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
|
|
22707
|
+
}
|
|
22704
22708
|
annotation.invalidated = false;
|
|
22705
22709
|
(0,state/* triggerAnnotationModified */.hg)(annotation, viewport.element);
|
|
22706
22710
|
return cachedStats;
|
|
@@ -23456,11 +23460,6 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
|
|
|
23456
23460
|
this.configuration.preventHandleOutsideImage) {
|
|
23457
23461
|
(0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__.removeAnnotation)(annotation.annotationUID);
|
|
23458
23462
|
}
|
|
23459
|
-
const targetId = this.getTargetId(enabledElement.viewport);
|
|
23460
|
-
const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
23461
|
-
if (this.configuration.calculatePointsInsideVolume) {
|
|
23462
|
-
this._computePointsInsideVolume(annotation, imageVolume, targetId, enabledElement);
|
|
23463
|
-
}
|
|
23464
23463
|
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)(enabledElement.renderingEngine, viewportIdsToRender);
|
|
23465
23464
|
if (newAnnotation) {
|
|
23466
23465
|
(0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_12__/* .triggerAnnotationCompleted */ .F$)(annotation);
|
|
@@ -23495,30 +23494,35 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
|
|
|
23495
23494
|
const canvasCorners = (0,_utilities_math_circle__WEBPACK_IMPORTED_MODULE_14__/* .getCanvasCircleCorners */ .$)(canvasCoordinates);
|
|
23496
23495
|
const focalPoint = viewport.getCamera().focalPoint;
|
|
23497
23496
|
const viewplaneNormal = viewport.getCamera().viewPlaneNormal;
|
|
23498
|
-
let
|
|
23499
|
-
let
|
|
23497
|
+
let tempStartCoordinate = startCoordinate;
|
|
23498
|
+
let tempEndCoordinate = endCoordinate;
|
|
23500
23499
|
if (Array.isArray(startCoordinate)) {
|
|
23501
|
-
|
|
23500
|
+
tempStartCoordinate = this._getCoordinateForViewplaneNormal(tempStartCoordinate, viewplaneNormal);
|
|
23501
|
+
data.startCoordinate = tempStartCoordinate;
|
|
23502
23502
|
}
|
|
23503
23503
|
if (Array.isArray(endCoordinate)) {
|
|
23504
|
-
|
|
23505
|
-
|
|
23506
|
-
|
|
23507
|
-
const
|
|
23508
|
-
const
|
|
23509
|
-
const
|
|
23510
|
-
|
|
23511
|
-
|
|
23504
|
+
tempEndCoordinate = this._getCoordinateForViewplaneNormal(tempEndCoordinate, viewplaneNormal);
|
|
23505
|
+
data.endCoordinate = tempEndCoordinate;
|
|
23506
|
+
}
|
|
23507
|
+
const roundedStartCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(data.startCoordinate);
|
|
23508
|
+
const roundedEndCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(data.endCoordinate);
|
|
23509
|
+
const cameraCoordinate = this._getCoordinateForViewplaneNormal(focalPoint, viewplaneNormal);
|
|
23510
|
+
const roundedCameraCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(cameraCoordinate);
|
|
23511
|
+
if (roundedCameraCoordinate <
|
|
23512
|
+
Math.min(roundedStartCoordinate, roundedEndCoordinate) ||
|
|
23513
|
+
roundedCameraCoordinate >
|
|
23514
|
+
Math.max(roundedStartCoordinate, roundedEndCoordinate)) {
|
|
23512
23515
|
continue;
|
|
23513
23516
|
}
|
|
23514
|
-
|
|
23515
|
-
this._throttledCalculateCachedStats(annotation, enabledElement);
|
|
23516
|
-
}
|
|
23517
|
-
const middleCoord = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision((startCoord + endCoord) / 2);
|
|
23517
|
+
const middleCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision((data.startCoordinate + data.endCoordinate) / 2);
|
|
23518
23518
|
let isMiddleSlice = false;
|
|
23519
|
-
if (
|
|
23519
|
+
if (roundedCameraCoordinate === middleCoordinate) {
|
|
23520
23520
|
isMiddleSlice = true;
|
|
23521
23521
|
}
|
|
23522
|
+
data.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(viewplaneNormal)] = middleCoordinate;
|
|
23523
|
+
if (annotation.invalidated) {
|
|
23524
|
+
this._throttledCalculateCachedStats(annotation, enabledElement);
|
|
23525
|
+
}
|
|
23522
23526
|
if (!viewport.getRenderingEngine()) {
|
|
23523
23527
|
console.warn('Rendering Engine has been destroyed');
|
|
23524
23528
|
return renderStatus;
|
|
@@ -23739,6 +23743,9 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
|
|
|
23739
23743
|
const targetId = this.getTargetId(viewport);
|
|
23740
23744
|
const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
23741
23745
|
this._computeProjectionPoints(annotation, imageVolume);
|
|
23746
|
+
if (this.configuration.calculatePointsInsideVolume) {
|
|
23747
|
+
this._computePointsInsideVolume(annotation, imageVolume, targetId, enabledElement);
|
|
23748
|
+
}
|
|
23742
23749
|
annotation.invalidated = false;
|
|
23743
23750
|
(0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_12__/* .triggerAnnotationModified */ .hg)(annotation, viewport.element);
|
|
23744
23751
|
return cachedStats;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[8999],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 38999:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -2183,115 +2183,6 @@ function getCommandsModule({
|
|
|
2183
2183
|
defaultContext: 'MICROSCOPY'
|
|
2184
2184
|
};
|
|
2185
2185
|
}
|
|
2186
|
-
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/DicomMicroscopySopClassHandler.js
|
|
2187
|
-
|
|
2188
|
-
const {
|
|
2189
|
-
utils
|
|
2190
|
-
} = core_src["default"];
|
|
2191
|
-
const SOP_CLASS_UIDS = {
|
|
2192
|
-
VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.6'
|
|
2193
|
-
};
|
|
2194
|
-
const SOPClassHandlerId = '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySopClassHandler';
|
|
2195
|
-
function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
|
|
2196
|
-
// If the series has no instances, stop here
|
|
2197
|
-
if (!instances || !instances.length) {
|
|
2198
|
-
throw new Error('No instances were provided');
|
|
2199
|
-
}
|
|
2200
|
-
const instance = instances[0];
|
|
2201
|
-
let singleFrameInstance = instance;
|
|
2202
|
-
let currentFrames = +singleFrameInstance.NumberOfFrames || 1;
|
|
2203
|
-
for (const instanceI of instances) {
|
|
2204
|
-
const framesI = +instanceI.NumberOfFrames || 1;
|
|
2205
|
-
if (framesI < currentFrames) {
|
|
2206
|
-
singleFrameInstance = instanceI;
|
|
2207
|
-
currentFrames = framesI;
|
|
2208
|
-
}
|
|
2209
|
-
}
|
|
2210
|
-
let imageIdForThumbnail = null;
|
|
2211
|
-
if (singleFrameInstance) {
|
|
2212
|
-
if (currentFrames == 1) {
|
|
2213
|
-
// Not all DICOM server implementations support thumbnail service,
|
|
2214
|
-
// So if we have a single-frame image, we will prefer it.
|
|
2215
|
-
imageIdForThumbnail = singleFrameInstance.imageId;
|
|
2216
|
-
}
|
|
2217
|
-
if (!imageIdForThumbnail) {
|
|
2218
|
-
// use the thumbnail service provided by DICOM server
|
|
2219
|
-
const dataSource = extensionManager.getActiveDataSource()[0];
|
|
2220
|
-
imageIdForThumbnail = dataSource.getImageIdsForInstance({
|
|
2221
|
-
instance: singleFrameInstance,
|
|
2222
|
-
thumbnail: true
|
|
2223
|
-
});
|
|
2224
|
-
}
|
|
2225
|
-
}
|
|
2226
|
-
const {
|
|
2227
|
-
FrameOfReferenceUID,
|
|
2228
|
-
SeriesDescription,
|
|
2229
|
-
ContentDate,
|
|
2230
|
-
ContentTime,
|
|
2231
|
-
SeriesNumber,
|
|
2232
|
-
StudyInstanceUID,
|
|
2233
|
-
SeriesInstanceUID,
|
|
2234
|
-
SOPInstanceUID,
|
|
2235
|
-
SOPClassUID
|
|
2236
|
-
} = instance;
|
|
2237
|
-
instances = instances.map(inst => {
|
|
2238
|
-
// NOTE: According to DICOM standard a series should have a FrameOfReferenceUID
|
|
2239
|
-
// When the Microscopy file was built by certain tool from multiple image files,
|
|
2240
|
-
// each instance's FrameOfReferenceUID is sometimes different.
|
|
2241
|
-
// Even though this means the file was not well formatted DICOM VL Whole Slide Microscopy Image,
|
|
2242
|
-
// the case is so often, so let's override this value manually here.
|
|
2243
|
-
//
|
|
2244
|
-
// https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.4.html#sect_C.7.4.1.1.1
|
|
2245
|
-
|
|
2246
|
-
inst.FrameOfReferenceUID = instance.FrameOfReferenceUID;
|
|
2247
|
-
return inst;
|
|
2248
|
-
});
|
|
2249
|
-
const othersFrameOfReferenceUID = instances.filter(v => v).map(inst => inst.FrameOfReferenceUID).filter((value, index, array) => array.indexOf(value) === index);
|
|
2250
|
-
if (othersFrameOfReferenceUID.length > 1) {
|
|
2251
|
-
console.warn('Expected FrameOfReferenceUID of difference instances within a series to be the same, found multiple different values', othersFrameOfReferenceUID);
|
|
2252
|
-
}
|
|
2253
|
-
const displaySet = {
|
|
2254
|
-
plugin: 'microscopy',
|
|
2255
|
-
Modality: 'SM',
|
|
2256
|
-
altImageText: 'Microscopy',
|
|
2257
|
-
displaySetInstanceUID: utils.guid(),
|
|
2258
|
-
SOPInstanceUID,
|
|
2259
|
-
SeriesInstanceUID,
|
|
2260
|
-
StudyInstanceUID,
|
|
2261
|
-
FrameOfReferenceUID,
|
|
2262
|
-
SOPClassHandlerId,
|
|
2263
|
-
SOPClassUID,
|
|
2264
|
-
SeriesDescription: SeriesDescription || 'Microscopy Data',
|
|
2265
|
-
// Map ContentDate/Time to SeriesTime for series list sorting.
|
|
2266
|
-
SeriesDate: ContentDate,
|
|
2267
|
-
SeriesTime: ContentTime,
|
|
2268
|
-
SeriesNumber,
|
|
2269
|
-
firstInstance: singleFrameInstance,
|
|
2270
|
-
// top level instance in the image Pyramid
|
|
2271
|
-
instance,
|
|
2272
|
-
numImageFrames: 0,
|
|
2273
|
-
numInstances: 1,
|
|
2274
|
-
imageIdForThumbnail,
|
|
2275
|
-
// thumbnail image
|
|
2276
|
-
others: instances,
|
|
2277
|
-
// all other level instances in the image Pyramid
|
|
2278
|
-
othersFrameOfReferenceUID
|
|
2279
|
-
};
|
|
2280
|
-
return [displaySet];
|
|
2281
|
-
}
|
|
2282
|
-
function getDicomMicroscopySopClassHandler({
|
|
2283
|
-
servicesManager,
|
|
2284
|
-
extensionManager
|
|
2285
|
-
}) {
|
|
2286
|
-
const getDisplaySetsFromSeries = instances => {
|
|
2287
|
-
return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
2288
|
-
};
|
|
2289
|
-
return {
|
|
2290
|
-
name: 'DicomMicroscopySopClassHandler',
|
|
2291
|
-
sopClassUids: [SOP_CLASS_UIDS.VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE],
|
|
2292
|
-
getDisplaySetsFromSeries
|
|
2293
|
-
};
|
|
2294
|
-
}
|
|
2295
2186
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dcmCodeValues.js
|
|
2296
2187
|
const DCM_CODE_VALUES = {
|
|
2297
2188
|
IMAGING_MEASUREMENTS: '126010',
|
|
@@ -2485,12 +2376,12 @@ function getSourceDisplaySet(allDisplaySets, microscopySRDisplaySet) {
|
|
|
2485
2376
|
|
|
2486
2377
|
|
|
2487
2378
|
const {
|
|
2488
|
-
utils
|
|
2379
|
+
utils
|
|
2489
2380
|
} = core_src["default"];
|
|
2490
|
-
const
|
|
2381
|
+
const SOP_CLASS_UIDS = {
|
|
2491
2382
|
COMPREHENSIVE_3D_SR: '1.2.840.10008.5.1.4.1.1.88.34'
|
|
2492
2383
|
};
|
|
2493
|
-
const
|
|
2384
|
+
const SOPClassHandlerId = '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySRSopClassHandler';
|
|
2494
2385
|
function _getReferencedFrameOfReferenceUID(naturalizedDataset) {
|
|
2495
2386
|
const {
|
|
2496
2387
|
ContentSequence
|
|
@@ -2500,7 +2391,7 @@ function _getReferencedFrameOfReferenceUID(naturalizedDataset) {
|
|
|
2500
2391
|
const imageRegionContentItem = toArray(firstMeasurementGroupContentItem.ContentSequence).find(ci => ci.ConceptNameCodeSequence.CodeValue === dcmCodeValues.IMAGE_REGION);
|
|
2501
2392
|
return imageRegionContentItem.ReferencedFrameOfReferenceUID;
|
|
2502
2393
|
}
|
|
2503
|
-
function
|
|
2394
|
+
function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager) {
|
|
2504
2395
|
// If the series has no instances, stop here
|
|
2505
2396
|
if (!instances || !instances.length) {
|
|
2506
2397
|
throw new Error('No instances were provided');
|
|
@@ -2530,12 +2421,12 @@ function DicomMicroscopySRSopClassHandler_getDisplaySetsFromSeries(instances, se
|
|
|
2530
2421
|
plugin: 'microscopy',
|
|
2531
2422
|
Modality: 'SR',
|
|
2532
2423
|
altImageText: 'Microscopy SR',
|
|
2533
|
-
displaySetInstanceUID:
|
|
2424
|
+
displaySetInstanceUID: utils.guid(),
|
|
2534
2425
|
SOPInstanceUID,
|
|
2535
2426
|
SeriesInstanceUID,
|
|
2536
2427
|
StudyInstanceUID,
|
|
2537
2428
|
ReferencedFrameOfReferenceUID,
|
|
2538
|
-
SOPClassHandlerId
|
|
2429
|
+
SOPClassHandlerId,
|
|
2539
2430
|
SOPClassUID,
|
|
2540
2431
|
SeriesDescription,
|
|
2541
2432
|
// Map the content date/time to the series date/time, these are only used for filtering.
|
|
@@ -2572,11 +2463,11 @@ function getDicomMicroscopySRSopClassHandler({
|
|
|
2572
2463
|
extensionManager
|
|
2573
2464
|
}) {
|
|
2574
2465
|
const getDisplaySetsFromSeries = instances => {
|
|
2575
|
-
return
|
|
2466
|
+
return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
2576
2467
|
};
|
|
2577
2468
|
return {
|
|
2578
2469
|
name: 'DicomMicroscopySRSopClassHandler',
|
|
2579
|
-
sopClassUids: [
|
|
2470
|
+
sopClassUids: [SOP_CLASS_UIDS.COMPREHENSIVE_3D_SR],
|
|
2580
2471
|
getDisplaySetsFromSeries
|
|
2581
2472
|
};
|
|
2582
2473
|
}
|
|
@@ -2596,9 +2487,8 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
2596
2487
|
|
|
2597
2488
|
|
|
2598
2489
|
|
|
2599
|
-
|
|
2600
2490
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2601
|
-
return Promise.all(/* import() */[__webpack_require__.e(6904), __webpack_require__.e(818), __webpack_require__.e(3497), __webpack_require__.e(8993), __webpack_require__.e(
|
|
2491
|
+
return Promise.all(/* import() */[__webpack_require__.e(6904), __webpack_require__.e(818), __webpack_require__.e(3497), __webpack_require__.e(8993), __webpack_require__.e(5898), __webpack_require__.e(655), __webpack_require__.e(79)]).then(__webpack_require__.bind(__webpack_require__, 30365));
|
|
2602
2492
|
});
|
|
2603
2493
|
const MicroscopyViewport = props => {
|
|
2604
2494
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -2729,18 +2619,8 @@ const extension = {
|
|
|
2729
2619
|
* Each sop class handler is defined by a { name, sopClassUids, getDisplaySetsFromSeries}.
|
|
2730
2620
|
* Examples include the default sop class handler provided by the default extension
|
|
2731
2621
|
*/
|
|
2732
|
-
getSopClassHandlerModule({
|
|
2733
|
-
|
|
2734
|
-
commandsManager,
|
|
2735
|
-
extensionManager
|
|
2736
|
-
}) {
|
|
2737
|
-
return [getDicomMicroscopySopClassHandler({
|
|
2738
|
-
servicesManager,
|
|
2739
|
-
extensionManager
|
|
2740
|
-
}), getDicomMicroscopySRSopClassHandler({
|
|
2741
|
-
servicesManager,
|
|
2742
|
-
extensionManager
|
|
2743
|
-
})];
|
|
2622
|
+
getSopClassHandlerModule(params) {
|
|
2623
|
+
return [getDicomMicroscopySRSopClassHandler(params)];
|
|
2744
2624
|
},
|
|
2745
2625
|
getPanelModule: getPanelModule,
|
|
2746
2626
|
getCommandsModule: getCommandsModule
|
|
@@ -237,7 +237,7 @@ class VideoViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"]
|
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
239
|
setDataIds(imageIds, options) {
|
|
240
|
-
this.setVideo(imageIds[0], options?.viewReference?.sliceIndex || 1);
|
|
240
|
+
this.setVideo(imageIds[0], (options?.viewReference?.sliceIndex || 0) + 1);
|
|
241
241
|
}
|
|
242
242
|
setVideo(imageId, frameNumber) {
|
|
243
243
|
this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
|
|
@@ -3641,7 +3641,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
3641
3641
|
volumeLoader: () => (/* reexport */ volumeLoader)
|
|
3642
3642
|
});
|
|
3643
3643
|
|
|
3644
|
-
// UNUSED EXPORTS: ImageVolume, ProgressiveRetrieveImages, RenderingEngine, Surface, VideoViewport, Viewport, WSIViewport, canRenderFloatTextures, createVolumeActor, createVolumeMapper, getOrCreateCanvas, getShouldUseCPURendering, getShouldUseSharedArrayBuffer, imageRetrievalPoolManager, init, isCornerstoneInitialized, peerImport, registerImageLoader, requestPoolManager, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer, setVolumesForViewports
|
|
3644
|
+
// UNUSED EXPORTS: ImageVolume, ProgressiveRetrieveImages, RenderingEngine, Surface, VideoViewport, Viewport, WSIViewport, canRenderFloatTextures, createVolumeActor, createVolumeMapper, getOrCreateCanvas, getShouldUseCPURendering, getShouldUseSharedArrayBuffer, imageRetrievalPoolManager, init, isCornerstoneInitialized, peerImport, registerImageLoader, requestPoolManager, resetInitialization, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer, setVolumesForViewports
|
|
3645
3645
|
|
|
3646
3646
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
3647
3647
|
var enums = __webpack_require__(7187);
|
|
@@ -7184,11 +7184,6 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
7184
7184
|
this.configuration.preventHandleOutsideImage) {
|
|
7185
7185
|
(0,stateManagement/* removeAnnotation */._x)(annotation.annotationUID);
|
|
7186
7186
|
}
|
|
7187
|
-
const targetId = this.getTargetId(enabledElement.viewport);
|
|
7188
|
-
const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
7189
|
-
if (this.configuration.calculatePointsInsideVolume) {
|
|
7190
|
-
this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
|
|
7191
|
-
}
|
|
7192
7187
|
(0,triggerAnnotationRenderForViewportIds/* default */.Z)(enabledElement.renderingEngine, viewportIdsToRender);
|
|
7193
7188
|
if (newAnnotation) {
|
|
7194
7189
|
(0,state/* triggerAnnotationCompleted */.F$)(annotation);
|
|
@@ -7223,9 +7218,12 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
7223
7218
|
let endCoord = endCoordinate;
|
|
7224
7219
|
if (Array.isArray(startCoordinate)) {
|
|
7225
7220
|
startCoord = this._getCoordinateForViewplaneNormal(startCoord, viewplaneNormal);
|
|
7221
|
+
data.startCoordinate = startCoord;
|
|
7222
|
+
data.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(viewplaneNormal)] = startCoord;
|
|
7226
7223
|
}
|
|
7227
7224
|
if (Array.isArray(endCoordinate)) {
|
|
7228
7225
|
endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
|
|
7226
|
+
data.endCoordinate = endCoord;
|
|
7229
7227
|
}
|
|
7230
7228
|
const roundedStartCoord = esm.utilities.roundToPrecision(startCoord);
|
|
7231
7229
|
const roundedEndCoord = esm.utilities.roundToPrecision(endCoord);
|
|
@@ -7425,6 +7423,9 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
7425
7423
|
const targetId = this.getTargetId(viewport);
|
|
7426
7424
|
const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
7427
7425
|
this._computeProjectionPoints(annotation, imageVolume);
|
|
7426
|
+
if (this.configuration.calculatePointsInsideVolume) {
|
|
7427
|
+
this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
|
|
7428
|
+
}
|
|
7428
7429
|
annotation.invalidated = false;
|
|
7429
7430
|
(0,state/* triggerAnnotationModified */.hg)(annotation, viewport.element);
|
|
7430
7431
|
return cachedStats;
|