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;
}