Skip to content

Commit

Permalink
Re IDC #2935: fix parsing of Instance-level qualitative annotations (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Punzo authored Sep 19, 2022
1 parent 4546ede commit e2f4f95
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 12 deletions.
1 change: 0 additions & 1 deletion extensions/dicom-segmentation/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ export default {

const ExtendedSegmentationPanel = props => {
const { activeContexts } = api.hooks.useAppContext();

const onDisplaySetLoadFailureHandler = error => {
LoggerService.error({ error, message: error.message });
UINotificationService.show({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@ const getReferencedImagesList = ImagingMeasurementReportContentSequence => {
const ImageLibrary = ImagingMeasurementReportContentSequence.find(
item =>
item.ConceptNameCodeSequence.CodeValue ===
CodeNameCodeSequenceValues.ImageLibrary
CodeNameCodeSequenceValues.ImageLibrary ||
item.ConceptNameCodeSequence.CodeValue ===
CodeNameCodeSequenceValues.ImagingMeasurements
);

if (!ImageLibrary.ContentSequence) {
if (!ImageLibrary || !ImageLibrary.ContentSequence) {
return referencedImages;
}

Expand All @@ -19,9 +21,15 @@ const getReferencedImagesList = ImagingMeasurementReportContentSequence => {
).find(
item =>
item.ConceptNameCodeSequence.CodeValue ===
CodeNameCodeSequenceValues.ImageLibraryGroup
CodeNameCodeSequenceValues.ImageLibraryGroup ||
item.ConceptNameCodeSequence.CodeValue ===
CodeNameCodeSequenceValues.MeasurementGroup
);

if (!ImageLibraryGroup || !ImageLibraryGroup.ContentSequence) {
return referencedImages;
}

getSequenceAsArray(ImageLibraryGroup.ContentSequence).forEach(item => {
const { ReferencedSOPSequence } = item;
if (ReferencedSOPSequence) {
Expand Down
33 changes: 25 additions & 8 deletions platform/core/src/DICOMSR/parseDicomStructuredReport.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,45 @@ const parseDicomStructuredReport = (
displaySets,
external
) => {
if (external && external.servicesManager) {
parseSCOORD3D({ servicesManager: external.servicesManager, displaySets });
}

// Get the dicom data as an Object
const dicomData = dcmjs.data.DicomMessage.readFile(part10SRArrayBuffer);
const dataset = dcmjs.data.DicomMetaDictionary.naturalizeDataset(
dicomData.dict
);

const {
LoggerService,
UINotificationService,
} = external.servicesManager.services;
if (external && external.servicesManager) {
try {
parseSCOORD3D({ servicesManager: external.servicesManager, displaySets });
} catch (error) {
const seriesDescription = dataset.SeriesDescription || '';
LoggerService.error({ error, message: error.message });
UINotificationService.show({
title: `Failed to parse ${seriesDescription} SR display set`,
message: error.message,
type: 'error',
autoClose: false,
});
return;
}
}

const { MeasurementReport } = dcmjs.adapters.Cornerstone;

let storedMeasurementByToolType;
try {
storedMeasurementByToolType = MeasurementReport.generateToolState(dataset);
} catch (error) {
const seriesDescription = dataset.SeriesDescription || '';
LogManager.publish(LogManager.EVENTS.OnLog, {
LoggerService.error({ error, message: error.message });
UINotificationService.show({
title: `Failed to parse ${seriesDescription} measurement report`,
type: 'warning',
message: error.message || '',
notify: true,
message: error.message,
type: 'error',
autoClose: false,
});
return;
}
Expand Down

0 comments on commit e2f4f95

Please sign in to comment.