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