Now vaccine from this example will been mapped to RxNorm Ingredient, if you still need comprehensive graphical image i will be making it
According the initial question - what are the best candidates to map CPT to.
Here is the table attached with manual evaluation whether meaning of RxNorm or CVX concept is closer to initial CPT4 meaning. See the flags in “RxNorm is better” and “cvx is better”. “0” means no difference.
In the cases where CVX and RxNorm are equivelent we map to RxNorm as it has better hierarchical tree.
cpt_rxn_cvx_compare.xlsx (11.7 KB)
and IG IV map to - 353532 Immunoglobins, Intravenous
This way we can distinguish the IV from the IM, and there are other more specific codes with concentration but I don’t know if we need those or not.
You’re welcome, @schillil
Both “108067- Intramuscular immunoglobulin” and “353532 Immunoglobins, Intravenous” are non-standard concepts. We can use only standard concepts in CDM, thus we map only to standard ones.
108067 Intramuscular immunoglobulin Is Precise Ingredient, Form of 5666 Immunoglobulin G
and 353532 is just outdated, RxNorm never uses Route in Ingredients.
Mappings from here
exist in OMOP vocabulary now except those that can be mapped to RxNorm better.
And we are working on CVX harmonization itself.
Ah, @Dymshyts you’re right-- I thought all the RxNorms were standard for drugs so I didn’t even check the specific attributes of the codes. Thanks again.
Ah, you’re right, CVX is much better here.
Technically there should’t be even such a two different Dose Forms like “Intravenous Solution” and “Intramuscular Solution”. both should be “Injectable solution” - exactly as RxNorm does.
Keeping you posted:
Almost finished, stuck with Influenza vaccines.
We discovered significant inconsistency in concept definition between RxNorm and CVX here:
CVX Influenza concept attributes:
quadrivalent / trivalent / null
preservative-free / contain preservative / null
pediatric / null
intradermal / nasal / injectable / null
seasonal / null
RxNorm Influenza concept attributes
Number of ingredients
distinct strain name (i.e. influenza A virus A/Michigan/45/2015 (H1N1) )
I recently completed manual mapping of Colorado’s influenza string data to the most granular concept available. Sometimes this resulted in mapping the source string to an ingredient or generic concept_id because the source string didn’t specify whether the drug contained a preservative or the specific strain of the drug and we don’t make assumptions. Would you like to take a look at some real world data? It’s interesting from a geeky, terminology perspective
CVX and RxNorm Ingredient have a different attributes. But at the detailed product (Clinical or Branded) level only a few attributes combinations really exist. Often only one. So, you may want to create an alternative CVX to RxNorm Detail mapping (a so-called jump) based on these mappings, and then we let the postprocessing sort things out. Want to try?
Sounds good, doensn’t work.
CVX1 Subsumes “Drug X with ingredient A”
CVX2 Subsumes “Drug Y with ingredient A”
X and Y have the same ingredients but different Brand Names: one of them, let’s say, is “preservative-free”, another “contain preservative”.
Postprocessing will make
CVX1 Subsumes ingredient A
CVX2 Subsumes ingredient A
which is wrong.
We want to release CVX in this way:
If we can find unambigous hierarchical relationships between CVX and RxNorm, we build them as “Is a” / “Subsumes” which will be included in concept_ancestor.
When we’re not sure about a hierarchical connection, we’ll build “CVX - RxNorm” relationships given by the source. But they will be non-hierarchical.
Hi everyone. We have a new proposal mapping logic of CVX here