OHDSI Home | Forums | Wiki | Github

[Drug Domain - RxNorm] Why are concepts for Multiple Ingredient non-standard?

Hello all,

First time poster here. Nice to be part of the wonderful world of OHDSI. :slight_smile:

Main Question
I’m trying to understand why multiple ingredient concepts are non-standard (and do not participate in the hierarchy). For you to understand why I ask this question, I’ll explain our use case.

Use case
We often have situations where we don’t have full information on a drug (sometimes only the active component/brand without any mention of dosage and/or drug form, sometimes only the brand, etc.). Our data mainly comes from text mining, which explains the lack of details, yet the information this data holds is still relevant to us. (This way we can see how many patients are taking for example ‘Beta Blockers’ of any kind).

I was looking into the possible concept ids for each type of occurrence of a drug in the text and -in the end- it would be most interesting for us to assign broad concept ids to these occurrences, namely the active ingredient(s). However, for combination drugs, we are limited by the fact that the class “Multiple Ingredients” from RxNorm is non-standard and does not participate in the hierarchy.

If someone can provide some guidance on how best to handle such situation, that would be appreciated. I’m also open to have a short meeting if that might help.

I hope it is clear and someone can help out!

Maxim Hubin

“Multiple Ingredients” from RxNorm is non-standard because in the OHDSI CDM a combination such as “Orotic Acid / Vitamin E” should be separated into two separate records, one for Orotic Acid and another for Vitamin E. If the solution of separating your multiple drugs into separate components is not satisfactory please provide some examples.

The fact that combination drugs can be administered can be important in certain contexts.
We use classification concepts to query all relevant records.


Example Concept of Combination Drug: Amlodipine / Perindopril (concept id 36029221)

Observation 1: Amlodipine / Perindopril (concept id 36029221) does not participate in the hierarchy at all (as it is non-standard), but instead maps to the 2 ingredients separately.
Observation 2: When querying for the descendants of this classification concept ACE inhibitors and calcium channel blockers (concept_id 21601815), perindopril (concept id 1373225) and amlodipine (concept id 1332418) by themselves are descendants. In practice this means that if the database contains records of drugs administered individually (NOT as a combination drug), it will also appear in the output. This seems to make little sense, as the logic of my query would suggest I’m only looking for drugs containing the combinations.
Conclusion: My conclusion here is that the splitting of a record for multiple ingredients in 2+ records for each ingredient causes a loss of information (the fact that these ingredients where administered as one drug) and leads to strange results when querying for descendants.

Maybe I’m making some mistakes in my logic.
Please let me know what we could do.

Thanks in advance!

I will leave the reasons for splitting the combination drugs into separate records for someone else to explain. But as for your query, joining the two sets of descendants from ACE inhibitors and calcium channel blockers by person_id and drug_exposure_start_date should identify people that received the drugs in combination.

@DTorok I still believe that some information gets lost (namely that these drugs were administered in one drug form). But it is maybe important for me to first understand why combination drugs are being split up.

Could somebody help out and explain why combination drugs need to be split into separate records?
And also, I understood that there are some guidelines for what to do when the source data is incomplete (as in my case above), maybe a set of rules to select a more specific code would already help.

Yes, information gets lost when doing most transformations. A main purpose of the the CDM is to allow studies of drug effects on people, what is the effect of drug X on population Y. Early on it was decided that analysis will be easier if drug xy were recorded as drug X and drug Y. I do not think that there is any more to it than that.
Your handling of situations where “we don’t have full information on a drug” is correct. If the best you can do is map to the ingredient, still create the record, with or without dosage information. As you point out, with this information you can identify the people taking 'Beta Blockers;.

If you have a specific drug product (combining ingredients with strength or form) you can have that in the records. It will roll up to each individual ingredient.

Why not have ingredient combinations? Because in the blood stream of the patient that doesn’t work. It is completely irrelevant for the drug treatment if you took two ingredients in one or two pills, or many pills for that matter (“take 2 tablets after each meal”).

What’s your use case for having the ingredient combo? Other than just preserving the fact that there was a combination drug, but you don’t actually know which one? Do you want to compare combination drugs to single ingredient drugs?

I think I could slightly argue the point that it is not completely irrelevant. For example clavulanic acid in Augmentin the clavulanic acid by itself does nothing. Additional examples include sulbactam and tazobactam combinations. Similarly ritonavir while an antiretroviral is mostly utilized in combination to booster other HIV protease inhibitors and HCV treatment through metobolic inhibition. One more example carbidopa is nothing on its own therapeutically but is used to provide an enzymatic inhibition to allow levodopa uptake in Parkinson treatment.


100% agree. The “escort” ingredient alone doesn’t do anything. I am not saying to drop ingredients. I am saying record both ingredients, separately, on the same day, and you are good. Because theoretically you could give the patient a pill with amoxicillin and one with clavulanate and get the exact same pharmacodynamic effect compared to the combo drug. Obviously, it makes no sense to sell this particular one separately.

The logic is: a drug can have more than one ingredient. We capture that. But if we don’t have information about the drug, an ingredient is just an active moiety in the blood stream (or topically somewhere), and it does it’s job by itself, even if that job is to help another ingredient to be efficacious. Fixed combinations of ingredients don’t serve any use case.

Unless @MaximH tells us otherwise.

You may ask: “Why are you so fastidious, just put in the combo ingredients, what is it to you?” The answer is cost. Complexity creates a burden later on when the poor analyst wretch has to know, for example, that it isn’t enough to look for amoxicillin and its descendants, but also for all the combinations thereof and their descendants. Of course, we could build MIN combos into the hierarchy and position them between ingredients and clinical drug components and clinical drug forms. But that will create a lot of new hierarchical paths. And when you add ATC to it, with its own idiosyncratic way to handle ingredient combinations, nobody will ever figure out how it all works, and how to query the data.

Which is why I am asking for a use case. No use case - no new complexity.

1 Like

Hello all

Glad to see that there was some activity on this question! :slight_smile:

First of all, I’ll agree that clinically there is not so much difference and we can gain the same insights from splitting combination drugs in the single drugs. I’ll try to summarize our use case again, but also want to state that we are not necessarily asking for more complexity, but rather for the right way to handle the situation with the current tools.

Our use case
Data in our sources is often incomplete (reason: text mining notes of physicians). Therefore we are taking a look at what choices we have when we encounter such incomplete entries.

I investigated for the optimal situation of assigning concept_ids to drugs found in the text, where we map to the greatest level of detail. I made a summary in this document. As you can see there, not all options allow for a selection of a standard concept_id (which we preferred, for simplicity reasons).This document was updated already with some lessons learned from all your answers. It seems feasible to follow this approach.

However, than we still come back to what I mentioned before. We analyse a lot of data and do not query every ingredient of each drug separately, instead we rely on the hierarchies (for drugs this means we use classificiation concepts from ATC). This however leads to some mistakes as described below.

Assuming we follow my proposal in the document above, how would you suggest to move forward when querying for drug groups? Not using classification concepts for combinations of drugs at all (or even not use ATC)?

This relates to what Christian said, but it’s not fully clear to me yet what the alternatives would be.

Hello all,

Are there any more suggestions for us?

Kind regards


Not that much I can say to what you are laying out, except that you pretty much got it:

  • Ingredients are separate, for the mentioned biological reason. We could implement the multi-ingredient combinations (MIN in RxNorm speak), but that would be a big surgery at this point (all RxNorm Extensions would have to be changed). And there is not that big of a use case I can spot, here, other than “I want to capture as precise as possible what the doctor scribbled”. But that is not an analytical use case.
  • Clinical Drug Components (ingredient+strength) only exist separately, and not as combinations. Branded Drug Components and Clinical Drug Forms do, though. It remains RxNorm’s secret why they created this idiosyncrasy. I wish it were different, and theoretically we could fix it, but again, no strong use case for that big surgery.
  • Brand names are not standard concepts, because they are not clean. There is no one-to-one relationship to ingredients. It’s all over the place.

From the use case perspective, 90% of all exposure cohorts are based on ingredient definitions. 9% of them want some limitation on topical, inhalant or systemic, and Drug Forms do that for you. And there may be 1% of weird stuff. I haven’t seen a study that is going explicitly after combination drugs.

Bottom line: It is idiosyncratic, but it works for the use cases.

ATC: It is similar, except now we are on the receiving end of the same attitude. All the idiosyncrasies we are pointing out they respond to with shrugging their shoulders, claiming that the manufacturers of the drugs are the ones who request the codes, and it works for them. And there are a ton of idiosyncrasies:

  • There are drugs which have no ATC code
  • There are ATC codes for which there is no drug
  • There are multiple ATC codes for the same drug (steroids topping the list)
  • The combinations are ambiguously defined
  • The combinations overlap
  • The naming convention of lower ATC codes are missing most the A, T and C attributes of the higher, leaving you guessing what this thing really is (a topical or systemic steroid)

Which means, ATC cannot correctly serve as classification for an RxNorm-type hierarchy, because of the above. Particularly the combinations are a mess. We still stitched it together, but it isn’t perfect.

1 Like