OHDSI Home | Forums | Wiki | Github

Proposal for conventions regarding quantity and strength

(colin e.) #14


My votes RE: the 3 decisions you posit above:

  1. I think we should leave it to be somewhat untidy. Scrubbing sounds like a pretty significant housekeeping task vs. creating documentation showing folks how to handle the conversion on their own.

  2. I would prefer the “cleaner” option (qty_cat_flag) for my purposes.

  3. I agree with your opinion: We should not create a convention that will prohibit use with combination drug products.

(Don Torok) #15

Item 2 ) Never like the idea of using NULL to represent something, in this
case pieces. There is a UCUM value for tablet is that close enough to

(Christian Reich) #16

Thanks @herrcerd.

@DTorok: Wait. I understand your reservations with NULL, but if we want to use the actual Dose Forms use the ones from RxNorm, not UCUM (select * from concept where concept_class_id=‘Dose Form’ and vocabulary_id=‘RxNorm’). However, if we let them put those in than we have even more ways for them to screw it up. They could put “Oral tablet” where the Dose Form of the actual product is “Rectal Suppository”, if you get my drastic example. And if they can they will.


I just want to point out that the decisions are not independent from each other:
I cannot decide on “doing the conversions on the analytical level” and “using the flag instead of the unit”: If I want the flag I do not have the unit anymore and can’t convert measurements. In this case, the quantity must refer to the denominator_unit.

With respect to 3, I prefer to forbid the scenario 3 in order to support multiple ingredients.

We should include the effective_drug_dose/dose_unit_concept_id problem into the current discussion.
Here is the proposal:
We can handle compounding by adding one entry in the DRUG_EXPOSURE table per compound. This enables us all the above discussed options to provide quantity and strength. Even a compounding of multi-ingredient products would be possible.
If required, we could add a flag in the DRUG_EXPOSURE table to mark that this entry is part of a compounding. I don’t think we have to distinguish between (theoretical) multiple compounding on the same day for the same patient.
effective_drug_dose and dose_unit_concept_id can be removed.

(Don Torok) #18

Top 20 drug occurrence quantities by count from MarketScan when the drug concentration denominator is in ‘mL’

SELECT quantity , count(*) as recs
FROM drug_exposure rx
join drug_strength s ON s.drug_concept_id = rx.drug_concept_id
join source_to_concept_map m on target_concept_id=s.drug_concept_id
and m.source_vocabulary_id = 9
where s.concentration_denom_unit=‘mL’
group by 1 order by 2 DESC

quantity count
NULL ------> 5,352,704,826
120 ------> 1,755,174,696
30 ------> 1,691,853,117
100 ------> 1,561,252,470
150 ------> 1,554,596,427
60 ------> 1,503,585,520
240 ------> 1,307,392,605
10 ------> 1,289,815,720
200 ------> 1,241,314,150
15 ------> 1,213,803,384
180 ------> 911,371,962
5 ------> 876,165,683
45 ------> 656,079,965
75 ------> 638,552,544
300 ------> 587,097,428
50 ------> 527,407,543
80 ------> 523,660,735
1 ------> 441,927,397
473 ------> 357,228,590
527 ------> 339,217,568

(Christian Reich) #19

Thanks, @DTorok. Looks like the right thing. Round numbers of ml or mg for the solutions and multiples of 30 (= 1 oz.) for the creams. Disconcerting that the majority has no quantity information, but that’s the data.

Yes, that’s what I meant.

Very nice idea. That totally nails it. We would add records to DRUG_STRENGTH for all compunds (drug_concept_id=ingredient_concept_id) with the mg concept in the denominator_unit_concept_id for all “dry” compounds and mL for the “wet” ones. We could steal the knowledge what is what from RxNorm.

Well, there is the use case where you want to specify a, say, chemotherapeutic drug product (certian NDC) but also the actual dose administered. But I guess you are right, you could do that through the quantity mechanism.

Yes, please please.


I have updated the proposal based on the following assumptions/ideas:

  • As discussed we don’t address option 3 as it would not support multiple ingredients.
  • With this exclusion we don’t need either the quantity_flag or the quantity_unit_concept_id anymore.
  • If the ETL process will make use of option 4, i.e. providing the total amount of the product, it will standardize mass units to g and volumes to mL. With this convention, the ETL process is much easier and can use the quantity values interchangeably without checking the units in the DRUG_STRENGTH table. We will make necessary conversions on the analytical side.
  • The suggested compounding approach is included.

(Christian Reich) #21


We have one more problem, but I think it also could work. Take a typical HCPCS code. Those are the codes that the hospitals use to give patients drugs (more than trivial drugs) and get reimbursed. They are usually called J codes, but there are a lot of such codes that don’t start with a J:

J0285 Injection, amphotericin b, 50 mg.

Of course, the actual drug looks like this: 19133991 “amphotericin B liposomal 5 MG/ML Injectable Solution”. That means, the physician injected 10 mL. However, we don’t know this, because there is also 40175779 “amphotericin B liposomal 4 MG/ML Injectable Solution”, of which he then injected 12.5 mL.Which means, this J code is mapped to a Clinical Drug Form 40158018 “amphotericin B liposomal Injectable Solution”, and we don’t know the amount.

The way to solve that is to provide a drug_strength record for those non-Standard drugs. In those cases, where all the information in DRUG_STRENGTH is null or missing, we would go to the DRUG_STRENGTH record and get the 50 mg for the entire drug exposure there.

Sounds right, or too much hassle?


Excellent, no hassle at all. This fits into either use case 1 (pieces) or 3 (quantified drugs) of the proposal:

  • We will create one or more records holding the amount of ingredient in amount_value and amount_unit_concept_id:
  • Example: J0285 Injection, amphotericin b, 50 mg will be mapped to amount_value = 50, amount_unit_concept_id = mg.
  • This works also for multiple ingredients:
    2718340 Injection, medroxyprogesterone acetate / estradiol cypionate, 5mg / 25mg. We will add two records: “medroxyprogesterone acetate / 5 / mg” and “estradiol cypionate / 25 / mg”.
  • What about concentrations?
    Examples: “2718487 Injection, mannitol, 25% in 50 ml” or “2718659 5% dextrose/normal saline (500 ml = 1 unit)”
    Do we want to treat this like concentrations for quantified drugs, e.g. “mannitol / 12.5 / ml / 50 / ml” or just as “mannitol / 12.5 / ml”?

(Christian Reich) #23


We would either do “mannitol / 12.5 / ml” (absolute dose) or "mannitol / / 25 / % / and in quantity 50 (usual concentration and total amount of solution). Not sure where we get the mL from, probably from converting % to mL/mL.

(Christian Reich) #24

I looked at what RxNorm does about the ingredients. For most of them it is straightforward. However, there are a number of them that are used consistently with different units. Usually this effects ingredients that are often measured in units, but can also be measured in mg, or anorganic salts that are often given in equivalents (mols) but also in mg. See attached at the list. Not sure what to do. We can’t give both, but if we give only one then ETL folks will have to do conversions, which we are trying to avoid. We need an idea.

Alternative Units.xlsx (17.0 KB)


I checked the first one: “40160955 Acacia pollen extract”. It seems that this is measured in either 50mg/mL or 1000 UNT/mL.
The crucial point is: Does the pharmacist use one of the clinical drugs “40160957 Acacia pollen extract 50 MG/ML Injectable Solution” or “40166793 Acacia pollen extract 1000 UNT/ML Injectable Solution” or does he have some kind of container with 100% Acacia pollen extract?

If the first one is true, we can directly refer to the drugs (use case 4 in the [proposal][1]).
If the latter is true,


… I can generate something, but do we need this or could we live with (clinical) drugs for these special cases? (Unfortunately, I don’t have sufficient insight in the pharmaceutical practice here).
[1]: http://www.ohdsi.org/web/wiki/doku.php?id=documentation:next_cdm:denominator_units “proposal”

(Christian Reich) #26


The pharmacists use both, and there are official conversion rates, of course one per ingredient. See this table from a pharmacy book I have:

And If I count the NDC attached to these products I get the following:
[U] 2 mg 15 40160955 Acacia pollen extract
[U] 39 mg 51 40173511 Acremonium strictum allergenic extract
mg 21 [U] 2 40161553 alfalfa pollen extract
[U] 25 mg 24 19013480 ALLERGENIC EXTRACT, WASP
[U] 25 mg 21 40171580 Allscale pollen extract
mg 105 [U] 92 40173567 Alternaria alternata allergenic extract
[U] 25 mg 21 40221981 American basswood pollen extract
[U] 45 mg 73 40173533 American cockroach allergenic extract
mg 75 [U] 43 40161030 American elm pollen extract
[U] 28 mg 32 40171977 annual bluegrass pollen extract
[U] 0 mg 6 19000729 Aprotinin
[U] 30 mg 37 40161040 Arizona ash pollen extract
[U] 27 mg 44 40161044 Arizona cypress pollen extract
In other words, the same thing again: Both variants are used in NDCs (real products). Of course the final truth is counting which of these NDCs actually make it into the pharmacies and count them in PharMetrics or other claims. But my guess is the result will be the same again. Even for my favorite, the American Cockroach extract.

(Martijn Schuemie) #27

Sorry I’m late to the party. My votes:

  1. I would do this at analysis time (not exactly correct, so wouldn’t want to have it baked into my CDM)

  2. I don’t like using a single variable to represent different things depending on a flag variable, so I’d go with separate fields for quantity and amount

  3. Just to complicate things: in many cases we don’t have the exact clinical (or branded) drug in the vocab, and adding them to the vocab is not very fast. If we use the ingredient as the drug_concept_id, could we store the amount of the ingredient in the amount field, even though it is a solid drug?


I have already updated the proposal based on the votes and I believe your thoughts are included.

(Christian Reich) #29


Hang on. I don’t think we have in the proposal to have two different fields depending on whether it is a quantity (of pieces) or amount (mg of an ingredient). Do we?


@Christian_Reich, @schuemie:
Let me try to describe the problem as I understood it:
The data source has only the amount of an ingredient (e.g. 20 mg of Ingredient_A), there is no clinical drug we can refer to.

If this is true, the idea is to generate one record in the DRUG_STRENGTH table per ingredient:
We generate a DRUG_STRENGTH record with “1 = amount_value / amount_unit_concept_id / ingredient_concept_id/drug_concept_id?”

The ETL process puts the amount of amount_unit_concept_id in DRUG_EXPOSURE.quantity. In the example above, it’s 20. This is equivalent to solid forms (see use case 1 in the proposal) and I guess this is exactly what Martijn has asked for.

Christian pointed out a special situation where the ingredient is only available as a concentration and the concentration is ambiguous with respect to the numerator unit. For example “40160955 Acacia pollen extract”. This drug is measured in either 50mg/mL or 1000 UNT/mL.

I believe we can neglect these cases as we probably have a clinical drug reference.
There are still options to handle this, but I think we can defer this until we really have a practical use case and more insight from the data source perspective for this.

(Christian Reich) #31


That’s all good. All that Martijn is saying is that if the quantity denotes a number of fixed pieces of product, it should be one field, and if it denotes an amount (mg or ml) it should be another field. That’s all. Will increase the number of fields, but makes the definition of fields more straightforward.


@Christian_Reich, @schuemie:
Sorry for the misunderstanding, I replied to point 3.

With respect to different fields for numbers (actually we should generalize this to everything without a unit, i.e. including fractions -> use cases 1 – 3) and amounts (use case 4) there are also some downsides:

  • The nice thing of the current proposal is that you can apply the same formula (quantity x numerator_value) to calculate the dose in use case 4. Otherwise you would need another formula (something like quantity_amount x numerator_value).
  • There is another field which requires additional resources (only one field is supposed to get filled).
  • Far more important is the problem that someone can cause errors by using the wrong field or inconsistencies by filling both.

Personally, I do value the clarity of having two fields as you propose with respect to the description but I am afraid that will cause more problems and ambiguity in practice and a slight overhead for processing.

(Martijn Schuemie) #33

@Klaus, yes, you’re right. I failed to realize that in the new CDM the denominator in drug_strength is always normalized to 1, so both types of fields can be treated the same way as you demonstrated. We just have to be very sure that the denominator unit in drug_strength equals the quantity unit in drug_exposure. (That could be a check in Achilles Heel).

I’m all for adding records for every ingredient to drug_strength with amount_value = 1. That will solve the issue I raised for point 3 (when no matching clinical or branded drug is available in the vocab).