RxNorm Reconfigured
This article is the follow-up to another one from nearly two years ago called Restructuring RxNorm for humans. To make RxNorm easier to use in a relational database alongside other data sources that use NDCs and RXCUIs to identify medications, we restructured / rearranged / reconfigured the tables in RxNorm to the structure depicted above. Forgive the sloppy lines connecting everything - working with what I’ve got.
All of these tables are available within SageRx and in this article I’m going to step through each section and explain the thought process behind organizing it this way. These building blocks are in the staging
schema and then are utilized for more useful utility queries in the intermediate
schema. Both are discussed below.
Staging schema
The staging
schema contains data models that represent the most clinically useful elements of the data within RxNorm.
NDCs
This table contains one row per NDC (in NDC11 format) with links to clinical products (and brand products where the NDC has an associated brand product per RxNorm). You can use this table to quickly determine if an NDC has an associated brand product. All NDCs should have an associated clinical product.
Brand products
If an NDC has an associated brand product (BPCK / SBD), this table will link to the brand name as well as the associated clinical product.
If a brand product is a package that has multiple components (BPCK), this table will also link to the base brand product components (typically SBD) via the linking table.
Brands
This table contains all brand names for brand products. You can also get to the clinical ingredients from this table.
Clinical products
Every NDC should have an associated clinical product (GPCK / SCD), even though not every NDC has an associated brand product. Think of clinical products like the generic name of a brand name product (even if the brand name product does not currently have a generic alternative).
Like brand products, clinical products can be packaged with multiple clinical product components (GPCK). This table links to to the base clinical product components (typically SCD) via the linking table.
Here’s an example of how this linking works:
Ingredients
From this point onward, we forego brand products (since they are just branded clinical products) and focus on how clinical products link to other things like ingredients and dose forms.
Clinical products (SCD) can have single ingredients (IN) or multiple ingredients (MIN). If a clinical product contains a multiple ingredient (MIN), you can link to the base individual ingredient components (IN) using the linking table.
Ingredient strengths
Ingredient strengths are represented by the SCDC term type (TTY) in RxNorm.
Because you need to know which product and which ingredient in that product to determine strength, the ingredient strength table in SageRx links to both the clinical product and ingredient tables.
In this table, you can determine the numeric ingredient strength and map the units from RxNorm to your system to calculate total dosage for products.
Dose forms and dose form groups
Clinical product components (SCD) have generally one dose form (DF) in RxNorm. An oral tablet is an oral tablet, and an oral capsule is an oral capsule.
Individual dose forms (DF) can belong to multiple dose form groups (DFG). This can be helpful if you are looking for all oral products, for instance, and don't care about the difference between oral tablets and oral capsules.
Intermediate schema
The intermediate
schema builds upon the staging
schema and creates time-saving pathways between things that people working with drug data tend to want to know.
A few example tables are listed below (there are several others, too):
NDC to clinical product
This lets you go from NDC to all the information about the clinical product (SCD/GPCK) that NDC represents. This table does not differentiate between brands and generics.
NDC to product
This is similar to the table above, but if an NDC has an associated brand product, it will return the brand product information (SBD/BPCK) as opposed to the clinical product information (SCD/GPCK).
This is helpful if you are doing cost analysis and need to know why one NDC is more expensive than another even though they represent the same clinical product (hint: one NDC might be a brand product).
In addition to returning the product information (SBD/BPCK RXCUI if brand name), it also includes the clinical product information (SCD/GPCK RXCUI).
Clinical product to ingredient strength
This is a useful table for calculating total daily dosage for a given product or for giving users a pick list of strength options for a given clinical product.
Clinical product to dose form
If you are trying to determine what dose form a clinical product is, this table can quickly give you an answer.
Conclusion
If you’ve used RxNorm data in the past, we would love to hear your thoughts on our approach to restructuring it. If you feel so inclined, please install SageRx and write some queries. Let us know your thoughts and feedback in the comments. Stay tuned for more SageRx info!
🌿