OHDSI Home | Forums | Wiki | Github

Route 'standard' concepts not standard anymore?

Seems like the number of possible standard concepts with domain_id = ‘Route’ drops from 70 to 22 from vocabulary v5.0 17-JUL-15 to v5.0 11-MAR-16. I do see that some duplicates have been changed (like for rectal) from standard_concept=‘S’ to not standard anymore, but there are some very important ones that are now missing with no clear replacements, here is my list:

4263689 | Cutaneous
4186834 | Gastroenteral
4184451 | Ocular

… and a few more.

Is this a mistake? seems like it since now we can’t have drugs with Ocular or Cutaneous routes?

On a side note, there are two concepts that the string is marked as obsolete, but they are not deprecated and still standard:

45956873 | Obsolete-Oromucosal other
45956876 | Obsolete-Intraventricular


Since they haven’t been been deprecated, is there an automatic way in the vocabulary to check for these type of changes? or should I have to check my mapping tables by hand each time I upgrade vocabularies?

I’ll let @christian_reich answer the first part about how or why the
specific routes got deprecated.

But I want to call out your second point with a +1 and an invitation to the
community…it would be TREMENDOUSLY useful for those who are trying to
keep up-to-date on the vocabularies is there was a simply utility that
allowed you to see what has changed between releases. This is a
straightforward ‘diff’ utility, it’d be great it someone in the community
who’s also feeling this pain would volunteer to build a little
quick-and-dirty app to expose changes. I’d imagine, if done well, this
could help automate the release process as well…



Yeah, we need to clean this up. And the question is, what do people need. Initially, we manually just picked a bunch of routes that deemed reasonsable:

4112421	Intravenous
4115462	Rectal
4120036	Inhaling
4128792	Nasal
4128794	Oral
4139962	Subcutaneous
4136280	Intravaginal
4231622	Topical
4157760	Intraocular
4217202	Intrathecal
4233974	Urethral

Later, we added dm+d (UK-defined) routes, and some of them became standard concepts, which is a mistake. They are also the ones that created those called “Obsolete” but didn’t deprecate them. Nothing we can do about (other than manually overwriting, which we try to avoid at all costs).

In addition, SNOMED actually has a specific set of Routes of Administration defined (148 of them), but they are a little unwieldy and have a hierarchy of 4.

What we should do is use the ones RxNorm or NDF-RT define. Let me bring it to the Workgroup.

100% agree. And we started building one, but it gets deprioritized all the time over bugs or terminology additions. And it would be really good if folks came with ideas of what would be good comparisons.

On what database platform are vocabularies being built? I have a package we used when I was doing QC, but it is Oracle specific.

Oracle. Toss it right over.
Thanks, @DTorok.

Here is what I have that became non-standard in this vocabulary. There are a few I can change to the ones left standard now. But not all of them:

To keep things clean, should I map all of them now to whatever is closer? and then revert my mappings later on when/if they get added back again? I personally think that the vocabulary shouldn’t be released too often if it is released with stuff needing to be cleaned up (like this), but this is just my 2 cents on it :smile:


A PNG file? Really? :smile: You want us to type it in?

If you need to revert the standard_concept designation, there is no need for any mapping at all.

And yes, it would be nice to have no problems, but unfortunately the system is way too complex with way too many moving parts, most of them are not controlled by us. It will never be 100% perfect. Unfortunately. So, keep doing the good job and make it better.

Here is the copy and paste friendly table:

concept_id concept_name
4186834 Gastroenteral
4263689 Cutaneous
4184451 Ocular
4302612 Intramuscular
4181897 Buccal
4262914 Nasal
4262099 Transdermal
4222254 Body cavity use
4057765 Vaginal
4156706 Intradermal
4225555 Epidural
4023156 Auricular
4157758 Intralesional
4269621 Intrauterine
4006860 Intraarticular
4186838 Intravesical
4163765 Dental
4243022 Intraperitoneal
4302785 Intravitreal
4156707 Intrapleural
4163768 Intrabursal
4213522 Intraosseous

I mean revert back in the sense if I map bucal into say oral (which is standard now), and then the next vocabulary update has bucal as standard. This means I will preferably return those records to the route bucal.

Hi All,

@Christian_Reich I just wanted to follow up on this since we had a need to include “Intramuscular”, but it’s not a standard code. The closest standard concept that we found is “Subcutaneous”, which isn’t completely accurate.


Did you ever resolve this? Also trying to map the route ‘Intramuscular’ (4302612) with a fresh vocabulary to no avail (non-standard, no ‘Maps to’ relationships).

Is there an equivalent standard route concept that I’m not seeing?

No we have not resolved it. We just put that information in the source field. It would be good to add it as a standard code.

Tagging @Dymshyts. He will get it done.

So what should I do:
Fix this in SNOMED
Find a nice solution using RxNorm or NDF-RT?


What’s the difference between them? What’s your recommendation?

Not sure if it helps or not but the source of the ETL is using HL7 route of administration as the value set.

We could use that as well. @Dymshyts: Can you present us all three options with your assessment how rich they are and what the quality of the hierarchy is? Then, we’ll take it to the OMOP CDM WG, but I don’t think we will get a lot of pushback at all.

On a first look “HL7 route of administration” from @rtmill looks good.
I’ll let you know once I’ll figure that out.

I should clarify that I linked the HL7 list to show what we are missing in the standard concepts not as a potential replacement. At a glance, SNOMED seems to contain all of the needed route concepts but some are set to non-standard in the OMOP vocabularies.

Do we get extra points for sticking with SNOMED?

Look, in SNOMED all these routes has class = “qualifier value”, like a thousands of concepts with another meaning.
So we need to play with hierarchy to define these routes. And sometimes hierarchy changes and you can’t fully relay on it.
But HL7 is a list of Routes only. No magic and tricks! We put it into vocabulary and you use then :slight_smile:
Anyway, I’ll come back with deeper analysis in a few days.

Made some analysis:
RxNorm and NDFRT give us Dose Forms, not a Routes, such as:
Topical Lotion [Dose Form]
Topical Cream [Dose Form]
Topical Oil [Dose Form]
and Route for all of these is “Topical”, so it doesn’t work

SNOMED gives us list that requires some manual review,

This way using HL7 list seems to be the best idea so far.
@Christian_Reich, what do you think?