class: right, bottom, title-slide # Open Data Kit Quality Control Workflows ### Ernest Guevarra ### 16 November 2021 --- ### Outline * Brief overview of **ODK Central** version 1.3 data review feature * Demonstration of **ODK Central**'s data review feature - manual process - semi-automated process using R * Points to remember when using **ODK Central**'s data review feature --- ### ODK Central v1.3 and data review feature * Allows project manager/s to review submitted data from **ODK Central** and mark each row of data as either **approved**, **has issues**, or **rejected**. * When marking a submission with any of the review labels mentioned, a comment can be written to describe the reasons/basis for the label assigned. * Allows project manager/s to edit submitted data from **ODK Central** to resolve issues identified with the data submitted. * If data has been edited, project manager/s can then re-review and re-assign a review label accordingly (i.e., from **rejected** to **approved**) * creates history of edits done within **ODK Central** which can be used by project manager/s in the review process --- ### Demonstration of ODK Central data review feature - manual process * login to your **ODK Central** EHA account - only accounts of those with project manager roles will have the review features available * we will look at an example project on **anthropometric data collection for children 6-59 months old** * this will be good for quick and simple **eyeball** checks of data * more sophisticated and elaborate data checks will be too tedious and inefficient through this approach --- ### Demonstration of ODK Cenetral data review feature - semi-automated process using R * access data in R using the `{ruODK}` package * perform data quality review and checks (including more sophisticated/elaborate ones) on data using R functions for this purpose with the aim of identifying rows of data with issues * login to your **ODK Central** EHA account, go to your project and then manually mark and comment on the rows of data identified with issues --- ### Access data in R using the `{ruODK}` package ```r ## Install ruODK from GitHub remotes::install_github("ropensci/ruODK") ## Load ruODK library(ruODK) ## Setup connection with ODK Central ru_setup( svc = "https://odk.eha.io/v1/projects/1/forms/anthropometry.svc", un = "YOUR_USERNAME_HERE", pw = "YOUR_PASSWORD_HERE", tz = "GMT", odkc_version = "1.3" ) ## Retrieve test data anthro <- odata_submission_get() ## View data anthro ``` --- ### Access data in R using the `{ruODK}` package ``` ## # A tibble: 25 × 12 ## team date_survey location id age sex weight height muac oedema system_updated_… system_review_s… ## <chr> <dttm> <chr> <int> <int> <chr> <dbl> <dbl> <int> <chr> <chr> <chr> ## 1 1 2021-11-19 00:00:00 1 21 48 1 13.8 98 154 2 2021-11-16T19:4… hasIssues ## 2 1 2021-11-18 00:00:00 1 23 36 2 13.9 95.5 148 2 2021-11-16T19:5… hasIssues ## 3 1 2021-11-16 00:00:00 1 9 13 1 8.3 73 136 2 <NA> <NA> ## 4 1 2021-11-16 00:00:00 1 8 13 1 8.1 999 124 2 <NA> <NA> ## 5 1 2021-11-16 00:00:00 1 7 24 2 8 74.2 144 2 <NA> <NA> ## 6 1 2021-11-16 00:00:00 1 6 18 2 7.7 70.6 130 2 <NA> <NA> ## 7 1 2021-11-16 00:00:00 1 5 15 1 7.4 70 124 2 <NA> <NA> ## 8 1 2021-11-16 00:00:00 1 4 15 1 7.2 75.4 130 2 <NA> <NA> ## 9 1 2021-11-16 00:00:00 1 3 15 1 7.1 67.5 124 2 <NA> <NA> ## 10 1 2021-11-16 00:00:00 1 25 36 1 14.2 95.6 152 2 <NA> <NA> ## # … with 15 more rows ``` --- background-image: url() background-color: #FFFFFF ### Perform data quality review/checks ```r ## Load anthropometric z-score calculator library and data checking library library(zscorer) library(nutricheckr) library(dplyr) ## Calculate anthropometric z-scores anthro_zscores <- anthro %>% mutate(age_days = anthropometry_age * (365.25 / 12)) %>% addWGSR( sex = "anthropometry_sex", firstPart = "anthropometry_weight", secondPart = "age_days", index = "wfa" ) %>% addWGSR( sex = "anthropometry_sex", firstPart = "anthropometry_height", secondPart = "age_days", index = "hfa" ) %>% addWGSR( sex = "anthropometry_sex", firstPart = "anthropometry_weight", secondPart = "anthropometry_height", index = "wfh" ) ## View output anthro_zscores ``` --- ### Perform data quality review/checks ``` ## ==================================================================================================================== ## ==================================================================================================================== ## ==================================================================================================================== ``` <table class="table table-condensed" style="font-size: 12px; font-family: Arial Narrow; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> team </th> <th style="text-align:left;"> date_survey </th> <th style="text-align:left;"> location </th> <th style="text-align:right;"> id </th> <th style="text-align:right;"> age </th> <th style="text-align:left;"> sex </th> <th style="text-align:right;"> weight </th> <th style="text-align:right;"> height </th> <th style="text-align:right;"> muac </th> <th style="text-align:left;"> oedema </th> <th style="text-align:left;"> system_updated_at </th> <th style="text-align:left;"> system_review_state </th> <th style="text-align:right;"> age_days </th> <th style="text-align:right;"> wfaz </th> <th style="text-align:right;"> hfaz </th> <th style="text-align:right;"> wfhz </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-19 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 21 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.8 </td> <td style="text-align:right;"> 98.0 </td> <td style="text-align:right;"> 154 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T19:44:20.846Z </td> <td style="text-align:left;"> hasIssues </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.34 </td> <td style="text-align:right;"> -1.27 </td> <td style="text-align:right;"> -0.88 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-18 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 23 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.9 </td> <td style="text-align:right;"> 95.5 </td> <td style="text-align:right;"> 148 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T19:53:30.096Z </td> <td style="text-align:left;"> hasIssues </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> 0.03 </td> <td style="text-align:right;"> 0.12 </td> <td style="text-align:right;"> -0.09 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8.3 </td> <td style="text-align:right;"> 73.0 </td> <td style="text-align:right;"> 136 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -1.58 </td> <td style="text-align:right;"> -1.62 </td> <td style="text-align:right;"> -1.11 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8.1 </td> <td style="text-align:right;"> 999.0 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -1.80 </td> <td style="text-align:right;"> 380.02 </td> <td style="text-align:right;"> NA </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 8.0 </td> <td style="text-align:right;"> 74.2 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -3.07 </td> <td style="text-align:right;"> -3.78 </td> <td style="text-align:right;"> -1.33 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> 18 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 7.7 </td> <td style="text-align:right;"> 70.6 </td> <td style="text-align:right;"> 130 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 547.8750 </td> <td style="text-align:right;"> -2.40 </td> <td style="text-align:right;"> -3.48 </td> <td style="text-align:right;"> -0.82 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.4 </td> <td style="text-align:right;"> 70.0 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.00 </td> <td style="text-align:right;"> -3.62 </td> <td style="text-align:right;"> -1.61 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.2 </td> <td style="text-align:right;"> 75.4 </td> <td style="text-align:right;"> 130 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.23 </td> <td style="text-align:right;"> -1.49 </td> <td style="text-align:right;"> -3.57 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.1 </td> <td style="text-align:right;"> 67.5 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.34 </td> <td style="text-align:right;"> -4.61 </td> <td style="text-align:right;"> -1.25 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 25 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14.2 </td> <td style="text-align:right;"> 95.6 </td> <td style="text-align:right;"> 152 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.08 </td> <td style="text-align:right;"> -0.13 </td> <td style="text-align:right;"> 0.00 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14.0 </td> <td style="text-align:right;"> 96.5 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.20 </td> <td style="text-align:right;"> 0.11 </td> <td style="text-align:right;"> -0.37 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.4 </td> <td style="text-align:right;"> 99.7 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.58 </td> <td style="text-align:right;"> -0.86 </td> <td style="text-align:right;"> -1.63 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 6.4 </td> <td style="text-align:right;"> 70.4 </td> <td style="text-align:right;"> 116 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -3.04 </td> <td style="text-align:right;"> -1.84 </td> <td style="text-align:right;"> -2.93 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 19 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.3 </td> <td style="text-align:right;"> 97.2 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.63 </td> <td style="text-align:right;"> 0.30 </td> <td style="text-align:right;"> -1.17 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 18 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.3 </td> <td style="text-align:right;"> 96.3 </td> <td style="text-align:right;"> 160 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.41 </td> <td style="text-align:right;"> -1.49 </td> <td style="text-align:right;"> -0.76 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 17 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.6 </td> <td style="text-align:right;"> 96.0 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -2.07 </td> <td style="text-align:right;"> -1.75 </td> <td style="text-align:right;"> -1.60 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 16 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.5 </td> <td style="text-align:right;"> 88.2 </td> <td style="text-align:right;"> 146 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -2.14 </td> <td style="text-align:right;"> -3.61 </td> <td style="text-align:right;"> 0.04 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.3 </td> <td style="text-align:right;"> 79.7 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -1.28 </td> <td style="text-align:right;"> -4.42 </td> <td style="text-align:right;"> 1.97 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14 </td> <td style="text-align:right;"> 26 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 10.9 </td> <td style="text-align:right;"> 85.6 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 791.3750 </td> <td style="text-align:right;"> -0.71 </td> <td style="text-align:right;"> -0.55 </td> <td style="text-align:right;"> -0.48 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 10.5 </td> <td style="text-align:right;"> 86.5 </td> <td style="text-align:right;"> 138 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -2.60 </td> <td style="text-align:right;"> -2.59 </td> <td style="text-align:right;"> -1.54 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9.9 </td> <td style="text-align:right;"> 80.2 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -1.79 </td> <td style="text-align:right;"> -2.49 </td> <td style="text-align:right;"> -0.70 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 11 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9.6 </td> <td style="text-align:right;"> 81.0 </td> <td style="text-align:right;"> 146 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -2.06 </td> <td style="text-align:right;"> -2.23 </td> <td style="text-align:right;"> -1.26 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 9.0 </td> <td style="text-align:right;"> 79.4 </td> <td style="text-align:right;"> 136 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -2.03 </td> <td style="text-align:right;"> -2.17 </td> <td style="text-align:right;"> -1.17 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 6.1 </td> <td style="text-align:right;"> 82.5 </td> <td style="text-align:right;"> 127 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T21:47:58.383Z </td> <td style="text-align:left;"> rejected </td> <td style="text-align:right;"> 608.7500 </td> <td style="text-align:right;"> -4.54 </td> <td style="text-align:right;"> -0.07 </td> <td style="text-align:right;"> -6.03 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 22 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.8 </td> <td style="text-align:right;"> 103.4 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.13 </td> <td style="text-align:right;"> 0.16 </td> <td style="text-align:right;"> -1.84 </td> </tr> </tbody> </table> --- ### Perform data quality review/checks ```r ## Flag z-scores anthro_flags <- anthro_zscores %>% flag_who(hlaz = "hfaz", waz = "wfaz", whlz = "wfhz") anthro_flags ``` <table class="table table-condensed" style="font-size: 12px; font-family: Arial Narrow; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> team </th> <th style="text-align:left;"> date_survey </th> <th style="text-align:left;"> location </th> <th style="text-align:right;"> id </th> <th style="text-align:right;"> age </th> <th style="text-align:left;"> sex </th> <th style="text-align:right;"> weight </th> <th style="text-align:right;"> height </th> <th style="text-align:right;"> muac </th> <th style="text-align:left;"> oedema </th> <th style="text-align:left;"> system_updated_at </th> <th style="text-align:left;"> system_review_state </th> <th style="text-align:right;"> age_days </th> <th style="text-align:right;"> wfaz </th> <th style="text-align:right;"> hfaz </th> <th style="text-align:right;"> wfhz </th> <th style="text-align:right;"> flag </th> <th style="text-align:left;"> flag_description </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-19 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 21 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.8 </td> <td style="text-align:right;"> 98.0 </td> <td style="text-align:right;"> 154 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T19:44:20.846Z </td> <td style="text-align:left;"> hasIssues </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.34 </td> <td style="text-align:right;"> -1.27 </td> <td style="text-align:right;"> -0.88 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-18 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 23 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.9 </td> <td style="text-align:right;"> 95.5 </td> <td style="text-align:right;"> 148 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T19:53:30.096Z </td> <td style="text-align:left;"> hasIssues </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> 0.03 </td> <td style="text-align:right;"> 0.12 </td> <td style="text-align:right;"> -0.09 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8.3 </td> <td style="text-align:right;"> 73.0 </td> <td style="text-align:right;"> 136 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -1.58 </td> <td style="text-align:right;"> -1.62 </td> <td style="text-align:right;"> -1.11 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 8.1 </td> <td style="text-align:right;"> 999.0 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -1.80 </td> <td style="text-align:right;"> 380.02 </td> <td style="text-align:right;"> NA </td> <td style="text-align:right;"> NA </td> <td style="text-align:left;"> </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 8.0 </td> <td style="text-align:right;"> 74.2 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -3.07 </td> <td style="text-align:right;"> -3.78 </td> <td style="text-align:right;"> -1.33 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> 18 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 7.7 </td> <td style="text-align:right;"> 70.6 </td> <td style="text-align:right;"> 130 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 547.8750 </td> <td style="text-align:right;"> -2.40 </td> <td style="text-align:right;"> -3.48 </td> <td style="text-align:right;"> -0.82 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.4 </td> <td style="text-align:right;"> 70.0 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.00 </td> <td style="text-align:right;"> -3.62 </td> <td style="text-align:right;"> -1.61 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.2 </td> <td style="text-align:right;"> 75.4 </td> <td style="text-align:right;"> 130 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.23 </td> <td style="text-align:right;"> -1.49 </td> <td style="text-align:right;"> -3.57 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 7.1 </td> <td style="text-align:right;"> 67.5 </td> <td style="text-align:right;"> 124 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 456.5625 </td> <td style="text-align:right;"> -3.34 </td> <td style="text-align:right;"> -4.61 </td> <td style="text-align:right;"> -1.25 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 25 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14.2 </td> <td style="text-align:right;"> 95.6 </td> <td style="text-align:right;"> 152 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.08 </td> <td style="text-align:right;"> -0.13 </td> <td style="text-align:right;"> 0.00 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14.0 </td> <td style="text-align:right;"> 96.5 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.20 </td> <td style="text-align:right;"> 0.11 </td> <td style="text-align:right;"> -0.37 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.4 </td> <td style="text-align:right;"> 99.7 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.58 </td> <td style="text-align:right;"> -0.86 </td> <td style="text-align:right;"> -1.63 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 6.4 </td> <td style="text-align:right;"> 70.4 </td> <td style="text-align:right;"> 116 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 395.6875 </td> <td style="text-align:right;"> -3.04 </td> <td style="text-align:right;"> -1.84 </td> <td style="text-align:right;"> -2.93 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 19 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13.3 </td> <td style="text-align:right;"> 97.2 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -0.63 </td> <td style="text-align:right;"> 0.30 </td> <td style="text-align:right;"> -1.17 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 18 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.3 </td> <td style="text-align:right;"> 96.3 </td> <td style="text-align:right;"> 160 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.41 </td> <td style="text-align:right;"> -1.49 </td> <td style="text-align:right;"> -0.76 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 17 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.6 </td> <td style="text-align:right;"> 96.0 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -2.07 </td> <td style="text-align:right;"> -1.75 </td> <td style="text-align:right;"> -1.60 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 16 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.5 </td> <td style="text-align:right;"> 88.2 </td> <td style="text-align:right;"> 146 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -2.14 </td> <td style="text-align:right;"> -3.61 </td> <td style="text-align:right;"> 0.04 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 15 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12.3 </td> <td style="text-align:right;"> 79.7 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -1.28 </td> <td style="text-align:right;"> -4.42 </td> <td style="text-align:right;"> 1.97 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 14 </td> <td style="text-align:right;"> 26 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 10.9 </td> <td style="text-align:right;"> 85.6 </td> <td style="text-align:right;"> 144 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 791.3750 </td> <td style="text-align:right;"> -0.71 </td> <td style="text-align:right;"> -0.55 </td> <td style="text-align:right;"> -0.48 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 13 </td> <td style="text-align:right;"> 36 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 10.5 </td> <td style="text-align:right;"> 86.5 </td> <td style="text-align:right;"> 138 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1095.7500 </td> <td style="text-align:right;"> -2.60 </td> <td style="text-align:right;"> -2.59 </td> <td style="text-align:right;"> -1.54 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 12 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9.9 </td> <td style="text-align:right;"> 80.2 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -1.79 </td> <td style="text-align:right;"> -2.49 </td> <td style="text-align:right;"> -0.70 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 11 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 9.6 </td> <td style="text-align:right;"> 81.0 </td> <td style="text-align:right;"> 146 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -2.06 </td> <td style="text-align:right;"> -2.23 </td> <td style="text-align:right;"> -1.26 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> 24 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 9.0 </td> <td style="text-align:right;"> 79.4 </td> <td style="text-align:right;"> 136 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 730.5000 </td> <td style="text-align:right;"> -2.03 </td> <td style="text-align:right;"> -2.17 </td> <td style="text-align:right;"> -1.17 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 6.1 </td> <td style="text-align:right;"> 82.5 </td> <td style="text-align:right;"> 127 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T21:47:58.383Z </td> <td style="text-align:left;"> rejected </td> <td style="text-align:right;"> 608.7500 </td> <td style="text-align:right;"> -4.54 </td> <td style="text-align:right;"> -0.07 </td> <td style="text-align:right;"> -6.03 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> Check weight and height measurements </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-13 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 22 </td> <td style="text-align:right;"> 48 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 13.8 </td> <td style="text-align:right;"> 103.4 </td> <td style="text-align:right;"> 142 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> NA </td> <td style="text-align:left;"> NA </td> <td style="text-align:right;"> 1461.0000 </td> <td style="text-align:right;"> -1.13 </td> <td style="text-align:right;"> 0.16 </td> <td style="text-align:right;"> -1.84 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> No flagged measurements </td> </tr> </tbody> </table> --- ### Perform data quality review/checks ```r ## Subset anthropometric data to flagged rows anthro_for_checking <- anthro_flags %>% filter(flag != 0) anthro_for_checking ``` <table class="table table-condensed" style="font-size: 12px; font-family: Arial Narrow; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> team </th> <th style="text-align:left;"> date_survey </th> <th style="text-align:left;"> location </th> <th style="text-align:right;"> id </th> <th style="text-align:right;"> age </th> <th style="text-align:left;"> sex </th> <th style="text-align:right;"> weight </th> <th style="text-align:right;"> height </th> <th style="text-align:right;"> muac </th> <th style="text-align:left;"> oedema </th> <th style="text-align:left;"> system_updated_at </th> <th style="text-align:left;"> system_review_state </th> <th style="text-align:right;"> age_days </th> <th style="text-align:right;"> wfaz </th> <th style="text-align:right;"> hfaz </th> <th style="text-align:right;"> wfhz </th> <th style="text-align:right;"> flag </th> <th style="text-align:left;"> flag_description </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:left;"> 2021-11-16 </td> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 20 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 6.1 </td> <td style="text-align:right;"> 82.5 </td> <td style="text-align:right;"> 127 </td> <td style="text-align:left;"> 2 </td> <td style="text-align:left;"> 2021-11-16T21:47:58.383Z </td> <td style="text-align:left;"> rejected </td> <td style="text-align:right;"> 608.75 </td> <td style="text-align:right;"> -4.54 </td> <td style="text-align:right;"> -0.07 </td> <td style="text-align:right;"> -6.03 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> Check weight and height measurements </td> </tr> </tbody> </table> --- class: center, middle # Questions? --- class: center, middle # Thank you! Slides can be viewed at https://ecohealthalliance.github.io/odk_quality_control or PDF version downloaded at https://ecohealthalliance.github.io/odk_quality_control/odk_quality_control.pdf R scripts for slides available at https://github.com/ecohealthalliance/odk_quality_control R script demonstrating how to access data from **ODK Central** using `{ruODK}` package at https://github.com/ecohealthalliance/odk_quality_control/blob/main/odk_quality_control.R