123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #a script to modify a patient from list. Current implementation deletes
- #all data for patients identified by study regulatory number from study
- regulatoryNumber="X000"
- #basic python
- import os
- import subprocess
- import re
- import datetime
- import sys
- fhome=os.path.expanduser('~')
- sys.path.insert(1,fhome+'/software/src/labkeyInterface')
- import labkeyInterface
- import labkeyDatabaseBrowser
- net=labkeyInterface.labkeyInterface()
- net.init(fhome+'/.labkey/network.json')
- db=labkeyDatabaseBrowser.labkeyDB(net)
- #by default uses .labkey/Remote.json configuration
- project="IPNUMMprospektiva/Study"
- #study section ################
- #select patients enroled under regulatory number
- filters=[]
- regulatoryFilter={\
- 'variable':'regulatoryNumber',\
- 'value':regulatoryNumber,\
- 'oper':'eq'}
- filters.append(regulatoryFilter)
- ds=db.selectRows(project,"study","demographicData",filters)
- ids=[row['ParticipantId'] for row in ds['rows']]
- idCode=""
- for id in ids:
- if len(idCode)>0:
- idCode+=";"
- idCode+=id
- idFilter={\
- 'variable':'ParticipantId',\
- 'value':idCode,\
- 'oper':'in'}
- #print("idCode: {}".format(idCode))
- dsts=db.selectRows(project,"study","Datasets",[])
- for row in dsts['rows']:
- dsId=db.selectRows(project,"study",row['Name'],[idFilter])
- rows=[r for r in dsId['rows']]
- print("[{}]: {}".format(row['Name'],len(rows)))
- if len(rows)==0:
- continue
- #this is for security only
- #db.modifyRows('delete',project,"study",row['Name'],rows)
- # list section ########################
- ds=db.selectRows(project,"lists","crfEntry",[regulatoryFilter])
- masterRows=[row for row in ds['rows']]
- crfs=[row['entryId'] for row in masterRows]
- crfCode=""
- for crf in crfs:
- if len(crfCode)>0:
- crfCode+=";"
- crfCode+=crf
- print("crfCode: {}".format(crfCode))
- crfFilter={\
- 'variable':'crfRef',\
- 'value':crfCode,\
- 'oper':'in'}
- dsts=db.selectRows(project,"lists","inputLists",[])
- for row in dsts['rows']:
- dsId=db.selectRows(project,"lists",row['queryName'],[crfFilter])
- rows=[r for r in dsId['rows']]
- print("[{}]: {}".format(row['queryName'],len(rows)))
- if len(rows)==0:
- continue
- #this is for security only
- #db.modifyRows('delete',project,"lists",row['queryName'],rows)
- #this is for security only
- #ds=db.modifyRows('delete',project,"lists","crfEntry",masterRows)
- print("Done")
- quit()
|