Source code for tests.compare_headers

import numpy as np


[docs]def compare_headers(self, self, newhdr, uid=True): compare_template_headers(self, self, newhdr, uid) compare_geometry_headers(self, self, newhdr)
[docs]def compare_template_headers(self, self, newhdr, uid=True): # logging.debug('compare_headers: name {} {}'.format(self.name, newhdr.name)) self.assertEqual(self.name, newhdr.name) # logging.debug('compare_headers: description {} {}'.format(self.description, newhdr.description)) self.assertEqual(self.description, newhdr.description) self.assertEqual(self.authors, newhdr.authors) self.assertEqual(self.version, newhdr.version) self.assertEqual(self.url, newhdr.url) self.assertEqual(self.input_order, newhdr.input_order) # self.assertEqual(self.sort_on, newhdr.sort_on) # DicomHeaderDict[slice].tuple(tagvalue, filename, dicomheader) try: self.assertEqual(self.DicomHeaderDict.keys(), newhdr.DicomHeaderDict.keys()) # for k in self.DicomHeaderDict.keys(): # self.assertEqual(self.DicomHeaderDict[k], newhdr.DicomHeaderDict[k]) except ValueError: pass self.assertEqual(self.tags.keys(), newhdr.tags.keys()) for k in self.tags.keys(): np.testing.assert_array_equal(self.tags[k], newhdr.tags[k]) if uid: compare_optional(self, self, newhdr, 'studyInstanceUID') # compare_optional(self, self, newhdr, 'seriesInstanceUID') compare_optional(self, self, newhdr, 'frameOfReferenceUID') compare_optional(self, self, newhdr, 'seriesNumber') compare_optional(self, self, newhdr, 'seriesDescription') compare_optional(self, self, newhdr, 'imageType') self.assertEqual(self.color, newhdr.color) self.assertEqual(self.photometricInterpretation, newhdr.photometricInterpretation)
[docs]def compare_optional(self, a, b, attr): try: a_attr = getattr(a, attr, None) except ValueError: a_attr = None try: b_attr = getattr(b, attr, None) except ValueError: b_attr = None self.assertEqual(a_attr, b_attr)
[docs]def compare_geometry_headers(self, self, newhdr): try: np.testing.assert_array_equal(self.sliceLocations, newhdr.sliceLocations) except ValueError: pass np.testing.assert_array_almost_equal(self.spacing, newhdr.spacing, decimal=4) np.testing.assert_array_almost_equal(self.orientation, newhdr.orientation, decimal=4) self.assertEqual(self.imagePositions.keys(), newhdr.imagePositions.keys()) for k in self.imagePositions.keys(): # logging.debug('compare_headers: self.imagePositions[{}]={}'.format(k,self.imagePositions[k])) # logging.debug('compare_headers: newhdr.imagePositions[{}]={}'.format(k,newhdr.imagePositions[k])) np.testing.assert_array_almost_equal( self.imagePositions[k], newhdr.imagePositions[k], decimal=4) np.testing.assert_array_almost_equal(self.transformationMatrix, newhdr.transformationMatrix, decimal=3)