All files / platform/core/src/services/DicomMetadataStore createStudyMetadata.js

76.47% Statements 13/17
50% Branches 2/4
83.33% Functions 5/6
73.33% Lines 11/15

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 49 50      34x                                   133x 133x 36x   355x   133x         133x       222x   133x     133x 133x              
import createSeriesMetadata from './createSeriesMetadata';
 
function createStudyMetadata(StudyInstanceUID) {
  return {
    StudyInstanceUID,
    StudyDescription: '',
    ModalitiesInStudy: [],
    isLoaded: false,
    series: [],
    /**
     * @param {object} instance
     */
    addInstanceToSeries: function (instance) {
      this.addInstancesToSeries([instance]);
    },
    /**
     * @param {object[]} instances
     * @param {string} instances[].SeriesInstanceUID
     * @param {string} instances[].StudyDescription
     */
    addInstancesToSeries: function (instances) {
      const { SeriesInstanceUID } = instances[0];
      if (!this.StudyDescription) {
        this.StudyDescription = instances[0].StudyDescription;
      }
      let series = this.series.find(s => s.SeriesInstanceUID === SeriesInstanceUID);
 
      Iif (!series) {
        series = createSeriesMetadata(SeriesInstanceUID);
        this.series.push(series);
      }
 
      series.addInstances(instances);
    },
 
    setSeriesMetadata: function (SeriesInstanceUID, seriesMetadata) {
      let existingSeries = this.series.find(s => s.SeriesInstanceUID === SeriesInstanceUID);
 
      Iif (existingSeries) {
        existingSeries = Object.assign(existingSeries, seriesMetadata);
      } else {
        const series = createSeriesMetadata(SeriesInstanceUID);
        this.series.push(Object.assign(series, seriesMetadata));
      }
    },
  };
}
 
export default createStudyMetadata;