Skip to content

Commit

Permalink
fix: Re IDC #2761 fix loading of segmentations (#258)
Browse files Browse the repository at this point in the history
  • Loading branch information
Punzo committed Apr 4, 2022
1 parent 554f50d commit ceaf09a
Showing 1 changed file with 47 additions and 17 deletions.
64 changes: 47 additions & 17 deletions packages/adapters/src/adapters/Cornerstone/Segmentation_4X.js
Original file line number Diff line number Diff line change
Expand Up @@ -610,37 +610,67 @@ function findReferenceSourceImageId(
metadataProvider,
tolerance
) {
let imageId = undefined;

if (!multiframe) {
return imageId;
}

const {
FrameOfReferenceUID,
PerFrameFunctionalGroupsSequence,
SourceImageSequence,
ReferencedSeriesSequence
} = multiframe;

if (
!PerFrameFunctionalGroupsSequence ||
PerFrameFunctionalGroupsSequence.length === 0
) {
return imageId;
}

const PerFrameFunctionalGroup =
PerFrameFunctionalGroupsSequence[frameSegment];
let imageId = undefined;

let sourceImageSequence;
if (SourceImageSequence) {
sourceImageSequence = multiframe.SourceImageSequence[frameSegment];
if (!PerFrameFunctionalGroup) {
return imageId;
}

let frameSourceImageSequence = undefined;
if (SourceImageSequence && SourceImageSequence.length !== 0) {
frameSourceImageSequence = SourceImageSequence[frameSegment];
} else if (PerFrameFunctionalGroup.DerivationImageSequence) {
let DerivationImageSequence =
PerFrameFunctionalGroup.DerivationImageSequence;
DerivationImageSequence = Array.isArray(DerivationImageSequence)
? DerivationImageSequence[0]
: DerivationImageSequence;

sourceImageSequence = DerivationImageSequence.SourceImageSequence;
sourceImageSequence = Array.isArray(sourceImageSequence)
? sourceImageSequence[0]
: sourceImageSequence;
if (Array.isArray(DerivationImageSequence)) {
if (DerivationImageSequence.length !== 0) {
DerivationImageSequence = DerivationImageSequence[0];
} else {
DerivationImageSequence = undefined;
}
}

if (DerivationImageSequence) {
frameSourceImageSequence =
DerivationImageSequence.SourceImageSequence;
if (Array.isArray(frameSourceImageSequence)) {
if (frameSourceImageSequence.length !== 0) {
frameSourceImageSequence = frameSourceImageSequence[0];
} else {
frameSourceImageSequence = undefined;
}
}
}
}

imageId = getImageIdOfSourceImagebySourceImageSequence(
sourceImageSequence,
imageIds,
metadataProvider
);
if (frameSourceImageSequence) {
imageId = getImageIdOfSourceImagebySourceImageSequence(
frameSourceImageSequence,
imageIds,
metadataProvider
);
}

if (imageId === undefined && ReferencedSeriesSequence) {
const referencedSeriesSequence = Array.isArray(ReferencedSeriesSequence)
Expand Down

0 comments on commit ceaf09a

Please sign in to comment.