copyAnonymizedDataset.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import os
  2. import json
  3. import re
  4. import subprocess
  5. import shutil
  6. import sys
  7. import numpy
  8. import pydicom
  9. import copy
  10. shome=os.path.expanduser('~nixUser')
  11. sys.path.insert(1,shome+'/software/src/labkeyInterface')
  12. import labkeyInterface
  13. import labkeyDatabaseBrowser
  14. fhome=os.path.expanduser('~')
  15. fconfig=os.path.join(fhome,'.labkey','network.json')
  16. net=labkeyInterface.labkeyInterface()
  17. net.init(fconfig)
  18. db=labkeyDatabaseBrowser.labkeyDB(net)
  19. #also need merlin credentials
  20. fconfigMerlin=os.path.join(fhome,'.labkey','merlin.json')
  21. netMerlin=labkeyInterface.labkeyInterface()
  22. netMerlin.init(fconfigMerlin)
  23. dbMerlin=labkeyDatabaseBrowser.labkeyDB(netMerlin)
  24. project='iPNUMMretro/Study'
  25. merlinProject=project
  26. #project='Orthanc/Database'
  27. anonymousDataset='AnonymousClinicalData'
  28. merlinDataset='ClinicalData'
  29. #getNixID
  30. studyData=db.selectRows(project,'study','Study',[])
  31. nixID=studyData['rows'][0]['nixID']
  32. ds=db.selectRows(project,'study',anonymousDataset,[])
  33. for row in ds['rows']:
  34. outRow=copy.deepcopy(row)
  35. outRow['PatientId']='{}-{}'.format(nixID,row['PatientId'])
  36. dbMerlin.modifyRows('insert',merlinProject,'study',merlinDataset,[outRow])
  37. print('Done')