darwin-eu-dev / omopgenerics

https://darwin-eu-dev.github.io/omopgenerics/
Apache License 2.0
2 stars 1 forks source link

bind cohorts not working with databases with current dev version #437

Closed edward-burn closed 2 months ago

edward-burn commented 2 months ago
library(omopgenerics)
#> 
#> Attaching package: 'omopgenerics'
#> The following object is masked from 'package:stats':
#> 
#>     filter
library(CDMConnector)
#> 
#> Attaching package: 'CDMConnector'
#> The following objects are masked from 'package:omopgenerics':
#> 
#>     cdmName, recordCohortAttrition, uniqueTableName
library(IncidencePrevalence)
con <- DBI::dbConnect(duckdb::duckdb(dbdir = eunomia_dir()))

cdm <- cdm_from_con(con = con, 
                    cdm_schema = "main", 
                    write_schema = "main", 
                    cdm_name = "my_duckdb_database", 
                    .soft_validation = TRUE)
cdm<- generateDenominatorCohortSet(cdm, "denom_1")
#> ℹ Creating denominator cohorts
#> ✔ Cohorts created in 0 min and 4 sec
cdm<- generateDenominatorCohortSet(cdm, "denom_2")
#> ℹ Creating denominator cohorts
#> ✔ Cohorts created in 0 min and 4 sec
attr(cdm$denom_2, "cohort_set")  <- attr(cdm$denom_2, "cohort_set") |> 
  dplyr::mutate(cohort_name = "c")
bind(cdm$denom_1,
     cdm$denom_2,
     name = "denom")
#> Error in `vec_size()`:
#> ! `x` must be a vector, not a <denominator_cohort_set/cohort_table/GeneratedCohortSet/cdm_table/tbl_duckdb_connection/tbl_dbi/tbl_sql/tbl_lazy/tbl> object.
#> Backtrace:
#>     ▆
#>  1. ├─omopgenerics::bind(cdm$denom_1, cdm$denom_2, name = "denom")
#>  2. ├─omopgenerics:::bind.cohort_table(cdm$denom_1, cdm$denom_2, name = "denom") at OMOPGenerics/R/methodBind.R:26:3
#>  3. │ └─vctrs::list_drop_empty(list(...)) at OMOPGenerics/R/methodBind.R:79:3
#>  4. └─vctrs:::stop_scalar_type(`<fn>`(`<dnmntr__[,4]>`), "x", `<fn>`(vec_size()))
#>  5.   └─vctrs:::stop_vctrs(...)
#>  6.     └─rlang::abort(message, class = c(class, "vctrs_error"), ..., call = call)

Created on 2024-08-02 with reprex v2.0.2