OHDSI Home | Forums | Wiki | Github

How to map diagnosis codes (ICD9CM and ICD10CM) to descendant CONCEPT_IDs?

(Chetan) #1

Hello @Christian_Reich, @Chris_Knoll,

I have a question related to CONDITION_OCCURRENCE.

Does CONDITION_OCCURRENCE require mapping diagnosis codes (ICD9CM and ICD10CM) to the descendant CONCEPT_IDs instead of the ancestor CONCEPT_ID?
If yes, can someone help me in one of the scenarios where the condition_source_value is 525.51(Partial edentulism, class I) or 525.52 (Partial edentulism, class II) instead of 525.5 (Partial edentulism)?

Thanks in advance.

(Chris Knoll) #2

Hi, Chetan,
It looks like there’s incomplete mapping for ICD9’s to the Class I source codes. I’m looking in my vocabulary, and both 525.51 and 525.52 both map over to the SNOMED concept for Partial edentulism (#40481091).

However, there are snomed concepts for the Class 1 forms of Partial edentulism (#46273423, for example). so, I think mappings just need to be created to map those ICD9s to their Class 1 forms in snomed.

Interestingly, There are mappings from the ICD10 codes to the Class 1 concepts in SNOMED. Fpr example, K08.401, K08.411, K08.431, K08.491 and K08.421 all map over to ‘Partial edentulism class 1 (#46273423)’ in SNOMED. So, I feel it is possible to get to those specific mappings from ICD9, they just don’t exist in the vocab. @Christian_Reich may know the reason why it doesn’t exist (could be a logical reason why the ICD9s map to the parent concept).

(Chetan) #3

Thanks a lot @Chris_Knoll for the quick reply. :+1:

But is it necessary to map the codes to the descendants? How do ATLAS or ACHILLES behave if the Class 1 or 2 codes are mapped to the parent instead of the descendants? Also, what could be the impact of rolling up all the Class 1 or 2 codes to parent only?

(Chris Knoll) #4

If the codes are mapped to the ancestor, then you will only be able to find the records if you make a concept set with the ancestor concept ID (you could include descendants, but the source codes only map over to the ancestor). There’s not a problem here, per se, unless you want to distinguish the class 1 codes from other classes (the mapping is making the class 1s look like a generic ‘Partial edentulism’.

If you make a concept set for the specific class 1 concepts, none of the records mapped from ICD9s will be found (because they map to the generic ancestor).

You will find that patient records that mix ICD9 and ICD10s will show that for the ICD9 codes they would map up to the generic ancestor ‘Partial edentulism’ while the ICD10 records will map over to the more specific classes. That may impact your analysis (if you care about the different classes).

I do wonder why the ICD9s (which do seem to have the granularity of classes) weren’t mapped to the same level in SNOMED, but that loss of precision exists in the ICD9 mappings.

As far as Achilles: those reports based off the row-level coding of the condition_occurrence records: the people coded with ICD9 will contribute to the counts for the ancestor concept, while the ICD10s will contribute to counts for the class-specific descendants.

(Polina Talapova) #5

@Chris_Knoll, the reason why 525.51 and 525.52 are not mapped to respective SNOMED concepts is simple. ICD9CM vocabulary mappings were built in 2013, meanwhile, the SNOMED concepts of “90091000119101 Partial edentulism class I” and “90101000119106 Partial edentulism class 2” were created in 2015. Since then, ICD9CM mappings have not been updated. However, the vocabulary team is working on this big issue now. There are approximately more than 20K concepts, whose mappings should be reviewed. The good news is we are on the home stretch. A couple of months is needed to finish this long-lasting task.

(Chetan) #6

@Chris_Knoll @Christian_Reich,
I was still wondering if the codes(ICD10CM, assuming ICD9CM are not updated) need to be mapped to respective descendant CONCEPT_IDs ? Does OMOP model makes it mandatory to be mapped to descendant CONCEPT_IDs?
Will keeping the codes mapped to ancestor CONCEPT_IDs give incorrect results?

Thanks in advance.

(Dmytry Dymshyts) #7

If we map them to descendants, it leads to data mispresentation:
For example, patient has “condition A” we map it to descendant “Condition A with B feature”.
But the patient didn’t have B.

(Chetan) #8

Thanks @Dymshyts.

Can you please help me with some scenarios where the use of CONCEPT_ANCESTOR entity is important with respect to CONDITION_OCCURRENCE(more specifically ICD10CM codes) ?

Thanks in advance.

(Dmytry Dymshyts) #9

CONCEPT_ANCESTOR doesn’t have non-standard concepts, and ICD10CM is non-standard, which maps to SNOMED concepts.
So in CONDITION_OCCURRENCE.condition_concept_id you’ll see only standard concepts ICD10CM was mapped to (SNOMED is a standard in this case).
Scenario: you need to create a cohort of diabetic patients.
So you search for descendants of “diabetes mellitus”, which will include diabetes type 1, diabetes type 2, with complications, without, etc.