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'])
Exemple #2
0
 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'))