예제 #1
0
# If everything has been resolved or you are importing a few attributes, run
# the following lines (or the lines that apply to you). Before importing any
# data, make sure you add a new entry in the reference table "Patch Informat".

# add new patch record (only do this once!)
newPatch = {
    'id': f'{currentFreeze}_{currentPatch}',
    'type': currentReleaseType,
    'date': str(datetime.now().strftime('%Y-%m-%d')),

    # For description, use the following format for patches or use
    # "FreezeX Original Data" for new releases
    'description': f'{currentFreeze.title()} {currentPatch.title()}'
}

rd3.add(entity='rd3_patch', data=newPatch)

# prep data for import
update_dob = rd3tools.select_keys(phenopackets, ['id', 'dateofBirth'])
update_sex1 = rd3tools.select_keys(phenopackets, ['id', 'sex1'])
update_phenotype = rd3tools.select_keys(phenopackets, ['id', 'phenotype'])
update_hasNotPhenotype = rd3tools.select_keys(phenopackets,
                                              ['id', 'hasNotPhenotype'])
update_disease = rd3tools.select_keys(phenopackets, ['id', 'disease'])
update_phenopacketsID = rd3tools.select_keys(phenopackets,
                                             ['id', 'phenopacketsID'])
update_ageofonset = rd3tools.select_keys(phenopackets, ['id', 'ageOfOnset'])

# set patch information for current release
update_patch = []
for d in phenopackets:
#     raise SystemError('Error in release mapping: not all records were processed')
# else:
#     statusMsg('All records have been processed! :-)')

portalUpdates = release[:, {'id': f.id, 'processed': True}]

#//////////////////////////////////////////////////////////////////////////////

# ~ 3 ~
# Import Data

# Update Patch table with new release info (DO THIS FIRST!)
rd3.add(entity='rd3_patch',
        data={
            'id': patchinfo.get('id'),
            'type': patchinfo.get('type'),
            'date': patchinfo.get('date'),
            'description': patchinfo.get('description')
        })

# import new orgs; import ERNs if needed, but highly unlikely
rd3.importData(entity='rd3_organisation', data=dtFrameToRecords(newOrgs))

# prep data for import into RD3
rd3_subjects = dtFrameToRecords(data=subjects)
rd3_subjectInfo = dtFrameToRecords(data=subjectInfo)
rd3_samples = dtFrameToRecords(data=samples)
rd3_labinfo = dtFrameToRecords(data=labinfo)

# import data
rd3.importData(entity=f'rd3_{patchinfo["name"]}_subject', data=rd3_subjects)