def ExportationValueOnEachPoint(self, directoryExport, ROIDict): directory = directoryExport.directory.encode("utf-8") directoryPointValuesFolder = directory + "/ValuesOnEachPoint" messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) if not os.path.exists(directoryPointValuesFolder): os.mkdir(directoryPointValuesFolder) for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): if ROIName != "Entire Model": directoryFolder = directoryPointValuesFolder + "/" + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, modelDict in sorted(ROIDictValue.iteritems()): directoryFilename = directoryFolder + "/" + fieldName if not os.path.exists(directoryFilename): os.mkdir(directoryFilename) for modelName in modelDict.iterkeys(): filename = directoryFilename + "/" + modelName + ".csv" if os.path.exists(filename): messageBox.setText("File " + fieldName + ".csv already exist for the model " + modelName) messageBox.setInformativeText("Do you want to replace it on ?") messageBox.setStandardButtons( messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes ) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: pointData = ( slicer.util.getNode(modelName) .GetModelDisplayNode() .GetInputPolyData() .GetPointData() ) fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray) if choice == messageBox.YesToAll: for fieldName, modelDict in sorted(ROIDictValue.iteritems()): for modelName in modelDict.iterkeys(): filename = directoryFilename + "/" + modelName + ".csv" pointData = ( slicer.util.getNode(modelName) .GetModelDisplayNode() .GetInputPolyData() .GetPointData() ) fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray) return True else: pointData = ( slicer.util.getNode(modelName).GetModelDisplayNode().GetInputPolyData().GetPointData() ) fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray)
def exportationFunction(self, directoryExport, exportCheckBoxState, ROIDict): directory = directoryExport.directory.encode("utf-8") messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) if exportCheckBoxState: # if exportation in different files for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): directoryFolder = directory + "/" + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, modelDict in sorted(ROIDictValue.iteritems()): filename = directoryFolder + "/" + fieldName + ".csv" if os.path.exists(filename): messageBox.setText("On folder " + ROIName + ", file " + fieldName + ".csv already exists.") messageBox.setInformativeText("Do you want to replace it on " + ROIName + "?") messageBox.setStandardButtons( messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes ) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: self.exportFieldAsCSV(filename, fieldName, modelDict) if choice == messageBox.YesToAll: for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): directoryFolder = directory + "/" + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, shapeDict in sorted(ROIDictValue.iteritems()): filename = directoryFolder + "/" + fieldName + ".csv" self.exportFieldAsCSV(filename, fieldName, shapeDict) return True else: self.exportFieldAsCSV(filename, fieldName, modelDict) else: for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): filename = directory + "/" + ROIName + ".csv" if os.path.exists(filename): messageBox.setText("File " + ROIName + ".csv already exists in this folder.") messageBox.setInformativeText("Do you want to replace it? ") messageBox.setStandardButtons( messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes ) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: self.exportAllAsCSV(filename, ROIName, ROIDictValue) if choice == messageBox.YesToAll: for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): filename = directory + "/" + ROIName + ".csv" self.exportAllAsCSV(filename, ROIName, ROIDictValue) return True else: self.exportAllAsCSV(filename, ROIName, ROIDictValue)
def exportationFunction(self, directoryExport, exportCheckBoxState, ROIDict): directory = directoryExport.directory messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(' /!\ WARNING /!\ ') messageBox.setIcon(messageBox.Warning) if exportCheckBoxState: # if exportation in different files for ROIName, ROIDictValue in sorted(ROIDict.items()): directoryFolder = directory + '/' + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, modelDict in sorted(ROIDictValue.items()): filename = directoryFolder + '/' + fieldName + '.csv' if os.path.exists(filename): messageBox.setText('On folder ' + ROIName + ', file ' + fieldName + '.csv already exists.') messageBox.setInformativeText('Do you want to replace it on ' + ROIName + '?') messageBox.setStandardButtons(messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: self.exportFieldAsCSV(filename, fieldName, modelDict) if choice == messageBox.YesToAll: for ROIName, ROIDictValue in sorted(ROIDict.items()): directoryFolder = directory + '/' + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, shapeDict in sorted(ROIDictValue.items()): filename = directoryFolder + '/' + fieldName + '.csv' self.exportFieldAsCSV(filename, fieldName, shapeDict) return True else: self.exportFieldAsCSV(filename, fieldName, modelDict) else: for ROIName, ROIDictValue in sorted(ROIDict.items()): filename = directory + '/' + ROIName + '.csv' if os.path.exists(filename): messageBox.setText('File ' + ROIName + '.csv already exists in this folder.') messageBox.setInformativeText('Do you want to replace it? ') messageBox.setStandardButtons(messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: self.exportAllAsCSV(filename, ROIName, ROIDictValue) if choice == messageBox.YesToAll: for ROIName, ROIDictValue in sorted(ROIDict.items()): filename = directory + '/' + ROIName + '.csv' self.exportAllAsCSV(filename, ROIName, ROIDictValue) return True else: self.exportAllAsCSV(filename, ROIName, ROIDictValue)
def ExportationValueOnEachPoint(self,directoryExport, ROIDict): directory = directoryExport.directory directoryPointValuesFolder = directory + '/ValuesOnEachPoint' messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(' /!\ WARNING /!\ ') messageBox.setIcon(messageBox.Warning) if not os.path.exists(directoryPointValuesFolder): os.mkdir(directoryPointValuesFolder) for ROIName, ROIDictValue in sorted(ROIDict.items()): if ROIName != 'Entire Model': directoryFolder = directoryPointValuesFolder + '/' + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, modelDict in sorted(ROIDictValue.items()): directoryFilename = directoryFolder + '/' + fieldName if not os.path.exists(directoryFilename): os.mkdir(directoryFilename) for modelName in modelDict.keys(): filename = directoryFilename + '/' + modelName + '.csv' if os.path.exists(filename): messageBox.setText('File ' + fieldName + '.csv already exist for the model ' + modelName) messageBox.setInformativeText('Do you want to replace it on ?') messageBox.setStandardButtons(messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: pointData = slicer.util.getNode(modelName).GetModelDisplayNode().GetInputPolyData().GetPointData() fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray) if choice == messageBox.YesToAll: for fieldName, modelDict in sorted(ROIDictValue.items()): for modelName in modelDict.keys(): filename = directoryFilename + '/' + modelName + '.csv' pointData = slicer.util.getNode(modelName).GetModelDisplayNode().GetInputPolyData().GetPointData() fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray) return True else: pointData = slicer.util.getNode(modelName).GetModelDisplayNode().GetInputPolyData().GetPointData() fieldArray = pointData.GetArray(fieldName) ROIArray = pointData.GetArray(ROIName) self.exportPointValueAsCSV(filename, fieldArray, ROIArray)
def exportationFunction(self, BoolComa, directoryExport, exportCheckBox, ROIDict): # BoolComa is a boolean to know what kind of exportation is wanted # BoolComa = True for COMA Exportation And False for DOT's one directory = directoryExport.directory messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) if exportCheckBox.isChecked(): # if exportation in different files for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): directoryFolder = directory + '/' + ROIName if not os.path.exists(directoryFolder): os.mkdir(directoryFolder) for fieldName, modelDict in sorted(ROIDictValue.iteritems()): filename = directoryFolder + "/" + fieldName + ".csv" if os.path.exists(filename): messageBox.setText("On " + ROIName + ", file " + fieldName + ".csv already exist in this folder.") messageBox.setInformativeText("Do you want to replace it on " + ROIName + "?") messageBox.setStandardButtons(messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: break if choice == messageBox.Yes: self.exportFieldAsCSV(filename, fieldName, modelDict) if BoolComa: self.convertCSVWithComma(filename) if choice == messageBox.YesToAll: for fieldName, shapeDict in sorted(ROIDictValue.iteritems()): filename = directoryFolder + "/" + fieldName + ".csv" self.exportFieldAsCSV(filename, fieldName, shapeDict) if BoolComa: self.convertCSVWithComma(filename) break else: self.exportFieldAsCSV(filename, fieldName, modelDict) if BoolComa: self.convertCSVWithComma(filename) else: for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): filename = directory + "/" + ROIName + ".csv" if os.path.exists(filename): messageBox.setText("File " + ROIName + ".csv already exist in this folder.") messageBox.setInformativeText("Do you want to replace it? ") messageBox.setStandardButtons(messageBox.NoToAll | messageBox.No | messageBox.YesToAll | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: break if choice == messageBox.Yes: self.exportAllAsCSV(filename, ROIName, ROIDictValue) if BoolComa: self.convertCSVWithComma(filename) if choice == messageBox.YesToAll: for ROIName, ROIDictValue in sorted(ROIDict.iteritems()): filename = directory + "/" + ROIName + ".csv" self.exportAllAsCSV(filename, ROIName, ROIDictValue) if exportCheckBox.isChecked(): self.convertCSVWithComma(filename) break else: self.exportAllAsCSV(filename, ROIName, ROIDictValue) if BoolComa: self.convertCSVWithComma(filename)