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)