I would like to add my own custom vocabulary to the OMOP
Why would I want to do this? Because the column
concept.vocabulary_id in the OMOP
concept table is required to be not NULL, so I need one to load concepts from my custom vocabulary.
Okay, let’s add a new row to the OMOP
vocabulary table. I give it a
vocabulary_id = “social_hx” and a
vocabulary_name = “Social History”. Hmm,
vocabulary_reference is also required, so I put in a URL to our internal wiki documentation. The column
vocabulary_version is not required, so I skip it.
Now I get to the column
vocabulary_concept_id. What is this? Seems a bit confusing. Let’s check the OMOP data dictionary: “A Concept that represents the Vocabulary the VOCABULARY concept belongs to.” Still confusing.
Okay, let’s see how the smart people of OHDSI actually use this:
SELECT * FROM vocabulary; Okay, I see 96 rows, all of which have a concept ID populated in the
Let’s look at the one for ICD10CM. It’s concept_id = 44819098. Another query:
SELECT * FROM concept WHERE concept_id = 44819098;
Aha! Now I see that each row in the OMOP
vocabulary table also has a corresponding row in the OMOP
concept table. The keepers of ATHENA have defined a “vocabulary catalog” of sorts, where the list of vocabularies is itself a vocabulary. This is the source of the confusion, because a “vocabulary of vocabularies” is hard to wrap your brain around.
Okay, so I want to add my custom vocabulary to the ATHENA vocabulary catalog. Can I simply add my custom vocabulary as a new concept in this “Vocabulary” vocabulary (which is in the “Metadata” domain)?
Or should I create a new catalog for my list of custom vocabularies called “Custom Vocabularies”?