Inspects table and column availability across connected servers. In
"intersection" mode the default strict policy rejects a plan whose
requested tables, compatible column types, implicit feature dependencies,
or output source contracts are not common to every server. With
strict = FALSE, only semantics-preserving column intersections are
attempted; an output is removed when its required dependencies are absent.
Population/cohort dependencies always fail closed. The returned plan is
bound to the compared servers and relevant schema snapshot and is rechecked
by validate, preview, and execute. No unsupported strategy or output type is
accepted silently.
Usage
ds.omop.plan.harmonize(
plan,
mode = "intersection",
strict = TRUE,
symbol = "omop",
conns = NULL
)Arguments
- plan
An
omop_planobject.- mode
Character; harmonization strategy. Only
"intersection"is currently executable. The former"union_with_missing"placeholder is rejected until typed missing columns can be synthesized consistently on every backend.- strict
Logical; fail when any requested dependency is not common (default). If false, trim raw optional columns/tables or remove whole incompatible outputs with explicit warnings; population semantics are never weakened.
- symbol
Character; name of the OMOP session symbol on the server (default
"omop").- conns
DSI connection object(s). If
NULL, uses the connections stored in the session.
Examples
if (FALSE) { # \dontrun{
plan <- ds.omop.plan()
plan <- ds.omop.plan.person_level(plan,
tables = list(person = c("gender_concept_id"),
measurement = c("value_as_number")))
plan <- ds.omop.plan.harmonize(plan, mode = "intersection")
} # }