All files / extensions/default/src/utils getSRSeriesAndInstanceNumber.js

4.34% Statements 1/23
0% Branches 0/6
0% Functions 0/6
5% Lines 1/20

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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 4934x                                                                                                
const MIN_SR_SERIES_NUMBER = 4700;
 
export function getNextSeriesNumber({ displaySetService, modality, minSeriesNumber }) {
  const activeDisplaySets = displaySetService.getActiveDisplaySets();
  const modalityDisplaySets = activeDisplaySets.filter(ds => ds.Modality === modality);
  const modalitySeriesNumbers = modalityDisplaySets.map(ds => ds.SeriesNumber);
  const maxSeriesNumber = Math.max(...modalitySeriesNumbers, minSeriesNumber);
 
  const allSeriesNumbers = activeDisplaySets.map(ds => ds.SeriesNumber);
 
  let finalSeriesNumber = maxSeriesNumber + 1;
  while (allSeriesNumbers.includes(finalSeriesNumber)) {
    finalSeriesNumber++;
  }
 
  return { SeriesNumber: finalSeriesNumber, InstanceNumber: 1 };
}
 
export function getSRSeriesAndInstanceNumber({ displaySetService, SeriesInstanceUid }) {
  Iif (!SeriesInstanceUid) {
    return getNextSeriesNumber({
      displaySetService,
      modality: 'SR',
      minSeriesNumber: MIN_SR_SERIES_NUMBER,
    });
  }
 
  const displaySetsMap = displaySetService.getDisplaySetCache();
  const displaySets = Array.from(displaySetsMap.values());
  const srDisplaySet = displaySets.find(
    ds => ds.Modality === 'SR' && ds.SeriesInstanceUID === SeriesInstanceUid
  );
  const InstanceNumber = srDisplaySet.instances?.length + 1;
 
  Iif (!srDisplaySet?.SeriesNumber || !InstanceNumber) {
    return getNextSeriesNumber({
      displaySetService,
      modality: 'SR',
      minSeriesNumber: MIN_SR_SERIES_NUMBER,
    });
  }
 
  return {
    SeriesNumber: srDisplaySet.SeriesNumber,
    InstanceNumber,
    referenceDisplaySet: srDisplaySet,
  };
}