OHDSI Home | Forums | Wiki | Github

Mapping ICD10PCS and CPT procedure codes to SNOMED


As part of an effort to implement and compare various frailty indexes, we’d like to map a set of ICD10PCS and CPT procedure codes to SNOMED.

CONCEPT_RELATIOMSHIP has no ICD10PCS code Map to SNOMED code relations (perhaps as all these vocabularies are, to some extent, “standard”); there are plenty of ICD10PCS code Is a SNOMED code relations (as well as SNOMED code Subsumes ICD10PCS), but many of these are too broad.

So, how do we go about translating ICD10PCS/CPT to SNOMED?




Yeah. We know. We don’t have a comprehensive procedure hierarchy, like we have for Conditions and Drugs, spanning the entire domain. Instead, we have SNOMED as a backbone, and ICD10PCSs and CPT4s , which are very detailed. So, the compromise is to hang the latter onto the xmas tree of the former using “Isa”. However, we don’t have yet found a mechanism to do that at scale, or to even deduplicate them in case they are identical to each other, for that matter.

Do you have an example what you would like to have it mapped to?

Thanks @Christian_Reich.

Here’s the use-case: We’d like to implement an OMOP version of the VA frailty index (VA-FI, https://doi.org/10.1093/gerona/gly232, https://doi.org/10.1093/gerona/glab071). VA-FI defines 31 age-related health deficits using diagnostic (ICD-9 and -10) and procedure (CPT, ICD9Proc, and ICD10PRC) codes; the full list of codes is available here. Mapping ICD to SNOMED is straightforward, but how do we handle procedure codes?

The procedure domain mappings are certainly something that has it’s issues, are a struggle for many, and will be a large endeavor to get right. Many of us have our eyes on this but I’m curious, for the sake of time, if you need the mappings you mention to accomplish your goal.

At a glance, that concept list you provided covers many domains - conditions, procedures, devices, observations. Are you solely going to be building cohorts? And if so, given you already have the concept sets defined, can you do the analysis you’re after without mapping everything to SNOMED? It would seem most if not all of those concepts provided are considered “standard”.

Not to kick the can down the road as I agree it’s an issue worth solving, just proposing a potentially quicker resolution for your use case.

Thanks for sharing your thoughts, @rtmill.

We’re interested in implementing features that compute various frailty indexes (as well as specific deficits), similar to @SCYou’s Hospital Frailty Risk Score feature, described here. And you’re right, the list includes concepts from multiple domains so, ideally, we’d like to map them all to standard concepts in order to obtain a score as similar to the original one as possible.

Finally, we cannot define deficits (or cohorts) using standard ICD10PCS or CPT concept sets as our data is UK-based, with procedures, originally given as Read codes, mapped to standard SNOMED concepts. Or perhaps I’m missing something?


If you want to calculate the frailty codes for your data only you have two options: you (i) use the orginal read codes stored in procedure_source_concept_id or (ii) you use the mapped standard concepts in procedure_concept_id. If you want to make it work everywhere you’d have to find the equivalent procedures in the other standard procedure concepts (the ones we haven’t fully mapped to each other, yet). But it should work the same way you would do with the condition concepts. No?

@Christian_Reich: I may be missing something. In our data, source procedure codes are Read and standard ones are SNOMED. Frailty codes are either ICD10PCS or CPT, and there’s NO mapping linking these vocabularies to either Read or SNOMED. So, even just for our data, how would that work?

And it’s different for conditions, where ICD10 to SNOMED mapping exists (so we could look for SNOMED codes, to which frailty ICD10 codes are mapped).

You use the ICD10PCS and CPT4 concepts. As long as they are standard they are perfectly fine for you to bake into your cohorts. No need for mapping, and certainly not for you, because if you do that locally nobody else will have it and network studies are out.

But of course if you want to do some homework and map those we’d love to take a look and potentially bring it into the Vocabularies.