As the topic says, I’m having an issue with ICD10CM codes mapping to multiple standard SNOMED codes. I don’t see any other posts about this, which makes me wonder if I’m understanding OMOP correctly.
For instance, I61.1 (Nontraumatic intracerebral hemorrhage in hemisphere, cortical) maps to two Standard SNOMED codes: Cortical hemorrhage:4176892 and Spontaneous cerebral hemorrhage: 43530727 (see http://athena.ohdsi.org/search-terms/terms/35207809)
Both of these show as the Primary Condition. Can I have two primary conditions? Does that make sense?
Moving on, when I query these from the Concept Relationship table for 35207809 (concept_id for I61.1):
SELECT [concept_id_1]
,[concept_id_2]
,[relationship_id]
,[valid_start_date]
,[valid_end_date]
,[invalid_reason]
FROM [OMOP].[concept_relationship]
where [concept_id_1] = 35207809
I get:
Several things jump out at me. The two “Maps to” relationships have different valid_start_dates, but have the same valid_end_dates. Does this mean that after 2017, both values are valid, but only the first before that? Or should the valid_end_date of the first be 2017-09-30, and there is just a single valid mapping during each range? (As a side note, I don’t see any valid_end_date other than 2099-12-31.)
I decided to see if there are any other ICD10CM codes that have multiple concepts mapped
SELECT [vocabulary_id]
,[concept_id_1]
,count([concept_id_2]) as countCONCEPTS
,[relationship_id]
,[concept_relationship].[valid_start_date]
,[concept_relationship].[valid_end_date]
FROM [EpicCare].[OMOP].[concept_relationship]
inner join omop.concept on concept_id_1 = concept_id
where [relationship_id] = ‘Maps to’ and [vocabulary_id] = ‘ICD10CM’
group by [vocabulary_id],[concept_id_1]
,[relationship_id]
,[concept_relationship].[valid_start_date]
,[concept_relationship].[valid_end_date]
having count([concept_id_2])>1
It turns out there are >11,000 IDC codes that map to multiple codes. I group them by valid_start_date, which means all of these have the SAME valid_start_date, not different ones like I61.1.
So I returned all the details of records,
with Count2 as
(
SELECT [vocabulary_id]
,[concept_id_1]
,count([concept_id_2]) as countCONCEPTS
,[relationship_id]
,[concept_relationship].[valid_start_date]
,[concept_relationship].[valid_end_date]
FROM [EpicCare].[OMOP].[concept_relationship]
inner join omop.concept on concept_id_1 = concept_id
where [relationship_id] = ‘Maps to’ and [vocabulary_id] = ‘ICD10CM’
group by [vocabulary_id],[concept_id_1]
,[relationship_id]
,[concept_relationship].[valid_start_date]
,[concept_relationship].[valid_end_date]
having count([concept_id_2])>1
)
SELECT [concept_relationship].[concept_id_1]
,[concept_id_2]
,[concept_relationship].[relationship_id]
,[concept_relationship].[valid_start_date]
,[concept_relationship].[valid_end_date]
,[invalid_reason]
FROM [OMOP].[concept_relationship]
inner join Count2
on [concept_relationship].[concept_id_1] = Count2.[concept_id_1]
where [concept_relationship].[relationship_id] = ‘Maps to’
–AND [concept_relationship].concept_id_1 = 35210345
order by [concept_relationship].[concept_id_1]
Which shows there are in fact multiple mappings with the same valid date
And so here is where my confusion lies. I thought an ICD10CM code should map to a single SNOWMED code. If it can map to multiples, which code should I choose to represent the condition? Or is it correct to list them both?
Please help me understand.