OHDSI Home | Forums | Wiki | Github

NDCs mapping to RxNorm Extension

(Melanie Philofsky) #1

Hi @aostropolets, @Dymshyts & @Christian_Reich,

I have 181 drug_source_concept_ids which map to a standard concept_id in the RxNorm Extension vocabulary. Why are they not mapped to standard concepts in the RxNorm vocabulary?

(Anna Ostropolets) #2

The obvious answer is that RxNorm Extension fits better. RxNorm gives us the mappings for some of the NDCs that are valuable or important, others get mapped to whatever better represent their ingredient, strength and form. Since RxNorm and RxNorm Extension have one hierarchy a fact that it’s mapped to RxNorm or RxE shouldn’t really matter (unless you found issues or bugs).

(Christian Reich) #3

Problem is that NDCs are US-based drugs, and RxNorm should cover them. Unless there is some deprecation sequence problem. Is there?

(Anna Ostropolets) #4

Not exactly the sequence problem, but the deprecation problem itself.
For example, a drug is out of the market for some reason. It gets deprecated by RxNorm and NDC but still is in the old source data, which means that we need to map it to a standard concept. Sometimes RxNorm gives the alternatives, sometimes RxE does it better (like in the case of 44990347 Factor VIII 125 UNT/ML Injectable Solution [ReFacto] that has no analogs in RxNorm).
Then we have a lot of drugs that RxNorm doesn’t care about, like all sorts of multivitamins. Some of them get mapped better (like 45358429 BIOTENE DRY MOUTH ORAL RINSE), others - just to a generic ‘Multivitamin preparation’.

(Christian Reich) #5

RxNorm deprecates concepts when the drug is off the market? I don’t think so.

You are right with that one. Are @MPhilofsky’s NDCs in that category?

(Melanie Philofsky) #6

My drugs are more than just vitamins. I’m attaching a csv of the drug_source_concept_ids that map to a standard drug_concept_id in the RxNorm Extension vocabulary.

UCD drug source concept ids map to RxNorm Extension.xlsx (10.6 KB)

(Anna Ostropolets) #7

So, let’s take a look at them. One random drug:
50 ML Midazolam 1 MG/ML Prefilled Syringe
This drug has no Brand Name and there are no Branded Drugs, valid or deprecated with this dosage and volume. Even if we drop the Dose Form and extend our search to Injections, Injectable Solutions and so on, there is still none.
So, our decision to map it to something else in RxNorm cannot be guided by the Branded Drugs that may exist for this drug or by other clues (such as dailymed ). What happened to this drug and why it got deprecated? Your guess is as good as mine.

(JD Liddil) #8

This is not FDA approved. It exist no where in the FDC list. Am I missing something? It is in RXNorm extension. A case of garbage in/garbage out?

Disclaimer: This drug has not been found by FDA to be safe and effective, and this labeling has not been approved by FDA.

For further information about unapproved drugs, click here.

Midazolam HCl 1 mg/mL in 0.9% Sodium Chloride 50 mL Bag


midazolam hcl injection, solution

Product Information

Product T ype


Item Code (Source)


Route of Administration


DEA Schedule


Active Ingredient/Active Moiety

Ingredient Name

Basis of Strength






1 mg in 1 mL

(JD Liddil) #9

Also have nay of you worked for a big Pharma company. They have issues tracking all this information as well for all the drugs they have every made over time, where they are sold and formulations and approvals. So it is no wonder RXNorm is not perfect

(Melanie Philofsky) #10

The NDC code for @aostropolets example is 66647403694, not

(Melanie Philofsky) #11


I was under the impression that the OMOP CDM was going to keep all deprecated, retired, obsolete, doesn’t exist any more but did at one time codes.

This is what we are trying to accomplish at UCD. We are creating a “data explorer”, a Tableau UI for our end users (researchers & investigators) based off the ATC classification concepts and the OMOP Vocabulary tables. One of our talented BI-Developers noticed that the Concept Ancestor table uses the RxNorm Extension vocabulary & concept_ids for the ATC hierarchical queries, so she included it in the data explorer. As you can imagine, going from the small amount of standard RxNorm concept_ids (147,676) to including RxNorm & RxNorm Extension standard concept_ids (1,770,014) has exploded the size of the table and slowed the query to a frustrating, spinning disk. This is run off GBQ, which is super fast, so it’s not a backend architecture problem (or so I’m told by people that know way more about architecture than I). We are trying to lower the giant hurdle of sifting through thousands of NDC codes when a cohort inclusion is “opioids”. Granted, the researcher still has to sift through all the codes returned when retrieving the descendants of concept_id = 21604254, but it is easier than going the other direction. Removing the RxNorm Extension vocabulary from all our queries, including ones against Drug_Exposure table will help immensely.

(Melanie Philofsky) #12


Any thoughts, questions, comments, opinions, agreement, disagreement, or philosophical discussion points on the above?

(Christian Reich) #13

Oops. Sorry, @MPhilofsky, didn’t mean to ignore you.

Short answer: yes. Longer answer: Well, not sure what you want. Yes, if RxNorm Extension is too big, and you are in the US, you can just kick it out. There are no RxNorm Extension products there. (Which, btw, may not always hold true in future.) Or you get a bigger machine. Or you get a better search engine. 1.7M records really should not be a problem for any optimized query. 1.7G maybe, 1.7T definitely.