Commit 5ba96ad230f514c91aa81f592dfd91eac92c5fcf

Authored by tfmoraes
1 parent 3c29741e

ADD: Add a dicom file inside of inv3 project file

Showing 2 changed files with 18 additions and 3 deletions   Show diff stats
invesalius/control.py
@@ -362,7 +362,7 @@ class Controller(): @@ -362,7 +362,7 @@ class Controller():
362 proj.modality = dicom.acquisition.modality 362 proj.modality = dicom.acquisition.modality
363 proj.SetAcquisitionModality(dicom.acquisition.modality) 363 proj.SetAcquisitionModality(dicom.acquisition.modality)
364 proj.imagedata = imagedata 364 proj.imagedata = imagedata
365 - #proj.dicom = dicom 365 + proj.dicom_sample = dicom
366 proj.original_orientation =\ 366 proj.original_orientation =\
367 name_to_const[dicom.image.orientation_label] 367 name_to_const[dicom.image.orientation_label]
368 proj.window = float(dicom.image.window) 368 proj.window = float(dicom.image.window)
invesalius/project.py
@@ -34,6 +34,7 @@ import data.mask as msk @@ -34,6 +34,7 @@ import data.mask as msk
34 import data.polydata_utils as pu 34 import data.polydata_utils as pu
35 import data.surface as srf 35 import data.surface as srf
36 from presets import Presets 36 from presets import Presets
  37 +from reader import dicom
37 from utils import Singleton 38 from utils import Singleton
38 import version 39 import version
39 40
@@ -45,7 +46,7 @@ class Project(object): @@ -45,7 +46,7 @@ class Project(object):
45 def __init__(self): 46 def __init__(self):
46 # Patient/ acquistion information 47 # Patient/ acquistion information
47 self.name = '' 48 self.name = ''
48 - #self.dicom = '' 49 + self.dicom_sample = ''
49 self.modality = '' 50 self.modality = ''
50 self.original_orientation = '' 51 self.original_orientation = ''
51 self.min_threshold = '' 52 self.min_threshold = ''
@@ -175,6 +176,10 @@ class Project(object): @@ -175,6 +176,10 @@ class Project(object):
175 if getattr(self.__dict__[key], 'SavePlist', None): 176 if getattr(self.__dict__[key], 'SavePlist', None):
176 project[key] = {'#plist': 177 project[key] = {'#plist':
177 self.__dict__[key].SavePlist(filename_tmp).decode('utf-8')} 178 self.__dict__[key].SavePlist(filename_tmp).decode('utf-8')}
  179 + elif key == 'dicom_sample':
  180 + shutil.copy(self.dicom_sample.parser.filename,
  181 + os.path.join(dir_temp, 'sample.dcm'))
  182 + project[key] = 'sample.dcm'
178 else: 183 else:
179 project[key] = self.__dict__[key] 184 project[key] = self.__dict__[key]
180 185
@@ -212,8 +217,10 @@ class Project(object): @@ -212,8 +217,10 @@ class Project(object):
212 ow.SetInstance(fow) 217 ow.SetInstance(fow)
213 218
214 filelist = Extract(filename, tempfile.gettempdir()) 219 filelist = Extract(filename, tempfile.gettempdir())
215 - main_plist = min(filelist, key=lambda x: len(x)) 220 + main_plist = min(filter(lambda x: x.endswith('.plist'), filelist),
  221 + key=lambda x: len(x))
216 #print main_plist 222 #print main_plist
  223 + print main_plist
217 project = plistlib.readPlist(main_plist) 224 project = plistlib.readPlist(main_plist)
218 225
219 #print "antes", self.__dict__ 226 #print "antes", self.__dict__
@@ -233,6 +240,14 @@ class Project(object): @@ -233,6 +240,14 @@ class Project(object):
233 p = Presets() 240 p = Presets()
234 p.OpenPlist(path) 241 p.OpenPlist(path)
235 self.presets = p 242 self.presets = p
  243 + elif key == 'dicom_sample':
  244 + path = os.path.join(dirpath, project[key])
  245 + p = dicom.Parser()
  246 + p.SetFileName(path)
  247 + d = dicom.Dicom()
  248 + d.SetParser(p)
  249 + self.dicom_sample = d
  250 +
236 elif key == 'mask_dict': 251 elif key == 'mask_dict':
237 self.mask_dict = {} 252 self.mask_dict = {}
238 for mask in project[key]: 253 for mask in project[key]: