Commit e95a97e6a528dc9c03fb39713b51239eed862fa2
1 parent
31c79184
Exists in
master
and in
67 other branches
ENH: Optimize time of importation
Showing
1 changed file
with
18 additions
and
24 deletions
Show diff stats
invesalius/reader/dicom_reader.py
| ... | ... | @@ -158,11 +158,13 @@ def GetImageOrientationLabel(filename): |
| 158 | 158 | else: |
| 159 | 159 | return "" |
| 160 | 160 | |
| 161 | +grouper = dicom_grouper.DicomPatientGrouper() | |
| 161 | 162 | |
| 162 | 163 | def GetDicomGroups(directory, recursive=True, gui=True): |
| 163 | 164 | """ |
| 164 | 165 | Return all full paths to DICOM files inside given directory. |
| 165 | 166 | """ |
| 167 | + | |
| 166 | 168 | nfiles = 0 |
| 167 | 169 | # Find total number of files |
| 168 | 170 | if recursive: |
| ... | ... | @@ -255,37 +257,29 @@ def GetDicomGroups(directory, recursive=True, gui=True): |
| 255 | 257 | data_dict['invesalius'] = {'orientation_label' : GetImageOrientationLabel(filename)} |
| 256 | 258 | |
| 257 | 259 | # ------------------------------------------------------------- |
| 258 | - | |
| 259 | - dict_file[os.path.abspath(filename)] = data_dict | |
| 260 | + filepath = os.path.abspath(filename) | |
| 261 | + dict_file[filepath] = data_dict | |
| 262 | + | |
| 263 | + if (data_dict['0002']['0002'] != "1.2.840.10008.1.3.10"): #DICOMDIR | |
| 264 | + parser = dicom.Parser() | |
| 265 | + parser.SetDataImage(dict_file[filepath], filepath) | |
| 266 | + | |
| 267 | + dcm = dicom.Dicom() | |
| 268 | + dcm.SetParser(parser) | |
| 269 | + grouper.AddFile(dcm) | |
| 260 | 270 | |
| 261 | - main_dict = dict( | |
| 262 | - data = dict_file, | |
| 263 | - labels = tag_labels) | |
| 271 | + | |
| 272 | + #------- to test ------------------------------------- | |
| 273 | + #main_dict = dict( | |
| 274 | + # data = dict_file, | |
| 275 | + # labels = tag_labels) | |
| 264 | 276 | |
| 265 | 277 | #plistlib.writePlist(main_dict, ".//teste.plist") |
| 266 | - | |
| 267 | - images = main_dict['data'] | |
| 268 | - grouper = dicom_grouper.DicomPatientGrouper() | |
| 269 | - | |
| 270 | - for x in images.keys(): | |
| 271 | - data_image = images[x] | |
| 272 | - | |
| 273 | - if (data_image['0002']['0002'] != "1.2.840.10008.1.3.10"): #DICOMDIR | |
| 274 | - parser = dicom.Parser() | |
| 275 | - parser.SetDataImage(data_image, x) | |
| 276 | - | |
| 277 | - dcm = dicom.Dicom() | |
| 278 | - dcm.SetParser(parser) | |
| 279 | - grouper.AddFile(dcm) | |
| 280 | 278 | |
| 281 | 279 | grouper.Update() |
| 282 | 280 | |
| 283 | - | |
| 284 | - | |
| 285 | 281 | return grouper.GetPatientsGroups() |
| 286 | - #print "_____________________________________" | |
| 287 | - #print dirpath | |
| 288 | - #nfiles += len(filenames) | |
| 282 | + | |
| 289 | 283 | else: |
| 290 | 284 | pass |
| 291 | 285 | #dirpath, dirnames, filenames = os.walk(directory) | ... | ... |