def _validate_slices_form_uniform_grid(slice_datasets):
invariant_properties = [<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>'<STR_LIT>',<EOL>]<EOL>for property_name in invariant_properties:<EOL><INDENT>_slice_attribute_equal(slice_datasets, property_name)<EOL><DEDENT>_validate_image_orientation(slice_datasets[<NUM_LIT:0>].ImageOrientationPatient)<EOL>_slice_ndarray_attribute_almost_equal(slice_datasets, '<STR_LIT>', <NUM_LIT>)<EOL>slice_positions = _slice_positions(slice_datasets)<EOL>_check_for_missing_slices(slice_positions)<EOL>
Perform various data checks to ensure that the list of slices form a
evenly-spaced grid of data.
Some of these checks are probably not required if the data follows the
DICOM specification, however it seems pertinent to check anyway.