OHDSI Home | Forums | Wiki | Github

CONCEPT_ANCESTOR - Ingredients mapping to themselves?

In the process of QCing LAERTES, specifically was looking at drug concepts that did not get mapped to an ingredient.

  • Original LAERTES Vocab Version: OMOP Vocabulary v5.0 17-JUL-15
  • Updated LAERTES Vocab Version : v5.0 11-MAR-16

We use the CONCEPT_ANCESTOR table to get drugs to their INGREDIENT level. There seems to be cases where things used to map to themselves using CONCEPT_ANCESTOR but now do not (see query in APPENDIX A and results below).

Is this a bug or a misunderstanding on my part?

Concepts that No Longer Map To Themselves in CONCEPT_ANCESTOR
19023420 Bile fluid 19080435 FACTOR IX,RECOMBINANT 19086313 h influenzae type b 19112612 Influenza Virus Trivalent-Split 2004 19112614 Influenza Virus Vaccine TV P-SURF 2004 19112615 Influenza Vaccine Trivalent 2004 (Live) 19121608 Influenza virus vaccine 43532251 antithrombin alfa 43533108 Influenza Virus Vaccine, Live Attenuated, A-Texas-50-2012 (H3N2) strain 46233853 oldaterol


APPENDIX A
Finding Ingredients that used to map to themselves in JULY-176-2015 but do not in MARCH-11-2016.

WITH CTE_OLD AS (
	SELECT c.*
	FROM [VOCABULARY_v5.0_20150717].dbo.CONCEPT c
		JOIN [VOCABULARY_v5.0_20150717].dbo.CONCEPT_ANCESTOR cr
			ON cr.ANCESTOR_CONCEPT_ID = c.CONCEPT_ID
		JOIN [VOCABULARY_v5.0_20150717].dbo.CONCEPT c2
			ON c2.CONCEPT_ID = cr.DESCENDANT_CONCEPT_ID
	WHERE c2.DOMAIN_ID = 'DRUG'
	AND c.DOMAIN_ID = 'DRUG'
	AND c.VOCABULARY_ID = 'RxNorm'
	AND c2.vocabulary_id = 'RxNorm'
	AND c2.CONCEPT_CLASS_ID = 'Ingredient'
	AND c.CONCEPT_CLASS_ID = 'Ingredient'
	AND c.CONCEPT_ID = c2.CONCEPT_ID
), 
CTE_NEW AS (
	SELECT c.*
	FROM [VOCABULARY_v5.0_20160311].dbo.CONCEPT c
		JOIN [VOCABULARY_v5.0_20160311].dbo.CONCEPT_ANCESTOR cr
			ON cr.ANCESTOR_CONCEPT_ID = c.CONCEPT_ID
		JOIN [VOCABULARY_v5.0_20160311].dbo.CONCEPT c2
			ON c2.CONCEPT_ID = cr.DESCENDANT_CONCEPT_ID
	WHERE c2.DOMAIN_ID = 'DRUG'
	AND c.DOMAIN_ID = 'DRUG'
	AND c.VOCABULARY_ID = 'RxNorm'
	AND c2.vocabulary_id = 'RxNorm'
	AND c2.CONCEPT_CLASS_ID = 'Ingredient'
	AND c.CONCEPT_CLASS_ID = 'Ingredient'
	AND c.CONCEPT_ID = c2.CONCEPT_ID
)
SELECT 'OLD ONLY' AS TYPE, * FROM ( SELECT * FROM CTE_OLD EXCEPT SELECT * FROM CTE_NEW) z
UNION
SELECT 'NEW ONLY' AS TYPE, * FROM ( SELECT * FROM CTE_NEW EXCEPT SELECT * FROM CTE_OLD) z
ORDER BY 1,2

@ericaVoss:

The examples you listed are all deprecated, with the exception of 43532251 “antithrombin alfa”, which is a precise ingredient. Follow the “Maps to” or “Form of” relationships.

Ha! Sorry should have seen this. Now I know the issue, there are some items in LAERTES being tagged with deprecated concepts.

@Christian_Reich,

This topic came up in a conversation with @lee_evans and @anthonysena today. They asked why a RxNorm concept like this gets deprecated. My best answer was either some codes are replaced by other codes or some relationships to codes just retire. I realize this was not a detailed answer nor could I figure out what it was replaced with.

So the question specifically was why does something like 19121608-Influenza virus vaccine deprecated?

Additionally, it looks like some of the procedure codes still map to this deprecated concept as an ingredient.

SELECT *
FROM CONCEPT c
	JOIN CONCEPT_RELATIONSHIP cr
		ON cr.CONCEPT_ID_1 = c.CONCEPT_ID
	JOIN CONCEPT c2
		ON c2.CONCEPT_ID = cr.CONCEPT_ID_2
WHERE c.CONCEPT_CODE = '90658' /*CPT4 - "Influenza virus vaccine, trivalent, split virus, when administered to individuals 3 years of age and older, for intramuscular use"*/

I we reviewing this on v5.0 11-MAR-16

@ericaVoss:

Because there is an Influenza Virus A and an Influenza Virus B. Ask the virusses why they can’t stay together as one. In addition, they are actually different each year:

select * from concept where lower(concept_name) like '%influenza%virus' 
and vocabulary_id='RxNorm' and concept_class_id='Ingredient' and standard_concept='S'

The mapping: We are still fixing those. It’s a crazy problem. Keep them coming.

@Christian_Reich - Thank you, so in this case the 19121608-Influenza virus vaccine was retired for more specific codes.

That’s what it looks like. They don’t comment on any of these choices.

And that causes trouble because now the CPT code is no longer unambiguous.

t