def export_terms(dest_star, job): v = self.variable_table(dest_star) keys = job.concepts['keys'] names = job.concepts['names'] paths = I2B2MetaData.keys_to_paths(keys) v.create(bind=dest_db) dest_db.execute(v.insert(), [dict(id=id, item_key=key, concept_path=path, name_char=name, name=strip_counts(name)) for (id, (path, key, name)) in enumerate(zip(paths, keys, names))]) [(q_cd, result_cd), (q_md, result_md)] = job.term_info() cd = dest_star.tables['concept_dimension'] md = dest_star.tables['modifier_dimension'] values = lambda _: dict(concept_path=bindparam('concept_path'), concept_cd=bindparam('concept_cd')) tc.copy_in_chunks(dest_db, result_cd, cd, 'concept_dimension', [], values=values) values = lambda _: dict(concept_path=bindparam('modifier_path'), concept_cd=bindparam('modifer_cd')) tc.copy_in_chunks(dest_db, result_cd, md, 'modifier_dimension', [])
def export_patients(dest_star, job): pd = dest_star.tables['patient_dimension'] vd = dest_star.tables['visit_dimension'] [(pat_q, pat_data), (enc_q, enc_data)] = job.demographics() tc.copy_in_chunks(dest_db, pat_data, pd, 'demographics (patient_dimension)', []) tc.copy_in_chunks(dest_db, enc_data, vd, 'demographics (visit_dimension)', []) return dest_db.execute( 'select count(*) from patient_dimension').scalar()
def export_data(dest_star, job): q, data = job.patient_data() obs = dest_star.tables['observation_fact'] dest_db.execute(obs.delete()) tc.copy_in_chunks(dest_db, data, obs, 'patient data', [])