On my team we use ingredients to build our medication concept sets. However, things get tricky when you need to restrict to inhaled formulations & combination drugs for asthma; I don’t think this is possible to do within the ATLAS UI. For such scenarios we write a SQL query to get the concept_ids and then import them into ATLAS on the Search>Import tab.
We’ve created the following table to make it easier to write such queries:
CREATE TABLE medications_categorized AS (
standard_concepts.concept_id as standard_concept_id,
standard_concepts.concept_name as standard_concept_name,
ancestor_concepts.concept_id as ingred_id,
ancestor_concepts.concept_name as ingred,
dose_form_concept.concept_id as dose_form_id,
dose_form_concept.concept_name as dose_form
FROM omop.concept all_concepts
JOIN omop.concept_relationship ON concept_relationship.concept_id_1 = all_concepts.concept_id
AND concept_relationship.relationship_id = 'Maps to'
JOIN omop.concept standard_concepts ON standard_concepts.concept_id = concept_relationship.concept_id_2
JOIN omop.concept_ancestor ON concept_ancestor.descendant_concept_id = concept_relationship.concept_id_2
JOIN omop.concept ancestor_concepts ON ancestor_concepts.concept_id = concept_ancestor.ancestor_concept_id
AND ancestor_concepts.concept_class_id = 'Ingredient'
JOIN omop.concept_ancestor dose_form_ancestor ON dose_form_ancestor.descendant_concept_id = concept_relationship.concept_id_2
JOIN omop.concept dose_form_concept ON dose_form_concept.concept_id = dose_form_ancestor.ancestor_concept_id
AND dose_form_concept.concept_class_id = 'Dose Form Group');
You can write queries on this table to find concepts which represent combinations of different ingredients; inhaled formulations; etc.
Hope that’s helpful. I’d also be curious to see how others approach creation of custom concept sets outside the ATLAS UI