def setUp(self): parser = argparse.ArgumentParser() imagedata.cmdline.add_argparse_options(parser) self.opts = parser.parse_args(['--of', 'dicom']) self.opts_template = parser.parse_args([ '--of', 'dicom', '--input_options', 'AcceptDuplicateTag=True', '--template', 'data/dicom/time/time00/' ]) self.opts_geometry = parser.parse_args([ '--of', 'dicom', '--input_options', 'AcceptDuplicateTag=True', '--geometry', 'data/dicom/time/time00/' ]) self.opts_tempgeom = parser.parse_args([ '--of', 'dicom', '--input_options', 'AcceptDuplicateTag=True', '--template', 'data/dicom/time/time00/', '--geometry', 'data/dicom/time/time00/' ]) plugins = imagedata.formats.get_plugins_list() self.dicom_plugin = None for pname, ptype, pclass in plugins: if ptype == 'dicom': self.dicom_plugin = pclass self.assertIsNotNone(self.dicom_plugin) # Create a DICOM series with empty header si0 = Series(os.path.join('data', 'mat', 'time', 'Image_00000.mat'), input_order='time') self.emptydir = tempfile.TemporaryDirectory() si00 = Series(si0[0], input_order='none') si01 = Series(si0[:2], input_order='time') si00.write(os.path.join(self.emptydir.name, 'empty_header'), formats=['dicom']) # Provide sensible time tags for s in range(3): for t in range(2): time_str = datetime.utcfromtimestamp( float(t)).strftime("%H%M%S.%f") si01.setDicomAttribute('AcquisitionTime', time_str, slice=s, tag=t) si01.write(os.path.join(self.emptydir.name, 'empty_header_time'), formats=['dicom'])
def test_cross_talk_series_ref(self): si = Series('data/dicom/time/time00') si1 = Series(si, input_order=si.input_order) si1.setDicomAttribute('WindowWidth', 1) self.assertNotEqual(si.getDicomAttribute('WindowWidth'), si1.getDicomAttribute('WindowWidth'))