Skip to content

Commit ec8b82a

Browse files
committed
feat: use only necessary duplicated images
1 parent 3113419 commit ec8b82a

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

packages/adapters/src/adapters/Cornerstone3D/Segmentation/labelmapImagesFromBuffer.ts

+21-5
Original file line numberDiff line numberDiff line change
@@ -470,25 +470,41 @@ const getArrayOfLabelMapImagesWithSegmentData = ({
470470
arrayOfSegmentData,
471471
referencedImageIds
472472
}) => {
473+
let largestArray = [];
474+
let largestArrayIndex;
475+
476+
for (let i = 0; i < arrayOfSegmentData.length; i++) {
477+
const segmentData = arrayOfSegmentData[i];
478+
if (segmentData.length > largestArray.length) {
479+
largestArray = segmentData;
480+
largestArrayIndex = i;
481+
}
482+
}
483+
473484
return arrayOfSegmentData.map(arr => {
474-
const labelMapImages = referencedImageIds.map(
475-
(referencedImageId, i) => {
485+
const labelMapImages = referencedImageIds
486+
.map((referencedImageId, i) => {
487+
const hasEmptySegmentData = !arr[i];
488+
if (hasEmptySegmentData && !largestArrayIndex) {
489+
return;
490+
}
491+
476492
const labelMapImage =
477493
imageLoader.createAndCacheDerivedLabelmapImage(
478494
referencedImageId
479495
);
480496

481497
const pixelData = labelMapImage.getPixelData();
482498

483-
if (arr[i]) {
499+
if (!hasEmptySegmentData) {
484500
for (let j = 0; j < pixelData.length; j++) {
485501
pixelData[j] = arr[i][j];
486502
}
487503
}
488504

489505
return labelMapImage;
490-
}
491-
);
506+
})
507+
.filter(Boolean);
492508
return labelMapImages;
493509
});
494510
};

packages/tools/src/eventListeners/segmentation/imageChangeEventListener.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ function _imageChangeEventListener(evt) {
119119
representation.segmentationId
120120
);
121121

122-
return derivedImageIds.includes(actor.referencedId);
122+
return derivedImageIds?.includes(actor.referencedId);
123123
});
124124

125125
if (!validActor) {

packages/tools/src/stateManagement/segmentation/SegmentationStateManager.ts

-9
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,6 @@ export default class SegmentationStateManager {
9797
}) {
9898
const key = this.generateMapKey({ segmentationId, imageId });
9999

100-
console.log(
101-
'🚀 ~ SegmentationStateManager ~ segmentationId, imageId:',
102-
segmentationId,
103-
imageId
104-
);
105-
console.log(
106-
'🚀 ~ SegmentationStateManager ~ labelmapImageId:',
107-
labelmapImageId
108-
);
109100
if (!this._labelmapImageIdReferenceMap.has(key)) {
110101
this._labelmapImageIdReferenceMap.set(key, [labelmapImageId]);
111102
return;

0 commit comments

Comments
 (0)