Nothing
getTestData <- function(ingredientId) {
drug_exposure <- tibble::tibble(
drug_exposure_id = c("1", "2", "3", "4", "5"),
drug_concept_id = c(ingredientId, "40162522", "1127078", "1127433", "40229134"),
person_id = c("1", "2", "3", "4", "5"),
drug_type_concept_id = c("1", "2", "3", "4", "5"),
route_concept_id = c("1", "2", "3", "4", "5"),
lot_number = c("1", "2", "3", "4", "5"),
provider_id = c("1", "2", "3", "4", "5"),
visit_occurrence_id = c("1", "2", "3", "4", "5"),
visit_detail_id = c("1", "2", "3", "4", "5"),
drug_source_value = c("1", "2", "3", "4", "5"),
drug_source_concept_id = c("1", "2", "3", "4", "5"),
route_source_value = c("1", "2", "3", "4", "5"),
dose_unit_source_value = c("1", "2", "3", "4", "5"),
drug_exposure_start_date = c(
as.Date("2010-01-01"), as.Date("2011-01-01"),
as.Date("2012-01-01"), NA,
as.Date("2013-01-01")
),
drug_exposure_end_date = c(
as.Date("2011-01-01"), NA,
as.Date("2013-01-01"), as.Date("2010-01-01"),
as.Date("2014-01-01")
),
verbatim_end_date = c(
as.Date("2011-01-01"), NA,
as.Date("2013-01-01"), as.Date("2010-01-01"),
as.Date("2014-01-01")
),
days_supply = c(NA, NA, NA, NA, 366),
quantity = c(10, 20, 30, 40, 50),
stop_reason = rep("", 5),
refills = rep(1, 5),
sig = rep("", 5)
)
concept <- dplyr::tibble(
concept_id = c(as.numeric(ingredientId), 40162522, 1127078, 1127433, 40229134, 19133768),
concept_name = c("ingredient1", "drug2", "drug3", "drug4", "drug5", "milligram"),
concept_code = c(161, 313782, 833036, 1049221, 1043400, 857005),
domain_id = paste0("Drug", seq(6)),
vocabulary_id = c(rep("RxNorm", 5), "Unit"),
standard_concept = "S",
concept_class_id = rep("Ingredient", 6),
valid_start_date = c(rep(as.Date("1970-01-01"), 6)),
valid_end_date = c(rep(as.Date("2099-12-31"), 6)),
)
cdm <- mockDrugExposure(drug_exposure = drug_exposure, concept = concept)
cdm[["ingredient_concepts"]] <- ingredientDescendantsInDb(cdm = cdm, ingredient = ingredientId, drugRecordsTable = "drug_exposure")
return(cdm)
}
test_that("getDrugRecords", {
ingredientId <- 1125315
cdm <- getTestData(ingredientId)
result <- getDrugRecords(cdm = cdm, ingredient = ingredientId, includedConceptsTable = "ingredient_concepts") %>%
dplyr::collect()
expect_equal(nrow(result), 4)
expect_equal(ncol(result), 24)
expect_equal(colnames(result), c(
"drug_exposure_id", "drug_concept_id", "person_id",
"drug_type_concept_id", "route_concept_id",
"lot_number", "provider_id", "visit_occurrence_id",
"visit_detail_id", "drug_source_value", "drug_source_concept_id",
"route_source_value", "dose_unit_source_value", "drug_exposure_start_date",
"drug_exposure_end_date", "verbatim_end_date", "days_supply",
"quantity", "stop_reason", "refills", "sig", "drug", "ingredient_concept_id",
"ingredient"
))
# non exising ingredient should deliver no results
result <- getDrugRecords(cdm = cdm, ingredient = 123456, includedConceptsTable = "ingredient_concepts") %>%
dplyr::collect()
expect_equal(nrow(result), 0)
DBI::dbDisconnect(attr(cdm, "dbcon"), shutdown = TRUE)
})
test_that("getDrugRecords invalid inputs", {
ingredientId <- "1125315"
cdm <- getTestData(ingredientId)
expect_error(getDrugRecords(cdm = NULL, ingredient = ingredientId, includedConceptsTable = "ingredient_concepts"))
expect_error(getDrugRecords(cdm = cdm, ingredient = NULL, includedConceptsTable = "ingredient_concepts"))
expect_error(getDrugRecords(cdm = cdm, ingredient = ingredientId, includedConceptsTable = "ingredient_concepts_none"))
DBI::dbDisconnect(attr(cdm, "dbcon"), shutdown = TRUE)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.