1.1 Introduction

The Achilles R package is used to provide descriptive statistics of an OMOP CDM database. There exist a total of 294 analyses, classified into 21 categories: General, Person, Observation Period, Visit Occurrence, Provider, Condition Occurrence, Death, Procedure Occurrence, Drug Exposure, Observation, Drug Era, Condition Era, Location, Care Site, Visit Detail, Payer Plan Period, Cost, Measurement, Completeness, Device Exposure, Note.

Analysis
Stratum
Group
ID Name 1 2 3 4 5
General
0 Source name - - - - - default; general
Person
1 Number of persons - - - - - default; person
2 Number of persons by gender gender_concept_id - - - - default; person
3 Number of persons by year of birth year_of_birth - - - - default; person
4 Number of persons by race race_concept_id - - - - default; person
5 Number of persons by ethnicity ethnicity_concept_id - - - - default; person
7 Number of persons with invalid provider_id - - - - - person
8 Number of persons with invalid location_id - - - - - person
9 Number of persons with invalid care_site_id - - - - - person
10 Number of all persons by year of birth by gender year_of_birth gender_concept_id - - - default; person
11 Number of non-deceased persons by year of birth by gender year_of_birth gender_concept_id - - - default; person
12 Number of persons by race and ethnicity race_concept_id ethnicity_concept_id - - - default; person
101 Number of persons by age, with age at first observation period age - - - - default; person
102 Number of persons by gender by age, with age at first observation period gender_concept_id age - - - default; person
Observation Period
103 Distribution of age at first observation period - - - - - default; observation period
104 Distribution of age at first observation period by gender gender_concept_id - - - - default; observation period
105 Length of observation (days) of first observation period - - - - - default; observation period
106 Length of observation (days) of first observation period by gender gender_concept_id - - - - default; observation period
107 Length of observation (days) of first observation period by age decile age decile - - - - default; observation period
108 Number of persons by length of observation period, in 30d increments Observation period length 30d increments - - - - default; observation period
109 Number of persons with continuous observation in each year calendar year - - - - default; observation period
110 Number of persons with continuous observation in each month calendar month - - - - default; observation period
111 Number of persons by observation period start month calendar month - - - - default; observation period
112 Number of persons by observation period end month calendar month - - - - default; observation period
113 Number of persons by number of observation periods number of observation periods - - - - default; observation period
114 Number of persons with observation period before year-of-birth - - - - - observation period
115 Number of persons with observation period end < observation period start - - - - - observation period
116 Number of persons with at least one day of observation in each year by gender and age decile calendar year gender_concept_id age decile - - default; observation period
117 Number of persons with at least one day of observation in each month calendar month - - - - default; observation period
118 Number of observation periods with invalid person_id - - - - - observation period
119 Number of observation period records by period_type_concept_id period_type_concept_id - - - - default; observation period
210 Number of visit_occurrence records outside a valid observation period - - - - - default; observation period
230 Number of visit_occurrence records inside valid observation period - - - - - observation period
231 Proportion of people with at least one visit_occurrence record outside a valid observation period Proportion Number of people with a visit_occurrence record outside a valid observation period Number of people in visit_occurrence - - observation period
232 Proportion of visit_occurrence records outside a valid observation period Proportion Number of visit_occurrence records outside a valid observation period Number of visit_occurrence records - - observation period
410 Number of condition occurrence records outside valid observation period - - - - - observation period
430 Number of condition_occurrence records inside a valid observation period - - - - - observation period
431 Proportion of people with at least one condition_occurrence record outside a valid observation period Proportion Number of people with a condition_occurrence record outside a valid observation period Number of people in condition_occurrence - - observation period
432 Proportion of condition_occurrence records outside a valid observation period Proportion Number of condition_occurrence records outside a valid observation period Number of condition_occurrence records - - observation period
510 Number of death records outside valid observation period - - - - - observation period
530 Number of death records inside a valid observation period - - - - - observation period
531 Proportion of people with at least one death record outside a valid observation period Proportion Number of people with a death record outside a valid observation period Number of people in death - - observation period
532 Proportion of death records that occur outside a valid observation period Proportion Number of records in death outside a valid observation period Number of death records - - observation period
610 Number of procedure occurrence records outside valid observation period - - - - - observation period
630 Number of procedure_occurrence records inside a valid observation period - - - - - default; observation period
631 Proportion of people with at least one procedure_occurrence record outside a valid observation period Proportion Number of people with a procedure_occurrence record outside a valid observation period Number of people in procedure_occurrence - - observation period
632 Proportion of procedure_occurrence records outside a valid observation period Proportion Number of records in procedure_occurrence outside a valid observation period Number of procedure_occurrence records - - observation period
710 Number of drug exposure records outside valid observation period - - - - - observation period
730 Number of drug_exposure records inside a valid observation period - - - - - observation period
731 Proportion of people with at least one drug_exposure record outside a valid observation period Proportion Number of people with a drug_exposure record outside a valid observation period Number of people in drug_exposure - - observation period
732 Proportion of drug_exposure records outside a valid observation period Proportion Number of records in drug_exposure outside a valid observation period Number of drug_exposure records - - observation period
810 Number of observation records outside valid observation period - - - - - observation period
830 Number of observation records inside a valid observation period - - - - - observation period
831 Proportion of people with at least one observation record outside a valid observation period Proportion Number of people with a observation record outside a valid observation period Number of people in observation - - observation period
832 Proportion of observation records outside a valid observation period Proportion Number of records in observation outside a valid observation period Number of observation records - - observation period
910 Number of drug_era records outside valid observation period - - - - - observation period
930 Number of drug_era records inside a valid observation period - - - - - observation period
931 Proportion of people with at least one drug_era record outside a valid observation period Proportion Number of people with a drug_era record outside a valid observation period Number of people in drug_era - - observation period
932 Proportion of drug_era records outside a valid observation period Proportion Number of records in drug_era outside a valid observation period Number of drug_era records - - observation period
1010 Number of condition_era records outside a valid observation period - - - - - observation period
1030 Number of condition_era records inside a valid observation period - - - - - observation period
1031 Proportion of people with at least one condition_era record outside a valid observation period Proportion Number of people with a condition_era record outside a valid observation period Number of people in condition_era - - observation period
1032 Proportion of condition_era records outside a valid observation period Proportion Number of records in condition_era outside a valid observation period Number of condition_era records - - observation period
1310 Number of visit_detail records outside a valid observation period - - - - - observation period
1330 Number of visit_detail records inside a valid observation period - - - - - observation period
1331 Proportion of people with at least one visit_detail record outside a valid observation period Proportion Number of people with a visit_detail record outside a valid observation period Number of people in visit_detail - - observation period
1332 Proportion of visit_detail records outside a valid observation period Proportion Number of records in visit_detail outside a valid observation period Number of visit_detail records - - observation period
1810 Number of measurement records outside valid observation period - - - - - observation period
1830 Number of visit_detail records inside a valid observation period - - - - - observation period
1831 Proportion of people with at least one measurement record outside a valid observation period Proportion Number of people with a measurement record outside a valid observation period Number of people in measurement - - observation period
1832 Proportion of measurement records outside a valid observation period Proportion Number of records in measurement outside a valid observation period Number of measurement records - - observation period
2110 Number of device_exposure records outside valid observation period - - - - - observation period
2130 Number of device_exposure records inside a valid observation period - - - - - observation period
2131 Proportion of people with at least one device_exposure record outside a valid observation period Proportion Number of people with a device_exposure record outside a valid observation period Number of people in device_exposure - - observation period
2132 Proportion of device_exposure records outside a valid observation period Proportion Number of records in device_exposure outside a valid observation period Number of device_exposure records - - observation period
Visit Occurrence
200 Number of persons with at least one visit occurrence, by visit_concept_id visit_concept_id - - - - minimal; default; visit occurrence
201 Number of visit occurrence records, by visit_concept_id visit_concept_id - - - - minimal; default; visit occurrence
202 Number of persons by visit occurrence start month, by visit_concept_id visit_concept_id calendar month - - - default; visit occurrence
203 Number of distinct visit occurrence concepts per person - - - - - default; visit occurrence
204 Number of persons with at least one visit occurrence, by visit_concept_id by calendar year by gender by age decile visit_concept_id calendar year gender_concept_id age decile - default; visit occurrence
206 Distribution of age by visit_concept_id visit_concept_id gender_concept_id - - - default; visit occurrence
207 Number of visit records with invalid person_id - - - - - default; visit occurrence
209 Number of visit records with invalid care_site_id - - - - - default; visit occurrence
211 Number of visit records with end date < start date - - - - - visit occurrence
212 Number of persons with at least one visit occurrence, by calendar year by gender by age decile calendar year gender_concept_id age decile - - default; visit occurrence
213 Distribution of length of stay by visit_concept_id visit_concept_id - - - - default; visit occurrence
220 Number of visit occurrence records by visit occurrence start month calendar month - - - - default; visit occurrence
221 Number of persons by visit start year calendar year - - - - default; visit occurrence
225 Number of visit_occurrence records by visit_source_concept_id visit_source_concept_id - - - - minimal; default; visit occurrence
226 Number of records by domain by visit_concept_id visit_concept_id cdm_table_name - - - default; visit occurrence
Provider
300 Number of providers - - - - - default; provider
301 Number of providers by specialty concept_id specialty_concept_id - - - - default; provider
303 Number of providers records by specialty_concept_id and visit_concept_id specialty_concept_id visit_concept_id - - - default; provider
325 Number of provider records by specialty_source_concept_id specialty_source_concept_id - - - - default; provider
Condition Occurrence
400 Number of persons with at least one condition occurrence, by condition_concept_id condition_concept_id - - - - minimal; default; condition occurrence
401 Number of condition occurrence records, by condition_concept_id condition_concept_id - - - - minimal; default; condition occurrence
402 Number of persons by condition occurrence start month, by condition_concept_id condition_concept_id calendar month - - - default; condition occurrence
403 Number of distinct condition occurrence concepts per person - - - - - default; condition occurrence
404 Number of persons with at least one condition occurrence, by condition_concept_id by calendar year by gender by age decile condition_concept_id calendar year gender_concept_id age decile - default; condition occurrence
405 Number of condition occurrence records, by condition_concept_id by condition_type_concept_id condition_concept_id condition_type_concept_id - - - default; condition occurrence
406 Distribution of age by condition_concept_id condition_concept_id gender_concept_id - - - default; condition occurrence
409 Number of condition occurrence records with invalid person_id - - - - - condition occurrence
411 Number of condition occurrence records with end date < start date - - - - - condition occurrence
412 Number of condition occurrence records with invalid provider_id - - - - - condition occurrence
413 Number of condition occurrence records with invalid visit_id - - - - - condition occurrence
414 Number of condition occurrence records, by condition_status_concept_id condition_status_concept_id - - - - default; condition occurrence
415 Number of condition occurrence records, by condition_type_concept_id condition_type_concept_id - - - - default; condition occurrence
416 Number of condition occurrence records, by condition_status_concept_id, condition_type_concept_id condition_status_concept_id condition_type_concept_id - - - default; condition occurrence
420 Number of condition occurrence records by condition occurrence start month calendar month - - - - default; condition occurrence
425 Number of condition_occurrence records by condition_source_concept_id condition_source_concept_id - - - - minimal; default; condition occurrence
424 Number of distinct people with co-occurring condition_occurrence condition_concept_id pairs condition_concept_id condition_concept_id ranking num_people num_cases condition occurrence
Death
500 Number of persons with death, by cause_concept_id cause_concept_id - - - - default; death
501 Number of records of death, by cause_concept_id cause_concept_id - - - - default; death
502 Number of persons by death month calendar month - - - - default; death
504 Number of persons with a death, by calendar year by gender by age decile calendar year gender_concept_id age decile - - default; death
505 Number of death records, by death_type_concept_id death_type_concept_id - - - - default; death
506 Distribution of age at death by gender gender_concept_id - - - - default; death
509 Number of death records with invalid person_id - - - - - death
511 Distribution of time from death to last condition - - - - - default; death
512 Distribution of time from death to last drug - - - - - default; death
513 Distribution of time from death to last visit - - - - - default; death
514 Distribution of time from death to last procedure - - - - - default; death
515 Distribution of time from death to last observation - - - - - default; death
525 Number of death records by cause_source_concept_id cause_source_concept_id - - - - default; death
Procedure Occurrence
600 Number of persons with at least one procedure occurrence, by procedure_concept_id procedure_concept_id - - - - minimal; default; procedure occurrence
601 Number of procedure occurrence records, by procedure_concept_id procedure_concept_id - - - - minimal; default; procedure occurrence
602 Number of persons by procedure occurrence start month, by procedure_concept_id procedure_concept_id calendar month - - - default; procedure occurrence
603 Number of distinct procedure occurrence concepts per person - - - - - default; procedure occurrence
604 Number of persons with at least one procedure occurrence, by procedure_concept_id by calendar year by gender by age decile procedure_concept_id calendar year gender_concept_id age decile - default; procedure occurrence
605 Number of procedure occurrence records, by procedure_concept_id by procedure_type_concept_id procedure_concept_id procedure_type_concept_id - - - default; procedure occurrence
606 Distribution of age by procedure_concept_id procedure_concept_id gender_concept_id - - - default; procedure occurrence
609 Number of procedure occurrence records with invalid person_id - - - - - procedure occurrence
612 Number of procedure occurrence records with invalid provider_id - - - - - procedure occurrence
613 Number of procedure occurrence records with invalid visit_id - - - - - procedure occurrence
620 Number of procedure occurrence records by procedure occurrence start month calendar month - - - - default; procedure occurrence
625 Number of procedure_occurrence records by procedure_source_concept_id procedure_source_concept_id - - - - minimal; default; procedure occurrence
624 Number of distinct people with co-occurring procedure_occurrence procedure_concept_id pairs procedure_concept_id procedure_concept_id ranking num_people num_cases procedure occurrence
691 Percentage of total persons that have at least x procedures procedure_concept_id procedure_person - - - default; procedure occurrence
Drug Exposure
700 Number of persons with at least one drug exposure, by drug_concept_id drug_concept_id - - - - minimal; default; drug exposure
701 Number of drug exposure records, by drug_concept_id drug_concept_id - - - - minimal; default; drug exposure
702 Number of persons by drug exposure start month, by drug_concept_id drug_concept_id calendar month - - - default; drug exposure
703 Number of distinct drug exposure concepts per person - - - - - default; drug exposure
704 Number of persons with at least one drug exposure, by drug_concept_id by calendar year by gender by age decile drug_concept_id calendar year gender_concept_id age decile - default; drug exposure
705 Number of drug exposure records, by drug_concept_id by drug_type_concept_id drug_concept_id drug_type_concept_id - - - default; drug exposure
706 Distribution of age by drug_concept_id drug_concept_id gender_concept_id - - - default; drug exposure
709 Number of drug exposure records with invalid person_id - - - - - drug exposure
711 Number of drug exposure records with end date < start date - - - - - drug exposure
712 Number of drug exposure records with invalid provider_id - - - - - drug exposure
713 Number of drug exposure records with invalid visit_id - - - - - drug exposure
715 Distribution of days_supply by drug_concept_id drug_concept_id - - - - default; drug exposure
716 Distribution of refills by drug_concept_id drug_concept_id - - - - default; drug exposure
717 Distribution of quantity by drug_concept_id drug_concept_id - - - - default; drug exposure
720 Number of drug exposure records by drug exposure start month calendar month - - - - default; drug exposure
725 Number of drug_exposure records by drug_source_concept_id drug_source_concept_id - - - - minimal; default; drug exposure
724 Number of distinct people with co-occurring drug_exposure drug_concept_id pairs drug_concept_id drug_concept_id ranking num_people num_cases drug exposure
791 Percentage of total persons that have at least x drug exposures drug_concept_id drug_person - - - default; drug exposure
Observation
800 Number of persons with at least one observation occurrence, by observation_concept_id observation_concept_id - - - - minimal; default; observation
801 Number of observation occurrence records, by observation_concept_id observation_concept_id - - - - minimal; default; observation
802 Number of persons by observation occurrence start month, by observation_concept_id observation_concept_id calendar month - - - default; observation
803 Number of distinct observation occurrence concepts per person - - - - - default; observation
804 Number of persons with at least one observation occurrence, by observation_concept_id by calendar year by gender by age decile observation_concept_id calendar year gender_concept_id age decile - default; observation
805 Number of observation occurrence records, by observation_concept_id by observation_type_concept_id observation_concept_id observation_type_concept_id - - - default; observation
806 Distribution of age by observation_concept_id observation_concept_id gender_concept_id - - - default; observation
807 Number of observation occurrence records, by observation_concept_id and unit_concept_id observation_concept_id unit_concept_id - - - default; observation
809 Number of observation records with invalid person_id - - - - - observation
812 Number of observation records with invalid provider_id - - - - - observation
813 Number of observation records with invalid visit_id - - - - - observation
814 Number of observation records with no value (numeric, string, or concept) - - - - - default; observation
815 Distribution of numeric values, by observation_concept_id and unit_concept_id observation_concept_id unit_concept_id - - - default; observation
820 Number of observation records by observation start month calendar month - - - - default; observation
822 Number of observation records, by observation_concept_id and value_as_concept_id observation_concept_id value_as_concept_id - - - default; observation
823 Number of observation records, by observation_concept_id and qualifier_concept_id observation_concept_id qualifier_concept_id - - - default; observation
824 Number of distinct people with co-occurring observation observation_concept_id pairs observation_concept_id observation_concept_id ranking num_people num_cases observation
825 Number of observation records by observation_source_concept_id observation_source_concept_id - - - - minimal; default; observation
826 Number of observation records by value_as_concept_id value_as_concept_id - - - - default; observation
827 Number of observation records by unit_concept_id unit_concept_id - - - - default; observation
891 Percentage of total persons that have at least x observations observation_concept_id observation_person - - - default; observation
Drug Era
900 Number of persons with at least one drug era, by drug_concept_id drug_concept_id - - - - default; drug era
901 Number of drug era records, by drug_concept_id drug_concept_id - - - - default; drug era
902 Number of persons by drug era start month, by drug_concept_id drug_concept_id calendar month - - - default; drug era
903 Number of distinct drug era concepts per person - - - - - default; drug era
904 Number of persons with at least one drug era, by drug_concept_id by calendar year by gender by age decile drug_concept_id calendar year gender_concept_id age decile - default; drug era
906 Distribution of age by drug_concept_id drug_concept_id gender_concept_id - - - default; drug era
907 Distribution of drug era length, by drug_concept_id drug_concept_id - - - - default; drug era
908 Number of drug eras without valid person - - - - - drug era
911 Number of drug eras with end date < start date - - - - - drug era
920 Number of drug era records by drug era start month calendar month - - - - default; drug era
Condition Era
1000 Number of persons with at least one condition era, by condition_concept_id condition_concept_id - - - - default; condition era
1001 Number of condition era records, by condition_concept_id condition_concept_id - - - - default; condition era
1002 Number of persons by condition era start month, by condition_concept_id condition_concept_id calendar month - - - default; condition era
1003 Number of distinct condition era concepts per person - - - - - default; condition era
1004 Number of persons with at least one condition era, by condition_concept_id by calendar year by gender by age decile condition_concept_id calendar year gender_concept_id age decile - default; condition era
1006 Distribution of age by condition_concept_id condition_concept_id gender_concept_id - - - default; condition era
1007 Distribution of condition era length, by condition_concept_id condition_concept_id - - - - default; condition era
1008 Number of condition eras without valid person - - - - - condition era
1011 Number of condition eras with end date < start date - - - - - condition era
1020 Number of condition era records by condition era start month calendar month - - - - default; condition era
Location
1100 Number of persons by location 3-digit zip 3-digit zip - - - - default; location
1101 Number of persons by location state state - - - - default; location
1102 Number of care sites by location 3-digit zip 3-digit zip - - - - default; location
1103 Number of care sites by location state state - - - - default; location
Care Site
1200 Number of persons by place of service place_of_service_concept_id - - - - default; care site
1201 Number of visits by place of service place_of_service_concept_id - - - - default; care site
1202 Number of care sites by place of service place_of_service_concept_id - - - - default; care site
1203 Number of visits by place of service discharge type discharge_to_concept_id - - - - default; care site
Visit Detail
1300 Number of persons with at least one visit detail, by visit_detail_concept_id visit_detail_concept_id - - - - default; visit detail
1301 Number of visit detail records, by visit_detail_concept_id visit_detail_concept_id - - - - default; visit detail
1302 Number of persons by visit detail start month, by visit_detail_concept_id visit_detail_concept_id calendar month - - - default; visit detail
1303 Number of distinct visit detail concepts per person - - - - - default; visit detail
1304 Number of persons with at least one visit detail, by visit_detail_concept_id by calendar year by gender by age decile visit_detail_concept_id calendar year gender_concept_id age decile - default; visit detail
1306 Distribution of age by visit_detail_concept_id visit_detail_concept_id gender_concept_id - - - default; visit detail
1307 Number of visit records with invalid person_id - - - - - visit detail
1309 Number of visit_detail records with invalid care_site_id - - - - - visit detail
1311 Number of visit_detail records with end date < start date - - - - - visit detail
1312 Number of persons with at least one visit detail, by calendar year by gender by age decile calendar year gender_concept_id age decile - - default; visit detail
1313 Distribution of length of stay by visit_detail_concept_id visit_detail_concept_id - - - - default; visit detail
1320 Number of visit detail records by visit detail start month calendar month - - - - default; visit detail
1321 Number of persons by visit start year calendar year - - - - default; visit detail
1325 Number of visit_detail records by visit_detail_source_concept_id visit_detail_source_concept_id - - - - default; visit detail
1326 Number of records by domain by visit_detail_concept_id visit_detail_source_concept_id cdm_table_name - - - default; visit detail
Payer Plan Period
1406 Length of payer plan (days) of first payer plan period by gender gender_concept_id - - - - default; payer plan period
1407 Length of payer plan (days) of first payer plan period by age decile age_decile - - - - default; payer plan period
1408 Number of persons by length of payer plan period, in 30d increments payer plan period length 30d increments - - - - default; payer plan period
1409 Number of persons with continuous payer plan in each year calendar year - - - - default; payer plan period
1410 Number of persons with continuous payer plan in each month calendar month - - - - default; payer plan period
1411 Number of persons by payer plan period start month calendar month - - - - default; payer plan period
1412 Number of persons by payer plan period end month calendar month - - - - default; payer plan period
1413 Number of persons by number of payer plan periods number of payer plan periods - - - - default; payer plan period
1414 Number of persons with payer plan period before year-of-birth - - - - - payer plan period
1415 Number of persons with payer plan period end < payer plan period start - - - - - payer plan period
1425 Number of payer_plan_period records by payer_source_concept_id payer_source_concept_id - - - - default; payer plan period
Cost
1502 Distribution of paid_patient_copay, by drug_concept_id drug_concept_id - - - - cost
1503 Distribution of paid_patient_coinsurance, by drug_concept_id drug_concept_id - - - - cost
1504 Distribution of paid_patient_deductible, by drug_concept_id drug_concept_id - - - - cost
1505 Distribution of paid_by_payer, by drug_concept_id drug_concept_id - - - - cost
1506 Distribution of paid_by_primary, by drug_concept_id drug_concept_id - - - - cost
1507 Distribution of paid_by_patient, by drug_concept_id drug_concept_id - - - - cost
1508 Distribution of total_paid, by drug_concept_id drug_concept_id - - - - cost
1509 Distribution of paid_ingredient_cost, by drug_concept_id drug_concept_id - - - - cost
1510 Distribution of paid_dispensing_fee, by drug_concept_id drug_concept_id - - - - cost
1511 Distribution of total_cost, by drug_concept_id drug_concept_id - - - - cost
1602 Distribution of paid_patient_copay, by procedure_concept_id procedure_concept_id - - - - cost
1603 Distribution of paid_patient_coinsurance, by procedure_concept_id procedure_concept_id - - - - cost
1604 Distribution of paid_patient_deductible, by procedure_concept_id procedure_concept_id - - - - cost
1605 Distribution of paid_by_payer, by procedure_concept_id procedure_concept_id - - - - cost
1606 Distribution of paid_by_primary, by procedure_concept_id procedure_concept_id - - - - cost
1607 Distribution of paid_by_patient, by procedure_concept_id procedure_concept_id - - - - cost
1608 Distribution of total paid, by procedure_concept_id procedure_concept_id - - - - cost
1610 Number of records by revenue_code_concept_id revenue_code_concept_id - - - - cost
Measurement
1800 Number of persons with at least one measurement occurrence, by measurement_concept_id measurement_concept_id - - - - minimal; default; measurement
1801 Number of measurement occurrence records, by measurement_concept_id measurement_concept_id - - - - minimal; default; measurement
1802 Number of persons by measurement occurrence start month, by measurement_concept_id measurement_concept_id calendar month - - - default; measurement
1803 Number of distinct mesurement occurrence concepts per person - - - - - default; measurement
1804 Number of persons with at least one mesurement occurrence, by measurement_concept_id by calendar year by gender by age decile measurement_concept_id calendar year gender_concept_id age decile - default; measurement
1805 Number of measurement occurrence records, by measurement_concept_id by measurement_type_concept_id measurement_concept_id measurement_type_concept_id - - - default; measurement
1806 Distribution of age by measurement_concept_id measurement_concept_id gender_concept_id - - - default; measurement
1807 Number of measurement occurrence records, by measurement_concept_id and unit_concept_id measurement_concept_id unit_concept_id - - - default; measurement
1809 Number of measurement records with invalid person_id - - - - - measurement
1811 Number of measurement records with a valid value (with a mapped, non-null value_as_number) - - - - - default; measurement
1812 Number of measurement records with invalid provider_id - - - - - measurement
1813 Number of measurement records with invalid visit_id - - - - - measurement
1814 Number of measurement records with no value (numeric, string, or concept) - - - - - default; measurement
1815 Distribution of numeric values, by measurement_concept_id and unit_concept_id measurement_concept_id unit_concept_id - - - default; measurement
1816 Distribution of low range, by measurement_concept_id and unit_concept_id measurement_concept_id unit_concept_id - - - default; measurement
1817 Distribution of high range, by measurement_concept_id and unit_concept_id measurement_concept_id unit_concept_id - - - default; measurement
1818 Number of measurement records below/within/above normal range, by measurement_concept_id and unit_concept_id measurement_concept_id unit_concept_id measurement_range - - default; measurement
1819 Number of measurement records, by measurement_concept_id, with a valid value (with a mapped, non-null value_as_number) measurement_concept_id - - - - default; measurement
1820 Number of measurement records by measurement start month calendar month - - - - default; measurement
1821 Number of measurement records with no numeric value - - - - - default; measurement
1822 Number of measurement records, by measurement_concept_id and value_as_concept_id measurement_concept_id value_as_concept_id - - - default; measurement
1823 Number of measurement records, by measurement_concept_id and operator_concept_id measurement_concept_id operator_concept_id - - - default; measurement
1824 Number of distinct people with co-occurring measurement measurement_concept_id pairs measurement_concept_id measurement_concept_id ranking num_people num_cases measurement
1825 Number of measurement records by measurement_source_concept_id measurement_source_concept_id - - - - minimal; default; measurement
1826 Number of measurement records by value_as_concept_id value_as_concept_id - - - - default; measurement
1827 Number of measurement records by unit_concept_id unit_concept_id - - - - default; measurement
1833 Proportion of measurement records inside a valid observation period and without a value measurement_concept_id Number of measurement records with no value for the given measurement_concept_id proportion - - measurement
1891 Percentage of total persons that have at least x measurements measurement_concept_id measurement_person - - - default; measurement
Completeness
1900 Source values mapped to concept_id 0 by table, by column, by source_value table_name column_name source_value - - default; completeness
2000 Number of patients with at least 1 Dx and 1 Rx - - - - - default; completeness
2001 Number of patients with at least 1 Dx and 1 Proc - - - - - default; completeness
2002 Number of patients with at least 1 Meas, 1 Dx and 1 Rx - - - - - default; completeness
2003 Number of patients with at least 1 Visit - - - - - default; completeness
2004 Number of distinct patients that overlap between specific domains domain_bit_string proportion_of_overlap - - - default; completeness
2100 Number of persons with at least one device exposure, by device_concept_id device_concept_id - - - - minimal; default; completeness
Device Exposure
2101 Number of device exposure records, by device_concept_id device_concept_id - - - - minimal; default; device exposure
2102 Number of persons by device records start month, by device_concept_id device_concept_id calendar month - - - default; device exposure
2104 Number of persons with at least one device exposure, by device_concept_id by calendar year by gender by age decile device_concept_id calendar year gender_concept_id age decile - default; device exposure
2105 Number of device exposure records, by device_concept_id by device_type_concept_id device_concept_id device_type_concept_id - - - default; device exposure
2106 Distribution of age by device_concept_id device_concept_id gender_concept_id - - - default; device exposure
2120 Number of device_exposure records by device_exposure start month calendar month - - - - default; device exposure
2125 Number of device_exposure records by device_source_concept_id device_source_concept_id - - - - minimal; default; device exposure
2191 Percentage of total persons that have at least x device exposures device_concept_id device_person - - - default; device exposure
Note
2200 Number of persons with at least one note by note_type_concept_id note_type_concept_id - - - - default; note
2201 Number of note records, by note_type_concept_id note_type_concept_id - - - - default; note

1.2 Run achilles analysis

You can create the Achilles tables using the function buildAchillesTables(). The achilles tables (achilles_results, achilles_results_dist, achilles_analysis) will be created in the write schema of your cdm object. You can choose what Achilles analyses to run using the achillesId argument providing a list of ids or a ‘group’ to identify several ids:

Here you can see how we run achilles analyses in the ‘GiBleed’ synthetic dataset:

library(omock)
library(OmopConstructor)

cdm <- mockCdmFromDataset(datasetName = "GiBleed", source = "duckdb")
#> ℹ Loading bundled GiBleed tables from package data.
#> ℹ Adding drug_strength table.
#> ℹ Creating local <cdm_reference> object.
#> ℹ Inserting <cdm_reference> into duckdb.
cdm
#> 
#> ── # OMOP CDM reference (duckdb) of GiBleed ────────────────────────────────────
#> • omop tables: care_site, cdm_source, concept, concept_ancestor, concept_class,
#> concept_relationship, concept_synonym, condition_era, condition_occurrence,
#> cost, death, device_exposure, domain, dose_era, drug_era, drug_exposure,
#> drug_strength, fact_relationship, location, measurement, metadata, note,
#> note_nlp, observation, observation_period, payer_plan_period, person,
#> procedure_occurrence, provider, relationship, source_to_concept_map, specimen,
#> visit_detail, visit_occurrence, vocabulary
#> • cohort tables: -
#> • achilles tables: -
#> • other tables: -

cdm <- buildAchillesTables(cdm = cdm, achillesId = "minimal")
#> ℹ Creating empty achilles_analysis table.
#> ℹ Creating empty achilles_results table.
#> ℹ Creating empty achilles_results_dist table.
#> ℹ  1 of 21: Number of persons with at least one visit occurrence, by
#>   visit_concept_id (achilles ID = 200).
#> ℹ  2 of 21: Number of visit occurrence records, by visit_concept_id (achilles
#>   ID = 201).
#> ℹ  3 of 21: Number of visit_occurrence records by visit_source_concept_id
#>   (achilles ID = 225).
#> ℹ  4 of 21: Number of persons with at least one condition occurrence, by
#>   condition_concept_id (achilles ID = 400).
#> ℹ  5 of 21: Number of condition occurrence records, by condition_concept_id
#>   (achilles ID = 401).
#> ℹ  6 of 21: Number of condition_occurrence records by
#>   condition_source_concept_id (achilles ID = 425).
#> ℹ  7 of 21: Number of persons with at least one procedure occurrence, by
#>   procedure_concept_id (achilles ID = 600).
#> ℹ  8 of 21: Number of procedure occurrence records, by procedure_concept_id
#>   (achilles ID = 601).
#> ℹ  9 of 21: Number of procedure_occurrence records by
#>   procedure_source_concept_id (achilles ID = 625).
#> ℹ 10 of 21: Number of persons with at least one drug exposure, by
#>   drug_concept_id (achilles ID = 700).
#> ℹ 11 of 21: Number of drug exposure records, by drug_concept_id (achilles ID =
#>   701).
#> ℹ 12 of 21: Number of drug_exposure records by drug_source_concept_id (achilles
#>   ID = 725).
#> ℹ 13 of 21: Number of persons with at least one observation occurrence, by
#>   observation_concept_id (achilles ID = 800).
#> ℹ 14 of 21: Number of observation occurrence records, by observation_concept_id
#>   (achilles ID = 801).
#> ℹ 15 of 21: Number of observation records by observation_source_concept_id
#>   (achilles ID = 825).
#> ℹ 16 of 21: Number of persons with at least one measurement occurrence, by
#>   measurement_concept_id (achilles ID = 1800).
#> ℹ 17 of 21: Number of measurement occurrence records, by measurement_concept_id
#>   (achilles ID = 1801).
#> ℹ 18 of 21: Number of measurement records by measurement_source_concept_id
#>   (achilles ID = 1825).
#> ℹ 19 of 21: Number of persons with at least one device exposure, by
#>   device_concept_id (achilles ID = 2100).
#> ℹ 20 of 21: Number of device exposure records, by device_concept_id (achilles
#>   ID = 2101).
#> ℹ 21 of 21: Number of device_exposure records by device_source_concept_id
#>   (achilles ID = 2125).
cdm
#> 
#> ── # OMOP CDM reference (duckdb) of GiBleed ────────────────────────────────────
#> • omop tables: care_site, cdm_source, concept, concept_ancestor, concept_class,
#> concept_relationship, concept_synonym, condition_era, condition_occurrence,
#> cost, death, device_exposure, domain, dose_era, drug_era, drug_exposure,
#> drug_strength, fact_relationship, location, measurement, metadata, note,
#> note_nlp, observation, observation_period, payer_plan_period, person,
#> procedure_occurrence, provider, relationship, source_to_concept_map, specimen,
#> visit_detail, visit_occurrence, vocabulary
#> • cohort tables: -
#> • achilles tables: achilles_analysis, achilles_results, achilles_results_dist
#> • other tables: -

cdm$achilles_results
#> # Source:   table<results.test_achilles_results> [?? x 7]
#> # Database: DuckDB 1.5.0 [root@Darwin 25.3.0:R 4.4.1//private/var/folders/pl/k11lm9710hlgl02nvzx4z9wr0000gp/T/RtmpoRvJJC/file12699412d0e33.duckdb]
#>    analysis_id stratum_1 stratum_2 stratum_3 stratum_4 stratum_5 count_value
#>          <int> <chr>     <chr>     <chr>     <chr>     <chr>           <int>
#>  1         200 9201      <NA>      <NA>      <NA>      <NA>              890
#>  2         201 9201      <NA>      <NA>      <NA>      <NA>             1037
#>  3         225 0         <NA>      <NA>      <NA>      <NA>             1037
#>  4         400 4027663   <NA>      <NA>      <NA>      <NA>              802
#>  5         400 372328    <NA>      <NA>      <NA>      <NA>             2025
#>  6         400 4310024   <NA>      <NA>      <NA>      <NA>              388
#>  7         400 4278672   <NA>      <NA>      <NA>      <NA>              510
#>  8         400 40479422  <NA>      <NA>      <NA>      <NA>              107
#>  9         400 140673    <NA>      <NA>      <NA>      <NA>               31
#> 10         400 4280726   <NA>      <NA>      <NA>      <NA>               25
#> # ℹ more rows

1.3 Differences with the Achilles R package

OmopConstructor::buildAchillesTables() and OHDSI/Achilles::achilles() both populate the same three output tables (achilles_results, achilles_results_dist, achilles_analysis) against an OMOP CDM database, but they follow fundamentally different design principles:

1.3.1 Execution Model

The most fundamental difference is where computation happens.

OHDSI/Achilles is SQL-first. Every analysis is a parameterised SQL template rendered by SqlRender and executed via DatabaseConnector (JDBC). R is purely an orchestrator — no CDM data ever enters R memory. This gives Achilles broad dialect coverage (PostgreSQL, SQL Server, Oracle, BigQuery, Redshift, Spark, DuckDB) and keeps performance independent of R’s memory constraints.

OmopConstructor is R-first. Analyses are expressed as a small vocabulary of configurable operations (count, distribution, proportion, coocurrent, overlap, conceptDistribution) executed through dplyr/dbplyr against a cdm_reference object. The database backend is abstracted by CDMConnector/DBI, so no Java runtime is required.

1.3.2 Small Cell Suppression

OHDSI/Achilles provides a smallCellCount parameter. Any result with a count below the specified threshold is suppressed before being written to achilles_results, supporting privacy-preserving characterisation out of the box.

OmopConstructor has no equivalent parameter. Suppression is not implemented at the buildAchillesTables() layer as results don’t leave the database. When retrieving data from the achilles tables tha packages apply their own min cell count suppression that cna be customised at every step.

1.3.3 Observation Period Consistency

In OHDSI/Achilles, the observation period filter is applied inconsistently across analyses. Some analyses count records or persons only within a valid observation period; others count regardless of observation period. This inconsistency has been reported in several open issues.

OmopConstructor makes the observation period filter an explicit, uniform operation (observation start yes/no) in the analysis configuration. Every analysis that involves an observation period check applies it in the same way, and analyses that do not require it simply omit the operation. This produces consistent behaviour across the full catalogue.