OHDSI Home | Forums | Wiki | Github

Cohort Definition - How do I include persons with concepts in multiple domains?

Hi all,

I’m trying to build a cohort in ATLAS that uses two pairs of 10 concept sets. I’ll call them “a1”- “a10” and “b1” - “b10”, all of which contain concepts from the conditions, observations, measurements, and procedures domains.

I want to include persons who either have concepts from more than 2 of the “a” concept sets (eg. Included if has concepts from “a1, and a2”, but not included if only has concepts from “a2”) or have concepts in at least 6 of the “b” concept sets (eg. Included if has concepts in “b1”, “b2”, “b3”, “b5”, “b8” and “b9”, but not included if has concepts in only “b1”, “b2”, “b3”, “b5”, and “b9”).

Here’s my logic:

Cohort Entry Events:

Events having any of the following criteria:

  • A condition occurrence of concept sets “a1”-“a10”
  • A condition occurrence of concept sets “b1”-“b10”
  • An observation of of concept sets “a1”-“a10”
  • An observation of concept sets “b1”-“b10”
  • A measurement of concept sets “a1”-“a10”
  • A measurement of concept sets “b1”-“b10”
  • A procedure occurrence of concept sets “a1”-“a10”
  • A procedure occurrence of concept sets “b1”-“b10”

Inclusion Criteria 1:

Having any of the following criteria:

  • With at least 1 condition occurrence of concept sets “a1”-“a10”
    • Having at least 2 of the following criteria:
      • At least 1 condition occurrence of “a1”
      • At least 1 condition occurrence of “a2”
      • At least 1 condition occurrence of “a3”
  • Or with at least 1 condition occurrence of concept sets “b1”-“b10”
    • Having at least 6 of the following criteria:
      • At least 1 condition occurrence of “b1”
      • At least 1 condition occurrence of “b2”
  • Then I repeat this structure for observations, measurements, and procedures

Cohort Exit Event:

End of continuous observation

I can’t figure out how to include persons that have for example a condition occurrence of “a1” and an observation of “a2” or another example, a procedure occurrence of “b1”, “b2”, and “b3” and a measurement of “b4”, “b5” and “b6”. Each chunk in the inclusion criteria only relates to one domain (at least 2 conditions, or at least 2 observations). I know this a very specific situation, but has anyone here ever come across something similar? Any help would be greatly appreciated.

I’ll describe a few pieces of functionality here, but I’m not sure it addresses your specific use case:

  1. Using ‘distinct standard concept counts’:

Here is a screen grab of how you can count distinct concepts within a concept set in a criteria:

This example looks for a condition in the A1 concept set, and then nests criteria to find if there’s at least 2 different standard concepts between 30d before and 30d after the index condition. Note: the index condition is included in this count, so there will always be at least 1 condition with the index concept within 30d before and 30d after itself, but you can check if there’s another concept in the surrounding timeframe. Another note that is not in your description is the temporal boundary around where the other conditions should be found.

  1. Using the at least X

You described this in your example, but with more nesting gruops you can structure it as:

any of:

2 different conditions from a1-10
or 2 different observations from a1-10
or all of:
1 condition from a1-10
and 1 observation from a1-10

Yes, does sound very specific, and I think you can accomplish what you want but with heavy nesting and different ‘any of’ ‘all of’ groups, but then you’ll have to be able to explain that rule to your clinicians and demonstrate how it makes clinical sense.

Thanks Chris,

This certainly helps with some of the logic! This very well could prove a bigger challenge to build in ATLAS than in R or Julia. Thanks again!

t