OHDSI Home | Forums | Wiki | Github

ATC4 drug codes to Rx Norm

Can ATC level 4 codes be mapped to Rx Norm if it is the only drug code available? Or would we need a more granular code?

Urvi:

They can, except you will not always get an unambiguous map. Sometimes you do:

with a_to_r as (
 select an.concept_id as atc_concept_id, an.concept_name as atc_name, an.concept_code as atc_code,
de.concept_id as rxn_concept_id, de.concept_name as rxn_name, de.concept_code as rxn_code
  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.vocabulary_id='ATC' and an.concept_class_id='ATC 4th' 
  and de.vocabulary_id='RxNorm' and de.concept_class_id='Ingredient'
)
select cnt, count(8) as frequency from (
  select atc_code, count(8) as cnt from a_to_r group by atc_code
) 
group by cnt
order by 1;

Gives you:

1 132
2 119
3 81
4 61
5 64
6 32
7 28
8 26
9 15
10 17
11 19
12 12
13 8
14 3
15 7
16 8
17 2
18 3
19 2
20 1
21 2
22 2
23 1
25 1
27 1
29 1
31 1

Which means, 132 ATC4 codes map unambiguously to a single RxNorm ingredient, but for 119 you get two Ingredients all the way down to that one ATC4 code which can be anyone of 31 different Ingredients.

(am newb, apologies if comment in wrong place)

1-many for ATC to Rxnorm is not too bad for epidemiology since we use the reverse relation (rxn->atc). But for the rxn->atc, only a minority of rxnorm ingredients (~2600) map to one or more ATC concepts; and ~10K map to none. Does that sound correct?

Thanks!

@Todorov:

That is correct. But they are not necessarily missing maps. ATC doesn’t have every drug ingredient. Most of them are vaccines, all sorts of traditional and herbal ingredients, other ingredients not covered by the agencies or ingredients missing from ATC for other reasons.

@Todorov,

I was just exploring this with @anthonysena. We found that of the 159,851 valid RxNorms:

  • 72% have an ATC mapping
  • 71% have an ETC mapping

Valid RxNorms are defined as:

SELECT *
FROM CONCEPT c 
WHERE c.VOCABULARY_ID = 'RXNORM' AND c.INVALID_REASON IS NULL

Like @Christian_Reich said a lot of the ones that don’t have mappings are traditional and herbal ingredients. Here are some examples:

  • A.E.R. Witch Hazel
  • Cold and Cough
  • GOLDEN SEAL EXTRACT
  • cucumber allergenic extract
  • red paper wasp venom protein

@Christian_Reich - there was one I happen to catch that I thought could have made a hop to ATC/ETC although maybe not cleanly:

19048572-Prolastin

I thought this one could have ended up with an ATC/ETC map because some of its related concepts do, but it just does not.

We don’t have a need for this, but I was reviewing it and thought you may be interested.

It’s a Brand Name. Brand Names are not participating in the hierarchy. The generic ingredient is 1169352 “alpha 1-Antitrypsin”, and that one is related to ATC 21601040 “alfa1 antitrypsin”, and up goes the hierarchy from there.

t