@ohif/app 3.7.0-beta.42 → 3.7.0-beta.43
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/{204.bundle.2ca243271f4e2e584757.js → 150.bundle.94cbce497cafacd4a7d7.js} +69 -92
- package/dist/{195.bundle.b56618d38bc184f8ef78.js → 202.bundle.ac1e5e25d4daf54581b1.js} +3697 -972
- package/dist/{236.bundle.a2c84f9a7c7c704ca47b.js → 236.bundle.3c5f844ce9de4ec0777d.js} +1 -1
- package/dist/{663.bundle.24e14d035c31bc67a1af.js → 663.bundle.2dcb8a60d59464f4e563.js} +4 -4
- package/dist/{678.bundle.efd4a623a9d1bf0aa918.js → 678.bundle.13062f7926c30056aee1.js} +32 -104
- package/dist/{754.bundle.36f6f0f1c2cad1ffeadc.js → 754.bundle.8a16fc8ad21fe00c2e15.js} +11928 -7138
- package/dist/{774.bundle.e2cf44623c1268d8433d.js → 774.bundle.8ba82ee206266eb2da5e.js} +55 -33
- package/dist/{821.bundle.544ef0da9b9ec7c869fa.js → 821.bundle.d4120df6baeed120be9e.js} +2 -2
- package/dist/{869.bundle.51e2fc87fab5cb911ec1.js → 869.bundle.c9c018e6757410919ed8.js} +3 -2
- package/dist/{925.bundle.150debc1fe2cafa1e036.js → 925.bundle.a2f1103d968c53a2b8fb.js} +26 -20
- package/dist/{app.bundle.3dbe3a748e06d0a8d9fc.js → app.bundle.2905ffdd301e3c34286e.js} +28 -18
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/{index.worker.17eee78bdafa44cbb47d.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
- package/dist/sw.js +1 -1
- package/package.json +19 -20
- package/dist/899.bundle.dc9c8c0729bf29173303.js +0 -4769
- package/dist/index.worker.17eee78bdafa44cbb47d.worker.js.map +0 -1
- /package/dist/{12.bundle.2c6b0156319ff8d39285.js → 12.bundle.f46296f27a36e6b95f76.js} +0 -0
- /package/dist/{128.bundle.ede0e35b2fc74164f0b0.js → 128.bundle.963d34d21c01231fc804.js} +0 -0
- /package/dist/{181.bundle.3c90dbb782b783e30fd8.js → 181.bundle.817ca1ba6479fca5fd15.js} +0 -0
- /package/dist/{281.bundle.399fb8e0048492f2f14d.js → 281.bundle.ac92bd142441f317f308.js} +0 -0
- /package/dist/{30.bundle.2991067a1b7d252441ce.js → 30.bundle.8fb93818b3a58f29f7e3.js} +0 -0
- /package/dist/{348.bundle.226b1d5d97c0ea05a302.js → 348.bundle.323f57efcc2239950451.js} +0 -0
- /package/dist/{359.bundle.e4810515717797e10a0d.js → 359.bundle.3ae0f07b1c428eeb00a8.js} +0 -0
- /package/dist/{378.bundle.3ddca21119a8f6a02e90.js → 378.bundle.c908a6194c50544b45db.js} +0 -0
- /package/dist/{410.bundle.4794b1ed5caa5c44d8ab.js → 410.bundle.b3cbeff9c619149a2234.js} +0 -0
- /package/dist/{506.bundle.508c7a7018c0600c6683.js → 506.bundle.44629077a406500707ea.js} +0 -0
- /package/dist/{782.bundle.c113ddc2ec70ec2ccbea.js → 782.bundle.c511611d980f9aa6563b.js} +0 -0
- /package/dist/{814.bundle.ce16dd6b97d682341a9e.js → 814.bundle.8391ddacf39d7c699c5f.js} +0 -0
- /package/dist/{822.bundle.83c544a4283056f1331d.js → 822.bundle.34b66f1c1b27e7884df7.js} +0 -0
|
@@ -2613,7 +2613,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2613
2613
|
|
|
2614
2614
|
|
|
2615
2615
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2616
|
-
return Promise.all(/* import() */[__webpack_require__.e(
|
|
2616
|
+
return Promise.all(/* import() */[__webpack_require__.e(754), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(23), __webpack_require__.e(821), __webpack_require__.e(250)]).then(__webpack_require__.bind(__webpack_require__, 76516));
|
|
2617
2617
|
});
|
|
2618
2618
|
const MicroscopyViewport = props => {
|
|
2619
2619
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -486,8 +486,8 @@ function _getRenderableData(GraphicType, GraphicData, imageId, TrackingIdentifie
|
|
|
486
486
|
}
|
|
487
487
|
return renderableData;
|
|
488
488
|
}
|
|
489
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist
|
|
490
|
-
var adapters_es = __webpack_require__(
|
|
489
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
|
|
490
|
+
var adapters_es = __webpack_require__(91202);
|
|
491
491
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/isRehydratable.js
|
|
492
492
|
|
|
493
493
|
const cornerstoneAdapters = adapters_es.adaptersSR.Cornerstone3D.MeasurementReport.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE;
|
|
@@ -1609,8 +1609,8 @@ function getLabelFromDCMJSImportedToolData(toolData) {
|
|
|
1609
1609
|
return finding.CodeMeaning;
|
|
1610
1610
|
}
|
|
1611
1611
|
}
|
|
1612
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist
|
|
1613
|
-
var adapters_es = __webpack_require__(
|
|
1612
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
|
|
1613
|
+
var adapters_es = __webpack_require__(91202);
|
|
1614
1614
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js
|
|
1615
1615
|
|
|
1616
1616
|
|
|
@@ -6705,11 +6705,11 @@ class SegmentationService extends src/* PubSubService */.hC {
|
|
|
6705
6705
|
return this.addOrUpdateSegmentation(Object.assign(segmentation, cachedSegmentation), suppressEvents);
|
|
6706
6706
|
}
|
|
6707
6707
|
const {
|
|
6708
|
-
|
|
6708
|
+
labelmapBufferArray,
|
|
6709
6709
|
referencedVolumeId
|
|
6710
6710
|
} = segDisplaySet;
|
|
6711
|
-
if (!
|
|
6712
|
-
throw new Error('
|
|
6711
|
+
if (!labelmapBufferArray || !referencedVolumeId) {
|
|
6712
|
+
throw new Error('No labelmapBufferArray or referencedVolumeId found for the SEG displaySet');
|
|
6713
6713
|
}
|
|
6714
6714
|
|
|
6715
6715
|
// if the labelmap doesn't exist, we need to create it first from the
|
|
@@ -6728,72 +6728,27 @@ class SegmentationService extends src/* PubSubService */.hC {
|
|
|
6728
6728
|
sharedArrayBuffer: true
|
|
6729
6729
|
}
|
|
6730
6730
|
});
|
|
6731
|
-
const [rows, columns] = derivedVolume.dimensions;
|
|
6732
6731
|
const derivedVolumeScalarData = derivedVolume.getScalarData();
|
|
6733
|
-
const
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
} = esm.metaData.get('generalImageModule', imageId);
|
|
6740
|
-
acc[sopInstanceUid] = index;
|
|
6741
|
-
return acc;
|
|
6742
|
-
}, {});
|
|
6743
|
-
const numSegments = Object.keys(segments).length;
|
|
6744
|
-
// Note: ideally we could use the TypedArray set method, but since each
|
|
6745
|
-
// slice can have multiple segments, we need to loop over each slice and
|
|
6746
|
-
// set the segment value for each segment.
|
|
6747
|
-
let overlappingSegments = false;
|
|
6748
|
-
const _segmentInfoUpdate = (segmentInfo, segmentIndex) => {
|
|
6732
|
+
const segmentsInfo = segDisplaySet.segMetadata.data;
|
|
6733
|
+
derivedVolumeScalarData.set(new Uint8Array(labelmapBufferArray[0]));
|
|
6734
|
+
segmentation.segments = segmentsInfo.map((segmentInfo, segmentIndex) => {
|
|
6735
|
+
if (segmentIndex === 0) {
|
|
6736
|
+
return;
|
|
6737
|
+
}
|
|
6749
6738
|
const {
|
|
6750
|
-
|
|
6739
|
+
SegmentedPropertyCategoryCodeSequence,
|
|
6740
|
+
SegmentNumber,
|
|
6741
|
+
SegmentLabel,
|
|
6742
|
+
SegmentAlgorithmType,
|
|
6743
|
+
SegmentAlgorithmName,
|
|
6744
|
+
SegmentedPropertyTypeCodeSequence,
|
|
6745
|
+
rgba
|
|
6751
6746
|
} = segmentInfo;
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
const {
|
|
6758
|
-
ReferencedSOPInstanceUID
|
|
6759
|
-
} = functionalGroup.DerivationImageSequence.SourceImageSequence;
|
|
6760
|
-
const imageIdIndex = sopUIDImageIdIndexMap[ReferencedSOPInstanceUID];
|
|
6761
|
-
if (imageIdIndex === -1) {
|
|
6762
|
-
return;
|
|
6763
|
-
}
|
|
6764
|
-
const step = rows * columns;
|
|
6765
|
-
|
|
6766
|
-
// we need a faster way to get the pixel data for the current
|
|
6767
|
-
// functional group, which we use typed array view
|
|
6768
|
-
|
|
6769
|
-
const functionGroupPixelData = new Uint8Array(segPixelData.buffer, functionalGroupIndex * step, step);
|
|
6770
|
-
const functionalGroupStartIndex = imageIdIndex * step;
|
|
6771
|
-
const functionalGroupEndIndex = (imageIdIndex + 1) * step;
|
|
6772
|
-
|
|
6773
|
-
// Note: this for loop is not optimized, since DICOM SEG stores
|
|
6774
|
-
// each segment as a separate labelmap so if there is a slice
|
|
6775
|
-
// that has multiple segments, we will have to loop over each
|
|
6776
|
-
// segment and we cannot use the TypedArray set method.
|
|
6777
|
-
for (let i = functionalGroupStartIndex, j = 0; i < functionalGroupEndIndex; i++, j++) {
|
|
6778
|
-
if (functionGroupPixelData[j] !== 0) {
|
|
6779
|
-
if (derivedVolumeScalarData[i] !== 0) {
|
|
6780
|
-
overlappingSegments = true;
|
|
6781
|
-
}
|
|
6782
|
-
derivedVolumeScalarData[i] = segmentIndex;
|
|
6783
|
-
|
|
6784
|
-
// centroid calculations
|
|
6785
|
-
segmentX += i % columns;
|
|
6786
|
-
segmentY += Math.floor(i / columns) % rows;
|
|
6787
|
-
segmentZ += Math.floor(i / (columns * rows));
|
|
6788
|
-
count++;
|
|
6789
|
-
}
|
|
6790
|
-
}
|
|
6791
|
-
}
|
|
6792
|
-
|
|
6793
|
-
// centroid calculations
|
|
6794
|
-
const x = Math.floor(segmentX / count);
|
|
6795
|
-
const y = Math.floor(segmentY / count);
|
|
6796
|
-
const z = Math.floor(segmentZ / count);
|
|
6747
|
+
const {
|
|
6748
|
+
x,
|
|
6749
|
+
y,
|
|
6750
|
+
z
|
|
6751
|
+
} = segDisplaySet.centroids.get(segmentIndex);
|
|
6797
6752
|
const centerWorld = derivedVolume.imageData.indexToWorld([x, y, z]);
|
|
6798
6753
|
segmentation.cachedStats = {
|
|
6799
6754
|
...segmentation.cachedStats,
|
|
@@ -6808,51 +6763,24 @@ class SegmentationService extends src/* PubSubService */.hC {
|
|
|
6808
6763
|
}
|
|
6809
6764
|
}
|
|
6810
6765
|
};
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
const promiseArray = [];
|
|
6821
|
-
for (const segmentIndex in segments) {
|
|
6822
|
-
const segmentInfo = segments[segmentIndex];
|
|
6823
|
-
|
|
6824
|
-
// Important: we need a non-blocking way to update the segmentation
|
|
6825
|
-
// state, otherwise the UI will freeze and the user will not be able
|
|
6826
|
-
// to interact with the app or progress bars will not be updated.
|
|
6827
|
-
const promise = new Promise((resolve, reject) => {
|
|
6828
|
-
setTimeout(() => {
|
|
6829
|
-
_segmentInfoUpdate(segmentInfo, segmentIndex);
|
|
6830
|
-
resolve();
|
|
6831
|
-
}, 0);
|
|
6832
|
-
});
|
|
6833
|
-
promiseArray.push(promise);
|
|
6834
|
-
}
|
|
6835
|
-
await Promise.all(promiseArray);
|
|
6836
|
-
segmentation.segmentCount = Object.keys(segments).length;
|
|
6837
|
-
segmentation.segments = [null]; // segment 0
|
|
6838
|
-
|
|
6839
|
-
Object.keys(segments).forEach(segmentIndex => {
|
|
6840
|
-
const segmentInfo = segments[segmentIndex];
|
|
6841
|
-
const segIndex = Number(segmentIndex);
|
|
6842
|
-
segmentation.segments[segIndex] = {
|
|
6843
|
-
label: segmentInfo.label || `Segment ${segIndex}`,
|
|
6844
|
-
segmentIndex: Number(segmentIndex),
|
|
6845
|
-
color: [segmentInfo.color[0], segmentInfo.color[1], segmentInfo.color[2]],
|
|
6846
|
-
opacity: segmentInfo.color[3],
|
|
6766
|
+
return {
|
|
6767
|
+
label: SegmentLabel || `Segment ${SegmentNumber}`,
|
|
6768
|
+
segmentIndex: Number(SegmentNumber),
|
|
6769
|
+
category: SegmentedPropertyCategoryCodeSequence ? SegmentedPropertyCategoryCodeSequence.CodeMeaning : '',
|
|
6770
|
+
type: SegmentedPropertyTypeCodeSequence ? SegmentedPropertyTypeCodeSequence.CodeMeaning : '',
|
|
6771
|
+
algorithmType: SegmentAlgorithmType,
|
|
6772
|
+
algorithmName: SegmentAlgorithmName,
|
|
6773
|
+
color: rgba,
|
|
6774
|
+
opacity: 255,
|
|
6847
6775
|
isVisible: true,
|
|
6848
6776
|
isLocked: false
|
|
6849
6777
|
};
|
|
6850
6778
|
});
|
|
6779
|
+
segmentation.segmentCount = segmentsInfo.length - 1;
|
|
6851
6780
|
segDisplaySet.isLoaded = true;
|
|
6852
6781
|
this._broadcastEvent(SegmentationService_EVENTS.SEGMENTATION_LOADING_COMPLETE, {
|
|
6853
6782
|
segmentationId,
|
|
6854
|
-
segDisplaySet
|
|
6855
|
-
overlappingSegments
|
|
6783
|
+
segDisplaySet
|
|
6856
6784
|
});
|
|
6857
6785
|
return this.addOrUpdateSegmentation(segmentation, suppressEvents);
|
|
6858
6786
|
}
|