I have been trying to determine the exact events recorded within an OMOP CDM instance that made someone eligible for a particular cohort. In other words, I am trying to determine the recorded events that made them enter into a particular cohort for a definition.
For example, I have the following definition for bladder cancer:
As you can see, it is a very simple definition and from the concept set, we only have the domains of Condition, Observation, Condition/Measurement represented. How do I know what recorded events led to a patient entering into this cancer cohort?
So far, I have looked at the following:
Find events related to the cohort entry date as recorded in the cohort table after generating the cohort using the definition. This almost worked, but gave numerous false positives.
Look at the qualified_events table from the generated SQL. I think this is heading in the right track but I am still getting a significant number of false positives when looking across visit events and domains.
Brute force look for patients who are part of cohort and see what events qualified them across all tables. This somewhat works but is woefully inefficient and time-consuming.
What I have been considering next is to:
Look at the included_events table per cohort and find inclusion events per patient from the generated OHDSI SQL.
Refine the brute force approach.
What else could I do here? Are there any tools that could help with this?
Thanks!
~ tcp
Additional Context: The reason why I am looking at this is that with my collaborators, we are getting false positives within our definitions of patients we are not expecting to see within our cohorts – or just clearly should not be within them. Thus, we are trying to audit our definitions to make sure are definitions are capturing what we expect to see.
Also, this is the continuation of a saga from a while ago: How To Find Latest Occurrence of a Condition? and to finally give context to @Christian_Reich 's question from over there, this is how I can finally articulate the needs of my original question in that correspondence! Sorry it took me 8 months to do!
Hi Jacob! If you want a summary of the events through which patients entered a cohort, you can use CohortDiagnostics (specifically the runBreakdownIndexEvents analysis). Given your described use case, some of the other analyses in there may be useful as well!
That said, I’m wondering why you have put “Any condition” as the cohort entry event? With this definition, patients are entering your cohort on their earliest condition_occurrence (of any condition) rather than their earliest bladder cancer diagnosis. That’s why you’re seeing lots of noise when you look at events on the cohort entry date for patients in this cohort.
Note the CohortDiagnostics analysis I suggested above will also not work in this setup as it requires concept set(s) to be specified in the cohort entry criteria it’s summarizing.
Oh my goodness that is exactly what I am looking for. I totally forgot that CohortDiagnostics has that feature.
Ah you are exactly right! I had initially drafted these concept sets without worrying about exactly when they were admitted so long as they were part of the cohort. I can definitely see how that would present some issues – thanks for pointing out the conflict here!
That said, I think you have completely answered my questions and concerns @katy-sadowski with this response! Thank you for the help!