library(testthat)
library(FeatureExtraction)
library(dplyr)
test_that("Postcoordinated concepts on Eunomia", {
skip_if_not(dbms == "sqlite" && exists("eunomiaConnection"))
# eunomiaConnection <- DatabaseConnector::connect(Eunomia::getEunomiaConnectionDetails())
cohort <- data.frame(
cohortDefinitionId = c(1, 1, 1, 1),
cohortStartDate = as.Date(c("2000-02-01", "2000-08-01", "2000-02-01", "2000-01-02")),
cohortEndDate = as.Date(c("2000-02-14", "2000-09-14", "2000-02-01", "2000-01-02")),
subjectId = c(1, 2, 3, 4)
)
DatabaseConnector::insertTable(
connection = eunomiaConnection,
tableName = "#pcc_cohort",
data = cohort,
dropTableIfExists = TRUE,
tempTable = TRUE,
createTable = TRUE,
progressBar = FALSE,
camelCaseToSnakeCase = TRUE
)
measurement <- data.frame(
measurementId = c(0, 0, 0, 0),
measurementTypeConceptId = c(0, 0, 0, 0),
personId = c(1, 1, 3, 4),
measurementConceptId = c(3000963, 3000963, 3000963, 3000963),
valueAsConceptId = c(4083207, 4084765, 4084765, 4084765),
measurementDate = as.Date(c("2000-01-14", "2000-01-01", "2000-01-14", "2000-01-01"))
)
DatabaseConnector::insertTable(
connection = eunomiaConnection,
tableName = "measurement",
databaseSchema = "main",
data = measurement,
dropTableIfExists = FALSE,
tempTable = FALSE,
createTable = FALSE,
progressBar = FALSE,
camelCaseToSnakeCase = TRUE
)
settings <- createCovariateSettings(
useMeasurementValueAsConceptShortTerm = TRUE,
shortTermStartDays = -30
)
covariateData <- getDbCovariateData(
connection = eunomiaConnection,
cdmDatabaseSchema = "main",
cohortTable = "#pcc_cohort",
cohortTableIsTemp = TRUE,
covariateSettings = settings
)
covariates <- covariateData$covariates %>%
collect() %>%
arrange(rowId)
expect_equal(covariates$rowId, c(1, 3, 4))
expect_equal(covariates$covariateId, c(583329995308716, 583329563103716, 583329563103716))
expect_equal(covariates$covariateValue, c(1, 1, 1))
covariateRef <- covariateData$covariateRef %>%
collect() %>%
arrange(covariateId)
expect_equal(covariateRef$covariateId, c(583329563103716, 583329995308716))
expect_equal(covariateRef$conceptId, c(3000963, 3000963))
expect_equal(covariateRef$valueAsConceptId, c(4084765, 4083207))
analysisRef <- covariateData$analysisRef %>%
collect()
expect_equal(analysisRef$analysisId, 716)
# Introduce collisions
measurement <- data.frame(
measurementId = c(0, 0, 0, 0),
measurementTypeConceptId = c(0, 0, 0, 0),
personId = c(1, 1, 3, 4),
measurementConceptId = c(3048564, 3048564, 40483078, 40483078),
valueAsConceptId = c(4069590, 4069590, 4069590, 4069590),
measurementDate = as.Date(c("2000-01-14", "2000-01-01", "2000-01-14", "2000-01-01"))
)
DatabaseConnector::insertTable(
connection = eunomiaConnection,
tableName = "measurement",
databaseSchema = "main",
data = measurement,
dropTableIfExists = FALSE,
tempTable = FALSE,
createTable = FALSE,
progressBar = FALSE,
camelCaseToSnakeCase = TRUE
)
settings <- createCovariateSettings(
useMeasurementValueAsConceptShortTerm = TRUE,
shortTermStartDays = -30
)
expect_warning(
{
covariateData <- getDbCovariateData(
connection = eunomiaConnection,
cdmDatabaseSchema = "main",
cohortTable = "#pcc_cohort",
cohortTableIsTemp = TRUE,
covariateSettings = settings
)
},
"Collisions"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.