Comprueba que un ViewDefinition cumpla la estructura de SQL on FHIR antes
de ejecutarlo:
Arguments
- vista
Un
ViewDefinitionen cualquier forma que aceptevista_leer().
Value
La vista, de forma invisible, si es válida. Si no, un error de
clase fhirviews_error_vista con la lista de problemas encontrados.
Details
tiene
resourcey al menos unselect;cada
selectusa solo los elementos permitidos y como mucho uno deforEach,forEachOrNullyrepeat;cada columna tiene
nameypath; los nombres son válidos en SQL (empiezan con una letra y solo usan letras, números y_) y no se repiten;los
selectde ununionAllproducen las mismas columnas, en el mismo orden;column,selectyunionAll, si aparecen, tienen al menos un elemento;cada constante tiene nombre y un solo valor (
valueString,valueInteger, etc.), y su nombre no es una variable reservada de FHIRPath o del motor (resource,rootResource,context,rowIndex,ucum,sct,loinc...);todas las expresiones FHIRPath se pueden compilar.
Examples
vista_validar(vista_crear("Patient", c(sexo = "gender")))
mala <- list(resource = "Patient",
select = list(list(column = list(
list(name = "1id", path = "id"),
list(name = "sexo", path = "gender.(")))))
try(vista_validar(mala))
#> Error : El ViewDefinition no es válido.
#> ✖ El nombre de columna "1id" (select[1].column[1]) no es válido: debe empezar
#> con una letra y usar solo letras, números y _.
#> ✖ La expresión de select[1].column[2].path no es válida: `gender.(`.
