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 |
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:
'all' to run all the analyses.'default' to run the default Achilles analyses.'minimal' to run a subset of Achilles analyses that contains the concept counts of each table, used by packages like CodelistGenerator to find concept counts quickly.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
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:
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.
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.
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.