All files / extensions/dicom-microscopy/src/utils getSourceDisplaySet.js

0% Statements 0/10
0% Branches 0/7
0% Functions 0/4
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                                                                 
/**
 * Get referenced SM displaySet from SR displaySet
 *
 * @param {*} allDisplaySets
 * @param {*} microscopySRDisplaySet
 * @returns
 */
export default function getSourceDisplaySet(allDisplaySets, microscopySRDisplaySet) {
  const { ReferencedFrameOfReferenceUID } = microscopySRDisplaySet;
 
  const otherDisplaySets = allDisplaySets.filter(
    ds => ds.displaySetInstanceUID !== microscopySRDisplaySet.displaySetInstanceUID
  );
  const referencedDisplaySet = otherDisplaySets.find(
    displaySet =>
      displaySet.Modality === 'SM' &&
      (displaySet.FrameOfReferenceUID === ReferencedFrameOfReferenceUID ||
        // sometimes each depth instance has the different FrameOfReferenceID
        displaySet.othersFrameOfReferenceUID.includes(ReferencedFrameOfReferenceUID))
  );
 
  if (!referencedDisplaySet && otherDisplaySets.length >= 1) {
    console.warn(
      'No display set with FrameOfReferenceUID',
      ReferencedFrameOfReferenceUID,
      'single series, assuming data error, defaulting to only series.'
    );
    return otherDisplaySets.find(displaySet => displaySet.Modality === 'SM');
  }
 
  return referencedDisplaySet;
}