OHDSI Home | Forums | Wiki | Github

Vaccines standard - CVX or RxNorm?

(Violetta Komar) #16

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”

(Violetta Komar) #17

“CVX 45 Hep B, unspecified formulation” is inactive now. It just will been mapped to RxNorm Ingredient 528323 “Hepatitis B Surface Antigen Vaccine”.



(Alexander Davydov) #19

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.

(Christian Reich) #20


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.

(Dmytry Dymshyts) #21

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.

(Violetta Komar) #22

Now vaccine from this example will been mapped to RxNorm Ingredient, if you still need comprehensive graphical image i will be making it

(Christian Reich) #23

@Violetta_Komar: Be so kind.

(Dmytry Dymshyts) #24

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)

(Lisa Schilling) #25

Hello @Dymshyts
Thank you for all this work!!
Wouldn’t IG IM map to RxNorm code- 108067- Intramuscular immunoglobulin

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.

(Dmytry Dymshyts) #26

You’re welcome, @schillil :slight_smile:
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.

(Dmytry Dymshyts) #27

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.

(Lisa Schilling) #28

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.

(Alexander Davydov) #29

Can you use RxNorm Extension here?
36783518 Immunoglobulin G Intravenous Solution
44029797 Immunoglobulin G Intramuscular Solution

(Alexander Davydov) #30

Ah, you’re right, CVX is much better here.

(Dmytry Dymshyts) #31

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.

(Dmytry Dymshyts) #32

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
Dose Form
distinct strain name (i.e. influenza A virus A/Michigan/45/2015 (H1N1) )

(Melanie Philofsky) #33

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 :slight_smile:

(Christian Reich) #34

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?

(Dmytry Dymshyts) #35


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.

(Violetta Komar) #36

Hi everyone. We have a new proposal mapping logic of CVX here