Commit 203f403de2d015c8590a6845d62892a825bd57a8
1 parent
711eafe8
Exists in
master
and in
6 other branches
STL: removed certain prints
Showing
20 changed files
with
97 additions
and
150 deletions
Show diff stats
invesalius/control.py
... | ... | @@ -36,6 +36,8 @@ import reader.dicom_reader as dcm |
36 | 36 | import reader.analyze_reader as analyze |
37 | 37 | import session as ses |
38 | 38 | |
39 | +from utils import debug | |
40 | + | |
39 | 41 | DEFAULT_THRESH_MODE = 0 |
40 | 42 | |
41 | 43 | class Controller(): |
... | ... | @@ -147,7 +149,7 @@ class Controller(): |
147 | 149 | |
148 | 150 | |
149 | 151 | def ShowDialogCloseProject(self): |
150 | - utils.debug("ShowDialogCloseProject") | |
152 | + debug("ShowDialogCloseProject") | |
151 | 153 | session = ses.Session() |
152 | 154 | st = session.project_status |
153 | 155 | if st == const.PROJ_CLOSE: |
... | ... | @@ -156,18 +158,18 @@ class Controller(): |
156 | 158 | if (st == const.PROJ_NEW) or (st == const.PROJ_CHANGE): |
157 | 159 | answer = dialog.SaveChangesDialog(filename) |
158 | 160 | if not answer: |
159 | - utils.debug("Close without changes") | |
161 | + debug("Close without changes") | |
160 | 162 | self.CloseProject() |
161 | 163 | ps.Publisher().sendMessage("Enable state project", False) |
162 | 164 | ps.Publisher().sendMessage('Set project name') |
163 | 165 | elif answer == 1: |
164 | 166 | self.ShowDialogSaveProject() |
165 | - utils.debug("Save changes and close") | |
167 | + debug("Save changes and close") | |
166 | 168 | self.CloseProject() |
167 | 169 | ps.Publisher().sendMessage("Enable state project", False) |
168 | 170 | ps.Publisher().sendMessage('Set project name') |
169 | 171 | elif answer == -1: |
170 | - utils.debug("Cancel") | |
172 | + debug("Cancel") | |
171 | 173 | else: |
172 | 174 | self.CloseProject() |
173 | 175 | ps.Publisher().sendMessage("Enable state project", False) |
... | ... | @@ -307,7 +309,7 @@ class Controller(): |
307 | 309 | self.CreateAnalyzeProject(imagedata) |
308 | 310 | # OPTION 3: Nothing... |
309 | 311 | else: |
310 | - utils.debug("No medical images found on given directory") | |
312 | + debug("No medical images found on given directory") | |
311 | 313 | return |
312 | 314 | self.LoadProject() |
313 | 315 | ps.Publisher().sendMessage("Enable state project", True) |
... | ... | @@ -392,7 +394,7 @@ class Controller(): |
392 | 394 | interval += 1 |
393 | 395 | filelist = dicom_group.GetFilenameList()[::interval] |
394 | 396 | if not filelist: |
395 | - utils.debug("Not used the IPPSorter") | |
397 | + debug("Not used the IPPSorter") | |
396 | 398 | filelist = [i.image.file for i in dicom_group.GetHandSortedList()[::interval]] |
397 | 399 | |
398 | 400 | ... | ... |
invesalius/data/imagedata_utils.py
... | ... | @@ -227,7 +227,7 @@ def CreateImageData(filelist, zspacing, size, bits): |
227 | 227 | x,y = size |
228 | 228 | px, py = utils.PredictingMemory(len(filelist), x, y, bits) |
229 | 229 | |
230 | - print "Image Resized to >>>", px, "x", py | |
230 | + utils.debug("Image Resized to >>> %f x %f" % (px, py)) | |
231 | 231 | |
232 | 232 | if (x == px) and (y == py): |
233 | 233 | const.REDUCE_IMAGEDATA_QUALITY = 0 |
... | ... | @@ -294,35 +294,61 @@ def CreateImageData(filelist, zspacing, size, bits): |
294 | 294 | return imagedata |
295 | 295 | |
296 | 296 | |
297 | -""" | |
298 | 297 | class ImageCreator: |
299 | 298 | def __init__(self): |
300 | - ps.Publisher().sendMessage("Cancel imagedata load", self.CancelImageDataLoad) | |
299 | + self.running = True | |
300 | + ps.Publisher().subscribe(self.CancelImageDataLoad, "Cancel DICOM load") | |
301 | 301 | |
302 | 302 | def CancelImageDataLoad(self, evt_pusub): |
303 | - self.running = evt_pusub.data | |
303 | + utils.debug("Canceling") | |
304 | + self.running = False | |
305 | + | |
306 | + def CreateImageData(self, filelist, zspacing, size, bits): | |
307 | + message = _("Generating multiplanar visualization...") | |
308 | + | |
309 | + if not const.VTK_WARNING: | |
310 | + log_path = os.path.join(const.LOG_FOLDER, 'vtkoutput.txt') | |
311 | + fow = vtk.vtkFileOutputWindow() | |
312 | + fow.SetFileName(log_path) | |
313 | + ow = vtk.vtkOutputWindow() | |
314 | + ow.SetInstance(fow) | |
315 | + | |
316 | + x,y = size | |
317 | + px, py = utils.PredictingMemory(len(filelist), x, y, bits) | |
318 | + utils.debug("Image Resized to >>> %f x %f" % (px, py)) | |
319 | + | |
320 | + if (x == px) and (y == py): | |
321 | + const.REDUCE_IMAGEDATA_QUALITY = 0 | |
322 | + else: | |
323 | + const.REDUCE_IMAGEDATA_QUALITY = 1 | |
304 | 324 | |
305 | - def CreateImageData(filelist, zspacing): | |
306 | - message = "Generating multiplanar visualization..." | |
307 | 325 | if not(const.REDUCE_IMAGEDATA_QUALITY): |
308 | - update_progress= vtk_utils.ShowProgress(1) | |
326 | + update_progress= vtk_utils.ShowProgress(1, dialog_type = "ProgressDialog") | |
309 | 327 | |
310 | 328 | array = vtk.vtkStringArray() |
311 | 329 | for x in xrange(len(filelist)): |
330 | + if not self.running: | |
331 | + return False | |
312 | 332 | array.InsertValue(x,filelist[x]) |
313 | 333 | |
334 | + if not self.running: | |
335 | + return False | |
314 | 336 | reader = vtkgdcm.vtkGDCMImageReader() |
315 | 337 | reader.SetFileNames(array) |
316 | 338 | reader.AddObserver("ProgressEvent", lambda obj,evt: |
317 | 339 | update_progress(reader,message)) |
318 | 340 | reader.Update() |
319 | 341 | |
342 | + if not self.running: | |
343 | + reader.AbortExecuteOn() | |
344 | + return False | |
320 | 345 | # The zpacing is a DicomGroup property, so we need to set it |
321 | 346 | imagedata = vtk.vtkImageData() |
322 | 347 | imagedata.DeepCopy(reader.GetOutput()) |
323 | 348 | spacing = imagedata.GetSpacing() |
324 | 349 | imagedata.SetSpacing(spacing[0], spacing[1], zspacing) |
325 | 350 | else: |
351 | + | |
326 | 352 | update_progress= vtk_utils.ShowProgress(2*len(filelist), |
327 | 353 | dialog_type = "ProgressDialog") |
328 | 354 | |
... | ... | @@ -330,11 +356,14 @@ class ImageCreator: |
330 | 356 | appender = vtk.vtkImageAppend() |
331 | 357 | appender.SetAppendAxis(2) #Define Stack in Z |
332 | 358 | |
359 | + | |
333 | 360 | # Reformat each slice |
334 | 361 | for x in xrange(len(filelist)): |
335 | 362 | # TODO: We need to check this automatically according |
336 | 363 | # to each computer's architecture |
337 | 364 | # If the resolution of the matrix is too large |
365 | + if not self.running: | |
366 | + return False | |
338 | 367 | reader = vtkgdcm.vtkGDCMImageReader() |
339 | 368 | reader.SetFileName(filelist[x]) |
340 | 369 | reader.AddObserver("ProgressEvent", lambda obj,evt: |
... | ... | @@ -342,15 +371,15 @@ class ImageCreator: |
342 | 371 | reader.Update() |
343 | 372 | |
344 | 373 | #Resample image in x,y dimension |
345 | - | |
346 | - slice_imagedata = ResampleImage2D(reader.GetOutput(), 256, update_progress) | |
347 | - | |
374 | + slice_imagedata = ResampleImage2D(reader.GetOutput(), px, py, update_progress) | |
348 | 375 | #Stack images in Z axes |
349 | 376 | appender.AddInput(slice_imagedata) |
350 | 377 | #appender.AddObserver("ProgressEvent", lambda obj,evt:update_progress(appender)) |
351 | 378 | appender.Update() |
352 | 379 | |
353 | 380 | # The zpacing is a DicomGroup property, so we need to set it |
381 | + if not self.running: | |
382 | + return False | |
354 | 383 | imagedata = vtk.vtkImageData() |
355 | 384 | imagedata.DeepCopy(appender.GetOutput()) |
356 | 385 | spacing = imagedata.GetSpacing() |
... | ... | @@ -362,5 +391,3 @@ class ImageCreator: |
362 | 391 | imagedata.Update() |
363 | 392 | |
364 | 393 | return imagedata |
365 | -""" | |
366 | - | ... | ... |
invesalius/data/slice_.py
... | ... | @@ -581,8 +581,8 @@ class Slice(object): |
581 | 581 | mask = mask_dict[key] |
582 | 582 | |
583 | 583 | # update gui related to mask |
584 | - print "__load_masks" | |
585 | - print 'THRESHOLD_RANGE', mask.threshold_range | |
584 | + utils.debug("__load_masks") | |
585 | + utils.debug('THRESHOLD_RANGE %s', mask.threshold_range) | |
586 | 586 | ps.Publisher().sendMessage('Add mask', |
587 | 587 | (mask.index, |
588 | 588 | mask.name, | ... | ... |
invesalius/data/viewer_slice.py
... | ... | @@ -35,6 +35,7 @@ import data.slice_ as sl |
35 | 35 | import data.vtk_utils as vtku |
36 | 36 | import project |
37 | 37 | import slice_data as sd |
38 | +import utils | |
38 | 39 | |
39 | 40 | ID_TO_TOOL_ITEM = {} |
40 | 41 | STR_WL = "WL: %d WW: %d" |
... | ... | @@ -286,14 +287,12 @@ class Viewer(wx.Panel): |
286 | 287 | style.AddObserver("RightButtonPressEvent", self.QuitRubberBandZoom) |
287 | 288 | |
288 | 289 | def OnRightClick(self, evt, obj): |
289 | - print "OnRightClick" | |
290 | 290 | self.last_position_mouse_move = \ |
291 | 291 | self.interactor.GetLastEventPosition() |
292 | 292 | |
293 | 293 | self.right_pressed = 1 |
294 | 294 | |
295 | 295 | def OnReleaseRightButton(self, evt, obj): |
296 | - print "OnReleaseRightButton" | |
297 | 296 | self.right_pressed = 0 |
298 | 297 | ps.Publisher().sendMessage('Update slice viewer') |
299 | 298 | |
... | ... | @@ -301,7 +300,6 @@ class Viewer(wx.Panel): |
301 | 300 | self.left_pressed = 1 |
302 | 301 | |
303 | 302 | def OnZoomLeftClick(self, evt, obj): |
304 | - print "OnZoomLeftClick" | |
305 | 303 | evt.StartDolly() |
306 | 304 | |
307 | 305 | def OnReleaseLeftButton(self, evt, obj): |
... | ... | @@ -383,12 +381,10 @@ class Viewer(wx.Panel): |
383 | 381 | |
384 | 382 | def OnZoomMoveLeft(self, evt, obj): |
385 | 383 | if self.left_pressed: |
386 | - print "OnZoomMoveLeft:" | |
387 | 384 | evt.Dolly() |
388 | 385 | evt.OnRightButtonDown() |
389 | 386 | |
390 | 387 | def OnVtkRightRelease(self, evt, obj): |
391 | - print "On VTK" | |
392 | 388 | evt.OnRightButtonUp() |
393 | 389 | |
394 | 390 | |
... | ... | @@ -688,12 +684,10 @@ class Viewer(wx.Panel): |
688 | 684 | |
689 | 685 | |
690 | 686 | if (self.right_pressed): |
691 | - print "OnZoomMoveRight" | |
692 | 687 | evt.Dolly() |
693 | 688 | evt.OnRightButtonDown() |
694 | 689 | |
695 | 690 | def OnZoomRightClick(self, evt, obj): |
696 | - print "OnZoomRightClick" | |
697 | 691 | evt.StartDolly() |
698 | 692 | |
699 | 693 | |
... | ... | @@ -752,8 +746,6 @@ class Viewer(wx.Panel): |
752 | 746 | coord[index] = extent_max[index] |
753 | 747 | elif coord[index] < extent_min[index]: |
754 | 748 | coord[index] = extent_min[index] |
755 | - #print "New coordinate: ", coord | |
756 | - | |
757 | 749 | return coord |
758 | 750 | |
759 | 751 | def get_coordinate_cursor(self): |
... | ... | @@ -854,9 +846,7 @@ class Viewer(wx.Panel): |
854 | 846 | "SAGITAL": const.SAGITAL} |
855 | 847 | |
856 | 848 | if id == dict[self.orientation]: |
857 | - print "ok" | |
858 | 849 | if filetype == const.FILETYPE_POV: |
859 | - print 1 | |
860 | 850 | renwin = self.interactor.GetRenderWindow() |
861 | 851 | image = vtk.vtkWindowToImageFilter() |
862 | 852 | image.SetInput(renwin) |
... | ... | @@ -866,7 +856,6 @@ class Viewer(wx.Panel): |
866 | 856 | writer.Write() |
867 | 857 | return |
868 | 858 | else: |
869 | - print 2 | |
870 | 859 | #Use tiling to generate a large rendering. |
871 | 860 | image = vtk.vtkRenderLargeImage() |
872 | 861 | image.SetInput(self.ren) |
... | ... | @@ -877,19 +866,14 @@ class Viewer(wx.Panel): |
877 | 866 | |
878 | 867 | # write image file |
879 | 868 | if (filetype == const.FILETYPE_BMP): |
880 | - print 3 | |
881 | 869 | writer = vtk.vtkBMPWriter() |
882 | 870 | elif (filetype == const.FILETYPE_JPG): |
883 | - print 4 | |
884 | 871 | writer = vtk.vtkJPEGWriter() |
885 | 872 | elif (filetype == const.FILETYPE_PNG): |
886 | - print 5 | |
887 | 873 | writer = vtk.vtkPNGWriter() |
888 | 874 | elif (filetype == const.FILETYPE_PS): |
889 | - print 6 | |
890 | 875 | writer = vtk.vtkPostScriptWriter() |
891 | 876 | elif (filetype == const.FILETYPE_TIF): |
892 | - print 7 | |
893 | 877 | writer = vtk.vtkTIFFWriter() |
894 | 878 | filename = "%s.tif"%filename.strip(".tif") |
895 | 879 | |
... | ... | @@ -904,11 +888,9 @@ class Viewer(wx.Panel): |
904 | 888 | ps.Publisher().sendMessage('End busy cursor') |
905 | 889 | |
906 | 890 | def OnShowText(self, pubsub_evt): |
907 | - print "OnShowText" | |
908 | 891 | self.ShowTextActors() |
909 | 892 | |
910 | 893 | def OnHideText(self, pubsub_evt): |
911 | - print "OnHideText" | |
912 | 894 | self.HideTextActors() |
913 | 895 | |
914 | 896 | |
... | ... | @@ -939,7 +921,6 @@ class Viewer(wx.Panel): |
939 | 921 | |
940 | 922 | |
941 | 923 | def ChangeBrushOperation(self, pubsub_evt): |
942 | - #print pubsub_evt.data | |
943 | 924 | self._brush_cursor_op = pubsub_evt.data |
944 | 925 | |
945 | 926 | def __bind_events_wx(self): |
... | ... | @@ -1005,8 +986,6 @@ class Viewer(wx.Panel): |
1005 | 986 | if i == self.layout[0] - 1: |
1006 | 987 | style = style | sd.BORDER_RIGHT |
1007 | 988 | |
1008 | - print "->Style", style | |
1009 | - | |
1010 | 989 | slice_data.SetBorderStyle(style) |
1011 | 990 | n += 1 |
1012 | 991 | |
... | ... | @@ -1130,21 +1109,10 @@ class Viewer(wx.Panel): |
1130 | 1109 | extent = slice_data.actor.GetDisplayExtent() |
1131 | 1110 | cam = slice_data.renderer.GetActiveCamera() |
1132 | 1111 | |
1133 | ||
1134 | - #print self.orientation | |
1135 | - #print x, y, z | |
1136 | - #print actor_bound | |
1137 | - #print "ViewUp", cam.GetViewUp() | |
1138 | - #print "Position", cam.GetPosition() | |
1139 | - #print "Orientation", cam.GetOrientation() | |
1140 | - #print "Focal Point", cam.GetFocalPoint() | |
1141 | - | |
1142 | 1112 | vCamera = numpy.array(cam.GetPosition()) - numpy.array(cam.GetFocalPoint()) |
1143 | 1113 | n_vCamera = vCamera / numpy.linalg.norm(vCamera) |
1144 | - #print "Normalized", n_vCamera | |
1145 | 1114 | |
1146 | 1115 | pos = [j + 0.01 * i for i,j in zip(n_vCamera, (x, y, z))] |
1147 | - #print "posicao", pos | |
1148 | 1116 | |
1149 | 1117 | #yz = [x + abs(x * 0.001), y, z] |
1150 | 1118 | #xz = [x, y - abs(y * 0.001), z] |
... | ... | @@ -1174,7 +1142,6 @@ class Viewer(wx.Panel): |
1174 | 1142 | # elif orientation == "CORONAL": |
1175 | 1143 | # pos[1] -= abs(pos[1] * 0.001) |
1176 | 1144 | |
1177 | - #print ">POS", pos | |
1178 | 1145 | |
1179 | 1146 | #pos = [x, y, z] |
1180 | 1147 | #if orientation == "AXIAL": | ... | ... |
invesalius/data/viewer_volume.py
... | ... | @@ -25,10 +25,10 @@ from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor |
25 | 25 | import wx.lib.pubsub as ps |
26 | 26 | |
27 | 27 | import constants as const |
28 | -import project as prj | |
29 | 28 | import data.vtk_utils as vtku |
30 | -from gui.widgets.clut_raycasting import CLUTRaycastingWidget | |
29 | +import project as prj | |
31 | 30 | import style as st |
31 | +import utils | |
32 | 32 | |
33 | 33 | class Viewer(wx.Panel): |
34 | 34 | def __init__(self, parent): |
... | ... | @@ -274,7 +274,6 @@ class Viewer(wx.Panel): |
274 | 274 | |
275 | 275 | # Check each event available for each mode |
276 | 276 | for event in action[state]: |
277 | - print event | |
278 | 277 | # Bind event |
279 | 278 | style.AddObserver(event,action[state][event]) |
280 | 279 | |
... | ... | @@ -439,14 +438,14 @@ class Viewer(wx.Panel): |
439 | 438 | self.interactor.Render() |
440 | 439 | |
441 | 440 | def RemoveActor(self, pubsub_evt): |
442 | - print "RemoveActor" | |
441 | + utils.debug("RemoveActor") | |
443 | 442 | actor = pubsub_evt.data |
444 | 443 | ren = self.ren |
445 | 444 | ren.RemoveActor(actor) |
446 | 445 | self.interactor.Render() |
447 | 446 | |
448 | 447 | def RemoveAllActor(self, pubsub_evt): |
449 | - print "RemoveAllActor" | |
448 | + utils.debug("RemoveAllActor") | |
450 | 449 | self.ren.RemoveAllProps() |
451 | 450 | ps.Publisher().sendMessage('Render volume viewer') |
452 | 451 | |
... | ... | @@ -503,7 +502,6 @@ class Viewer(wx.Panel): |
503 | 502 | self.interactor.Render() |
504 | 503 | |
505 | 504 | def ShowOrientationCube(self): |
506 | - print "ORIENTATION CUBE!" | |
507 | 505 | cube = vtk.vtkAnnotatedCubeActor() |
508 | 506 | cube.GetXMinusFaceProperty().SetColor(1,0,0) |
509 | 507 | cube.GetXPlusFaceProperty().SetColor(1,0,0) |
... | ... | @@ -696,7 +694,6 @@ class SlicePlane: |
696 | 694 | a.SetBackfaceCulling(0) |
697 | 695 | c = self.plane_x.GetTexture() |
698 | 696 | c.SetRestrictPowerOf2ImageSmaller(1) |
699 | - #print dir(a) | |
700 | 697 | |
701 | 698 | elif(self.original_orientation == const.SAGITAL): |
702 | 699 | if(label == "Axial"): | ... | ... |
invesalius/data/volume.py
... | ... | @@ -418,17 +418,13 @@ class Volume(): |
418 | 418 | def SetTypeRaycasting(self): |
419 | 419 | if self.volume_mapper.IsA("vtkFixedPointVolumeRayCastMapper"): |
420 | 420 | if self.config.get('MIP', False): |
421 | - print "MIP" | |
422 | 421 | self.volume_mapper.SetBlendModeToMaximumIntensity() |
423 | 422 | else: |
424 | - print "Composite" | |
425 | 423 | self.volume_mapper.SetBlendModeToComposite() |
426 | 424 | else: |
427 | 425 | if self.config.get('MIP', False): |
428 | - print "MIP" | |
429 | 426 | raycasting_function = vtk.vtkVolumeRayCastMIPFunction() |
430 | 427 | else: |
431 | - print "Composite" | |
432 | 428 | raycasting_function = vtk.vtkVolumeRayCastCompositeFunction() |
433 | 429 | raycasting_function.SetCompositeMethodToInterpolateFirst() |
434 | 430 | self.volume_mapper.SetVolumeRayCastFunction(raycasting_function) |
... | ... | @@ -551,20 +547,16 @@ class Volume(): |
551 | 547 | (volume, colour, (self.ww, self.wl))) |
552 | 548 | |
553 | 549 | def OnEnableTool(self, pubsub_evt): |
554 | - print "OnEnableTool" | |
555 | 550 | tool_name, enable = pubsub_evt.data |
556 | 551 | if tool_name == _("Cut plane"): |
557 | 552 | if self.plane: |
558 | 553 | if enable: |
559 | - print "Enable" | |
560 | 554 | self.plane_on = True |
561 | 555 | self.plane.Enable() |
562 | 556 | else: |
563 | - print "Disable" | |
564 | 557 | self.plane_on = False |
565 | 558 | self.plane.Disable() |
566 | 559 | else: |
567 | - print "Enable" | |
568 | 560 | self.final_imagedata.Update() |
569 | 561 | self.plane_on = True |
570 | 562 | self.plane = CutPlane(self.final_imagedata, | ... | ... |
invesalius/gui/default_viewers.py
... | ... | @@ -262,7 +262,6 @@ class VolumeInteraction(wx.Panel): |
262 | 262 | self.aui_manager.Update() |
263 | 263 | |
264 | 264 | def OnPointChanged(self, evt): |
265 | - print "Removed" | |
266 | 265 | ps.Publisher.sendMessage('Set raycasting refresh', None) |
267 | 266 | ps.Publisher.sendMessage('Set raycasting curve', evt.GetCurve()) |
268 | 267 | ps.Publisher().sendMessage('Render volume viewer') |
... | ... | @@ -278,7 +277,6 @@ class VolumeInteraction(wx.Panel): |
278 | 277 | |
279 | 278 | def OnSetRaycastPreset(self, evt_pubsub): |
280 | 279 | preset = project.Project().raycasting_preset |
281 | - print "Preset >>>", preset | |
282 | 280 | p = self.aui_manager.GetPane(self.clut_raycasting) |
283 | 281 | self.clut_raycasting.SetRaycastPreset(preset) |
284 | 282 | if self.clut_raycasting.to_draw_points and \ |
... | ... | @@ -542,13 +540,11 @@ class VolumeToolPanel(wx.Panel): |
542 | 540 | # if i is not item: |
543 | 541 | # i.Check(0) |
544 | 542 | if not TOOL_STATE[id]: |
545 | - print "item is checked" | |
546 | 543 | ps.Publisher().sendMessage('Enable raycasting tool', |
547 | 544 | [ID_TO_TOOL[id],1]) |
548 | 545 | TOOL_STATE[id] = True |
549 | 546 | item.Check(1) |
550 | 547 | else: |
551 | - print "item is not checked" | |
552 | 548 | ps.Publisher().sendMessage('Enable raycasting tool', |
553 | 549 | [ID_TO_TOOL[id],0]) |
554 | 550 | TOOL_STATE[id] = False | ... | ... |
invesalius/gui/dialogs.py
... | ... | @@ -28,6 +28,7 @@ import wx.lib.pubsub as ps |
28 | 28 | import constants as const |
29 | 29 | import project as proj |
30 | 30 | import session as ses |
31 | +import utils | |
31 | 32 | |
32 | 33 | |
33 | 34 | class NumberDialog(wx.Dialog): |
... | ... | @@ -275,7 +276,7 @@ def SaveChangesDialog__Old(filename): |
275 | 276 | |
276 | 277 | |
277 | 278 | def ImportEmptyDirectory(dirpath): |
278 | - msg = _("%s is an empty directory.") % dirpath | |
279 | + msg = _("%s is an empty directory.") % dirpath.decode("utf-8") | |
279 | 280 | if sys.platform == 'darwin': |
280 | 281 | dlg = wx.MessageDialog(None, "", |
281 | 282 | msg, |
... | ... | @@ -532,7 +533,7 @@ def ExportPicture(type_=""): |
532 | 533 | 4: const.FILETYPE_POV, |
533 | 534 | 5: const.FILETYPE_TIF} |
534 | 535 | |
535 | - print "ExportPicture" | |
536 | + utils.debug("ExportPicture") | |
536 | 537 | project = proj.Project() |
537 | 538 | |
538 | 539 | if sys.platform == 'win32': |
... | ... | @@ -554,7 +555,6 @@ def ExportPicture(type_=""): |
554 | 555 | filetype = INDEX_TO_TYPE[filetype_index] |
555 | 556 | extension = INDEX_TO_EXTENSION[filetype_index] |
556 | 557 | filename = dlg.GetPath() |
557 | - print "filename", filename | |
558 | 558 | if sys.platform != 'win32': |
559 | 559 | if filename.split(".")[-1] != extension: |
560 | 560 | filename = filename + "."+ extension | ... | ... |
invesalius/gui/dicom_preview_panel.py
... | ... | @@ -32,6 +32,7 @@ from vtk.wx.wxVTKRenderWindowInteractor import wxVTKRenderWindowInteractor |
32 | 32 | import constants as const |
33 | 33 | from reader import dicom_reader |
34 | 34 | import data.vtk_utils as vtku |
35 | +import utils | |
35 | 36 | |
36 | 37 | NROWS = 3 |
37 | 38 | NCOLS = 6 |
... | ... | @@ -107,7 +108,6 @@ class DicomInfo(object): |
107 | 108 | if self._preview: |
108 | 109 | return self._preview |
109 | 110 | else: |
110 | - print "First time!" | |
111 | 111 | colorer = vtk.vtkImageMapToWindowLevelColors() |
112 | 112 | colorer.SetInput(self.dicom.image.imagedata) |
113 | 113 | colorer.SetWindow(float(self.dicom.image.window)) |
... | ... | @@ -256,7 +256,6 @@ class Preview(wx.Panel): |
256 | 256 | if not self.select_on: |
257 | 257 | #c = wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DHILIGHT) |
258 | 258 | c = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNFACE) |
259 | - print c | |
260 | 259 | self.SetBackgroundColour(c) |
261 | 260 | |
262 | 261 | def OnLeave(self, evt): |
... | ... | @@ -265,7 +264,6 @@ class Preview(wx.Panel): |
265 | 264 | self.SetBackgroundColour(c) |
266 | 265 | |
267 | 266 | def OnSelect(self, evt): |
268 | - print "OnSelect" | |
269 | 267 | self.select_on = True |
270 | 268 | self.dicom_info.selected = True |
271 | 269 | ##c = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BTNHIGHLIGHT) |
... | ... | @@ -287,7 +285,6 @@ class Preview(wx.Panel): |
287 | 285 | my_evt.SetSelectedID(self.dicom_info.id) |
288 | 286 | my_evt.SetItemData(self.dicom_info.dicom) |
289 | 287 | my_evt.SetEventObject(self) |
290 | - print "patient", self.dicom_info.dicom.patient | |
291 | 288 | self.GetEventHandler().ProcessEvent(my_evt) |
292 | 289 | |
293 | 290 | def OnSize(self, evt): |
... | ... | @@ -370,7 +367,6 @@ class DicomPreviewSeries(wx.Panel): |
370 | 367 | self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel) |
371 | 368 | |
372 | 369 | def OnSelect(self, evt): |
373 | - print dir(evt) | |
374 | 370 | my_evt = SerieEvent(myEVT_CLICK_SERIE, self.GetId()) |
375 | 371 | my_evt.SetSelectedID(evt.GetSelectID()) |
376 | 372 | my_evt.SetItemData(evt.GetItemData()) |
... | ... | @@ -379,7 +375,6 @@ class DicomPreviewSeries(wx.Panel): |
379 | 375 | self.selected_dicom.selected = self.selected_dicom is \ |
380 | 376 | evt.GetEventObject().dicom_info |
381 | 377 | self.selected_panel.select_on = self.selected_panel is evt.GetEventObject() |
382 | - print "Unselecting a panel", self.selected_panel.select_on | |
383 | 378 | self.selected_panel.Select() |
384 | 379 | self.selected_panel = evt.GetEventObject() |
385 | 380 | self.selected_dicom = self.selected_panel.dicom_info |
... | ... | @@ -416,7 +411,7 @@ class DicomPreviewSeries(wx.Panel): |
416 | 411 | try: |
417 | 412 | self.previews[-i-1].Hide() |
418 | 413 | except IndexError: |
419 | - #print "doesn't exist!" | |
414 | + utils.debug("doesn't exist!") | |
420 | 415 | pass |
421 | 416 | self.nhidden_last_display = final-len(self.files) |
422 | 417 | else: |
... | ... | @@ -425,16 +420,14 @@ class DicomPreviewSeries(wx.Panel): |
425 | 420 | try: |
426 | 421 | self.previews[-i-1].Show() |
427 | 422 | except IndexError: |
428 | - #print "doesn't exist!" | |
423 | + utils.debug("doesn't exist!") | |
429 | 424 | pass |
430 | 425 | self.nhidden_last_display = 0 |
431 | 426 | |
432 | 427 | for f, p in zip(self.files[initial:final], self.previews): |
433 | - #print "f", f | |
434 | 428 | p.SetDicomToPreview(f) |
435 | 429 | if f.selected: |
436 | 430 | self.selected_panel = p |
437 | - #p.interactor.Render() | |
438 | 431 | |
439 | 432 | for f, p in zip(self.files[initial:final], self.previews): |
440 | 433 | p.Show() |
... | ... | @@ -449,7 +442,6 @@ class DicomPreviewSeries(wx.Panel): |
449 | 442 | self._display_previews() |
450 | 443 | |
451 | 444 | def OnWheel(self, evt): |
452 | - print "OnWheel" | |
453 | 445 | d = evt.GetWheelDelta() / evt.GetWheelRotation() |
454 | 446 | self.scroll.SetThumbPosition(self.scroll.GetThumbPosition() - d) |
455 | 447 | self.OnScroll() |
... | ... | @@ -506,7 +498,7 @@ class DicomPreviewSlice(wx.Panel): |
506 | 498 | self.Bind(wx.EVT_MOUSEWHEEL, self.OnWheel) |
507 | 499 | |
508 | 500 | def SetDicomDirectory(self, directory): |
509 | - print "Setting Dicom Directory", directory | |
501 | + utils.debug("Setting Dicom Directory %s" % directory) | |
510 | 502 | self.directory = directory |
511 | 503 | self.series = dicom_reader.GetSeries(directory)[0] |
512 | 504 | |
... | ... | @@ -561,16 +553,13 @@ class DicomPreviewSlice(wx.Panel): |
561 | 553 | def _display_previews(self): |
562 | 554 | initial = self.displayed_position * NCOLS |
563 | 555 | final = initial + NUM_PREVIEWS |
564 | - print "len:", len(self.files) | |
565 | 556 | |
566 | 557 | if len(self.files) < final: |
567 | 558 | for i in xrange(final-len(self.files)): |
568 | - print "hide ", i | |
569 | 559 | try: |
570 | 560 | self.previews[-i-1].Hide() |
571 | 561 | except IndexError: |
572 | - #print "doesn't exist!" | |
573 | - pass | |
562 | + utils.debug("doesn't exist!") | |
574 | 563 | self.nhidden_last_display = final-len(self.files) |
575 | 564 | else: |
576 | 565 | if self.nhidden_last_display: |
... | ... | @@ -578,8 +567,7 @@ class DicomPreviewSlice(wx.Panel): |
578 | 567 | try: |
579 | 568 | self.previews[-i-1].Show() |
580 | 569 | except IndexError: |
581 | - #print "doesn't exist!" | |
582 | - pass | |
570 | + utils.debug("doesn't exist!") | |
583 | 571 | self.nhidden_last_display = 0 |
584 | 572 | |
585 | 573 | for f, p in zip(self.files[initial:final], self.previews): |
... | ... | @@ -592,7 +580,6 @@ class DicomPreviewSlice(wx.Panel): |
592 | 580 | p.Show() |
593 | 581 | |
594 | 582 | def OnPreviewClick(self, evt): |
595 | - print "Hey man, you've clicked over me" | |
596 | 583 | my_evt = SerieEvent(myEVT_CLICK_SLICE, self.GetId()) |
597 | 584 | my_evt.SetSelectedID(evt.GetSelectID()) |
598 | 585 | my_evt.SetItemData(evt.GetItemData()) |
... | ... | @@ -601,7 +588,6 @@ class DicomPreviewSlice(wx.Panel): |
601 | 588 | self.selected_dicom.selected = self.selected_dicom is \ |
602 | 589 | evt.GetEventObject().dicom_info |
603 | 590 | self.selected_panel.select_on = self.selected_panel is evt.GetEventObject() |
604 | - print "Unselecting a panel", self.selected_panel.select_on | |
605 | 591 | self.selected_panel.Select() |
606 | 592 | self.selected_panel = evt.GetEventObject() |
607 | 593 | self.selected_dicom = self.selected_panel.dicom_info |
... | ... | @@ -617,7 +603,6 @@ class DicomPreviewSlice(wx.Panel): |
617 | 603 | self._display_previews() |
618 | 604 | |
619 | 605 | def OnWheel(self, evt): |
620 | - print "OnWheel" | |
621 | 606 | d = evt.GetWheelDelta() / evt.GetWheelRotation() |
622 | 607 | self.scroll.SetThumbPosition(self.scroll.GetThumbPosition() - d) |
623 | 608 | self.OnScroll() |
... | ... | @@ -747,7 +732,7 @@ class SingleImagePreview(wx.Panel): |
747 | 732 | #TODO: temporary fix necessary in the Windows XP 64 Bits |
748 | 733 | #BUG in wxWidgets http://trac.wxwidgets.org/ticket/10896 |
749 | 734 | except(wx._core.PyAssertionError): |
750 | - print "wx._core.PyAssertionError" | |
735 | + utils.debug("wx._core.PyAssertionError") | |
751 | 736 | finally: |
752 | 737 | wx.CallAfter(self.OnRun) |
753 | 738 | |
... | ... | @@ -757,12 +742,10 @@ class SingleImagePreview(wx.Panel): |
757 | 742 | self.nimages = len(self.dicom_list) |
758 | 743 | # GUI |
759 | 744 | self.slider.SetMax(self.nimages-1) |
760 | - print self.nimages | |
761 | 745 | self.slider.SetValue(0) |
762 | 746 | self.ShowSlice() |
763 | 747 | |
764 | 748 | def ShowSlice(self, index = 0): |
765 | - print "ShowSlice" | |
766 | 749 | dicom = self.dicom_list[index] |
767 | 750 | |
768 | 751 | # UPDATE GUI |
... | ... | @@ -773,7 +756,6 @@ class SingleImagePreview(wx.Panel): |
773 | 756 | ## Text related to slice position |
774 | 757 | value1 = STR_SPC %(dicom.image.spacing[2]) |
775 | 758 | value2 = STR_LOCAL %(dicom.image.position[2]) |
776 | - print "Este eh o meu tipo", type(value1) | |
777 | 759 | value = "%s\n%s" %(value1, value2) |
778 | 760 | self.text_image_location.SetValue(value) |
779 | 761 | |
... | ... | @@ -802,7 +784,3 @@ class SingleImagePreview(wx.Panel): |
802 | 784 | |
803 | 785 | # Setting slider position |
804 | 786 | self.slider.SetValue(index) |
805 | - | |
806 | - def __del__(self): | |
807 | - print "---------> morri" | |
808 | - | ... | ... |
invesalius/gui/frame.py
... | ... | @@ -32,6 +32,7 @@ import gui.dialogs as dlg |
32 | 32 | import import_panel as imp |
33 | 33 | import project as prj |
34 | 34 | import session as ses |
35 | +import utils | |
35 | 36 | |
36 | 37 | # Object toolbar |
37 | 38 | #OBJ_TOOLS = [ID_ZOOM, ID_ZOOM_SELECT, ID_ROTATE, ID_MOVE, |
... | ... | @@ -200,7 +201,7 @@ class Frame(wx.Frame): |
200 | 201 | aui_manager.Update() |
201 | 202 | |
202 | 203 | def HideImportPanel(self, evt_pubsub): |
203 | - print "HideImportPanel" | |
204 | + utils.debug("HideImportPanel") | |
204 | 205 | aui_manager = self.aui_manager |
205 | 206 | aui_manager.GetPane("Import").Show(0) |
206 | 207 | aui_manager.GetPane("Data").Show(0) |
... | ... | @@ -208,7 +209,7 @@ class Frame(wx.Frame): |
208 | 209 | aui_manager.Update() |
209 | 210 | |
210 | 211 | def ShowContentPanel(self, evt_pubsub): |
211 | - print "ShowContentPanel" | |
212 | + utils.debug("ShowContentPanel") | |
212 | 213 | ps.Publisher().sendMessage("Set layout button full") |
213 | 214 | aui_manager = self.aui_manager |
214 | 215 | aui_manager.GetPane("Import").Show(0) |
... | ... | @@ -264,16 +265,15 @@ class Frame(wx.Frame): |
264 | 265 | ps.Publisher().sendMessage('Show save dialog', False) |
265 | 266 | |
266 | 267 | def CloseProject(self): |
267 | - print "CloseProject" | |
268 | + utils.debug("CloseProject") | |
268 | 269 | ps.Publisher().sendMessage('Close Project') |
269 | 270 | |
270 | 271 | def OnExit(self, event): |
271 | - print "OnExit" | |
272 | 272 | self.Exit() |
273 | 273 | event.Skip() |
274 | 274 | |
275 | 275 | def Exit(self): |
276 | - print "Exit" | |
276 | + utils.debug("Exit") | |
277 | 277 | ps.Publisher().sendMessage('Close Project') |
278 | 278 | |
279 | 279 | def ShowTask(self, pubsub_evt): |
... | ... | @@ -284,7 +284,6 @@ class Frame(wx.Frame): |
284 | 284 | self.aui_manager.GetPane("Tasks").Hide() |
285 | 285 | self.aui_manager.Update() |
286 | 286 | |
287 | - | |
288 | 287 | #def OnClose(self): |
289 | 288 | # # TODO: implement this, based on wx.Demo |
290 | 289 | # pass |
... | ... | @@ -387,9 +386,7 @@ class MenuBar(wx.MenuBar): |
387 | 386 | self.SetStateProjectClose() |
388 | 387 | |
389 | 388 | def OnEnableState(self, pubsub_evt): |
390 | - print "----- OnEnableState" | |
391 | 389 | state = pubsub_evt.data |
392 | - print "state", state | |
393 | 390 | if state: |
394 | 391 | self.SetStateProjectOpen() |
395 | 392 | else: |
... | ... | @@ -473,7 +470,7 @@ class StatusBar(wx.StatusBar): |
473 | 470 | #TODO: temporary fix necessary in the Windows XP 64 Bits |
474 | 471 | #BUG in wxWidgets http://trac.wxwidgets.org/ticket/10896 |
475 | 472 | except(wx._core.PyAssertionError): |
476 | - print "wx._core.PyAssertionError" | |
473 | + utils.debug("wx._core.PyAssertionError") | |
477 | 474 | |
478 | 475 | def UpdateStatusLabel(self, pubsub_evt): |
479 | 476 | label = pubsub_evt.data | ... | ... |
invesalius/gui/import_panel.py
... | ... | @@ -152,10 +152,10 @@ class InnerPanel(wx.Panel): |
152 | 152 | self.image_panel.SetSerie(group) |
153 | 153 | |
154 | 154 | def OnSelectSlice(self, evt): |
155 | - print "You've selected the slice", evt.GetSelectID() | |
155 | + pass | |
156 | 156 | |
157 | 157 | def OnSelectPatient(self, evt): |
158 | - print "You've selected the patient", evt.GetSelectID() | |
158 | + pass | |
159 | 159 | |
160 | 160 | def OnDblClickTextPanel(self, evt): |
161 | 161 | group = evt.GetItemData() |
... | ... | @@ -286,10 +286,7 @@ class TextPanel(wx.Panel): |
286 | 286 | dicom.acquisition.serie_number)] = child |
287 | 287 | |
288 | 288 | tree.Expand(self.root) |
289 | - | |
290 | 289 | tree.SelectItem(parent_select) |
291 | - print "parent select", parent_select | |
292 | - | |
293 | 290 | tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate) |
294 | 291 | tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged) |
295 | 292 | |
... | ... | @@ -372,12 +369,9 @@ class ImagePanel(wx.Panel): |
372 | 369 | self.text_panel.Bind(EVT_SELECT_SLICE, self.OnSelectSlice) |
373 | 370 | |
374 | 371 | def OnSelectSerie(self, evt): |
375 | - print "Hi, You selected Serie" | |
376 | 372 | evt.Skip() |
377 | 373 | |
378 | 374 | def OnSelectSlice(self, evt): |
379 | - print "Hi, You selected slice" | |
380 | - print "Selected ID", evt.GetSelectID() | |
381 | 375 | self.image_panel.dicom_preview.ShowSlice(evt.GetSelectID()) |
382 | 376 | evt.Skip() |
383 | 377 | |
... | ... | @@ -437,7 +431,6 @@ class SeriesPanel(wx.Panel): |
437 | 431 | self.Update() |
438 | 432 | |
439 | 433 | def OnSelectSerie(self, evt): |
440 | - print "Hey, You selected a serie" | |
441 | 434 | serie = evt.GetItemData() |
442 | 435 | data = evt.GetItemData() |
443 | 436 | |
... | ... | @@ -454,8 +447,6 @@ class SeriesPanel(wx.Panel): |
454 | 447 | self.Update() |
455 | 448 | |
456 | 449 | def OnSelectSlice(self, evt): |
457 | - print "Hey, Ho, Let's go", evt.GetSelectID() | |
458 | - | |
459 | 450 | my_evt = SelectEvent(myEVT_SELECT_SLICE, self.GetId()) |
460 | 451 | my_evt.SetSelectedID(evt.GetSelectID()) |
461 | 452 | my_evt.SetItemData(evt.GetItemData()) |
... | ... | @@ -481,7 +472,6 @@ class SlicePanel(wx.Panel): |
481 | 472 | |
482 | 473 | def __init_gui(self): |
483 | 474 | self.SetBackgroundColour((255,255,255)) |
484 | - print "----------------------------" | |
485 | 475 | self.dicom_preview = dpp.SingleImagePreview(self) |
486 | 476 | |
487 | 477 | sizer = wx.BoxSizer(wx.VERTICAL) | ... | ... |
invesalius/gui/task_slice.py
... | ... | @@ -408,6 +408,7 @@ class MaskProperties(wx.Panel): |
408 | 408 | |
409 | 409 | def SetThresholdModes(self, pubsub_evt): |
410 | 410 | (thresh_modes_names, default_thresh) = pubsub_evt.data |
411 | + print pubsub_evt.data | |
411 | 412 | self.combo_thresh.SetItems(thresh_modes_names) |
412 | 413 | if isinstance(default_thresh, int): |
413 | 414 | self.combo_thresh.SetSelection(default_thresh) |
... | ... | @@ -417,10 +418,12 @@ class MaskProperties(wx.Panel): |
417 | 418 | self.combo_thresh.SetSelection(3) |
418 | 419 | thresh_min, thresh_max = default_thresh |
419 | 420 | |
421 | + print "Este e threshold", thresh_min, thresh_max | |
420 | 422 | self.gradient.SetMinValue(thresh_min) |
421 | 423 | self.gradient.SetMaxValue(thresh_max) |
422 | 424 | |
423 | 425 | def SetThresholdBounds(self, pubsub_evt): |
426 | + print ">>>Threshold Limits", pubsub_evt.data | |
424 | 427 | thresh_min = pubsub_evt.data[0] |
425 | 428 | thresh_max = pubsub_evt.data[1] |
426 | 429 | self.gradient.SetMinRange(thresh_min) | ... | ... |
invesalius/gui/widgets/gradient.py
... | ... | @@ -582,6 +582,7 @@ class GradientSlider(wx.Panel): |
582 | 582 | self.GradientPanel.Refresh() |
583 | 583 | |
584 | 584 | def SetMaxRange(self, value): |
585 | + print "Setting max range ", value | |
585 | 586 | self.SliderData.SetMaxRange(value) |
586 | 587 | self.SpinMin.SetMax(value) |
587 | 588 | self.SpinMax.SetMax(value) | ... | ... |
invesalius/invesalius.py
... | ... | @@ -25,6 +25,7 @@ import sys |
25 | 25 | import gui.language_dialog as lang_dlg |
26 | 26 | import i18n |
27 | 27 | from session import Session |
28 | +import utils | |
28 | 29 | |
29 | 30 | |
30 | 31 | # TODO: This should be called during installation |
... | ... | @@ -179,7 +180,7 @@ def parse_comand_line(): |
179 | 180 | |
180 | 181 | |
181 | 182 | def print_events(data): |
182 | - print data.topic | |
183 | + utils.debug(data.topic) | |
183 | 184 | |
184 | 185 | def main(): |
185 | 186 | application = InVesalius(0) | ... | ... |
invesalius/project.py
... | ... | @@ -153,7 +153,7 @@ class Project(object): |
153 | 153 | elif type_ == "CT": |
154 | 154 | self.threshold_modes = self.presets.thresh_ct |
155 | 155 | else: |
156 | - print "Different Acquisition Modality!!!" | |
156 | + utils.debug("Different Acquisition Modality!!!") | |
157 | 157 | self.modality = type_ |
158 | 158 | |
159 | 159 | def SetRaycastPreset(self, label): |
... | ... | @@ -187,13 +187,11 @@ class Project(object): |
187 | 187 | for index in self.mask_dict: |
188 | 188 | masks[str(index)] = {'#mask':\ |
189 | 189 | self.mask_dict[index].SavePlist(filename_tmp).decode('utf-8')} |
190 | - print index | |
191 | 190 | |
192 | 191 | surfaces = {} |
193 | 192 | for index in self.surface_dict: |
194 | 193 | surfaces[str(index)] = {'#surface':\ |
195 | 194 | self.surface_dict[index].SavePlist(filename_tmp)} |
196 | - print index | |
197 | 195 | |
198 | 196 | project['surface_dict'] = surfaces |
199 | 197 | project['mask_dict'] = masks |
... | ... | @@ -219,15 +217,8 @@ class Project(object): |
219 | 217 | filelist = Extract(filename, tempfile.gettempdir()) |
220 | 218 | main_plist = min(filter(lambda x: x.endswith('.plist'), filelist), |
221 | 219 | key=lambda x: len(x)) |
222 | - #print main_plist | |
223 | - print main_plist | |
224 | 220 | project = plistlib.readPlist(main_plist) |
225 | - | |
226 | - #print "antes", self.__dict__ | |
227 | - | |
228 | - # Path were extracted project is | |
229 | 221 | dirpath = os.path.abspath(os.path.split(filelist[0])[0]) |
230 | - #print "* dirpath", dirpath | |
231 | 222 | |
232 | 223 | for key in project: |
233 | 224 | if key == 'imagedata': | ... | ... |
invesalius/reader/dicom.py
... | ... | @@ -1821,7 +1821,6 @@ class Acquisition(object): |
1821 | 1821 | def SetParser(self, parser): |
1822 | 1822 | self.patient_orientation = parser.GetImagePatientOrientation() |
1823 | 1823 | self.tilt = parser.GetAcquisitionGantryTilt() |
1824 | - self.serie_number = parser.GetImageSeriesNumber() | |
1825 | 1824 | self.id_study = parser.GetStudyID() |
1826 | 1825 | self.modality = parser.GetAcquisitionModality() |
1827 | 1826 | self.study_description = parser.GetStudyDescription() | ... | ... |
invesalius/reader/dicom_grouper.py
... | ... | @@ -53,6 +53,8 @@ |
53 | 53 | |
54 | 54 | import gdcm |
55 | 55 | |
56 | +import utils | |
57 | + | |
56 | 58 | ORIENT_MAP = {"SAGITTAL":0, "CORONAL":1, "AXIAL":2, "OBLIQUE":2} |
57 | 59 | |
58 | 60 | |
... | ... | @@ -209,12 +211,15 @@ class PatientGroup: |
209 | 211 | |
210 | 212 | # Check if Problem 1 occurs (n groups with 1 slice each) |
211 | 213 | is_there_problem_1 = False |
214 | + utils.debug("n slice %d" % self.nslices) | |
215 | + utils.debug("len %d" % len(self.groups_dict)) | |
212 | 216 | if (self.nslices == len(self.groups_dict)) and\ |
213 | 217 | (self.nslices > 1): |
214 | 218 | is_there_problem_1 = True |
215 | 219 | |
216 | 220 | # Fix Problem 1 |
217 | 221 | if is_there_problem_1: |
222 | + utils.debug("Problem1") | |
218 | 223 | self.groups_dict = self.FixProblem1(self.groups_dict) |
219 | 224 | |
220 | 225 | def GetGroups(self): | ... | ... |
invesalius/reader/dicom_reader.py
... | ... | @@ -141,6 +141,8 @@ def yGetDicomGroups(directory, recursive=True, gui=True): |
141 | 141 | for t in threads: |
142 | 142 | t.join() |
143 | 143 | |
144 | + #TODO: Is this commented update necessary? | |
145 | + #grouper.Update() | |
144 | 146 | yield grouper.GetPatientsGroups() |
145 | 147 | |
146 | 148 | def GetDicomGroups(directory, recursive=True): | ... | ... |
invesalius/session.py
... | ... | @@ -4,7 +4,7 @@ from threading import Thread |
4 | 4 | import time |
5 | 5 | import wx.lib.pubsub as ps |
6 | 6 | |
7 | -from utils import Singleton | |
7 | +from utils import Singleton, debug | |
8 | 8 | |
9 | 9 | import wx.lib.pubsub as ps |
10 | 10 | |
... | ... | @@ -46,7 +46,6 @@ class Session(object): |
46 | 46 | |
47 | 47 | # Recent projects list |
48 | 48 | self.recent_projects = [(const.SAMPLE_DIR, "Cranium.inv3")] |
49 | - print self.recent_projects | |
50 | 49 | self.last_dicom_folder = '' |
51 | 50 | |
52 | 51 | self.CreateSessionFile() |
... | ... | @@ -57,7 +56,7 @@ class Session(object): |
57 | 56 | |
58 | 57 | def CloseProject(self): |
59 | 58 | import constants as const |
60 | - print "-- CloseProject" | |
59 | + debug("Session.CloseProject") | |
61 | 60 | self.project_path = () |
62 | 61 | self.project_status = const.PROJ_CLOSE |
63 | 62 | self.mode = const.MODE_RP |
... | ... | @@ -65,7 +64,7 @@ class Session(object): |
65 | 64 | |
66 | 65 | def SaveProject(self, path=()): |
67 | 66 | import constants as const |
68 | - print "-- SaveProject" | |
67 | + debug("Session.SaveProject") | |
69 | 68 | self.project_status = const.PROJ_OPEN |
70 | 69 | if path: |
71 | 70 | self.project_path = path |
... | ... | @@ -75,13 +74,13 @@ class Session(object): |
75 | 74 | |
76 | 75 | def ChangeProject(self): |
77 | 76 | import constants as const |
78 | - print "-- ChangeProject" | |
77 | + debug("Session.ChangeProject") | |
79 | 78 | self.project_status = const.PROJ_CHANGE |
80 | 79 | |
81 | 80 | def CreateProject(self, filename): |
82 | 81 | import constants as const |
82 | + debug("Session.CreateProject") | |
83 | 83 | ps.Publisher().sendMessage('Begin busy cursor') |
84 | - print "-- CreateProject" | |
85 | 84 | # Set session info |
86 | 85 | self.project_path = (self.tempdir, filename) |
87 | 86 | self.project_status = const.PROJ_NEW |
... | ... | @@ -90,7 +89,7 @@ class Session(object): |
90 | 89 | |
91 | 90 | def OpenProject(self, filepath): |
92 | 91 | import constants as const |
93 | - print "-- OpenProject" | |
92 | + debug("Session.OpenProject") | |
94 | 93 | # Add item to recent projects list |
95 | 94 | item = (path, file) = os.path.split(filepath) |
96 | 95 | self.__add_to_list(item) | ... | ... |
invesalius/utils.py
... | ... | @@ -25,10 +25,10 @@ import sys |
25 | 25 | |
26 | 26 | |
27 | 27 | def debug(error_str): |
28 | - from project import Project | |
29 | - proj = Project() | |
30 | - if proj.debug: | |
31 | - print >> stderr, str | |
28 | + from session import Session | |
29 | + session = Session() | |
30 | + if session.debug: | |
31 | + print >> sys.stderr, error_str | |
32 | 32 | |
33 | 33 | |
34 | 34 | #http://www.garyrobinson.net/2004/03/python_singleto.html |
... | ... | @@ -67,7 +67,7 @@ class TwoWaysDictionary(dict): |
67 | 67 | try: |
68 | 68 | self.pop(key) |
69 | 69 | except TypeError: |
70 | - print "TwoWaysDictionary: no item" | |
70 | + debug("TwoWaysDictionary: no item") | |
71 | 71 | |
72 | 72 | def get_value(self, key): |
73 | 73 | """ | ... | ... |