OHDSI Home | Forums | Wiki | Github

Duplicate Standard Concepts for PROCEDURE codes when using SOURCE_TO_STANDARD

This is posted as an issue in the vocabulary github, but I think it deserves to be discussed in the forum.
Original issue:
There seem to be some non-standard concepts in class/domain “Procedure” which map to multiple standard concepts in the class/domain “Procedure”

An example is source concept id 4213637 (code ‘417384007’) which “maps to” both standard concepts 4230536 (code ‘359953009’) and 44792016 (code ‘308111000000102’)

I can’t see logic within CONCEPT_ANCESTOR or other CONCEPT_RELATIONSHIP that would show which was the dominant option.

They do have different validity start dates but both are still currently valid and open (end date 31 Dec 2099)

Is this to be expected and if so are there rules on which should be use as the CONCEPT_ID when importing assigning the procedure_concept_id on import into CDM PROCEDURE_OCCURRENCE.

First off lets look at concepts names rather than codes.
Source concept id 4213637 is Administration of second booster of low dose diphtheria and inactivated poliomyelitis and tetanus vaccine. It is none standard and maps to 3 standard concepts:
A SNOMED procedure code for Booster vaccination
Another SNOMED procedure code for Primary immunisation - second dose
And a CVX drug code Diphtheria, Tetanus, Poliomyelitis adsorbed

First question, is the Vocabulary mapping erroneous? Maybe overkill, but not an error.

Second question: ‘is this to be expected and if so are there rules on which should be use as the CONCEPT_ID when importing assigning the procedure_concept_id on import into CDM PROCEDURE_OCCURRENCE.’

The answer is that the ETL should create a record in the table corresponding to the concept domain for each mapped-to concept. Two Procedure and one Drug record. The procedure and drug source values should be the original SNOMED code for second booster shot.

The medical/Vocab team will probably have a more comprehensive answer, but I will give it a shot (pun intended, lol). At first glance I thought this was an error, but after a few more sips of coffee, I think I have the answer.

I am guessing you are questioning whether “booster” and “primary immunisation - second dose” are the same. At first glance, I thought they were the same. But after looking at the drugs in this combo shot, they are not the same. Some/many drugs/vaccines require more than one dose to elicit the appropriate response in an individual. This is the “Primary immunisation - second dose”. It is dose #2 in the series you need to complete to gain the protective factors of the immunization. Sometimes, immunity to immunizations fades with time. When this occurs, you will need a “Booster vaccination” to regain the protective factors of the immunization. The booster is not part of the original series. So, the original concept_id contains 3 drugs, two of which are second doses of the primary immunization series (polio and diptheria) and one which is a booster (tetanus).

Or are you asking if identifying “second dose” or “booster” is overkill. And it’s not. Most source systems don’t contain a person’s full immunization history, so this could be useful for some researchers, maybe. It’s definitely semantically accurate.

And you answered your own question here:

I was waiting for that discussion to happen. I knew it would:

“Booster” is a nonsense term. It only made sense for a short window of time during the pandemic, when after the initial vaccination blast the next round came about. The forth (or third in the case of J&J vaccine) already destroyed that term. Because every subsequent vaccination is a “booster”. You could argue even the second Moderna or BionTech vaccination was a “booster”.

In other words: There is no such a thing as a “booster” in OMOP. There is a vaccination record. Whether that is the first, second or eighth is not an attribute of the record. We can see that from the previous records. So, we should drop “booster” entirely, and just write vaccination records to the DRUG_EXPOSURE table.

3rd attempt at writing a response; maybe I won’t delete this one.
The booster is a standard concept, how do we know to ignore it programmatically?

I noticed. You seemed to disagree with yourself. :slight_smile:

We change the vocabulary, de-standardize the booster and remap it to the ordinary drug concepts.

I might be lacking impulse control today. :expressionless:

Good, I was afraid that I was going to have to add some weird Jedi mind tricks to my ETL to catch it.

I disagree :slight_smile: It’s all over the literature and has been even before the COVID-19 pandemic. A simple google search will bring you to CDC, Mayo and other trustworthy sites. Google scholar has even more articles and citations about “boosters”.

If we drop the mapping to the booster concept_id, we should also drop the mapping to the primary immunization - second dose concept_id. Unless someone has a strong use case for these data.

Save your Jedi mind tricks for complex source data such as mapping supplemental oxygen data to the CDM. You’ll have all sorts of rules and logic to implement :slight_smile:

The great thing about the OMOP Vocabularies and the team behind it is they do all the work for us. And if we find something off, just create an Issue in GitHub or post in the forums and they will either fix it or give the logic on why it is the way it is!

If you do a row number, where rn > 1, it is a booster.

I am already doing several Jedi Mind Tricks to clean up messy data. :wink:

The term is fine from a biological perspective. It is just a vaccination on top of a vaccination to boost the immune response. But during Covid it had its own funny definition, which later became obsolete (when the 4th vaccination came about).

From an OMOP CDM perspective it makes no sense, because there is an attribute in that concept that refers to another record, and we don’t do that. You may as well introduce terms like 4th and 8th vaccine. We infer that from the row number, as @Mark pointed out.

Also, I doubt the quality of that attribute. I remember myself getting several primary as well as booster vaccines. Had nothing to do with the actual number, but with the CPT4 code that was reimbursed by the government at the time.

Correct. All goes to the vaccine drug concept.

Hopefully OK to continue this post by widening out away from the booster/vaccine/drug conversation

Being UK-based healthcare, I have a particular interest in mapping of OPCS4 and ICD10 codes to standard and have hit the same kind of question.

Where an OPCS4 code (eg H22.9, concept ID 44510766 name “Unspecified diagnostic endoscopic examination of colon”) maps to two standard SNOMED procedure concepts - id 4180652 (“Diagnostic endoscopy”) and id 4042815 (“Procedure on colon”)

I can see why that is the case, since each of the SNOMED codes represents an element of the OPCS4 - the procedure itself and the “body part” on which it was performed - whereas OPCS4 reflects both things in one code

From the above discussion, would that be expected to be imported into OMOP procedures as 2-rows - one for each SNOMED?

It seems logical as then the visit that included this OPCS4 would be picked up by any query that was looking for either of the SNOMED concepts. It’s just unusual to see the data from that perspective for me - as “two rows” on a procedure table would suggest “two procedures” - but as I am so new to OMOP I am slowly getting my head around the structure and intended usage…



Don’t worry if you got 2 records out of one. Has no effect on any analytic, except if you want to use all procedures as a denominator (like in “what’s the % of endoscopies amongst all medical procedures?”). And even then: There are 100s of Millions of records, a few duplicates will not move the needle.

There is another problem with this mapping: The connection between the two is now only through the fact that they are the same day. So, you can query “Give me all diagnostic endoscopies” or “Give me all procedures of colon” and the result will be correct. However, if you want to ask for the number of endoscopies to the colon you have to ask “give me all records of endoscopies and colon procedures on the same day”, hoping, there is no other non-endoscopic colon procedure. It’s unlikely, but possible.

We have a solution to that: pre-coordinated combination OMOP Extension concepts, which will have both endoscopies and colon procedures as parents. But that is expensive. We need to gear up for such things. Will happen.