fix(dicom-seg) : Fix the missing color tag when loading Dicom-Seg (#3822)
Co-authored-by: Alireza <ar.sedghi@gmail.com>
This commit is contained in:
parent
f99645f3a1
commit
97cb1f94e1
@ -1,5 +1,6 @@
|
|||||||
import { utils } from '@ohif/core';
|
import { utils } from '@ohif/core';
|
||||||
import { metaData, cache, triggerEvent, eventTarget } from '@cornerstonejs/core';
|
import { metaData, cache, triggerEvent, eventTarget } from '@cornerstonejs/core';
|
||||||
|
import { CONSTANTS } from '@cornerstonejs/tools';
|
||||||
import { adaptersSEG, Enums } from '@cornerstonejs/adapters';
|
import { adaptersSEG, Enums } from '@cornerstonejs/adapters';
|
||||||
|
|
||||||
import { SOPClassHandlerId } from './id';
|
import { SOPClassHandlerId } from './id';
|
||||||
@ -141,7 +142,7 @@ async function _loadSegments({ extensionManager, servicesManager, segDisplaySet,
|
|||||||
'@ohif/extension-cornerstone.utilityModule.common'
|
'@ohif/extension-cornerstone.utilityModule.common'
|
||||||
);
|
);
|
||||||
|
|
||||||
const { segmentationService } = servicesManager.services;
|
const { segmentationService, uiNotificationService } = servicesManager.services;
|
||||||
|
|
||||||
const { dicomLoaderService } = utilityModule.exports;
|
const { dicomLoaderService } = utilityModule.exports;
|
||||||
const arrayBuffer = await dicomLoaderService.findDicomDataPromise(segDisplaySet, null, headers);
|
const arrayBuffer = await dicomLoaderService.findDicomDataPromise(segDisplaySet, null, headers);
|
||||||
@ -174,12 +175,31 @@ async function _loadSegments({ extensionManager, servicesManager, segDisplaySet,
|
|||||||
{ skipOverlapping, tolerance, eventTarget, triggerEvent }
|
{ skipOverlapping, tolerance, eventTarget, triggerEvent }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let usedRecommendedDisplayCIELabValue = true;
|
||||||
results.segMetadata.data.forEach((data, i) => {
|
results.segMetadata.data.forEach((data, i) => {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
data.rgba = dicomlabToRGB(data.RecommendedDisplayCIELabValue);
|
data.rgba = data.RecommendedDisplayCIELabValue;
|
||||||
|
|
||||||
|
if (data.rgba) {
|
||||||
|
data.rgba = dicomlabToRGB(data.rgba);
|
||||||
|
} else {
|
||||||
|
usedRecommendedDisplayCIELabValue = false;
|
||||||
|
data.rgba = CONSTANTS.COLOR_LUT[i % CONSTANTS.COLOR_LUT.length];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!usedRecommendedDisplayCIELabValue) {
|
||||||
|
// Display a notification about the non-utilization of RecommendedDisplayCIELabValue
|
||||||
|
uiNotificationService.show({
|
||||||
|
title: 'DICOM SEG import',
|
||||||
|
message:
|
||||||
|
'RecommendedDisplayCIELabValue not found for one or more segments. The default color was used instead.',
|
||||||
|
type: 'warning',
|
||||||
|
duration: 5000,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Object.assign(segDisplaySet, results);
|
Object.assign(segDisplaySet, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user