constructor()

in src/engine/loaders/LoaderDicom.js [124:239]


  constructor(numFiles, needScaleDownTexture = false) {
    this.m_xDim = -1;
    this.m_yDim = -1;
    this.m_zDim = numFiles;
    this.m_needScaleDownTexture = needScaleDownTexture;
    /** @property {object} m_fileLoader - low level file loader */
    this.m_folder = null;
    /** @property {boolean} m_isLoadedSuccessfull - Loaded flag: success o not */
    this.m_isLoadedSuccessfull = false;
    /** @property {number} m_dataSize - Volume data size in bytes */
    this.m_dataSize = 0;
    /** @property {array} m_dataArray - byte array for volume data */
    this.m_dataArray = null;
    /** dictionary */
    this.m_dictionary = new DicomDictionary();
    /** index of the image in slices set */
    this.m_imageNumber = -1;
    /** @property {array} m_errors - array  with error after file read, used internally */
    this.m_errors = [];
    /**  @property {string} m_transformSyntax - string with pixel data transform syntax */
    this.m_transformSyntax = '';
    /** @property {array} m_loaders - array with objects for individual file loading */
    this.m_loaders = [];
    /** @property {number} m_xDim - volume dimension on x (width) */
    this.m_xDim = -1;
    /** @property {number} m_yDim - volume dimension on y (height) */
    this.m_yDim = -1;
    /** @property {number} m_bitsPerPixel - bits per pixe;. Can be 8, 16, 32 */
    this.m_bitsPerPixel = -1;
    /** @property {number} m_padValue - background pixel value, not used in histogram */
    this.m_padValue = -LARGE_NUMBER;
    this.m_windowCenter = LARGE_NUMBER; // TAG_WINDOW_CENTER
    this.m_windowWidth = LARGE_NUMBER; // TAG_WINDOW_WIDTH
    this.m_winMin = 0;
    this.m_winMax = 1;
    this.m_minVal = 0;
    this.m_maxVal = 0;
    this.m_rescaleIntercept = 0; // TAG_RESCALE_INTERCEPT, used as v` = v * rescaleSlope + rescaleIntercept
    this.m_rescaleSlope = 1; // TAG_RESCALE_SLOPE
    this.m_rescaleHounsfield = false;
    this.m_pixelRepresentaionSigned = false;

    /** @property {number} m_littleEndian - little ednian encoding of pixel data */
    this.m_littleEndian = true;
    /** @property {number} m_samplesPerPixel - number of samples per pixel. Can be 1 or 3. Used as average */
    this.m_samplesPerPixel = 1;
    /** @property {number} m_seriesNumber - Index of series to check the same image set in slices */
    this.m_seriesNumber = -1;
    /** @property {string} m_seriesDescr - Description of series */
    this.m_seriesDescr = '';
    /** @property {object} m_boxSize - vertex3f with physic volume dimension */
    this.m_boxSize = {
      x: 1.0,
      y: 1.0,
      z: 1.0,
    };
    /** @property {object} m_boxSize - vertex3f with physic volume dimension */
    this.m_nonEmptyBoxMin = {
      x: 0.0,
      y: 0.0,
      z: 0.0,
    };
    /** @property {object} m_boxSize - vertex3f with physic volume dimension */
    this.m_nonEmptyBoxMax = {
      x: 1.0,
      y: 1.0,
      z: 1.0,
    };

    /** @property {object} m_slicesVolume - Volume, where slices are collected */
    this.m_slicesVolume = new DicomSlicesVolume();
    /** @property {object} m_newTagEvent - custom event, that is send on new tag reading */
    this.m_newTagEvent = new CustomEvent('newTag', {
      detail: {
        group: null,
        element: null,
        desc: null,
        value: null,
        imageNumber: null,
        fileName: null,
      },
    });
    /** @property {Object} m_info - Patient name, patient gender, ... */
    this.m_dicomInfo = new DicomInfo();

    // physical dimension
    this.m_pixelSpacing = {
      x: 0.0,
      y: 0.0,
      z: 0.0,
    };
    this.m_filesLoadedCounter = 0;
    this.m_numLoadedFiles = numFiles;

    this.m_imagePosMin = {
      // eslint-disable-next-line
      x: +1.0e12,
      // eslint-disable-next-line
      y: +1.0e12,
      // eslint-disable-next-line
      z: +1.0e12,
    };
    this.m_imagePosMax = {
      // eslint-disable-next-line
      x: -1.0e12,
      // eslint-disable-next-line
      y: -1.0e12,
      // eslint-disable-next-line
      z: -1.0e12,
    };

    // eslint-disable-next-line
    this.m_sliceLocMin = +1.0e12;
    // eslint-disable-next-line
    this.m_sliceLocMax = -1.0e12;
  }