Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import { metaData } from '..'; import isEqual from './isEqual'; /** * Checks if the given imageIds form a valid volume. A volume is considered valid if all imageIds * have the same series instance UID, modality, columns, rows, image orientation patient, and pixel * spacing. * * @param imageIds - The imageIds to check. * @returns true if the imageIds form a valid volume, false otherwise. */ function isValidVolume(imageIds: string[]): boolean { const imageId0 = imageIds[0]; const { modality, seriesInstanceUID } = metaData.get( 'generalSeriesModule', imageId0 ); const { imageOrientationPatient, pixelSpacing, frameOfReferenceUID, columns, rows, } = metaData.get('imagePlaneModule', imageId0); const baseMetadata = { modality, imageOrientationPatient, pixelSpacing, frameOfReferenceUID, columns, rows, seriesInstanceUID, }; const validVolume = imageIds.every((imageId) => { const { modality, seriesInstanceUID } = metaData.get( 'generalSeriesModule', imageId ); const { imageOrientationPatient, pixelSpacing, columns, rows } = metaData.get('imagePlaneModule', imageId); return ( seriesInstanceUID === baseMetadata.seriesInstanceUID && modality === baseMetadata.modality && columns === baseMetadata.columns && rows === baseMetadata.rows && isEqual(imageOrientationPatient, baseMetadata.imageOrientationPatient) && isEqual(pixelSpacing, baseMetadata.pixelSpacing) ); }); return validVolume; } export { isValidVolume }; |