Преглед на файлове

Working version of importXML.py

NIX Worker преди 3 седмици
родител
ревизия
234a3aa12b
променени са 1 файла, в които са добавени 15 реда и са изтрити 4 реда
  1. 15 4
      pythonScripts/importXML.py

+ 15 - 4
pythonScripts/importXML.py

@@ -13,6 +13,12 @@ def getImporter(setup):
     importlib.reload(importXLSX)
     return importXLSX
 
+def getFileBrowser(db):
+   import nixWrapper
+   nixWrapper.loadLibrary('labkeyInterface')
+   import labkeyFileBrowser
+   return labkeyFileBrowser.labkeyFileBrowser(db.net)
+
 def getVal(xmlRoot,aliasVal,xPath='',aliasReplace={}):
     q=aliasVal.split(':')
     xName=q[0]
@@ -40,7 +46,7 @@ def parseJSON(x):
         pass
     return {}
                 
-def readSetup(importXSLX,pars):
+def readSetup(importXLSX,pars):
     db=importXLSX.getDB(pars)
     ds=db.selectRows(pars['project'],'lists','importSetup',[])
     setupRows=ds['rows']
@@ -88,7 +94,7 @@ def importXML(importXLSX,pars,xmlFile,dryRun=True):
     print(f'aliases: {alias}')
     row={}
     
-    tree = lxml.etree.ElementTree(file=filename)
+    tree = lxml.etree.ElementTree(file=xmlFile)
     print(tree.docinfo.xml_version)
     root=tree.getroot()#Element
     #patient id can be either set in pars (takes precedence) or from xml record
@@ -134,6 +140,8 @@ def main(parameterFile):
    with open(parameterFile) as f:
       pars=json.load(f)
 
+   print(pars)
+
    fhome=os.path.expanduser('~')
    with open(os.path.join(fhome,".labkey","setup.json")) as f:
      setup=json.load(f)
@@ -142,12 +150,15 @@ def main(parameterFile):
 
    #needs server
    db=importXLSX.getDB(pars)
-   keyFilter={'variable':'Key','value':pars['key'],'oper':'eq'}
+   
+   db.net.getCSRF()
+   keyFilter={'variable':'Key','value':'{key}'.format(**pars),'oper':'eq'}
 #needs project
    ds=db.selectRows(pars['project'],'lists','importXML',[keyFilter])
    r=ds['rows'][0]
-   filename=os.path.join(fhome,'temp','data.xml')
+   filename=os.path.join(fhome,'temp','DCIS','data.xml')
    url=db.net.connectionConfig['host']+r['_labkeyurl_fileUpload']
+   fb=getFileBrowser(db)
    fb.readFileToFile(url,filename)
    #needs project
    setupRows=readSetup(importXLSX,pars)