Example #1
0
        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', [])
Example #2
0
 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()
Example #3
0
 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', [])