def test_mapping_query(self, mock_rdr, mock_ehr, mock_combined): # pre-condition table_name = 'visit_occurrence' mock_rdr.return_value = self.rdr_dataset_id mock_ehr.return_value = self.ehr_dataset_id mock_combined.return_value = self.combined_dataset_id # test q = combine_ehr_rdr.mapping_query(table_name) # post conditions expected_query = EXPECTED_MAPPING_QUERY.format( rdr_dataset_id=self.rdr_dataset_id, ehr_dataset_id=self.ehr_dataset_id, combined_dataset_id=self.combined_dataset_id, domain_table=table_name, mapping_constant=common.RDR_ID_CONSTANT, ehr_consent_table_id=EHR_CONSENT_TABLE_ID) # account for spacing differences expected_query = ' '.join(expected_query.split()) mono_spaced_q = ' '.join(q.split()) self.assertEqual(expected_query, mono_spaced_q)
def test_mapping_query(self): table_name = 'visit_occurrence' q = mapping_query(table_name) expected_query = '''SELECT DISTINCT '{rdr_dataset_id}' AS src_dataset_id, {domain_table}_id AS src_{domain_table}_id, 'rdr' as src_hpo_id, {domain_table}_id + {mapping_constant} AS {domain_table}_id FROM {rdr_dataset_id}.{domain_table} UNION ALL SELECT DISTINCT '{ehr_dataset_id}' AS src_dataset_id, t.{domain_table}_id AS src_{domain_table}_id, v.src_hpo_id AS src_hpo_id, t.{domain_table}_id AS {domain_table}_id FROM {ehr_dataset_id}.{domain_table} t JOIN {ehr_dataset_id}._mapping_{domain_table} v on t.{domain_table}_id = v.{domain_table}_id WHERE EXISTS (SELECT 1 FROM {ehr_rdr_dataset_id}.{ehr_consent_table_id} c WHERE t.person_id = c.person_id) '''.format(rdr_dataset_id=self.rdr_dataset_id, domain_table=table_name, ehr_dataset_id=self.ehr_dataset_id, ehr_consent_table_id=EHR_CONSENT_TABLE_ID, ehr_rdr_dataset_id=self.combined_dataset_id, mapping_constant=common.RDR_ID_CONSTANT) self.assertEqual( expected_query, q, "Mapping query for \n {q} \n to is not as expected".format(q=q))
def test_mapping_query(self): table_name = 'visit_occurrence' q = mapping_query(table_name) expected_query = EXPECTED_MAPPING_QUERY.format(rdr_dataset_id=bq_utils.get_rdr_dataset_id(), ehr_dataset_id=bq_utils.get_dataset_id(), ehr_rdr_dataset_id=self.combined_dataset_id, domain_table=table_name, mapping_constant=common.RDR_ID_CONSTANT, ehr_consent_table_id=EHR_CONSENT_TABLE_ID) self.assertEqual(expected_query, q, "Mapping query for \n {q} \n to is not as expected".format(q=q))
def test_mapping_query(self): table = 'visit_occurrence' q = mapping_query(table) expected_query = ''' WITH all_records AS ( SELECT '{rdr_dataset_id}' AS src_dataset_id, {domain_table}_id AS src_{domain_table}_id, NULL as src_hpo_id FROM {rdr_dataset_id}.{domain_table} UNION ALL SELECT '{ehr_dataset_id}' AS src_dataset_id, t.{domain_table}_id AS src_{domain_table}_id, v.src_hpo_id AS src_hpo_id FROM {ehr_dataset_id}.{domain_table} t JOIN {ehr_dataset_id}._mapping_{domain_table} v on t.{domain_table}_id = v.{domain_table}_id WHERE EXISTS (SELECT 1 FROM {ehr_rdr_dataset_id}.{ehr_consent_table_id} c WHERE t.person_id = c.person_id) ) SELECT ROW_NUMBER() OVER (ORDER BY src_dataset_id, src_{domain_table}_id) AS {domain_table}_id, src_dataset_id, src_{domain_table}_id, src_hpo_id FROM all_records '''.format(rdr_dataset_id=self.rdr_dataset_id, domain_table=table, ehr_dataset_id=self.ehr_dataset_id, ehr_consent_table_id=EHR_CONSENT_TABLE_ID, ehr_rdr_dataset_id=self.combined_dataset_id) self.assertEqual( expected_query, q, "Mapping query for \n {q} \n to is not as expected".format(q=q))