Просмотр исходного кода

Adding calculateCenters.py and doAnalysis.py as drivers to replace equivalent shell scripts, so python can start matlab

NIX Worker 1 год назад
Родитель
Сommit
29a112f380
2 измененных файлов с 75 добавлено и 0 удалено
  1. 33 0
      pythonScripts/calculateCenters.py
  2. 42 0
      pythonScripts/doAnalysis.py

+ 33 - 0
pythonScripts/calculateCenters.py

@@ -0,0 +1,33 @@
+import analysis
+import sys
+import os
+import getData
+import json
+import config
+
+
+def main(configFile):
+   with open(configFile,'r') as f:
+      xsetup=json.load(f)
+   db,fb=getData.connectDB(xsetup['network'])
+   try:
+      qfilter=xsetup['patientFilter']
+   except KeyError:
+      qfilter=[]
+   #getData.downloadPatientFiles(db,fb,xsetup,qfilter)
+   rows=getData.getPatients(db,xsetup,qfilter)
+   try:
+      calculateCenters=xsetup['calculateCenters']
+   except KeyError:
+      calculateCenters=True
+
+   for r in rows:
+      #download original files
+      getData.downloadFiles(fb,r,xsetup)
+      if calculateCenters:
+         analysis.calculateRowCenters(r,xsetup)
+      #upload centers
+      getData.uploadCenters(fb,r,xsetup)
+
+if __name__=="__main__":
+   main(sys.argv[1])

+ 42 - 0
pythonScripts/doAnalysis.py

@@ -0,0 +1,42 @@
+import analysis
+import sys
+import os
+import getData
+import json
+import config
+
+
+
+def main(configFile):
+   with open(configFile,'r') as f:
+      xsetup=json.load(f)
+   db,fb=getData.connectDB(xsetup['network'])
+
+   try:
+      qfilter=xsetup['patientFilter']
+   except KeyError:
+      qfilter=[]
+   
+   rows=getData.getPatients(db,xsetup,qfilter)
+
+   for r in rows:
+      getData.downloadCenters(fb,r,xsetup)
+
+   mode=['global','IVF']
+   tempDir=config.getTempDir(xsetup)
+
+
+   for r in rows:
+      code=config.getCode(r,xsetup)
+      for m in mode:
+         #check if we need to run analysis
+         files=config.printFitParFinalRowNames(r,xsetup,m)
+         fullFiles=[os.path.join(tempDir,code,f) for f in files]
+         filesPresent=[os.path.isfile(f) for f in fullFiles]
+         if not all(filesPresent):
+            analysis.doAnalysisRow(r,xsetup,m)
+         getData.uploadFitParFinal(fb,r,xsetup,m)
+
+
+if __name__=="__main__":
+   main(sys.argv[1])