OHDSI Home | Forums | Wiki | Github

"Broad" Drugs

@aostropolets, @Dymshyts, or @Christian_Reich,

Do you have a way to identify in the Vocabulary “very broad” drug concepts? For example:
967823 Sodium Chloride 19049105 Potassium Chloride

In the negative controls processing, when we are looking for drug controls, I’d like to exclude these broad, semi nonsensical concepts. But open to your thoughts on the topic!

This is related to this thread, but instead of conditions I’m thinking about drugs here:

@ericaVoss:

I wouldn’t. Sodium and Potassium chloride barely make it into the drugs. Usually, they are excipients = inactive components and don’t make it into the ingredient list. Only in electrolyte solutions for volume replacement they are explicitly listed. That means they are really biased.

Find a real biochemically active substance.

Yes, that is what I want to do, I want the negative control lists to only list “biochemically active substances”. Is there a trick to know which are which?

The only thing that comes to my mind is to use ATC.
Exclude from the ATC list something like:
A02AA-A02AD, – salts compounds
A06AC, – Bulk-forming laxatives
A07B, – INTESTINAL ADSORBENTS
A07C, – electrolytes
A11, – vitamins
A12, – mineral supplement
D03A, --CICATRIZANTS
D08, --ANTISEPTICS AND DISINFECTANTS
D09, --MEDICATED DRESSINGS
B – blood products
and all their descendants and get the corresponding RxNorm concepts.
There are some missing links though, so the approach isn’t perfect.

1 Like

@aostropolets,
it’s a good approach
but it will work in an ideal world where we assigned ATC’s to all the RxNorm concepts,
look:
select count(*) from concept c where c.concept_id not in (
select distinct c.concept_id from concept c
join concept_ancestor a on a.descendant_concept_id = c.concept_id
join concept x on a.ancestor_concept_id= x.concept_id and x.vocabulary_id =‘ATC’
where c.vocabulary_id = ‘RxNorm’ and c.concept_name like ‘%Sodium Chloride%’ and c.standard_concept = ‘S’
)
and c.vocabulary_id = ‘RxNorm’ and c.concept_name like ‘%Sodium Chloride%’ and c.standard_concept = ‘S’
;
–there are 650 concepts containing Sodium Chloride but without ATC relationship.

@ericaVoss, on the other hand the approach might be slightly modified and you get the nice results then:
there is a list of ingredients having the ATC’s of interest:
select c.concept_id, c.concept_name from concept c
join concept_ancestor a on a.descendant_concept_id = c.concept_id
join concept x on a.ancestor_concept_id= x.concept_id and x.vocabulary_id =‘ATC’
where c.vocabulary_id = ‘RxNorm’ and c.standard_concept = ‘S’ and c.concept_class_id = ‘Ingredient’
and x.concept_code in (
–take some of Anna’s examples and added ‘B05XA’ --seems to be important also
‘A02AA’, ‘A02AB’, ‘A02AC’, ‘A02AD’ ,-- salts compounds
‘B05XA’, – Electrolyte solutions
‘A06AC’, – Bulk-forming laxatives
‘A07B’ – INTESTINAL ADSORBENTS
)
;
so you can look for these ingredients in dose_era or go through concept_ancestor to get the corresponding drugs for drug_exposure analysis

Perfect @aostropolets & @Dymshyts, I like the second query, I’ll add it into my CEM work.

t