Browse Source

add force reload button

Andrej Studen 1 year ago
parent
commit
9bd1c19d3d
1 changed files with 17 additions and 7 deletions
  1. 17 7
      slicerModules/imageBrowser.py

+ 17 - 7
slicerModules/imageBrowser.py

@@ -129,7 +129,11 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
         self.keepCached=qt.QCheckBox("keep Cached")
         self.keepCached.setChecked(1)
         patientsFormLayout.addRow("Keep cached",self.keepCached)
-    
+
+        self.forceReload=qt.QCheckBox("Force reload")
+        self.forceReload.setChecked(0)
+        patientsFormLayout.addRow("Force reload",self.forceReload)
+        
 
 
     def addSetupSection(self):
@@ -360,7 +364,8 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
     def onPatientLoadButtonClicked(self):
         print("Load")
         #delegate loading to logic
-        self.logic.loadImages(self.currentRow,self.keepCached.isChecked())
+        self.logic.loadImages(self.currentRow,self.keepCached.isChecked(),
+                              self.forceReload.isChecked())
         self.logic.loadSegmentation(self.currentRow)
         self.setSegmentEditor()
         #self.logic.loadReview(self.currentRow)
@@ -624,17 +629,21 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         idx=iData['idx']
         path=iData['path']
         keepCached=iData['keepCached']
+        try:
+            forceReload=iData['forceReload']
+        except KeyError:
+            forceReload=False
         dset=self.isetup['datasets'][iData['dataset']]
         
         localPath=os.path.join(self.tempDir,path[-1])
 
-        if not os.path.isfile(localPath):
+        if not os.path.isfile(localPath) or forceReload:
             #download from server
             remotePath=self.fb.formatPathURL(dset['project'],'/'.join(path))
             if not self.fb.entryExists(remotePath):
                 print("Failed to get {}".format(remotePath))
                 return
-
+            #overwrites existing file from remote
             self.fb.readFileToFile(remotePath,localPath) 
           
         properties={}
@@ -654,7 +663,7 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
             #os.remove(localPath)
 
 
-    def loadImages(self,row,keepCached):
+    def loadImages(self,row,keepCached, forceReload=False):
       
       
         #fields={'ctResampled':True,'petResampled':False}
@@ -667,7 +676,8 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         self.volumeNode={}
         for f in relativePaths:
             iData={'idx':f,'path':relativePaths[f],
-                    'keepCached':keepCached,'dataset':'Imaging'}
+                    'keepCached':keepCached,'dataset':'Imaging',
+                    'forceReload':forceReload}
             self.loadImage(iData)
 
         #mimic abdominalCT standardized window setting
@@ -715,7 +725,7 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         path=self.getSegmentationPath()
         path.append(entry['latestFile'])
         iData={'idx':'Segmentation','path':path,
-                    'keepCached':0,'dataset':'SegmentationsMaster'}
+                    'keepCached':1,'dataset':'SegmentationsMaster'}
         self.loadImage(iData)
         #look for missing segments
         segNode=self.volumeNode['Segmentation']