UNPKG

@cornerstonejs/core

Version:
70 lines (69 loc) 2.24 kB
import * as metaData from '../metaData.js'; import { MetadataModules } from '../enums/index.js'; import isEqual from './isEqual.js'; function isValidVolume(imageIds) { if (!imageIds.length) { return false; } const imageId0 = imageIds[0]; const generalSeries = metaData.get(MetadataModules.GENERAL_SERIES, imageId0); if (!generalSeries) { return false; } const { modality, seriesInstanceUID } = generalSeries; const imagePlane = metaData.get(MetadataModules.IMAGE_PLANE, imageId0); if (!imagePlane) { return false; } const { imageOrientationPatient, pixelSpacing, frameOfReferenceUID, columns, rows, usingDefaultValues, } = imagePlane; if (usingDefaultValues) { return false; } const baseMetadata = { modality, imageOrientationPatient, pixelSpacing, frameOfReferenceUID, columns, rows, seriesInstanceUID, }; let validVolume = true; for (let i = 0; i < imageIds.length; i++) { const imageId = imageIds[i]; const general = metaData.get(MetadataModules.GENERAL_SERIES, imageId); const plane = metaData.get(MetadataModules.IMAGE_PLANE, imageId); if (!general || !plane) { validVolume = false; break; } const { modality, seriesInstanceUID } = general; const { imageOrientationPatient, pixelSpacing, columns, rows } = plane; if (seriesInstanceUID !== baseMetadata.seriesInstanceUID) { validVolume = false; break; } if (modality !== baseMetadata.modality) { validVolume = false; break; } if (columns !== baseMetadata.columns) { validVolume = false; break; } if (rows !== baseMetadata.rows) { validVolume = false; break; } if (!isEqual(imageOrientationPatient, baseMetadata.imageOrientationPatient)) { validVolume = false; break; } if (!isEqual(pixelSpacing, baseMetadata.pixelSpacing)) { validVolume = false; break; } } return validVolume; } export { isValidVolume };