fix: MetadataProvider number from string (#2530)

This commit is contained in:
Alireza 2021-09-28 07:23:05 -04:00 committed by GitHub
parent 3c9f3cb273
commit 1ec40d943d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -189,7 +189,7 @@ class MetadataProvider {
metadata = { metadata = {
modality: instance.Modality, modality: instance.Modality,
seriesInstanceUID: instance.SeriesInstanceUID, seriesInstanceUID: instance.SeriesInstanceUID,
seriesNumber: getNumberValues(instance.SeriesNumber), seriesNumber: validNumber(instance.SeriesNumber),
studyInstanceUID: instance.StudyInstanceUID, studyInstanceUID: instance.StudyInstanceUID,
seriesDate, seriesDate,
seriesTime, seriesTime,
@ -197,9 +197,9 @@ class MetadataProvider {
break; break;
case WADO_IMAGE_LOADER_TAGS.PATIENT_STUDY_MODULE: case WADO_IMAGE_LOADER_TAGS.PATIENT_STUDY_MODULE:
metadata = { metadata = {
patientAge: getNumberValues(instance.PatientAge), patientAge: validNumber(instance.PatientAge),
patientSize: getNumberValues(instance.PatientSize), patientSize: validNumber(instance.PatientSize),
patientWeight: getNumberValues(instance.PatientWeight), patientWeight: validNumber(instance.PatientWeight),
}; };
break; break;
case WADO_IMAGE_LOADER_TAGS.IMAGE_PLANE_MODULE: case WADO_IMAGE_LOADER_TAGS.IMAGE_PLANE_MODULE:
@ -228,49 +228,50 @@ class MetadataProvider {
metadata = { metadata = {
frameOfReferenceUID: instance.FrameOfReferenceUID, frameOfReferenceUID: instance.FrameOfReferenceUID,
rows: getNumberValues(instance.Rows), rows: validNumber(instance.Rows),
columns: getNumberValues(instance.Columns), columns: validNumber(instance.Columns),
imageOrientationPatient: getNumberValues(ImageOrientationPatient), imageOrientationPatient: validNumber(ImageOrientationPatient),
rowCosines: getNumberValues(rowCosines), rowCosines: validNumber(rowCosines),
columnCosines: getNumberValues(columnCosines), columnCosines: validNumber(columnCosines),
imagePositionPatient: getNumberValues(instance.ImagePositionPatient), imagePositionPatient: validNumber(instance.ImagePositionPatient),
sliceThickness: getNumberValues(instance.SliceThickness), sliceThickness: validNumber(instance.SliceThickness),
sliceLocation: getNumberValues(instance.SliceLocation), sliceLocation: validNumber(instance.SliceLocation),
pixelSpacing: getNumberValues(PixelSpacing), pixelSpacing: validNumber(PixelSpacing),
rowPixelSpacing: getNumberValues(rowPixelSpacing), rowPixelSpacing: validNumber(rowPixelSpacing),
columnPixelSpacing: getNumberValues(columnPixelSpacing), columnPixelSpacing: validNumber(columnPixelSpacing),
}; };
break; break;
case WADO_IMAGE_LOADER_TAGS.IMAGE_PIXEL_MODULE: case WADO_IMAGE_LOADER_TAGS.IMAGE_PIXEL_MODULE:
metadata = { metadata = {
samplesPerPixel: getNumberValues(instance.SamplesPerPixel), samplesPerPixel: validNumber(instance.SamplesPerPixel),
photometricInterpretation: getNumberValues(instance.PhotometricInterpretation), photometricInterpretation: validNumber(instance.PhotometricInterpretation),
rows: getNumberValues(instance.Rows), rows: validNumber(instance.Rows),
columns: getNumberValues(instance.Columns), columns: validNumber(instance.Columns),
bitsAllocated: getNumberValues(instance.BitsAllocated), bitsAllocated: validNumber(instance.BitsAllocated),
bitsStored: getNumberValues(instance.BitsStored), bitsStored: validNumber(instance.BitsStored),
highBit: getNumberValues(instance.HighBit), highBit: validNumber(instance.HighBit),
pixelRepresentation: getNumberValues(instance.PixelRepresentation), pixelRepresentation: validNumber(instance.PixelRepresentation),
planarConfiguration: getNumberValues(instance.PlanarConfiguration), planarConfiguration: validNumber(instance.PlanarConfiguration),
pixelAspectRatio: getNumberValues(instance.PixelAspectRatio), pixelAspectRatio: validNumber(instance.PixelAspectRatio),
smallestPixelValue: getNumberValues(instance.SmallestPixelValue), smallestPixelValue: validNumber(instance.SmallestPixelValue),
largestPixelValue: getNumberValues(instance.LargestPixelValue), largestPixelValue: validNumber(instance.LargestPixelValue),
redPaletteColorLookupTableDescriptor: redPaletteColorLookupTableDescriptor:
getNumberValues(instance.RedPaletteColorLookupTableDescriptor), validNumber(instance.RedPaletteColorLookupTableDescriptor),
greenPaletteColorLookupTableDescriptor: greenPaletteColorLookupTableDescriptor:
getNumberValues(instance.GreenPaletteColorLookupTableDescriptor), validNumber(instance.GreenPaletteColorLookupTableDescriptor),
bluePaletteColorLookupTableDescriptor: bluePaletteColorLookupTableDescriptor:
getNumberValues(instance.BluePaletteColorLookupTableDescriptor), validNumber(instance.BluePaletteColorLookupTableDescriptor),
redPaletteColorLookupTableData: redPaletteColorLookupTableData:
getNumberValues(instance.RedPaletteColorLookupTableData), validNumber(instance.RedPaletteColorLookupTableData),
greenPaletteColorLookupTableData: greenPaletteColorLookupTableData:
getNumberValues(instance.GreenPaletteColorLookupTableData), validNumber(instance.GreenPaletteColorLookupTableData),
bluePaletteColorLookupTableData: bluePaletteColorLookupTableData:
getNumberValues(instance.BluePaletteColorLookupTableData), validNumber(instance.BluePaletteColorLookupTableData),
}; };
break; break;
case WADO_IMAGE_LOADER_TAGS.VOI_LUT_MODULE: case WADO_IMAGE_LOADER_TAGS.VOI_LUT_MODULE:
debugger
const { WindowCenter, WindowWidth } = instance; const { WindowCenter, WindowWidth } = instance;
if (WindowCenter === undefined || WindowWidth === undefined) { if (WindowCenter === undefined || WindowWidth === undefined) {
return; return;
@ -283,8 +284,8 @@ class MetadataProvider {
: [WindowWidth]; : [WindowWidth];
metadata = { metadata = {
windowCenter: getNumberValues(windowCenter), windowCenter: validNumber(windowCenter),
windowWidth: getNumberValues(windowWidth), windowWidth: validNumber(windowWidth),
}; };
break; break;
@ -295,8 +296,8 @@ class MetadataProvider {
} }
metadata = { metadata = {
rescaleIntercept: getNumberValues(instance.RescaleIntercept), rescaleIntercept: validNumber(instance.RescaleIntercept),
rescaleSlope: getNumberValues(instance.RescaleSlope), rescaleSlope: validNumber(instance.RescaleSlope),
rescaleType: instance.RescaleType, rescaleType: instance.RescaleType,
}; };
break; break;
@ -408,7 +409,7 @@ class MetadataProvider {
case WADO_IMAGE_LOADER_TAGS.GENERAL_IMAGE_MODULE: case WADO_IMAGE_LOADER_TAGS.GENERAL_IMAGE_MODULE:
metadata = { metadata = {
sopInstanceUid: instance.SOPInstanceUID, sopInstanceUid: instance.SOPInstanceUID,
instanceNumber: getNumberValues(instance.InstanceNumber), instanceNumber: validNumber(instance.InstanceNumber),
lossyImageCompression: instance.LossyImageCompression, lossyImageCompression: instance.LossyImageCompression,
lossyImageCompressionRatio: instance.LossyImageCompressionRatio, lossyImageCompressionRatio: instance.LossyImageCompressionRatio,
lossyImageCompressionMethod: instance.LossyImageCompressionMethod, lossyImageCompressionMethod: instance.LossyImageCompressionMethod,
@ -471,21 +472,13 @@ const metadataProvider = new MetadataProvider();
* @param element - The javascript object for the specified element in the metadata * @param element - The javascript object for the specified element in the metadata
* @returns {*} * @returns {*}
*/ */
function getNumberValues(element) { const validNumber = val => {
if (!element) { if (Array.isArray(val)) {
return; return val.map(v => (v !== undefined ? Number(v) : v));
} else {
return val !== undefined ? Number(val) : val;
} }
};
if (Array.isArray(element)) {
const values = [];
for (let i = 0; i < element.length; i++) {
values.push(parseFloat(element[i]));
}
return values;
}
return parseFloat(element)
}