Skip to contents

[Maturing]

Tek inn eit valideringsdatasett og returnerer TRUE eller FALSE dersom det er høvesvis gyldig eller ugyldig.

Usage

er_valideringsdatasett_gyldig(d_vld)

Arguments

d_vld

Valideringsdatasett (dataramme/tibble).

Value

TRUE dersom datasettet er gyldig og FALSE dersom det ikkje er det.

Details

Eit gyldig valideringsdatasett består av éin eller fleire indeksvariablar, variablane vld_varnamn og vld_vartype og to eller fleire verdivariablar.

Eksempel på indeksvariablar er pasient- og/eller forløps-ID pluss ekstra metadata som kjønn, sjukehus og operasjonstype. Saman med vld_varnamn skal indeksvariablane unikt identifisera ei rad (observasjonen som skal validerast).

Variabelen vld_varnamn inneheld namnet på variabelen som rada inneheld valideringsdata for, mens vld_vartype seier kva type variabel det er, for eksempel tal, tekst eller dato. Ein kan fritt velja kva verdiar ein brukar for vld_vartype (for eksempel "tal", "tall", "heiltal" eller "int32"), men verdien må starta med ein bokstav og berre innehalda bokstavar, understrek og/eller siffer.

For kvar unike vld_vartype skal det finnast verdivariablar – variablar med prefiksa vld_verdi_intern_ og vld_verdi_ekstern_. Viss for eksempel ein vld_vartype er "tal", skal det finnast verdivariablar vld_verdi_intern_tal og vld_verdi_ekstern_tal. Den første seier kva verdi variabelen i vld_varnamn har i den interne kjelda, som typisk er eit kvalitetsregister, og den andre seier kva verdi han har i den eksterne kjelda, som typisk er ein pasientjournal eller eit anna fagsystem. Dei to variablane skal naturlegvis ha tilsvarande variabeltype som vld_vartype, for "tal" for eksempel' double eller integer.

Det skal ikkje finnast andre kolonnar som startar med vld_ enn dei som er nemnde ovanfor (vld_ er eit reservert prefiks).

Examples

library(tibble)

# Eksempel på gyldig valideringsdatasett med to ulike variabeltypar,
# "tal" («double») og "logisk" («logical»). Merk at variabelen «vekt»
# har to verdiar for same pasient, men det er OK, sidan det var på to
# ulike operasjonsdatoar.
d_vld_gyldig = tibble(
  pasient_id = c(5, 5, 5, 7),
  dato_operasjon = as.Date(c("2020-06-07", "2020-12-13", "2020-12-13", "2021-02-05")),
  kjonn = c("mann", "mann", "mann", "kvinne"),
  sjukehus = c("Bergen", "Bergen", "Førde", "Stavanger"),
  vld_varnamn = c("vekt", "vekt", "diabetes", "diabetes"),
  vld_vartype = c("tal", "tal", "logisk", "logisk"),
  vld_verdi_intern_tal = c(78, 88, NA, NA),
  vld_verdi_ekstern_tal = c(78, 90, NA, NA),
  vld_verdi_intern_logisk = c(NA, NA, TRUE, FALSE),
  vld_verdi_ekstern_logisk = c(NA, NA, TRUE, NA)
)

er_valideringsdatasett_gyldig(d_vld_gyldig) # TRUE
#> [1] TRUE

# Eksempel på ugyldig valideringsdatasett, der indeksvariablane
# pluss «vld_varnamn» ikkje unikt identifiserer ei rad.
d_vld_ugyldig = d_vld_gyldig
d_vld_ugyldig$dato_operasjon[2] = d_vld_ugyldig$dato_operasjon[1]

er_valideringsdatasett_gyldig(d_vld_ugyldig) # FALSE
#> [1] FALSE