Browse Source

Adding new configuration files (iraemm_retrospective, iraemm_prospective) and adding filter variable to configuration files to select cohorts

Andrej Studen 2 years ago
parent
commit
a9d585edc2
1 changed files with 15 additions and 3 deletions
  1. 15 3
      slicerModules/imageBrowser.py

+ 15 - 3
slicerModules/imageBrowser.py

@@ -150,7 +150,8 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
         self.setupList=qt.QComboBox()
         self.setupList.addItem('<Select>')
         self.setupList.addItem("limfomiPET_iBrowser.json")
-        self.setupList.addItem("iraemm_iBrowser.json")
+        self.setupList.addItem("iraemm_iBrowserProspective.json")
+        self.setupList.addItem("iraemm_iBrowserRetrospective.json")
         self.setupList.currentIndexChanged.connect(self.onSetupListChanged)
         setupFormLayout.addRow("Setup:",self.setupList)
 
@@ -278,6 +279,7 @@ class imageBrowserWidget(ScriptedLoadableModuleWidget):
         self.serverList.setStyleSheet('background-color: green')
 
     def onPatientListChanged(self,i):
+        #add potential filters from setup to dbFilter
         ds=self.logic.getDataset(dbFilter={'participant':self.patientList.currentText})
        
         visitVar=self.logic.getVarName(var='visitField')
@@ -496,7 +498,9 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
         #"iPNUMMretro/Study"
         #self.schema='study'
         #self.dataset=self.isetup['query']
-    
+   
+        #include filters...
+
         ds=self.getDataset()
 
         ids=[row[self.isetup['participantField']] for row in ds['rows']]
@@ -512,12 +516,20 @@ class imageBrowserLogic(ScriptedLoadableModuleLogic):
             return defaults[var]
 
         
-    def getDataset(self,name="Imaging",dbFilter=[]):
+    def getDataset(self,name="Imaging",dbFilter={}):
         dset=self.isetup['datasets'][name]
         project=dset['project']
         schema=dset['schema']
         query=dset['query']
+
+        #add default filters
         qFilter=[]
+        try:
+            for qf in dset['filter']:
+                v=dset['filter'][qf]
+                qFilter.append({'variable':qf,'value':v,'oper':'eq'})
+        except KeyError:
+            pass
         for f in dbFilter:
             if f=='participant':
                 qFilter.append({'variable':self.isetup['participantField'],