OHDSI Home | Forums | Wiki | Github

Drug_concept_id in DRUG_EXPOSURE for a drug with mulitple ingredients

According to the conventions (see below), if a drug has more that one ingredient we create one row per ingredient in DRUG_EXPOSURE.

Do I understand right that then for each row set the drug_concept_id to the corresponding ingredient-concept_id ??

If yes, then we are missing precision on the drug_concept_id. Different ‘Branded Pack’, ‘Clinical Pack’,etc will end up having the same ingredient-concept_id combinations. Moreover, what is then the point of having that precision on compounded drugs, if in the DRUG_EXPOSURE only the high hierarchiy ingrideint is used?

tagging: @ericaVoss, @MaximMoinat

From : https://ohdsi.github.io/CommonDataModel/drug_dose.html

  1. Compounded drugs
    Example: Ibuprofen 20%/Piroxicam 1% Cream, 30ml in 5ml tubes.
    DRUG_STRENGTH We need entries for the ingredients of Ibuprofen and Piroxicam, probably with an amount_value of 1 and a unit of mg.
    DRUG_EXPOSURE The quantity refers to the total amount of the compound. Use one record in the DRUG_EXPOSURE table for each compound.
    Example: 20% Ibuprofen of 30ml = 6mL, 1% Piroxicam of 30ml = 0.3mL
    Ingredient dose= Depends on the drugs involved: One of the use cases above. Ibuprofen dose = 6 x 1mg x 1000 = 6000mg
    Daily dose = Ibuprofen dose/drug duration
    Piroxicam dose = 0.3 x 1mg x 1000 = 300mg
    Daily dose = Piroxicam dose/drug duration
    Note: The analytical side determines that the denominator for both ingredients in the DRUG_STRENGTH table is mg and applies the factor 1000 to convert between mL/g and mg.


Compounded drugs are the ones the pharmacy makes in the shop according to the prescription. That used to be the norm in the 19th century. Now it is very very rare, and I believe only in dermatological creams still used. Almost all drugs are commercially produced and branded. They have concept_ids in the CONCEPT table (RxNorm or, if not available in the US, RxNorm Extension).

If you have drugs in your data that are not in RxNorm/RxNorm Extension you can have them added. The instructions tell you how, and you can get help from the vocab team.

If you really believe you have truly compounded drugs then yes, you have to record them ingredient by ingredient, with their strength, as described above.

Good to know that compounded drug refers specifically to formulations made ‘on-site’, and not multi-ingredient drugs in general. I found this interesting to read: Compounding - Wikipedia

Looking at the CommonDataModel page on drug dose that Javier referenced, do I understand correctly that it suggests adding records to the drug_strength table at ETL time? This table is a lookup for e.g. standard Clinical Drugs which ingredients are used at what strengths. I don’t think we should touch this during ETL. We might have to rewrite and move this page to the vocabulary documentation.

Also, Christian, it might be time to move that instruction on international drugs to a different place. Not sure who still visits the wiki…

Definitely. Will do that soon.

I thought compound information was used in this case (but the thread is from 2020, so maybe this information is outdated) @Christian_Reich How to calculate Quantity and effective_drug_dose? - General - OHDSI Forums you said: “If you don’t have a formulation, but you are recording a strength incorporated into a drug product (eg. Acetaminphen 500 mg) then use Clinical Drug Comp.” So when/for which cases is mapping at “compound” level used ?


Not sure I understand your question or answer anymore than I already answered:

So, if your data tell you the composition of a drug (e.g. chemotherapy), then you record it as described with the ingredient in the drug_concept_id and the dose in quantity (assuming the unit as in DRUG_STRENGTH for that ingredient, essentially mg or mL, depending on whether it is solid or liquid). There is no field for dose form, but there is route_concept_id, which is what the analyst really wants to know anyway.

1 Like