|
@@ -60,6 +60,7 @@ def main(parameterFile):
|
|
|
project=pars['project']
|
|
|
dataset=pars['targetQuery']
|
|
|
schema=pars['targetSchema']
|
|
|
+ view=pars['viewName']
|
|
|
segSchema=pars['segmentationSchema']
|
|
|
segQuery=pars['segmentationQuery']
|
|
|
qQuery=pars['percentileQuery']
|
|
@@ -73,7 +74,7 @@ def main(parameterFile):
|
|
|
participantField=pars['participantField']
|
|
|
|
|
|
#all images from database
|
|
|
- ds=db.selectRows(project,schema,dataset,[])
|
|
|
+ ds=db.selectRows(project,schema,dataset,[],view)
|
|
|
|
|
|
petField=pars['images']['PET']['queryField']
|
|
|
|
|
@@ -84,6 +85,13 @@ def main(parameterFile):
|
|
|
numpy.linspace(55,80,6),
|
|
|
numpy.linspace(82,90,5),
|
|
|
numpy.linspace(91,100,10)))
|
|
|
+
|
|
|
+ #debug, select
|
|
|
+ #rows1=[r for r in rows \
|
|
|
+ # if r['patientCode']=='NIX-LJU-D2002-IRAE-A010' \
|
|
|
+ # and r['visitCode']=='VISIT_6']
|
|
|
+ #rows=rows1
|
|
|
+
|
|
|
for r in rows:
|
|
|
localPET=os.path.join(tempBase,'PET.nii.gz')
|
|
|
localSeg=os.path.join(tempBase,'Seg.nii.gz')
|
|
@@ -118,28 +126,35 @@ def main(parameterFile):
|
|
|
#3 lungs
|
|
|
#4 thyroid
|
|
|
#5 bowel
|
|
|
+ dsP=db.selectRows(project,schema,qQuery,[idFilter,visitFilter,vFilter])
|
|
|
+ db.modifyRows('delete',project,schema,qQuery,dsP['rows'])
|
|
|
+ dspRows=[]
|
|
|
for level in [3,4,5]:
|
|
|
- v=organ_percentile(niPET.get_fdata(),niSeg.get_fdata(),level,pv)
|
|
|
+ try:
|
|
|
+ v=organ_percentile(niPET.get_fdata(),niSeg.get_fdata(),level,pv)
|
|
|
+ except IndexError:
|
|
|
+ print('Error for {}/{}: {}'.format(r['patientCode'],r['visitCode'],level))
|
|
|
+ continue
|
|
|
for (x,y) in zip(pv,v):
|
|
|
#get existing entry
|
|
|
seqNum=r['SequenceNum']+0.0001*x+0.01*segVersionI
|
|
|
- print('[{:.8f}] {}/{}: {}/{}'.format(seqNum,r['patientCode'],r['visitCode'],x,y))
|
|
|
-
|
|
|
- sFilter={'variable':'SequenceNum','value':'{}'.format(seqNum),'oper':'eq'}
|
|
|
- oFilter={'variable':'organ','value':'{}'.format(level),'oper':'eq'}
|
|
|
- dsP=db.selectRows(project,schema,qQuery,[idFilter,sFilter,oFilter])
|
|
|
- mode='update'
|
|
|
- if len(dsP['rows'])==0:
|
|
|
- mode='insert'
|
|
|
- rowDSP={x:r[x] for x in [participantField,'patientCode','visitCode']}
|
|
|
- rowDSP['SequenceNum']=seqNum
|
|
|
- rowDSP['segmentationVersion']=segVersion
|
|
|
- else:
|
|
|
- rowDSP=dsP['rows'][0]
|
|
|
+ #print('[{:.8f}] {}/{}: {}/{}'.format(seqNum,r['patientCode'],r['visitCode'],x,y))
|
|
|
+
|
|
|
+# sFilter={'variable':'SequenceNum','value':'{}'.format(seqNum),'oper':'eq'}
|
|
|
+# oFilter={'variable':'organ','value':'{}'.format(level),'oper':'eq'}
|
|
|
+# mode='update'
|
|
|
+# if len(dsP['rows'])==0:
|
|
|
+# mode='insert'
|
|
|
+ rowDSP={x:r[x] for x in [participantField,'patientCode','visitCode']}
|
|
|
+ rowDSP['SequenceNum']=seqNum
|
|
|
+ rowDSP['segmentationVersion']=segVersion
|
|
|
+# else:
|
|
|
+# rowDSP=dsP['rows'][0]
|
|
|
rowDSP['percentile']=x
|
|
|
rowDSP['value']=y
|
|
|
rowDSP['organ']=level
|
|
|
- db.modifyRows(mode,project,schema,qQuery,[rowDSP])
|
|
|
+ dspRows.append(rowDSP)
|
|
|
+ db.modifyRows('insert',project,schema,qQuery,dspRows)
|
|
|
|
|
|
|
|
|
|