|
@@ -391,9 +391,10 @@ def importData(pars,filename,getId=getId,modify=modify,\
|
|
|
# print('{}: {}'.format(p,len(pMap[p])))
|
|
|
print(entries)
|
|
|
#delete previous incarnations
|
|
|
- loadSafely(pars,entries,dryRun)
|
|
|
+ loadSafely(pars,entries,dryRun=dryRun)
|
|
|
|
|
|
-def loadSafely(pars,entries,dryRun=True):
|
|
|
+def loadSafely(pars,entries,keyColumn=None,dryRun=True):
|
|
|
+#allow additional keys in keyColumn
|
|
|
|
|
|
db=getDB(pars)
|
|
|
project=pars.get('project','DCIS/Study')
|
|
@@ -402,13 +403,17 @@ def loadSafely(pars,entries,dryRun=True):
|
|
|
|
|
|
updateRows=[]
|
|
|
insertRows=[]
|
|
|
+
|
|
|
+
|
|
|
+ selVal=['ParticipantId','SequenceNum']
|
|
|
+ if keyColumn:
|
|
|
+ selVal.append(keyColumn)
|
|
|
+
|
|
|
for entry in entries:
|
|
|
- v='ParticipantId'
|
|
|
- idFilter={'variable':v,'value':entry[v],'oper':'eq'}
|
|
|
|
|
|
- v='SequenceNum'
|
|
|
- seqFilter={'variable':v,'value':'{}'.format(entry[v]),'oper':'eq'}
|
|
|
- ds=db.selectRows(project,schema,query,[idFilter,seqFilter])
|
|
|
+ qFilter=[{'variable':v,'value':'{}'.format(entry[v]),'oper':'eq'} for v in selVal]
|
|
|
+ ds=db.selectRows(project,schema,query,qFilter)
|
|
|
+
|
|
|
if len(ds['rows'])>0:
|
|
|
r=ds['rows'][0]
|
|
|
r.update(entry)
|