inspectomop.queries.drug.indications_for_drug_concept_id¶
- inspectomop.queries.drug.indications_for_drug_concept_id(concept_id, inspector, return_columns=None)¶
Find all indications for a drug given a concept_id. Returns matches from NDFRT, FDB, and corresponding SNOMED conditions.
Note: The results set should be filtered by ‘c_domain_id’ == ‘Condition’
- Parameters:
concept_id (int)
inspector (inspectomop.inspector.Inspector)
return_columns (list of str, optional) –
optional subset of columns to return from the query
columns : [‘c_concept_id’, ‘c_concept_name’, ‘c_domain_id’, ‘min_levels_of_separation’, ‘an_concept_id’, ‘an_concept_name’, ‘an_vocab’, ‘de_concept_id’, de_concept_name’, ‘de_vocab’]
- Returns:
results
- Return type:
pandas.DataFrame if as_pandas_df else sqlalchemy.sql.expression.Executable
Notes
SQL (see 2nd example for actual implimentation)
D13: Find indications as condition concepts for a drug:
select a.min_levels_of_separation as a_min, an.concept_id as an_id, an.concept_name as an_name, an.vocabulary_id as an_vocab, an.domain_id as an_domain, an.concept_class_id as an_class, de.concept_id as de_id, de.concept_name as de_name, de.vocabulary_id as de_vocab, de.domain_id as de_domain, de.concept_class_id as de_class from concept an join concept_ancestor a on a.ancestor_concept_id=an.concept_id join concept de on de.concept_id=a.descendant_concept_id where an.concept_class_id in ('Ind / CI', 'Indication') -- One is for NDFRT, the other for FDB Indications and de.vocabulary_id in ('RxNorm', 'RxNorm Extension') -- You don't need that if you join directly with DRUG_EXPOSURE and lower(an.concept_name) like '%diabetes%'
- To tie directly to SNOMED concepts, this query is used
- select
c.concept_id as c_id, c.concept_name as c_name, c.vocabulary_id as c_vocab, c.domain_id as c_domain, c.concept_class_id as c_class, – Condition de.concept_id as de_id, de.concept_name as de_name, de.vocabulary_id as de_vocab, de.domain_id as de_domain, de.concept_class_id as de_class – Drug
- from
concept an – Indications
- join
concept_ancestor a on a.ancestor_concept_id=an.concept_id – connect to
- join
concept de on de.concept_id=a.descendant_concept_id – …drug
- join
concept_relationship r on r.concept_id_1=an.concept_id – connect to
- join
concept c on c.concept_id=r.concept_id_2 and c.domain_id=’Condition’ – Snomed Conditions
- where
an.concept_class_id in (‘Ind / CI’, ‘Indication’) and de.vocabulary_id in (‘RxNorm’, ‘RxNorm Extension’) and lower(c.concept_name) like ‘%diabet%’