예제 #1
0
class ImageDatasetTest(ut.TestCase):
    def setUp(self):
        self.app = ImageDataset(home_folder)
        self.app.get_seq_list()
        self.seq_dir = test_sequence

    def test_dataset_assigns_main_dir_correctly(self):
        self.assertEqual(self.app.main_dir, home_folder)

    def test_dataset_seq_list_not_empty(self):
        self.assertFalse(len(self.app.seq_list) == 0)

    def test_dataset_has_correct_number_of_files(self):
        number_of_files = len(self.app.seq_list[test_sequence])
        sequence = self.app.make_sequence(self.seq_dir)
        self.assertEqual(number_of_files, 26)

    def test_sequence_items_are_pydicom_datasets(self):
        sequence = self.app.make_sequence(self.seq_dir)
        self.assertEqual(sequence.info('PatientID'), 'yI1Yf6zek5U')
        self.assertEqual(sequence.info(tag=[0x10, 0x10]), 'MRIX LUMBAR')

    def test_sequence_size_method(self):
        sequence = self.app.make_sequence(self.seq_dir)
        number_of_files = len(self.app.seq_list[test_sequence])
        self.assertIsInstance(sequence.size(), dict)
        self.assertEqual(sequence.size()['main'], number_of_files)

    def test_sequence_split_by_echo_time(self):
        sequence = self.app.make_sequence(self.seq_dir)
        sequence.split('InstanceNumber')
        self.assertEqual(type(sequence.split_ds), dict)

    def test_sequence_split_into_26_sequences(self):
        sequence = self.app.make_sequence(self.seq_dir)
        sequence.split('InstanceNumber')
        self.assertEqual(len(sequence.split_ds), 26)
예제 #2
0
            
        slice_number += 1

def user_yn_query(question):
    sys.stdout.write('%s [y/n] ' % question)
    while True:
        try:
            return strtobool(raw_input().lower())
        except ValueError:
            sys.stdout.write('Please respond with \'y\' or \'n\'. ')

if __name__ == '__main__':

    data = ImageDataset()
    data.ask_for_source_dir()
    data.get_seq_list()
    
    if data.nii_list:
        print 'Found NIFTI file(s).'
        do_all = user_yn_query('Convert?')
        
        for nifti_path in data.nii_list:
            convert_NIFTI(data, nifti_path, do_all)
    
    
    
    print '\n............................................................\n'
    
    if data.seq_list:
        print 'Found {0} DICOM sequence(s):'.format(len(data.seq_list))
        for sequence_path in data.seq_list: