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)
Exemplo n.º 5
0
    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)