OHDSI / omock

https://ohdsi.github.io/omock/
Apache License 2.0
2 stars 1 forks source link

birth data from character to numeric #48

Closed nmercadeb closed 5 months ago

nmercadeb commented 6 months ago

With the new version of duckdb (0.10.1) the following code fails because year, month and day of birth are character instead of numeric

cdm_local <- omock::mockCdmReference() |>
  omock::mockPerson(n = 10) |>
  omock::mockObservationPeriod() |>
  omock::mockCohort()

cdm <- CDMConnector::copy_cdm_to(con = DBI::dbConnect(duckdb::duckdb(), ":memory:"),
                                 cdm = cdm_local,
                                 schema = "main")

cdm$cohort |> PatientProfiles::addDemographics()
ilovemane commented 5 months ago

It seem I still get error after I changed it to numeric....

 Error in `CDMConnector::datediff()`:
! No known SQL translation
Run `rlang::last_trace()` to see where the error occurred.
Called from: signal_abort(cnd, .file)
nmercadeb commented 5 months ago

The following code is working well for me (with PatientProfiles 0.8.0 from cran):

cdm_local <- omock::mockCdmReference() |>
  omock::mockPerson(n = 10) |>
  omock::mockObservationPeriod() |>
  omock::mockCohort()
cdm_local$person <- cdm_local$person |>
  dplyr::mutate(dplyr::across(dplyr::ends_with("of_birth"), ~ as.numeric(.x)))
cdm <- CDMConnector::copy_cdm_to(con = DBI::dbConnect(duckdb::duckdb(), ":memory:"),
                                 cdm = cdm_local,
                                 schema = "main")

cdm$cohort |> PatientProfiles::addDemographics()