Comparing results from a different data model to our OMOP data warehouse showed significantly different numbers when querying for AMI. The issue was traced to fundamental differences in how the concept hierarchies for myocardial infarction are organized. I’ll list below what approaches I tried and the issues I ran into.
Use case :“AMI in last 6 months”
Approach 1: Get all descendants of Acute Myocardial Infarction (312327)
Issue: Misses relevant records. There are concepts that are types of AMI that are not included in this hierarchy but instead fall under a more general concept, ‘Myocardial Infarction’ (4329847). In other words, they are siblings instead of children to AMI.
Example:
Type 2 myocardial infarction, which is necessarily a type of AMI
concept_name: Myocardial infarction type 2
concept_code : I21.A1
The source concept falls within the AMI hierarchy BUT the concept is mapped directly to ‘Myocardial Infarction’ (4329847), the parent of AMI, causing those records to be missed by this query. There is a standard concept for type 2 MI but it is not what this source code mapped to and also does not fall under the AMI hierarchy.
Approach 2: Get all descendants of ‘Myocardial Infarction’ (4329847)
Issue: This also includes historical MI (e.g. ‘Old myocardial infarction’,I25.2) and we only want AMI that occurred in the last 6 months, not historical MI that were documented in the last 6 months. This is odd as there are also observation concepts for the typical historical format, such as ‘History of Myocardial Infarction’, 4163874.
Approach 3: Get all descendants of ‘Myocardial Infarction’ (4329847) and filter by associated morphology
Issue: We can get rid of the historical records by filtering out the concepts that have a relationship of ‘Has Asso Morph’ to ‘Healed infarc’ but then we are left with two options, ‘Infarc’ and ‘Acute Infarc’. Logically we would restrict that to only ‘Acute infarc’ for this query but that would exclude many relevant AMI records that have a ‘Infarc’ relationship instead, including the example used in approach 2.
To summarize, there didn’t seem to be a single correct approach for querying AMI and I’m curious if there is an approach I am missing or if vocabulary changes are needed.