diff --git a/packages/dicomImageLoader/src/imageLoader/wadors/metaData/metaDataProvider.ts b/packages/dicomImageLoader/src/imageLoader/wadors/metaData/metaDataProvider.ts index dcc91eaa59..a0e91c34ef 100644 --- a/packages/dicomImageLoader/src/imageLoader/wadors/metaData/metaDataProvider.ts +++ b/packages/dicomImageLoader/src/imageLoader/wadors/metaData/metaDataProvider.ts @@ -22,6 +22,7 @@ import { instanceModuleNames, } from '../../getInstanceModule'; import { getUSEnhancedRegions } from './USHelpers'; +const { calibratedPixelSpacingMetadataProvider } = utilities; function metaDataProvider(type, imageId) { const { MetadataModules } = Enums; @@ -146,7 +147,24 @@ function metaDataProvider(type, imageId) { //metaData = fixNMMetadata(metaData); let imageOrientationPatient = extractOrientationFromMetadata(metaData); let imagePositionPatient = extractPositionFromMetadata(metaData); - const pixelSpacing = getNumberValues(metaData['00280030'], 2); + + // Read the pixel spacing from the calibratedPixelSpacingMetadataProvider if it + // has been set while processing the WADORS metadata call. This ensures that + // the calibrated spacing for DX images is used (as calculated with the function + // getPixelSpacingInformation from the core utilities). + let pixelSpacing = null; + const calibrationData = calibratedPixelSpacingMetadataProvider.get( + 'calibratedPixelSpacing', + imageId + ); + if (calibrationData) { + pixelSpacing = [ + calibrationData.rowPixelSpacing, + calibrationData.columnPixelSpacing, + ]; + } else { + pixelSpacing = getNumberValues(metaData['00280030'], 2); + } let columnPixelSpacing = null; let rowPixelSpacing = null;