|
@@ -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']
|