OHDSI Home | Forums | Wiki | Github

Numeric range

(Elena Villalon) #1

When implementing the DemocraticCriteria list of the cohort creation in ohdsi, you may find array for race, gender and ethnicity. For age you just have NumericRange with an operator , value, and extent. However, you may want to have a Numeric Range array instead as you have for race or gender. What about if you want to include patients between 9-18 and also between 35-45 for example. As the age groups are not contiguous, the only way I find is to create two democratic criteria list. Is this correct or I am missing something. Elena

(Christian Reich) #2


Yes, you would build two demographic criteria. The alternative would be to pre-create numeric ranges in the data. But which ones? 9-18? Why not 10-18? 10-21? 9-17?

(Ana Szarfman) #3

Not sure if the following information will add to the specific issue being discussed.

Regarding COVID-19:

I like age to be a value, that can categorized in many different ways as needed.

Please refer to COVID-19 Real World Data (RWD) Data Elements Harmonization Project that FDA posted (an heroic effort spearheaded by Mitra Rocca):


The spreadsheet posted at that site lists for “OMOP CDM 5.2 (Validated)” and for OMOP CDM 5.3.1" the following format:


and for COVID-19:

Age at COVID-19 diagnosis
○ 0-9 years
○ 10-19 years
○ 20-29 years
○ 30-39 years
○ 40-49 years
○ 50-59 years”

I wish we would compare age as a continuous value in this effort to harmonize COVID-19 data. It would give us more flexibility and detailed information.

(Ana Szarfman) #4

I like the OMOP


I am thinking that we will need to have at the COVID-19 FDA site the date when the issue occurred to be able to calculate age at the time of occurrence.

(Qin Ryan) #5

A suggestion for your age category based on age grouping for oncology studies in intensive chemotherapy: 0-28 day, >28 day - 12 month, >12 month - 2 year, 2-5 year, 5-9 yrs, 10-17 yrs, 18-35 yrs, 35-45yrs, 46-59yrs, 60-75 yrs, 75-85 yrs, and > 85yes.

(Michael Kahn) #6

I agree with @Christian_Reich regarding building your age categories as criteria rather than expecting to find them in the CDM (was that the intent of the original posting?). For example, attached is a slide showing 7 different “standard” categorizations for infants and children <21 years old, all “endorsed” by different groups of domain experts.Kahn NCS Terminology Age Categories.pdf (53.8 KB)

(Ana Szarfman) #7

Great example! Which is the original source of the slide showing 7 different “standard” categorizations for infants and children <21 years old, all “endorsed” by different groups of domain experts.[Kahn NCS Terminology Age Categories.pdf]

(Elena Villalon) #8

My question was really assume I want to know patients either in the range 10-18 or range 34-44. This is an example the ranges do not matter but are not connected with same border one stop in 18 and the other starts in 34. I think I cannot accomplish it with a NumericRange and I need some patients either in range 10-18 or 34-44. I will need an array of NumericRange[]= [{10-18}, {34-44}] or two different democraticcriteria.

(Michael Kahn) #9

@szarfman Took awhile to get a response from Steven Hirschfeld who was the creator of the slide with 7 different standardized age categories. The citation from Steven that contains the NCS Terminology Age Categories :

Hirschfeld S, Zajicek A. What Could the Future of Safety Monitoring Look Like? Drug Inf J. 2019 Sep;53(5):590–600.

(Elena Villalon) #10

I have something like
Age 9-18
or Age 34-45
or White or Asian
Or Female
I donot mean to make sense as it is an example. The way I figure it out was
Create CriteriaGroups
CriteriaGroup_1=Age 9-18, Race White or Asian, Gender Female
CriteriaGroup_2=Age 34-45, Race White or Asian, Gender Female
Then CriteriaGroup_Array=[CriteriaGroup_1, CriteriaGroup_2]
This is the best I found.