OHDSI Home | Forums | Wiki | Github

Mapping RxNorm to ATC

As the response I got from Mapping RxNorm to ATC with mapping in concept_relationship, bothconcept_ancestor table and rxnorm-atc relationship in concept_relationship table are both good methods we can find the mapping between rxnorm and atc categories. There are a lot of rxnorm ingredients that we couldn’t find mapping to atc using the above methods still, but we can find them linking to atc categories under ‘MAP FROM’ relationships in concept_relationship table. E.g. Bacitracin with RxNorm code 1291, concept_id 915175 is MAP FROM bacitracin oral with ATC code R02AB04, concept_id 21603239; bacitracin systemic with ATC code J01XX10, concept_id 21603070; and bacitracin topical with ATC code D06AX05, concept_id 21602065. I want to ask is there any risk if we create a mapping based on ‘MAP FROM’ ? And why is it a MAP FROM relationship instead of RxNorm - ATC in these cases? Thank you

It’s not. There are more relationships from ATC to RxNorm. In fact, ATC to RxNorm is no longer used for the hierarchy. Instead, there are:

  • Primary lateral = the ingredient is the primary, ie. the one in the given ATC hierarchy, and it is an equivalent (rather than belonging to a category). Example: all your bacitracins above.
  • Primary up = the ingredient is the right one from the hierarchy, but it is not mentioned itself, but as part of a category. Example: ATC5 21601155 “amino acids; parenteral” mapping to RxNorm 19006410 “arginine”.
  • Secondary lateral = the ingredient is mentioned directly, but from another hierarchical ATC arm. Example: ATC5 21600839 “ascorbic acid (vit C) and calcium; systemic” mapping to RxNorm 19058572 “calcium citrate”. The ATC hierarchy is coming down to the vitamin C, not the calcium.
  • Secondary up = the ingredient is mentioned as a class, and is from another ATC arm. Example: ATC5 21601712 “acebutolol and thiazides; systemic” mapping to RxNorm 974166 “hydrochlorothiazide”. There can be other thiazides.

The “Maps to” relationships are picked from the laterals only. You cannot map something to all thiazides in your ETL. So, if the source data contain “acebutolol and thiazide” you really only can map the acebutolol.

Makes sense (as far as crazy ATC lets that happen)?