Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions SliceTracker/Resources/zframe/zframe-model.vtk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# vtk DataFile Version 3.0
vtk output
# vtk DataFile Version 4.2
3D Slicer output. SPACE=RAS
ASCII
DATASET POLYDATA
POINTS 168 float
Expand Down Expand Up @@ -60,6 +60,9 @@ POINTS 168 float
-29.25 28.701 -30 -30.75 28.701 -30 -31.5 30 -30
-30.75 31.299 -30 -29.25 31.299 -30 -28.5 30 -30

METADATA
INFORMATION 0

POLYGONS 56 308
4 0 1 3 2
4 2 3 5 4
Expand Down
12 changes: 6 additions & 6 deletions SliceTracker/SliceTrackerRegistration.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ def runRegistration(self):
@onReturnProcessEvents
def updateProgressBar(self, **kwargs):
if self.progress:
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
if hasattr(self.progress, key):
setattr(self.progress, key, value)

Expand Down Expand Up @@ -237,7 +237,7 @@ def doRigidRegistration(self, **kwargs):
'outputVolume': self.registrationResult.volumes.rigid.GetID(),
'maskProcessingMode': "ROI",
'useRigid': True}
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
paramsRigid[key] = value
slicer.cli.run(slicer.modules.brainsfit, None, paramsRigid, wait_for_completion=True)
self.registrationResult.cmdArguments += "Rigid Registration Parameters: %s" % str(paramsRigid) + "\n\n"
Expand Down Expand Up @@ -273,7 +273,7 @@ def doBSplineRegistration(self, initialTransform, **kwargs):
'costFunctionConvergenceFactor': "1.00E+09",
'maskProcessingMode': "ROI",
'initialTransform': initialTransform}
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
paramsBSpline[key] = value

slicer.cli.run(slicer.modules.brainsfit, None, paramsBSpline, wait_for_completion=True)
Expand Down Expand Up @@ -306,7 +306,7 @@ def main(argv):

for inputFile in [args.fixed_label, args.moving_label, args.fixed_volume, args.moving_volume]:
if not os.path.isfile(inputFile):
raise AttributeError, "File not found: %s" % inputFile
raise AttributeError("File not found: %s" % inputFile)

success, fixedLabel = slicer.util.loadLabelVolume(args.fixed_label, returnNode=True)
success, movingLabel = slicer.util.loadLabelVolume(args.moving_label, returnNode=True)
Expand All @@ -325,8 +325,8 @@ def main(argv):
if args.output_directory != "-":
logic.registrationResult.save(args.output_directory)

except Exception, e:
print e
except Exception as e:
print(e)
sys.exit(0)

if __name__ == "__main__":
Expand Down
8 changes: 4 additions & 4 deletions SliceTracker/SliceTrackerUtils/configuration.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import ConfigParser
import configparser
import inspect, os
from SlicerDevelopmentToolboxUtils.mixins import ModuleWidgetMixin
from constants import SliceTrackerConstants as constants
from .constants import SliceTrackerConstants as constants


class SliceTrackerConfiguration(ModuleWidgetMixin):
Expand All @@ -13,7 +13,7 @@ def __init__(self, moduleName, configFile):

def loadConfiguration(self):

config = ConfigParser.RawConfigParser()
config = configparser.RawConfigParser()
config.read(self.configFile)

if not self.getSetting("ZFrame_Registration_Class_Name"):
Expand Down Expand Up @@ -69,4 +69,4 @@ def replaceOldValues(self):

for other in ['OTHER_IMAGE', 'Rating_Enabled', 'Maximum_Rating_Score']:
if self.getSetting(other):
self.removeSetting(other)
self.removeSetting(other)
4 changes: 2 additions & 2 deletions SliceTracker/SliceTrackerUtils/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import re
import slicer

from constants import SliceTrackerConstants as constants
from .constants import SliceTrackerConstants as constants

from SlicerDevelopmentToolboxUtils.decorators import logmethod
from SlicerDevelopmentToolboxUtils.widgets import ExtendedQMessageBox
Expand Down Expand Up @@ -275,4 +275,4 @@ def updateTooltipAndIcon(self, series):
icon = Icons.edit
tooltip = self.listWidget.currentItem().text() if self.listWidget.currentItem() else ""
self.setIcon(icon)
self.setToolTip(tooltip)
self.setToolTip(tooltip)
4 changes: 2 additions & 2 deletions SliceTracker/SliceTrackerUtils/preopHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def _runPreProcessing(self):

@onReturnProcessEvents
def updateProgressBar(**kwargs):
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
if hasattr(progress, key):
setattr(progress, key, value)

Expand Down Expand Up @@ -303,4 +303,4 @@ def getMostRecentWholeGlandSegmentation(self, path):
return self.getMostRecentFile(path, FileExtension.NRRD, filter="WholeGland")

def getMostRecentTargetsFile(self, path):
return self.getMostRecentFile(path, FileExtension.FCSV)
return self.getMostRecentFile(path, FileExtension.FCSV)
15 changes: 7 additions & 8 deletions SliceTracker/SliceTrackerUtils/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import qt

import slicer
from sessionData import SessionData, RegistrationResult, RegistrationTypeData
from constants import SliceTrackerConstants
from helpers import SeriesTypeManager
from preopHandler import PreopDataHandler
from .sessionData import SessionData, RegistrationResult, RegistrationTypeData
from .constants import SliceTrackerConstants
from .helpers import SeriesTypeManager
from .preopHandler import PreopDataHandler

from SlicerDevelopmentToolboxUtils.constants import DICOMTAGS, STYLE
from SlicerDevelopmentToolboxUtils.events import SlicerDevelopmentToolboxEvents
Expand Down Expand Up @@ -441,7 +441,7 @@ def verifyPatientIDEquality(self, receivedFiles):
currentInfo = self.getPatientInformation(dicomFileName)
currentID = currentInfo["PatientID"]
patientName = currentInfo["PatientName"]
for seriesNumber, receivedInfo in seriesNumberPatientID.iteritems():
for seriesNumber, receivedInfo in seriesNumberPatientID.items():
patientID = receivedInfo["PatientID"]
if patientID is not None and patientID != currentID:
m = 'WARNING:\n' \
Expand All @@ -457,8 +457,7 @@ def verifyPatientIDEquality(self, receivedFiles):

def getPatientIDValidationSource(self):
if len(self.loadableList.keys()) > 1:
keys = self.loadableList.keys()
keys.sort(key=lambda x: RegistrationResult.getSeriesNumberFromString(x))
keys = sorted(self.loadableList.keys())
return self.loadableList[keys[0]][0]
else:
return None
Expand Down Expand Up @@ -670,7 +669,7 @@ def onInvokeRegistration(self, initial=True, retryMode=False, segmentationData=N
@onReturnProcessEvents
def updateProgressBar(self, **kwargs):
if self.progress:
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
if hasattr(self.progress, key):
setattr(self.progress, key, value)

Expand Down
18 changes: 9 additions & 9 deletions SliceTracker/SliceTrackerUtils/sessionData.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from SlicerDevelopmentToolboxUtils.decorators import onExceptionReturnNone, logmethod
from SlicerDevelopmentToolboxUtils.widgets import CustomStatusProgressbar

from constants import SliceTrackerConstants
from helpers import SeriesTypeManager
from .constants import SliceTrackerConstants
from .helpers import SeriesTypeManager


class SessionData(ModuleLogicMixin):
Expand Down Expand Up @@ -168,7 +168,7 @@ def loadResults(self, data, directory):
self.customProgressBar.updateStatus("Loading series registration result %s" % result.name, index)
slicer.app.processEvents()

for attribute, value in jsonResult.iteritems():
for attribute, value in jsonResult.items():
logging.debug("found %s: %s" % (attribute, value))
if attribute == 'volumes':
self._loadResultFileData(value, directory, slicer.util.loadVolume, result.setVolume)
Expand Down Expand Up @@ -206,7 +206,7 @@ def loadResults(self, data, directory):
self.customProgressBar.text = "Finished loading registration results"

def _loadResultFileData(self, dictionary, directory, loadFunction, setFunction):
for regType, filename in dictionary.iteritems():
for regType, filename in dictionary.items():
data = self._loadOrGetFileData(directory, filename, loadFunction)
setFunction(regType, data)

Expand Down Expand Up @@ -323,7 +323,7 @@ def getLocalGITRevisionInformation():
from git import Repo, InvalidGitRepositoryError
repo = Repo(dirname, search_parent_directories=True)
branch = repo.active_branch
print branch.name
print(branch.name)
return {
"GIT_WC_URL": repo.remote().url,
"GIT_COMMIT_HASH": repo.head.object.hexsha
Expand Down Expand Up @@ -476,7 +476,7 @@ def getFileNameByAttributeName(self, name):

def getAllFileNames(self):
fileNames = {}
for regType, node in self.asDict().iteritems():
for regType, node in self.asDict().items():
if node:
fileNames[regType] = self.getFileName(node)
return fileNames
Expand All @@ -501,7 +501,7 @@ def createFromJSON(data):

def toJSON(self):
output = {}
for key, value in self.__dict__.iteritems():
for key, value in self.__dict__.items():
if any(key.startswith(starter) for starter in ["_", "__"]) or value is None or value == "":
continue
output[key] = value.toJSON() if hasattr(value, "toJSON") else value
Expand Down Expand Up @@ -667,7 +667,7 @@ def isGoingToBeMoved(self, targetList, index):
self.modifiedTargets[regType][index] = True

def getRegistrationTypeForTargetList(self, targetList):
for regType, currentTargetList in self.asDict().iteritems():
for regType, currentTargetList in self.asDict().items():
if targetList is currentTargetList:
return regType
return None
Expand Down Expand Up @@ -984,4 +984,4 @@ def save(self, outputDir):
success, name = self.saveNodeData(self.volume, outputDir, FileExtension.NRRD)
dictionary["volume"] = name + FileExtension.NRRD
self.handleSaveNodeDataReturn(success, name, savedSuccessfully, failedToSave)
return dictionary
return dictionary
10 changes: 5 additions & 5 deletions SliceTracker/SliceTrackerUtils/steps/evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import qt
import vtk
import slicer
from base import SliceTrackerLogicBase, SliceTrackerStep
from .base import SliceTrackerLogicBase, SliceTrackerStep
from ..constants import SliceTrackerConstants as constants
from plugins.results import SliceTrackerRegistrationResultsPlugin
from plugins.targets import SliceTrackerTargetTablePlugin
from plugins.charts import SliceTrackerDisplacementChartPlugin
from .plugins.results import SliceTrackerRegistrationResultsPlugin
from .plugins.targets import SliceTrackerTargetTablePlugin
from .plugins.charts import SliceTrackerDisplacementChartPlugin

from SlicerDevelopmentToolboxUtils.icons import Icons

Expand Down Expand Up @@ -142,4 +142,4 @@ def onNoRegistrationResultsAvailable(self, caller, event):

def onRegistrationResultsAvailable(self, caller, event):
self.approveRegistrationResultButton.enabled = True
self.targetTablePlugin.enabled = True
self.targetTablePlugin.enabled = True
14 changes: 7 additions & 7 deletions SliceTracker/SliceTrackerUtils/steps/overview.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import slicer
import vtk

from base import SliceTrackerLogicBase, SliceTrackerStep
from plugins.case import SliceTrackerCaseManagerPlugin
from plugins.results import SliceTrackerRegistrationResultsPlugin
from plugins.targets import SliceTrackerTargetTablePlugin
from plugins.training import SliceTrackerTrainingPlugin
from plugins.charts import SliceTrackerDisplacementChartPlugin
from .base import SliceTrackerLogicBase, SliceTrackerStep
from .plugins.case import SliceTrackerCaseManagerPlugin
from .plugins.results import SliceTrackerRegistrationResultsPlugin
from .plugins.targets import SliceTrackerTargetTablePlugin
from .plugins.training import SliceTrackerTrainingPlugin
from .plugins.charts import SliceTrackerDisplacementChartPlugin
from ..constants import SliceTrackerConstants as constants
from ..sessionData import RegistrationResult
from ..helpers import IncomingDataMessageBox, SeriesTypeToolButton, SeriesTypeManager
Expand Down Expand Up @@ -368,4 +368,4 @@ def promptUserAndApplyBiasCorrectionIfNeeded(self):
currentModule.parent().enabled = True
customProgressbar.updateStatus("Bias correction done!")

self.session.data.preopData.usedERC = usedERC
self.session.data.preopData.usedERC = usedERC
4 changes: 2 additions & 2 deletions SliceTracker/SliceTrackerUtils/steps/plugins/charts.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def isTargetDisplacementChartDisplayable(self, selectedSeries):
approvedResults = sorted([r for r in self.session.data.registrationResults.values() if r.approved],
key=lambda result: result.seriesNumber)
nonSelectedApprovedResults = filter(lambda x: x.seriesNumber != selectedSeriesNumber, approvedResults)
if len(nonSelectedApprovedResults) == 0 or self.session.currentResult is None:
if len(list(nonSelectedApprovedResults)) == 0 or self.session.currentResult is None:
return False
return True

Expand Down Expand Up @@ -244,4 +244,4 @@ def createPlot(self, color, plotNumber):
plotSeriesNode.SetMarkerSize(3 * plotSeriesNode.GetLineWidth())

self._plotSeriesNodes.append(plotSeriesNode)
self._plotChartNode.AddAndObservePlotSeriesNodeID(plotSeriesNode.GetID())
self._plotChartNode.AddAndObservePlotSeriesNodeID(plotSeriesNode.GetID())
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import vtk

from base import SliceTrackerSegmentationPluginBase
from .base import SliceTrackerSegmentationPluginBase
from ....algorithms.automaticProstateSegmentation import AutomaticSegmentationLogic

class SliceTrackerAutomaticSegmentationPlugin(SliceTrackerSegmentationPluginBase):
Expand Down Expand Up @@ -44,4 +44,4 @@ def _onSegmentationFinished(self, caller, event, labelNode):
# import ast
# status = ast.literal_eval(str(callData))
# self.updateProgressBar(progress=statusBar, text=status["text"].replace("\n", ""), value=status["value"],
# maximum = 100)
# maximum = 100)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from ...base import SliceTrackerPlugin, SliceTrackerLogicBase
from ....constants import SliceTrackerConstants as constants
from base import SliceTrackerSegmentationPluginBase
from .base import SliceTrackerSegmentationPluginBase
from SurfaceCutToLabel import SurfaceCutToLabelWidget

from SlicerDevelopmentToolboxUtils.decorators import onModuleSelected
Expand Down Expand Up @@ -120,4 +120,4 @@ def _onSegmentationFinished(self, caller, event, labelNode):
displayNode = labelNode.GetDisplayNode()
displayNode.SetAndObserveColorNodeID(self.session.mpReviewColorNode.GetID())
self.surfaceCutToLabelWidget.colorSpin.setValue(self.session.segmentedLabelValue)
super(SliceTrackerManualSegmentationPlugin, self)._onSegmentationFinished(caller, event, labelNode)
super(SliceTrackerManualSegmentationPlugin, self)._onSegmentationFinished(caller, event, labelNode)
4 changes: 2 additions & 2 deletions SliceTracker/SliceTrackerUtils/steps/plugins/targeting.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import qt
from ...constants import SliceTrackerConstants as constants
from ..base import SliceTrackerPlugin, SliceTrackerLogicBase
from targets import SliceTrackerTargetTablePlugin
from .targets import SliceTrackerTargetTablePlugin

from SlicerDevelopmentToolboxUtils.helpers import SliceAnnotation
from SlicerDevelopmentToolboxUtils.widgets import TargetCreationWidget
Expand Down Expand Up @@ -143,4 +143,4 @@ def _onTargetingFinished(self, caller, event):
if not self.preopAvailableAndTargetsDefined():
self.session.movingTargets = None

self.invokeEvent(self.TargetingFinishedEvent)
self.invokeEvent(self.TargetingFinishedEvent)
2 changes: 1 addition & 1 deletion SliceTracker/SliceTrackerUtils/steps/plugins/targets.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ def disableTargetMovingMode(self):
self.moveTargetMode = False

def clearTargetMovementObserverAndAnnotations(self):
for widget, (observer, annotation) in self.mouseReleaseEventObservers.iteritems():
for widget, (observer, annotation) in self.mouseReleaseEventObservers.items():
sliceView = widget.sliceView()
interactor = sliceView.interactorStyle().GetInteractor()
interactor.RemoveObserver(observer)
Expand Down
4 changes: 2 additions & 2 deletions SliceTracker/SliceTrackerUtils/steps/plugins/training.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def unzipFileAndCopyToDirectory(self, filepath, copyToDirectory):
self.clearData()

def copyDirectory(self, source, destination, recursive=True):
print source
print(source)
assert os.path.isdir(source)
for listObject in os.listdir(source):
current = os.path.join(source, listObject)
Expand All @@ -118,4 +118,4 @@ def onCaseClosed(self, caller, event, callData):
self.simulateIntraopPhaseButton.enabled = False

def onPreprocessingSuccessful(self, caller, event):
self.simulateIntraopPhaseButton.enabled = self.session.trainingMode
self.simulateIntraopPhaseButton.enabled = self.session.trainingMode
10 changes: 5 additions & 5 deletions SliceTracker/SliceTrackerUtils/steps/segmentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
import slicer
import vtk

from base import SliceTrackerLogicBase, SliceTrackerStep
from .base import SliceTrackerLogicBase, SliceTrackerStep
from ..constants import SliceTrackerConstants as constants
from ..sessionData import SegmentationData

from plugins.targeting import SliceTrackerTargetingPlugin
from plugins.segmentation.manual import SliceTrackerManualSegmentationPlugin
from plugins.segmentation.automatic import SliceTrackerAutomaticSegmentationPlugin
from .plugins.targeting import SliceTrackerTargetingPlugin
from .plugins.segmentation.manual import SliceTrackerManualSegmentationPlugin
from .plugins.segmentation.automatic import SliceTrackerAutomaticSegmentationPlugin

from SlicerDevelopmentToolboxUtils.helpers import SliceAnnotation
from SlicerDevelopmentToolboxUtils.decorators import onModuleSelected
Expand Down Expand Up @@ -358,4 +358,4 @@ def _onTargetingStarted(self, caller, event):
def _onTargetingFinished(self, caller, event):
self.finishStepButton.setEnabled(1 if self.logic.inputsAreSet() else 0)
self.manualSegmentationPlugin.enabled = True
self.backButton.enabled = True
self.backButton.enabled = True
Loading