@ohif/app 3.9.0-beta.23 → 3.9.0-beta.24
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/{117.bundle.772ce244eee25d9b7316.js → 117.bundle.ba41cf7978afb629dcff.js} +16 -3
- package/dist/{164.bundle.3221590f5e6855086889.js → 164.bundle.79cc35bc3e6b792636cd.js} +16 -3
- package/dist/{236.bundle.d3a631d79ee8952e3c60.js → 236.bundle.343bcd0be60d0ae61901.js} +8 -1
- package/dist/{363.bundle.7dd957eeb0177cdb808c.js → 363.bundle.27df904aebd9be296ee9.js} +88 -91
- package/dist/{370.bundle.baa389d217c390b0e92b.js → 370.bundle.b14c810be6e912b10b5c.js} +2 -2
- package/dist/{461.bundle.b44727b0b162f4b10b5e.js → 461.bundle.2c6ec9c73b2dc2419418.js} +2 -2
- package/dist/{501.bundle.7d5003758fa3ffbb344b.js → 501.bundle.3dcc63f03d9c252a9bee.js} +135 -65
- package/dist/{717.bundle.06a976a9200c0c4fa395.js → 717.bundle.0c1736a0b34262585bbb.js} +16 -7
- package/dist/{app.bundle.cf75c45a89282dfe58a9.js → app.bundle.c083b9fd68666d817dd8.js} +149 -73
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.b0392069f29e128b4efa.js → polySeg.bundle.4dcac8ade13133f637ed.js} +1 -1
- package/dist/{suv-peak-worker.bundle.8a7a3a0ab00929f3f6fd.js → suv-peak-worker.bundle.501ee603bb303e916068.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{121.bundle.0772f52e6bec8eb92dfa.js → 121.bundle.d832c214ab421d7e90f3.js} +0 -0
- /package/dist/{129.bundle.4dd38a22e6d9f79d834e.js → 129.bundle.a95b9a51ee8d9f0abbd8.js} +0 -0
- /package/dist/{14.bundle.4aa15daa6d5a84f58826.js → 14.bundle.1fd47132c905efb09179.js} +0 -0
- /package/dist/{140.bundle.70e79ec0e0d41b05b09d.js → 140.bundle.837657eee863ea8cff5d.js} +0 -0
- /package/dist/{194.bundle.179e4233aeb2ea81728a.js → 194.bundle.f230d7f0c45926e4a6af.js} +0 -0
- /package/dist/{211.bundle.56463a11e29c6304c2f9.js → 211.bundle.dad774eca76c3a064111.js} +0 -0
- /package/dist/{218.bundle.e495b3659417ef205b05.js → 218.bundle.1e987ac1168ab893d63e.js} +0 -0
- /package/dist/{382.bundle.4c3a26805bb21e47a701.js → 382.bundle.5bb7995aeb6dcdb01392.js} +0 -0
- /package/dist/{444.bundle.dc50143843f2284792b2.js → 444.bundle.84521e5aca976d4db33b.js} +0 -0
- /package/dist/{552.bundle.64b1b393ef9ac41329ad.js → 552.bundle.164ac71f797c74bea5dd.js} +0 -0
- /package/dist/{555.bundle.4c85d276f397d7f1fb4d.js → 555.bundle.8cb01f96a16c7e4d3281.js} +0 -0
- /package/dist/{799.bundle.1e13a8cb94b834736230.js → 799.bundle.f8b2e0f36d7f79051798.js} +0 -0
- /package/dist/{806.bundle.9bcf6087464cfced7555.js → 806.bundle.540d172cb731587a612e.js} +0 -0
- /package/dist/{853.bundle.b36c9d4b53215b761167.js → 853.bundle.6f574756d9deaada7209.js} +0 -0
- /package/dist/{920.bundle.69dd8ef2300c1d97fe2c.js → 920.bundle.b7fb54439f90df91aa13.js} +0 -0
- /package/dist/{989.bundle.84fdab7bf00463e08e18.js → 989.bundle.d13657ef9448c11751e6.js} +0 -0
|
@@ -8345,9 +8345,7 @@ async function createVolumeActor(props, element, viewportId, suppressEvents = fa
|
|
|
8345
8345
|
if (numberOfComponents === 3) {
|
|
8346
8346
|
volumeActor.getProperty().setIndependentComponents(false);
|
|
8347
8347
|
}
|
|
8348
|
-
|
|
8349
|
-
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
8350
|
-
}
|
|
8348
|
+
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
8351
8349
|
if (callback) {
|
|
8352
8350
|
callback({ volumeActor, volumeId });
|
|
8353
8351
|
}
|
|
@@ -8438,21 +8436,19 @@ const PRIORITY = 0;
|
|
|
8438
8436
|
const REQUEST_TYPE = _enums__WEBPACK_IMPORTED_MODULE_3__.RequestType.Prefetch;
|
|
8439
8437
|
async function setDefaultVolumeVOI(volumeActor, imageVolume, useNativeDataType) {
|
|
8440
8438
|
let voi = getVOIFromMetadata(imageVolume);
|
|
8441
|
-
if (!voi) {
|
|
8439
|
+
if (!voi && imageVolume?.imageIds?.length) {
|
|
8442
8440
|
voi = await getVOIFromMinMax(imageVolume, useNativeDataType);
|
|
8441
|
+
voi = handlePreScaledVolume(imageVolume, voi);
|
|
8443
8442
|
}
|
|
8444
|
-
if (
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
voi = handlePreScaledVolume(imageVolume, voi);
|
|
8448
|
-
const { lower, upper } = voi;
|
|
8449
|
-
if (lower === 0 && upper === 0) {
|
|
8443
|
+
if ((voi?.lower === 0 && voi?.upper === 0) ||
|
|
8444
|
+
voi?.lower === undefined ||
|
|
8445
|
+
voi?.upper === undefined) {
|
|
8450
8446
|
return;
|
|
8451
8447
|
}
|
|
8452
8448
|
volumeActor
|
|
8453
8449
|
.getProperty()
|
|
8454
8450
|
.getRGBTransferFunction(0)
|
|
8455
|
-
.setMappingRange(lower, upper);
|
|
8451
|
+
.setMappingRange(voi.lower, voi.upper);
|
|
8456
8452
|
}
|
|
8457
8453
|
function handlePreScaledVolume(imageVolume, voi) {
|
|
8458
8454
|
const imageIds = imageVolume.imageIds;
|
|
@@ -8468,18 +8464,26 @@ function handlePreScaledVolume(imageVolume, voi) {
|
|
|
8468
8464
|
return voi;
|
|
8469
8465
|
}
|
|
8470
8466
|
function getVOIFromMetadata(imageVolume) {
|
|
8471
|
-
const { imageIds } = imageVolume;
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
const
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
?
|
|
8481
|
-
: windowCenter
|
|
8482
|
-
|
|
8467
|
+
const { imageIds, metadata } = imageVolume;
|
|
8468
|
+
let voi;
|
|
8469
|
+
if (imageIds.length) {
|
|
8470
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
8471
|
+
const imageId = imageIds[imageIdIndex];
|
|
8472
|
+
const voiLutModule = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('voiLutModule', imageId);
|
|
8473
|
+
if (voiLutModule && voiLutModule.windowWidth && voiLutModule.windowCenter) {
|
|
8474
|
+
const { windowWidth, windowCenter } = voiLutModule;
|
|
8475
|
+
voi = {
|
|
8476
|
+
windowWidth: Array.isArray(windowWidth) ? windowWidth[0] : windowWidth,
|
|
8477
|
+
windowCenter: Array.isArray(windowCenter)
|
|
8478
|
+
? windowCenter[0]
|
|
8479
|
+
: windowCenter,
|
|
8480
|
+
};
|
|
8481
|
+
}
|
|
8482
|
+
}
|
|
8483
|
+
else {
|
|
8484
|
+
voi = metadata?.voiLut?.[0];
|
|
8485
|
+
}
|
|
8486
|
+
if (voi) {
|
|
8483
8487
|
const { lower, upper } = _utilities__WEBPACK_IMPORTED_MODULE_2__.windowLevel.toLowHighRange(Number(voi.windowWidth), Number(voi.windowCenter));
|
|
8484
8488
|
return {
|
|
8485
8489
|
lower,
|
|
@@ -8542,13 +8546,13 @@ async function getVOIFromMinMax(imageVolume, useNativeDataType) {
|
|
|
8542
8546
|
}
|
|
8543
8547
|
function _getImageScalarDataFromImageVolume(imageVolume, byteOffset, bytePerPixel, voxelsPerImage) {
|
|
8544
8548
|
const { scalarData } = imageVolume;
|
|
8545
|
-
const {
|
|
8549
|
+
const { buffer } = scalarData;
|
|
8546
8550
|
if (scalarData.BYTES_PER_ELEMENT !== bytePerPixel) {
|
|
8547
8551
|
byteOffset *= scalarData.BYTES_PER_ELEMENT / bytePerPixel;
|
|
8548
8552
|
}
|
|
8549
8553
|
const TypedArray = scalarData.constructor;
|
|
8550
8554
|
const imageScalarData = new TypedArray(voxelsPerImage);
|
|
8551
|
-
const volumeBufferView = new TypedArray(
|
|
8555
|
+
const volumeBufferView = new TypedArray(buffer, byteOffset, voxelsPerImage);
|
|
8552
8556
|
imageScalarData.set(volumeBufferView);
|
|
8553
8557
|
return imageScalarData;
|
|
8554
8558
|
}
|
|
@@ -25644,23 +25648,28 @@ const isPTPrescaledWithSUV = (image) => {
|
|
|
25644
25648
|
|
|
25645
25649
|
|
|
25646
25650
|
|
|
25647
|
-
function renderToCanvasGPU(canvas,
|
|
25651
|
+
function renderToCanvasGPU(canvas, imageOrVolume, modality = undefined, renderingEngineId = '_thumbnails', viewportOptions = {
|
|
25652
|
+
displayArea: { imageArea: [1, 1] },
|
|
25653
|
+
}) {
|
|
25648
25654
|
if (!canvas || !(canvas instanceof HTMLCanvasElement)) {
|
|
25649
25655
|
throw new Error('canvas element is required');
|
|
25650
25656
|
}
|
|
25651
|
-
const
|
|
25657
|
+
const isVolume = !imageOrVolume.imageId;
|
|
25658
|
+
const image = !isVolume && imageOrVolume;
|
|
25659
|
+
const volume = isVolume && imageOrVolume;
|
|
25660
|
+
const imageIdToPrint = image?.imageId || volume?.volumeId;
|
|
25652
25661
|
const viewportId = `renderGPUViewport-${imageIdToPrint}`;
|
|
25653
|
-
const imageId = image.imageId;
|
|
25654
25662
|
const element = document.createElement('div');
|
|
25655
25663
|
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
25664
|
+
if (!viewportOptions.displayArea) {
|
|
25665
|
+
viewportOptions.displayArea = { imageArea: [1, 1] };
|
|
25666
|
+
}
|
|
25656
25667
|
const originalWidth = canvas.width;
|
|
25657
25668
|
const originalHeight = canvas.height;
|
|
25658
|
-
element.style.width = `${originalWidth + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25659
|
-
element.style.height = `${originalHeight + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25669
|
+
element.style.width = `${originalWidth / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25670
|
+
element.style.height = `${originalHeight / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25660
25671
|
element.style.visibility = 'hidden';
|
|
25661
25672
|
element.style.position = 'absolute';
|
|
25662
|
-
canvas.width = originalWidth * devicePixelRatio;
|
|
25663
|
-
canvas.height = originalHeight * devicePixelRatio;
|
|
25664
25673
|
document.body.appendChild(element);
|
|
25665
25674
|
const uniqueId = viewportId.split(':').join('-');
|
|
25666
25675
|
element.setAttribute('viewport-id-for-remove', uniqueId);
|
|
@@ -25669,26 +25678,44 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
25669
25678
|
new RenderingEngine/* default */.Ay(renderingEngineId);
|
|
25670
25679
|
let viewport = renderingEngine.getViewport(viewportId);
|
|
25671
25680
|
if (!viewport) {
|
|
25672
|
-
const
|
|
25681
|
+
const viewportInput = {
|
|
25673
25682
|
viewportId,
|
|
25674
|
-
type: enums.ViewportType.STACK,
|
|
25683
|
+
type: isVolume ? enums.ViewportType.ORTHOGRAPHIC : enums.ViewportType.STACK,
|
|
25675
25684
|
element,
|
|
25676
25685
|
defaultOptions: {
|
|
25677
25686
|
...viewportOptions,
|
|
25678
25687
|
suppressEvents: true,
|
|
25679
25688
|
},
|
|
25680
25689
|
};
|
|
25681
|
-
renderingEngine.enableElement(
|
|
25690
|
+
renderingEngine.enableElement(viewportInput);
|
|
25682
25691
|
viewport = renderingEngine.getViewport(viewportId);
|
|
25683
25692
|
}
|
|
25684
25693
|
return new Promise((resolve) => {
|
|
25685
25694
|
let elementRendered = false;
|
|
25695
|
+
let { viewReference } = viewportOptions;
|
|
25686
25696
|
const onImageRendered = (eventDetail) => {
|
|
25687
25697
|
if (elementRendered) {
|
|
25688
25698
|
return;
|
|
25689
25699
|
}
|
|
25700
|
+
if (viewReference) {
|
|
25701
|
+
const useViewRef = viewReference;
|
|
25702
|
+
viewReference = null;
|
|
25703
|
+
viewport.setViewReference(useViewRef);
|
|
25704
|
+
viewport.render();
|
|
25705
|
+
return;
|
|
25706
|
+
}
|
|
25690
25707
|
const context = canvas.getContext('2d');
|
|
25691
25708
|
context.drawImage(temporaryCanvas, 0, 0, temporaryCanvas.width, temporaryCanvas.height, 0, 0, canvas.width, canvas.height);
|
|
25709
|
+
const origin = viewport.canvasToWorld([0, 0]);
|
|
25710
|
+
const topRight = viewport.canvasToWorld([
|
|
25711
|
+
temporaryCanvas.width / devicePixelRatio,
|
|
25712
|
+
0,
|
|
25713
|
+
]);
|
|
25714
|
+
const bottomLeft = viewport.canvasToWorld([
|
|
25715
|
+
0,
|
|
25716
|
+
temporaryCanvas.height / devicePixelRatio,
|
|
25717
|
+
]);
|
|
25718
|
+
const thicknessMm = 1;
|
|
25692
25719
|
elementRendered = true;
|
|
25693
25720
|
element.removeEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
25694
25721
|
setTimeout(() => {
|
|
@@ -25698,10 +25725,20 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
25698
25725
|
element.remove();
|
|
25699
25726
|
});
|
|
25700
25727
|
}, 0);
|
|
25701
|
-
resolve(
|
|
25728
|
+
resolve({
|
|
25729
|
+
origin,
|
|
25730
|
+
bottomLeft,
|
|
25731
|
+
topRight,
|
|
25732
|
+
thicknessMm,
|
|
25733
|
+
});
|
|
25702
25734
|
};
|
|
25703
25735
|
element.addEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
25704
|
-
|
|
25736
|
+
if (isVolume) {
|
|
25737
|
+
viewport.setVolumes([volume], false, true);
|
|
25738
|
+
}
|
|
25739
|
+
else {
|
|
25740
|
+
viewport.renderImageObject(imageOrVolume);
|
|
25741
|
+
}
|
|
25705
25742
|
viewport.resetCamera();
|
|
25706
25743
|
if (modality === 'PT' && !utilities_isPTPrescaledWithSUV(image)) {
|
|
25707
25744
|
viewport.setProperties({
|
|
@@ -25725,7 +25762,12 @@ var drawImageSync = __webpack_require__(49892);
|
|
|
25725
25762
|
|
|
25726
25763
|
|
|
25727
25764
|
|
|
25728
|
-
function renderToCanvasCPU(canvas,
|
|
25765
|
+
function renderToCanvasCPU(canvas, imageOrVolume, modality, _renderingEngineId, _viewportOptions) {
|
|
25766
|
+
const volume = imageOrVolume;
|
|
25767
|
+
if (volume.volumeId) {
|
|
25768
|
+
throw new Error('Unsupported volume rendering for CPU');
|
|
25769
|
+
}
|
|
25770
|
+
const image = imageOrVolume;
|
|
25729
25771
|
const viewport = (0,getDefaultViewport/* default */.A)(canvas, image, modality);
|
|
25730
25772
|
const enabledElement = {
|
|
25731
25773
|
canvas,
|
|
@@ -25737,7 +25779,7 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
25737
25779
|
const invalidated = true;
|
|
25738
25780
|
return new Promise((resolve, reject) => {
|
|
25739
25781
|
(0,drawImageSync/* default */.A)(enabledElement, invalidated);
|
|
25740
|
-
resolve(
|
|
25782
|
+
resolve(null);
|
|
25741
25783
|
});
|
|
25742
25784
|
}
|
|
25743
25785
|
|
|
@@ -25749,28 +25791,36 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
25749
25791
|
|
|
25750
25792
|
|
|
25751
25793
|
|
|
25794
|
+
|
|
25752
25795
|
function loadImageToCanvas(options) {
|
|
25753
|
-
const { canvas, imageId, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false,
|
|
25754
|
-
const
|
|
25796
|
+
const { canvas, imageId, viewReference, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false, viewportOptions: baseViewportOptions, } = options;
|
|
25797
|
+
const volumeId = viewReference?.volumeId;
|
|
25798
|
+
const isVolume = volumeId && !imageId;
|
|
25799
|
+
const viewportOptions = viewReference && baseViewportOptions
|
|
25800
|
+
? { ...baseViewportOptions, viewReference }
|
|
25801
|
+
: baseViewportOptions;
|
|
25755
25802
|
const renderFn = useCPURendering ? renderToCanvasCPU : renderToCanvasGPU;
|
|
25756
25803
|
return new Promise((resolve, reject) => {
|
|
25757
|
-
function successCallback(
|
|
25804
|
+
function successCallback(imageOrVolume, imageId) {
|
|
25758
25805
|
const { modality } = metaData.get('generalSeriesModule', imageId) || {};
|
|
25759
|
-
image
|
|
25806
|
+
const image = !isVolume && imageOrVolume;
|
|
25807
|
+
const volume = isVolume && imageOrVolume;
|
|
25808
|
+
if (image) {
|
|
25809
|
+
image.isPreScaled = image.isPreScaled || image.preScale?.scaled;
|
|
25810
|
+
}
|
|
25760
25811
|
if (thumbnail) {
|
|
25761
25812
|
canvas.height = 256;
|
|
25762
25813
|
canvas.width = 256;
|
|
25763
25814
|
}
|
|
25764
|
-
if (
|
|
25765
|
-
canvas.width = canvas.
|
|
25766
|
-
canvas.height = canvas.offsetHeight * devicePixelRatio;
|
|
25815
|
+
if (imageAspect && image) {
|
|
25816
|
+
canvas.width = image && (canvas.height * image.width) / image.height;
|
|
25767
25817
|
}
|
|
25768
|
-
|
|
25769
|
-
|
|
25818
|
+
canvas.style.width = `${canvas.width / devicePixelRatio}px`;
|
|
25819
|
+
canvas.style.height = `${canvas.height / devicePixelRatio}px`;
|
|
25820
|
+
if (volume && useCPURendering) {
|
|
25821
|
+
reject(new Error('CPU rendering of volume not supported'));
|
|
25770
25822
|
}
|
|
25771
|
-
renderFn(canvas,
|
|
25772
|
-
resolve(imageId);
|
|
25773
|
-
});
|
|
25823
|
+
renderFn(canvas, imageOrVolume, modality, renderingEngineId, viewportOptions).then(resolve);
|
|
25774
25824
|
}
|
|
25775
25825
|
function errorCallback(error, imageId) {
|
|
25776
25826
|
console.error(error, imageId);
|
|
@@ -25783,20 +25833,28 @@ function loadImageToCanvas(options) {
|
|
|
25783
25833
|
errorCallback.call(this, error, imageId);
|
|
25784
25834
|
});
|
|
25785
25835
|
}
|
|
25786
|
-
const { useNorm16Texture
|
|
25787
|
-
const useNativeDataType = useNorm16Texture || preferSizeOverAccuracy;
|
|
25836
|
+
const { useNorm16Texture } = (0,init/* getConfiguration */.D0)().rendering;
|
|
25788
25837
|
const options = {
|
|
25789
25838
|
targetBuffer: {
|
|
25790
|
-
type:
|
|
25839
|
+
type: useNorm16Texture ? undefined : 'Float32Array',
|
|
25791
25840
|
},
|
|
25792
25841
|
preScale: {
|
|
25793
25842
|
enabled: true,
|
|
25794
25843
|
},
|
|
25795
|
-
useNativeDataType,
|
|
25796
25844
|
useRGBA: !!useCPURendering,
|
|
25797
25845
|
requestType,
|
|
25798
25846
|
};
|
|
25799
|
-
|
|
25847
|
+
if (volumeId) {
|
|
25848
|
+
const volume = cache/* default */.Ay.getVolume(volumeId);
|
|
25849
|
+
if (!volume) {
|
|
25850
|
+
reject(new Error(`Volume id ${volumeId} not found in cache`));
|
|
25851
|
+
}
|
|
25852
|
+
const useImageId = volume.imageIds[0];
|
|
25853
|
+
successCallback(volume, useImageId);
|
|
25854
|
+
}
|
|
25855
|
+
else {
|
|
25856
|
+
imageLoadPoolManager/* default */.A.addRequest(sendRequest.bind(null, imageId, null, options), requestType, { imageId }, priority);
|
|
25857
|
+
}
|
|
25800
25858
|
});
|
|
25801
25859
|
}
|
|
25802
25860
|
|
|
@@ -26522,8 +26580,8 @@ function getScalingParameters(imageId) {
|
|
|
26522
26580
|
const generalSeriesModule = (0,metaData.get)('generalSeriesModule', imageId) || {};
|
|
26523
26581
|
const { modality } = generalSeriesModule;
|
|
26524
26582
|
const scalingParameters = {
|
|
26525
|
-
rescaleSlope: modalityLutModule.rescaleSlope,
|
|
26526
|
-
rescaleIntercept: modalityLutModule.rescaleIntercept,
|
|
26583
|
+
rescaleSlope: modalityLutModule.rescaleSlope || 1,
|
|
26584
|
+
rescaleIntercept: modalityLutModule.rescaleIntercept ?? 0,
|
|
26527
26585
|
modality,
|
|
26528
26586
|
};
|
|
26529
26587
|
const suvFactor = (0,metaData.get)('scalingModule', imageId) || {};
|
|
@@ -26636,11 +26694,15 @@ function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
|
26636
26694
|
Math.abs(distanceBetweenFirstAndMiddleImages) /
|
|
26637
26695
|
Math.floor(imageIds.length / 2);
|
|
26638
26696
|
}
|
|
26639
|
-
const { imagePositionPatient: origin, sliceThickness } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
26697
|
+
const { imagePositionPatient: origin, sliceThickness, spacingBetweenSlices, } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
26640
26698
|
const { strictZSpacingForVolumeViewport } = (0,dist_esm.getConfiguration)().rendering;
|
|
26641
26699
|
if (zSpacing === 0 && !strictZSpacingForVolumeViewport) {
|
|
26642
|
-
if (sliceThickness) {
|
|
26643
|
-
console.log('Could not calculate zSpacing. Using
|
|
26700
|
+
if (sliceThickness && spacingBetweenSlices) {
|
|
26701
|
+
console.log('Could not calculate zSpacing. Using spacingBetweenSlices');
|
|
26702
|
+
zSpacing = spacingBetweenSlices;
|
|
26703
|
+
}
|
|
26704
|
+
else if (sliceThickness) {
|
|
26705
|
+
console.log('Could not calculate zSpacing and no spacingBetweenSlices. Using sliceThickness');
|
|
26644
26706
|
zSpacing = sliceThickness;
|
|
26645
26707
|
}
|
|
26646
26708
|
else {
|
|
@@ -27198,9 +27260,11 @@ async function convertStackToVolumeViewport({ viewport, options, }) {
|
|
|
27198
27260
|
},
|
|
27199
27261
|
], [viewportId]);
|
|
27200
27262
|
const volumeViewportNewVolumeHandler = () => {
|
|
27201
|
-
|
|
27202
|
-
|
|
27203
|
-
|
|
27263
|
+
if (!options.orientation) {
|
|
27264
|
+
volumeViewport.setCamera({
|
|
27265
|
+
...prevCamera,
|
|
27266
|
+
});
|
|
27267
|
+
}
|
|
27204
27268
|
volumeViewport.render();
|
|
27205
27269
|
element.removeEventListener(enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, volumeViewportNewVolumeHandler);
|
|
27206
27270
|
};
|
|
@@ -30794,7 +30858,7 @@ function _imageChangeEventListener(evt) {
|
|
|
30794
30858
|
imageActor.getMapper().setInputData(imageData);
|
|
30795
30859
|
},
|
|
30796
30860
|
},
|
|
30797
|
-
]
|
|
30861
|
+
]);
|
|
30798
30862
|
(0,segmentation_triggerSegmentationRender/* default */.Ay)(toolGroup.id);
|
|
30799
30863
|
return;
|
|
30800
30864
|
}
|
|
@@ -40860,6 +40924,7 @@ class AngleTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .AnnotationTool */
|
|
|
40860
40924
|
viewUp: [...viewUp],
|
|
40861
40925
|
FrameOfReferenceUID,
|
|
40862
40926
|
referencedImageId,
|
|
40927
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
40863
40928
|
},
|
|
40864
40929
|
data: {
|
|
40865
40930
|
handles: {
|
|
@@ -41325,6 +41390,7 @@ class ArrowAnnotateTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .Annotation
|
|
|
41325
41390
|
viewUp: [...viewUp],
|
|
41326
41391
|
FrameOfReferenceUID,
|
|
41327
41392
|
referencedImageId,
|
|
41393
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
41328
41394
|
},
|
|
41329
41395
|
data: {
|
|
41330
41396
|
text: '',
|
|
@@ -41792,6 +41858,7 @@ class CircleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool
|
|
|
41792
41858
|
viewUp: [...viewUp],
|
|
41793
41859
|
FrameOfReferenceUID,
|
|
41794
41860
|
referencedImageId,
|
|
41861
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
41795
41862
|
},
|
|
41796
41863
|
data: {
|
|
41797
41864
|
label: '',
|
|
@@ -42400,6 +42467,7 @@ class CobbAngleTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationTool
|
|
|
42400
42467
|
viewUp: [...viewUp],
|
|
42401
42468
|
FrameOfReferenceUID,
|
|
42402
42469
|
referencedImageId,
|
|
42470
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
42403
42471
|
},
|
|
42404
42472
|
data: {
|
|
42405
42473
|
handles: {
|
|
@@ -43266,6 +43334,7 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
|
|
|
43266
43334
|
viewUp: [...viewUp],
|
|
43267
43335
|
FrameOfReferenceUID,
|
|
43268
43336
|
referencedImageId,
|
|
43337
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
43269
43338
|
},
|
|
43270
43339
|
data: {
|
|
43271
43340
|
label: '',
|
|
@@ -45675,6 +45744,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
|
|
|
45675
45744
|
viewUp: [...viewUp],
|
|
45676
45745
|
FrameOfReferenceUID,
|
|
45677
45746
|
referencedImageId,
|
|
45747
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
45678
45748
|
},
|
|
45679
45749
|
data: {
|
|
45680
45750
|
label: '',
|
|
@@ -766,7 +766,7 @@ async function promptSaveReport({
|
|
|
766
766
|
const dataSources = extensionManager.getDataSources();
|
|
767
767
|
const dataSource = dataSources[0];
|
|
768
768
|
const measurements = measurementService.getMeasurements();
|
|
769
|
-
const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
|
|
769
|
+
const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID)).filter(m => m.referencedImageId != null);
|
|
770
770
|
const SeriesDescription =
|
|
771
771
|
// isUndefinedOrEmpty
|
|
772
772
|
promptResult.value === undefined || promptResult.value === '' ? 'Research Derived Series' // default
|
|
@@ -2119,9 +2119,10 @@ function PanelMeasurementTableTracking({
|
|
|
2119
2119
|
setDisplayMeasurements(measurements);
|
|
2120
2120
|
}
|
|
2121
2121
|
};
|
|
2122
|
-
const displayMeasurementsWithoutFindings = displayMeasurements.filter(dm => dm.measurementType !== measurementService.VALUE_TYPES.POINT);
|
|
2123
|
-
const additionalFindings = displayMeasurements.filter(dm => dm.measurementType === measurementService.VALUE_TYPES.POINT);
|
|
2124
|
-
const
|
|
2122
|
+
const displayMeasurementsWithoutFindings = displayMeasurements.filter(dm => dm.measurementType !== measurementService.VALUE_TYPES.POINT && dm.referencedImageId);
|
|
2123
|
+
const additionalFindings = displayMeasurements.filter(dm => dm.measurementType === measurementService.VALUE_TYPES.POINT && dm.referencedImageId);
|
|
2124
|
+
const nonAcquisitionMeasurements = displayMeasurements.filter(dm => dm.referencedImageId == null);
|
|
2125
|
+
const disabled = additionalFindings.length === 0 && displayMeasurementsWithoutFindings.length === 0 && nonAcquisitionMeasurements.length === 0;
|
|
2125
2126
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
2126
2127
|
className: "invisible-scrollbar overflow-y-auto overflow-x-hidden",
|
|
2127
2128
|
ref: measurementsPanelRef,
|
|
@@ -2142,12 +2143,18 @@ function PanelMeasurementTableTracking({
|
|
|
2142
2143
|
servicesManager: servicesManager,
|
|
2143
2144
|
onClick: jumpToImage,
|
|
2144
2145
|
onEdit: onMeasurementItemEditHandler
|
|
2146
|
+
}), nonAcquisitionMeasurements.length !== 0 && /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.V, {
|
|
2147
|
+
title: "Non-tracked",
|
|
2148
|
+
data: nonAcquisitionMeasurements,
|
|
2149
|
+
servicesManager: servicesManager,
|
|
2150
|
+
onClick: jumpToImage,
|
|
2151
|
+
onEdit: onMeasurementItemEditHandler
|
|
2145
2152
|
})), !appConfig?.disableEditing && /*#__PURE__*/react.createElement("div", {
|
|
2146
2153
|
className: "flex justify-center p-4"
|
|
2147
2154
|
}, /*#__PURE__*/react.createElement(ui_src/* ActionButtons */.wr, {
|
|
2148
2155
|
t: t,
|
|
2149
2156
|
actions: [{
|
|
2150
|
-
label: '
|
|
2157
|
+
label: 'Download CSV',
|
|
2151
2158
|
onClick: exportReport
|
|
2152
2159
|
}, {
|
|
2153
2160
|
label: 'Create Report',
|
|
@@ -2195,7 +2202,8 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
|
|
|
2195
2202
|
type,
|
|
2196
2203
|
selected,
|
|
2197
2204
|
findingSites,
|
|
2198
|
-
finding
|
|
2205
|
+
finding,
|
|
2206
|
+
referencedImageId
|
|
2199
2207
|
} = measurement;
|
|
2200
2208
|
const firstSite = findingSites?.[0];
|
|
2201
2209
|
const label = baseLabel || finding?.text || firstSite?.text || '(empty)';
|
|
@@ -2221,7 +2229,8 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
|
|
|
2221
2229
|
baseDisplayText,
|
|
2222
2230
|
isActive: selected,
|
|
2223
2231
|
finding,
|
|
2224
|
-
findingSites
|
|
2232
|
+
findingSites,
|
|
2233
|
+
referencedImageId
|
|
2225
2234
|
};
|
|
2226
2235
|
}
|
|
2227
2236
|
/* harmony default export */ const panels_PanelMeasurementTableTracking = (PanelMeasurementTableTracking);
|