OHDSI Home | Forums | Wiki | Github

Storing pharmaceutical classifications in OMOP

Apologies if this question has been asked before, but I did not see a topic when I searched.

Researchers at Weill Cornell often request pharmaceutical classification in combination with cuts of data from DRUG_EXPOSURE. We do not have this classification stored in OMOP, so we have to go back to source to get it. It would be elegant if this information was stored in OMOP, but we were not sure about the best place to store it.

I see that there is the ATC classification in the CONCEPT table, which has many high-level terms that we could map to our pharmaceutical classifications. For example, we would map “Antihistamine” from our source to 21602002 (ANTIPRURITICS, INCL. ANTIHISTAMINES, ANESTHETICS, ETC.) from the vocabulary. Would we store these mappings in DRUG_EXPOSURE, OBSERVATION, or some other table?

I will give an attempt to answer your question.

If your question is about mapping source data drug classification, then the answer is No. Do not do that. OMOP does not take any source data classification. As a matter of fact, OMOP purposely discard all classification in source data, including condition, drug, procedure etc. OMOP only wants you to use its own classification system.

If your question is about how to leverage OMOP classification, e.g., ATC classification, then one option is to use concept_ancestor table. For example, below query will give you all the descendant concept_id under 21602002 (ANTIPRURITICS, INCL. ANTIHISTAMINES, ANESTHETICS, ETC.):

select a.*, b.concept_name
from concept_ancestor a join concept b on a.descendant_concept_id = b.concept_id
and a.ancestor_concept_id = 21602002
order by max_levels_of_separation

1 Like

Yes, this is close to my question. I want to map my source classification to ATC, but I did not know where to store it.


You don’t have to. What @QI_omop is saying is that that hierarchical relationship from ATC already exists. Except not to your source, but to the standard (RxNorm).

All you have to do is to map your source drug information to RxNorm. Do you need help with that?

If you don’t have drug information in your source but only classification information (i.e., your source tells you the patient received an antihistaminic) then you are indeed stuck. OMOP does not allow classifications as data. For a number of reasons:

  1. There is no common definition what constitutes an antihistaminic.
  2. There is no way for the analyst to know that you have classification information and at what level. The standard concepts contain at least one defined pharmaceutical ingredient.

Let us know.

Thanks for the response @Christian_Reich! We already have this mapped into our instance, so I’m glad to hear that I don’t have to do additional work. Does a similar mapping exist between NDC and ATC?

Yes: NDC-> RxNorm → ATC.

You just need to use the provided NDC mapping to get your drug exposures as RxNorm concepts. Then the vocabulary handles the mapping up to ATC from there.

1 Like