Commit 5ba96ad230f514c91aa81f592dfd91eac92c5fcf
1 parent
3c29741e
Exists in
master
and in
6 other branches
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]: |