Browse Source

Adding checks for segmentation file existence at server and preventing imageBrowser to delete any files

Andrej Studen 2 years ago
parent
commit
1a0ecefb56
1 changed files with 12 additions and 4 deletions
  1. 12 4
      slicerModules/imageBrowser.py

+ 12 - 4
slicerModules/imageBrowser.py

@@ -379,9 +379,15 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
 
     def onPatientClearButtonClicked(self):
         self.logic.clearVolumesAndSegmentations()
+        self.patientSave.setStyleSheet('background-color:gray')
 
     def onPatientSaveButtonClicked(self):
-        self.logic.saveSegmentation()
+        status=self.logic.saveSegmentation()
+        if status:
+            self.patientSave.setStyleSheet('background-color:green')
+        else:
+            self.patientSave.setStyleSheet('background-color:red')
+
 
     def onCtBoneButtonClicked(self):
         self.logic.setWindow('CT:bone')
@@ -621,7 +627,7 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
                         filetype=filetype,properties=properties)
           
         if not keepCached:
-            os.remove(localPath)
+            #os.remove(localPath)
 
 
     def loadImages(self,row,keepCached):
@@ -725,7 +731,8 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
                 uName,outRow['Key'])
         path=self.getSegmentationPath()
         path.append(fName)
-        self.saveNode(self.volumeNode['Segmentation'],'SegmentationsMaster',path)
+        status=self.saveNode(self.volumeNode['Segmentation'],'SegmentationsMaster',path)
+
         
         #update SegmentationList with know file name
         outRow['Segmentation']=fName
@@ -745,6 +752,7 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         print(resp)
         #since we loaded a version, origin should be set to database
         self.loadSegmentation(self.segmentationEntry,0)
+        return status
         #self.segmentationEntry['origin']='database'
         
 
@@ -759,7 +767,7 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         remotePath=self.fb.buildPathURL(dset['project'],path[:-1])
         remotePath+='/'+fName
         self.fb.writeFileToFile(localPath,remotePath)
-
+        return self.fb.entryExists(remotePath)
         #add entry to segmentation list
 
     def createSegmentation(self,entry):