These concepts have dosage 0.04 mg/ml. So, how we told before, these concepts going to be descendants of “CVX 44 Hepatitis B vaccine, dialysis patient dosage”
“CVX 45 Hep B, unspecified formulation” is inactive now. It just will been mapped to RxNorm Ingredient 528323 “Hepatitis B Surface Antigen Vaccine”.
Sure. Please find it in my previous post under the ‘used’ statement. It’s a product package insert.
It’s a background chapter - the information about 2 different vaccines (Engerix-B, Recombivax HB) had been licensed and used before publishing the Clinical Review of Heplisav-B.
But the info on Heplisav-B is still there:
9.1.6 Insufficient information regarding the safety and immunogenicity of Heplisav-B are available in individuals with chronic kidney disease or on hemodialysis.
Indication(s) and Intended Population(s): Active immunization against infection caused by all known subtypes of hepatitis B virus in adults age 18 years of age and older.
As you can see, it’s just the Heplisav-B related concepts. So it’s not a correct relations to CVX.
Not sure this unexpected case is unique among HBV vaccines. It’s better to check every brand name indications list or find some actual immunization handbook (probably it does exist).
Ok, please remap.
Could you be so kind and create a comprehensive graphical image of the ATC, CVX and various RxNorm concepts in this example and their hierarchical relationships? Would make understanding your approach a lot easier.
I see, there are some RxNorm vaccines we can’t properly assign to CVX.
@Violetta_Komar, can we make only uphill relationships from CVX as a first step.
I mean these CVX 45, 08, 44, 128 Is a 528323 Hepatitis B Surface Antigen Vaccine.
For now we have only one use case: we need to find CVX codes by the ATC hierarchy, and building Is a relationships from CVXs is enough.
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