Skip to contents

Join two tables in the CDM (one for index and the other for marker cohorts) into a new table in the cdm taking into account the maximum time interval between events. Index and marker cohorts should be instantiated in advance by the user.

Usage

generateSequenceCohortSet(
  cdm,
  indexTable,
  markerTable,
  name,
  indexId = NULL,
  markerId = NULL,
  cohortDateRange = as.Date(c(NA, NA)),
  daysPriorObservation = 0,
  washoutWindow = 0,
  indexMarkerGap = NULL,
  combinationWindow = c(0, 365),
  movingAverageRestriction = 548
)

Arguments

cdm

A CDM reference.

indexTable

A table in the CDM that the index cohorts should come from.

markerTable

A table in the CDM that the marker cohorts should come from.

name

The name within the cdm that the output is called. Default is joined_cohorts.

indexId

Cohort definition IDs in indexTable to be considered for the analysis. Change to NULL if all indices are wished to be included.

markerId

Cohort definition IDs in markerTable to be considered for the analysis. Change to NULL if all markers are wished to be included.

cohortDateRange

Two dates indicating study period and the sequences that the user wants to restrict to.

daysPriorObservation

The minimum amount of prior observation required on both the index and marker cohorts per person.

washoutWindow

A washout window to be applied on both the index cohort event and marker cohort.

indexMarkerGap

The maximum allowable gap between the end of the first episode and the start of the second episode in a sequence/combination.

combinationWindow

A constrain to be placed on the gap between two initiations. Default c(0,365), meaning the gap should be larger than 0 but less than or equal to 365.

movingAverageRestriction

The moving window when calculating nSR, default is 548.

Value

A table within the cdm reference.

Examples

# \donttest{
library(CohortSymmetry)
cdm <- mockCohortSymmetry()
#> Warning: ! 9 column in cdm_source do not match expected column type:
#>  `cdm_source_abbreviation` is logical but expected character
#>  `cdm_holder` is logical but expected character
#>  `source_description` is logical but expected character
#>  `source_documentation_reference` is logical but expected character
#>  `cdm_etl_reference` is logical but expected character
#>  `source_release_date` is logical but expected date
#>  `cdm_release_date` is logical but expected date
#>  `cdm_version` is numeric but expected character
#>  `vocabulary_version` is logical but expected character
#> Warning: ! 3 column in concept do not match expected column type:
#>  `concept_id` is numeric but expected integer
#>  `valid_start_date` is character but expected date
#>  `valid_end_date` is character but expected date
#> Warning: ! 1 column in vocabulary do not match expected column type:
#>  `vocabulary_concept_id` is numeric but expected integer
#> Warning: ! 5 column in concept_relationship do not match expected column type:
#>  `concept_id_1` is numeric but expected integer
#>  `concept_id_2` is numeric but expected integer
#>  `valid_start_date` is logical but expected date
#>  `valid_end_date` is logical but expected date
#>  `invalid_reason` is logical but expected character
#> Warning: ! 2 column in concept_synonym do not match expected column type:
#>  `concept_id` is numeric but expected integer
#>  `language_concept_id` is numeric but expected integer
#> Warning: ! 4 column in concept_ancestor do not match expected column type:
#>  `ancestor_concept_id` is numeric but expected integer
#>  `descendant_concept_id` is numeric but expected integer
#>  `min_levels_of_separation` is numeric but expected integer
#>  `max_levels_of_separation` is numeric but expected integer
#> Warning: ! 9 column in drug_strength do not match expected column type:
#>  `drug_concept_id` is numeric but expected integer
#>  `ingredient_concept_id` is numeric but expected integer
#>  `amount_unit_concept_id` is numeric but expected integer
#>  `numerator_unit_concept_id` is numeric but expected integer
#>  `denominator_value` is logical but expected numeric
#>  `denominator_unit_concept_id` is numeric but expected integer
#>  `box_size` is numeric but expected integer
#>  `valid_start_date` is character but expected date
#>  `valid_end_date` is character but expected date
#> Warning: There are observation period end dates after the current date: 2024-10-30
#>  The latest max observation period end date found is 2026-10-26
#> Note: method with signature ‘DBIConnection#Id’ chosen for function ‘dbExistsTable’,
#>  target signature ‘duckdb_connection#Id’.
#>  "duckdb_connection#ANY" would also be valid
#> Warning: There are observation period end dates after the current date: 2024-10-30
#>  The latest max observation period end date found is 2026-10-26
cdm <- generateSequenceCohortSet(
  cdm = cdm,
  name = "joined_cohorts",
  indexTable = "cohort_1",
  markerTable = "cohort_2"
)
 cdm$joined_cohorts
#> # Source:   table<main.joined_cohorts> [?? x 6]
#> # Database: DuckDB v1.1.1 [unknown@Linux 6.5.0-1025-azure:R 4.4.1/:memory:]
#>    cohort_definition_id subject_id cohort_start_date cohort_end_date index_date
#>                   <int>      <int> <date>            <date>          <date>    
#>  1                    5          2 2022-05-22        2022-05-31      2022-05-22
#>  2                    6          2 2022-05-22        2022-05-25      2022-05-22
#>  3                    8          4 2021-01-01        2021-05-25      2021-01-01
#>  4                    2          1 2020-04-01        2021-01-01      2020-04-01
#>  5                    3          1 2019-05-25        2020-04-01      2020-04-01
#>  6                    2          5 2019-08-01        2020-05-25      2019-08-01
#>  7                    3          5 2019-08-01        2020-02-29      2019-08-01
#>  8                    1          1 2020-04-01        2020-12-30      2020-04-01
#>  9                    1          3 2009-09-09        2010-01-01      2009-09-09
#> 10                    2          4 2021-05-25        2021-06-01      2021-06-01
#> # ℹ more rows
#> # ℹ 1 more variable: marker_date <date>
 CDMConnector::cdmDisconnect(cdm = cdm)
# }