From aa59ba60f49996b8ebcad759f18ca873de985453 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Tue, 5 Feb 2019 11:33:04 -0800 Subject: [PATCH 1/9] add link between column and field in metadata. fix #113 --- R/settingsMetadata.R | 1 + data-raw/settingsMetadata.csv | 52 +++++++++++++++++----------------- data/settingsMetadata.rda | Bin 1948 -> 1968 bytes man/settingsMetadata.Rd | 1 + 4 files changed, 28 insertions(+), 26 deletions(-) diff --git a/R/settingsMetadata.R b/R/settingsMetadata.R index 5f395407..3e07bf21 100644 --- a/R/settingsMetadata.R +++ b/R/settingsMetadata.R @@ -14,6 +14,7 @@ #' \item{column_type}{Expected type for the data column values. Should be "character","logical" or "numeric"} #' \item{column_required}{Flag indicating whether the associated data column should be considered required} #' \item{field_mapping}{Flag indicating whether the setting corresponds to a field-level mapping in the data} +#' \item{field_column_key}{Key for the column that provides options for the field-level mapping in the data} #' \item{adam}{Settings values for the ADaM standard} #' \item{sdtm}{Settings values for the SDTM standard} #' } diff --git a/data-raw/settingsMetadata.csv b/data-raw/settingsMetadata.csv index 3ac67a28..a8a5a843 100644 --- a/data-raw/settingsMetadata.csv +++ b/data-raw/settingsMetadata.csv @@ -1,26 +1,26 @@ -chart_edish,text_key,label,description,setting_type,setting_required,column_mapping,column_type,column_required,field_mapping,adam,sdtm -TRUE,id_col,ID column,Unique subject identifier variable name.,character,TRUE,TRUE,character,TRUE,FALSE,USUBJID,USUBJID -TRUE,value_col,Value column,Lab result variable name.,character,TRUE,TRUE,numeric,TRUE,FALSE,AVAL,STRESN -TRUE,measure_col,Measure column,Lab measure variable name,character,TRUE,TRUE,character,TRUE,FALSE,PARAM,TEST -TRUE,normal_col_low,Lower Limit of Normal column,Lower limit of normal variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,A1LO,STNRLO -TRUE,normal_col_high,Upper Limit of Normal column,Upper limit of normal variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,A1HI,STNRHI -TRUE,studyday_col,Study Day column,Visit day variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,ADY,DY -TRUE,visit_col,Visit column,Visit variable name,character,FALSE,TRUE,character,FALSE,FALSE,VISIT,VISIT -TRUE,visitn_col,Visit Number column,Visit number variable name,character,FALSE,TRUE,numeric,FALSE,FALSE,VISITNUM,VISITNUM -TRUE,filters,Filters columns,"An optional list of specifications for filters. Each filter is a nested, named list (containing the filter value column: 'value_col' and associated label: 'label') within the larger list.",vector,FALSE,TRUE,NA,FALSE,FALSE,, -TRUE,group_cols,Group columns,"An optional list of specifications for grouping columns. Each group column is a nested, named list (containing the group variable column: 'value_col' and associated label: 'label') within the larger list. ",vector,FALSE,TRUE,NA,FALSE,FALSE,, -TRUE,measure_values--ALT,Alanine Aminotransferase value,Value used for Alanine Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,Alanine Aminotransferase (U/L),"Aminotransferase, alanine (ALT)" -TRUE,measure_values--AST,Aspartate Aminotransferase value,Value used for Aspartate Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,Aspartate Aminotransferase (U/L),"Aminotransferase, aspartate (AST)" -TRUE,measure_values--TB,Total Bilirubin value,Value used for Total Bilirubin in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,Bilirubin (umol/L),Total Bilirubin -TRUE,measure_values--ALP,Alkaline Phosphatase value,Value used for Alkaline Phosphatase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,Alkaline Phosphatase (U/L),Alkaline phosphatase (ALP) -TRUE,baseline--value_col,Baseline column,An optional list defining which column represent the baseline visit(s) of the study.,character,FALSE,TRUE,NA,FALSE,FALSE,, -TRUE,baseline--values,Baseline values,An optional list defining which values (one or more) represent the baseline visit(s) of the study.,vector,FALSE,FALSE,NA,NA,TRUE,, -TRUE,analysisFlag--value_col,Analysis Flag column,An optional list defining which column should be used in eDish and mDish analyses.,character,FALSE,TRUE,NA,FALSE,FALSE,, -TRUE,analysisFlag--values,Analysis Flag values,An optional list defining which values should be used in eDish and mDish analyses.,vector,FALSE,FALSE,NA,NA,TRUE,, -TRUE,x_options,X axis options,"Specifies variable options for the x-axis using the key values from measure_values (e.g. 'ALT'). When multiple options are specified, a control allowing the user to interactively change the x variable is shown. ",vector,FALSE,FALSE,NA,NA,FALSE,, -TRUE,y_options,Y axis options,"Specifies variable options for the y-axis using the key values from measure_values (e.g. 'TB'). When multiple options are specified, a control allowing the user to interactively change the y variable is shown. ",vector,FALSE,FALSE,NA,NA,FALSE,, -TRUE,visit_window,Default Visit Window in Days ,Default visit window used to highlight eDish points where x and y measures occurred within the specified number of days. Editable by user after render. ,numeric,FALSE,FALSE,NA,NA,FALSE,, -TRUE,r_ratio_filter,Show R Ratio Filter?,Specifies whether the R Ratio filter should be shown. R ratio is defined as: (ALT value/ULN for ALT) / (ALP value/ULN for ALP).,logical,FALSE,FALSE,NA,NA,FALSE,, -TRUE,r_ratio_cut,Default R Ratio Cut,Default cut point for R Ratio filter. Ignored when r_ratio_filter = FALSE. User can update this setting via the UI when r_ratio_filter = TRUE. ,numeric,FALSE,FALSE,NA,NA,FALSE,, -TRUE,showTitle,Show Chart Title? ,Specifies whether the title should be drawn above the controls.,logical,FALSE,FALSE,NA,NA,FALSE,, -TRUE,warningText,Warning text,"Informational text to be displayed near the top of the controls (beneath the title, if any). No warning is displayed if warningText = ''. ",Character,FALSE,FALSE,NA,NA,FALSE,, +chart_edish,text_key,label,description,setting_type,setting_required,column_mapping,column_type,column_required,field_mapping,field_column_key,adam,sdtm +TRUE,id_col,ID column,Unique subject identifier variable name.,character,TRUE,TRUE,character,TRUE,FALSE,,USUBJID,USUBJID +TRUE,value_col,Value column,Lab result variable name.,character,TRUE,TRUE,numeric,TRUE,FALSE,,AVAL,STRESN +TRUE,measure_col,Measure column,Lab measure variable name,character,TRUE,TRUE,character,TRUE,FALSE,,PARAM,TEST +TRUE,normal_col_low,Lower Limit of Normal column,Lower limit of normal variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,,A1LO,STNRLO +TRUE,normal_col_high,Upper Limit of Normal column,Upper limit of normal variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,,A1HI,STNRHI +TRUE,studyday_col,Study Day column,Visit day variable name,character,TRUE,TRUE,numeric,TRUE,FALSE,,ADY,DY +TRUE,visit_col,Visit column,Visit variable name,character,FALSE,TRUE,character,FALSE,FALSE,,VISIT,VISIT +TRUE,visitn_col,Visit Number column,Visit number variable name,character,FALSE,TRUE,numeric,FALSE,FALSE,,VISITNUM,VISITNUM +TRUE,filters,Filters columns,"An optional list of specifications for filters. Each filter is a nested, named list (containing the filter value column: 'value_col' and associated label: 'label') within the larger list.",vector,FALSE,TRUE,NA,FALSE,FALSE,,, +TRUE,group_cols,Group columns,"An optional list of specifications for grouping columns. Each group column is a nested, named list (containing the group variable column: 'value_col' and associated label: 'label') within the larger list. ",vector,FALSE,TRUE,NA,FALSE,FALSE,,, +TRUE,measure_values--ALT,Alanine Aminotransferase value,Value used for Alanine Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Alanine Aminotransferase (U/L),"Aminotransferase, alanine (ALT)" +TRUE,measure_values--AST,Aspartate Aminotransferase value,Value used for Aspartate Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Aspartate Aminotransferase (U/L),"Aminotransferase, aspartate (AST)" +TRUE,measure_values--TB,Total Bilirubin value,Value used for Total Bilirubin in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Bilirubin (umol/L),Total Bilirubin +TRUE,measure_values--ALP,Alkaline Phosphatase value,Value used for Alkaline Phosphatase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Alkaline Phosphatase (U/L),Alkaline phosphatase (ALP) +TRUE,baseline--value_col,Baseline column,An optional list defining which column represent the baseline visit(s) of the study.,character,FALSE,TRUE,NA,FALSE,FALSE,,, +TRUE,baseline--values,Baseline values,An optional list defining which values (one or more) represent the baseline visit(s) of the study.,vector,FALSE,FALSE,NA,NA,TRUE,baseline--value_col,, +TRUE,analysisFlag--value_col,Analysis Flag column,An optional list defining which column should be used in eDish and mDish analyses.,character,FALSE,TRUE,NA,FALSE,FALSE,,, +TRUE,analysisFlag--values,Analysis Flag values,An optional list defining which values should be used in eDish and mDish analyses.,vector,FALSE,FALSE,NA,NA,TRUE,analysisFlag--value_col,, +TRUE,x_options,X axis options,"Specifies variable options for the x-axis using the key values from measure_values (e.g. 'ALT'). When multiple options are specified, a control allowing the user to interactively change the x variable is shown. ",vector,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,y_options,Y axis options,"Specifies variable options for the y-axis using the key values from measure_values (e.g. 'TB'). When multiple options are specified, a control allowing the user to interactively change the y variable is shown. ",vector,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,visit_window,Default Visit Window in Days ,Default visit window used to highlight eDish points where x and y measures occurred within the specified number of days. Editable by user after render. ,numeric,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,r_ratio_filter,Show R Ratio Filter?,Specifies whether the R Ratio filter should be shown. R ratio is defined as: (ALT value/ULN for ALT) / (ALP value/ULN for ALP).,logical,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,r_ratio_cut,Default R Ratio Cut,Default cut point for R Ratio filter. Ignored when r_ratio_filter = FALSE. User can update this setting via the UI when r_ratio_filter = TRUE. ,numeric,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,showTitle,Show Chart Title? ,Specifies whether the title should be drawn above the controls.,logical,FALSE,FALSE,NA,NA,FALSE,,, +TRUE,warningText,Warning text,"Informational text to be displayed near the top of the controls (beneath the title, if any). No warning is displayed if warningText = ''. ",Character,FALSE,FALSE,NA,NA,FALSE,,, \ No newline at end of file diff --git a/data/settingsMetadata.rda b/data/settingsMetadata.rda index 82ebf9c05d996e4f874ac438a4d29b4f9fe1845c..df2f503880f169aedf894910d482a464e4921fcb 100644 GIT binary patch delta 1899 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 diff --git a/man/settingsMetadata.Rd b/man/settingsMetadata.Rd index 0f4678a8..00355fd0 100644 --- a/man/settingsMetadata.Rd +++ b/man/settingsMetadata.Rd @@ -16,6 +16,7 @@ \item{column_type}{Expected type for the data column values. Should be "character","logical" or "numeric"} \item{column_required}{Flag indicating whether the associated data column should be considered required} \item{field_mapping}{Flag indicating whether the setting corresponds to a field-level mapping in the data} + \item{field_column_key}{Key for the column that provides options for the field-level mapping in the data} \item{adam}{Settings values for the ADaM standard} \item{sdtm}{Settings values for the SDTM standard} }} From 473b6d9514fbb35d8999cac058059f27e7ff92a7 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Tue, 5 Feb 2019 15:07:35 -0800 Subject: [PATCH 2/9] partial refactor of detectStandard(). #150 --- R/compare_cols.R | 38 --------------------------------- R/compare_to_standard.R | 30 ++++++++++++++++++++++++++ R/detectStandard.R | 38 ++++++++++++++++----------------- R/hasColumn.R | 23 ++++++++++++++++++++ R/hasField.R | 32 +++++++++++++++++++++++++++ tests/testthat/test_hasColumn.R | 21 ++++++++++++++++++ tests/testthat/test_hasField.R | 18 ++++++++++++++++ 7 files changed, 142 insertions(+), 58 deletions(-) delete mode 100644 R/compare_cols.R create mode 100644 R/compare_to_standard.R create mode 100644 R/hasColumn.R create mode 100644 R/hasField.R create mode 100644 tests/testthat/test_hasColumn.R create mode 100644 tests/testthat/test_hasField.R diff --git a/R/compare_cols.R b/R/compare_cols.R deleted file mode 100644 index 47f2c3ac..00000000 --- a/R/compare_cols.R +++ /dev/null @@ -1,38 +0,0 @@ -#' Compares contents of 2 vectors -#' -#' Function to compare contents of 2 vectors - used to summarize of which data columns are found in a given standard. Used in \code{detectStandard()} and \code{validateSettings()} -#' -#' @param data_cols A character vector with column names in the data frame -#' @param standard_cols A character vector with column names in the data standard -#' @return A list summarizing the comparison between \code{data_cols} and \code{standard_cols}. List has character vectors for "matched_columns", "extra_columns" and "missing_columns" parameters, and a boolean "match" parameter indicating that there are no missing columns. -#' -#' -#' @examples -#' #match == FALSE -#' safetyGraphics:::compare_cols(data_cols=c("a","b","c"), -#' standard_cols=c("d","e","f")) -#' -#' # match == TRUE -#' safetyGraphics:::compare_cols(names(adlbc), -#' safetyGraphics:::getRequiredColumns(standard="ADaM")) -#' - -compare_cols<-function(data_cols, standard_cols){ - compare_summary <- list() - compare_summary[["matched_columns"]]<-intersect(data_cols, standard_cols) - compare_summary[["extra_columns"]]<-setdiff(data_cols,standard_cols) - compare_summary[["missing_columns"]]<-setdiff(standard_cols,data_cols) - - #if there are no missing columns then call this a match - - if (length(compare_summary[["missing_columns"]])==0) { - compare_summary[["match"]] <- "Full" - } else if(length(compare_summary[["matched_columns"]])>0) { - compare_summary[["match"]] <- "Partial" - } else { - compare_summary[["match"]] <- "None" - } - - - return(compare_summary) -} diff --git a/R/compare_to_standard.R b/R/compare_to_standard.R new file mode 100644 index 00000000..6b3e5dcf --- /dev/null +++ b/R/compare_to_standard.R @@ -0,0 +1,30 @@ +compare_to_standard <- function(data, standard, includeFields, domain="labs"){ + compare_summary<-list() + + # Get metadata for settings using the specified standard and see if required data elements are found + standardChecks <- getSettingsMetadata( + cols=c("text_key", "column_mapping", "field_mapping", "column_field_key", "setting_required", standard), + ) %>% + filter(column_mapping == TRUE || field_mapping ==TRUE) %>% + filter(setting_required==TRUE) %>% + mutate(type = ifelse(column_mapping), "column", "field") %>% + mutate(valid = ifelse(column_mapping, + hasColumn(data=data, colName=standard), + hasField(data=data, colName=column_field_key, fieldValue=standard) + )) %>% + select(text_key, standard, type, valid) + + compare_summary[["checks"]] <- as.list(standardChecks) + + # How many valid data elements + comare_summary[["valid_count"]] <- standardChecks %>% filter(valid==TRUE) %>% n() + compare_summary[["invalid_count"]] <- standardChecks %>% filter(valid==FALSE) %>% n() + + + if (compare_summary[["invalid_count"]]==0) { + compare_summary[["match"]] <- "Full" + } else if(compare_summary[["valid_count"]]>0) { + compare_summary[["match"]] <- "Partial" + } else { + compare_summary[["match"]] <- "None" + } diff --git a/R/detectStandard.R b/R/detectStandard.R index 936bbf41..32b7df0c 100644 --- a/R/detectStandard.R +++ b/R/detectStandard.R @@ -1,37 +1,35 @@ #' Detect the data standard used for a data set #' -#' This function attempts to detect the data CDISC clinical standard used in a given R data frame. +#' This function attempts to detect the data CDISC clinical standard used in a given R data frame. #' #' This function compares the columns in the provided \code{"data"} with the required columns for a given data standard/domain combination. The function is designed to work with the SDTM and AdAM CDISC() standards for clinical trial data. Currently, only "labs" is the only domain supported. #' -#' @param data A data frame in which to detect the data standard +#' @param data A data frame in which to detect the data standard #' @param domain The data domain for the data set provided. Default: \code{"labs"}. -#' @return A list containing the matching \code{"standard"} ("ADaM", "SDTM" or "None") and a list of \code{"details"} describing each standard considered. #' -#' @examples +#' @return A list containing the matching \code{"standard"} ("ADaM", "SDTM" or "None") and a list of \code{"details"} describing each standard considered. #' +#' @examples #' detectStandard(adlbc)[["standard"]] #AdAM #' detectStandard(iris)[["standard"]] #none -#' +#' #' \dontrun{ -#' detectStandard(adlbc,domain="AE") #throws error. AE domain not supported in this release. +#' detectStandard(adlbc,domain="AE") #throws error. AE domain not supported in this release. #' } -#' +#' #' @export -detectStandard <- function(data, domain="labs"){ +detectStandard <- function(data, includeFields=TRUE, domain="labs"){ stopifnot( domain=="labs", typeof(domain)=="character" ) - + + # Create placeholder list, with Standard = None. standard_list <- list() standard_list[["details"]] = list() - data_cols<-toupper(colnames(data)) - - # Check to see if data columns match the standards - standard_list[["details"]][["ADaM"]]<-compare_cols(data_cols,getRequiredColumns(standard="ADaM")) - standard_list[["details"]][["SDTM"]]<-compare_cols(data_cols,getRequiredColumns(standard="SDTM")) - + standard_list[["details"]][["ADaM"]]<-compare_to_standard(data,standard="ADaM", includeFields=includeFields, domain=domain) + standard_list[["details"]][["SDTM"]]<-compare_to_standard(data,standard="SDTM", includeFields=includeFields, domain=domain) + # Determine the final standard if(standard_list[["details"]][["SDTM"]][["match"]] == "Full"){ standard_list[["standard"]]<- "SDTM" @@ -40,14 +38,14 @@ detectStandard <- function(data, domain="labs"){ } else if(standard_list[["details"]][["SDTM"]][["match"]] == "Partial" | standard_list[["details"]][["ADaM"]][["match"]] == "Partial"){ standard_list[["standard"]] <- ifelse( - length(standard_list[["details"]][["ADaM"]][["matched_columns"]]) > - length(standard_list[["details"]][["SDTM"]][["matched_columns"]]), + length(standard_list[["details"]][["ADaM"]][["valid_count"]]) > + length(standard_list[["details"]][["SDTM"]][["valid_count"]]), "ADaM" , "SDTM" #SDTM if they are equal ) - + } else { standard_list[["standard"]]<-"None" } - + return(standard_list) -} \ No newline at end of file +} diff --git a/R/hasColumn.R b/R/hasColumn.R new file mode 100644 index 00000000..03685cd3 --- /dev/null +++ b/R/hasColumn.R @@ -0,0 +1,23 @@ +#' Check whether a column is found in a data set +#' +#' This checks whether a specified column is found in a specified data set +#' +#' @param columnName The column to look for. +#' @param data the data.frame to search. +#' @return logical scalar. TRUE if the column is found. FALSE otherwise +#' @examples +#'' +#' hasColumn(columnName="PARAM",data=adlbc) #TRUE +#' hasColumn(columnName="Not_a_column",data=adlbc) #FALSE +#' +#' @export + +hasColumn <- function(columnName, data){ + stopifnot( + typeof(column)=="character", + length(columnName)>1, + typeof(data)=="data.frame" + ) + + return toupper(columnName) %in% toupper(colnames(data)) +} diff --git a/R/hasField.R b/R/hasField.R new file mode 100644 index 00000000..3378612a --- /dev/null +++ b/R/hasField.R @@ -0,0 +1,32 @@ +#' Check whether a specified field value is found in a data set +#' +#' This checks whether a specific value is found in a specified column in a specified data set +#' +#' @param fieldValue A value to check for. +#' @param columnName The column to check. +#' @param data the data.frame to search. +#' @return logical scalar. TRUE if field_value is found. FALSE otherwise +#' @examples +#' hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE +#' hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE +#' +#' @export + +hasField<- function(fieldValue, columnName, data){ + stopifnot( + length(fieldValue)>1, + typeof(column)=="character", + length(columnName)>1, + typeof(data)=="data.frame" + ) + + columnFound <- hasColumn(columnName=columnName, data=data) + if(columnFound){ + validFields <- unique(data[[columnName]]) + } else{ + validFields <- c() + } + + validFields <- unique(data[[columnName]]) + return fieldValue %in% validFields +} diff --git a/tests/testthat/test_hasColumn.R b/tests/testthat/test_hasColumn.R new file mode 100644 index 00000000..5145492b --- /dev/null +++ b/tests/testthat/test_hasColumn.R @@ -0,0 +1,21 @@ +context("Tests for the hasColumn() function") +library(safetyGraphics) + +test_that("columns are found when expected",{ + # simple test case works + expect_true(hasColumn(columnName="PARAM",data=adlbc)) + expect_true(hasColumn(columnName="SUBJID",data=adlbc)) + + #doesn't care about case + expect_true(hasColumn(columnName="param",data=adlbc)) + expect_true(hasColumn(columnName="SuBjId",data=adlbc)) + + # returns false when fieldValue isn't there or there is a type mismatch + expect_false(hasColumn(columnName="PARAMETER",data=adlbc)) + expect_false(hasColumn(columnName="SUBJID2",data=adlbc)) + + # fails with invalid parameters + expect_error(hasColumn(columnName=123,data=adlbc)) + expect_error(hasColumn(columnName=c("PARAM","SUBJID"),data=adlbc)) + expect_error(hasColumn(columnName="PARAM",data=list(adlbc))) +}) diff --git a/tests/testthat/test_hasField.R b/tests/testthat/test_hasField.R new file mode 100644 index 00000000..9d5d61b0 --- /dev/null +++ b/tests/testthat/test_hasField.R @@ -0,0 +1,18 @@ +context("Tests for the hasField() function") +library(safetyGraphics) + +test_that("fields are found when expected",{ + # simple test case works + expect_true(hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc)) + expect_true(hasField(fieldValue=1015,columnName="SUBJID",data=adlbc)) + + # returns false when fieldValue isn't there or there is a type mismatch + expect_false(hasField(fieldValue="Not_a_real_value",columnName="PARAM",data=adlbc)) + expect_false(hasField(fieldValue="1015",columnName="SUBJID",data=adlbc)) + + # fails with invalid parameters + expect_error(hasField(fieldValue=c("a","b"),columnName="PARAM",data=adlbc)) + expect_error(hasField(fieldValue=12,columnName="PARAM",data=adlbc)) + expect_error(hasField(fieldValue="Bilirubin (umol/L)",columnName=c("PARAM","ID"),data=adlbc)) + expect_error(hasField(fieldValue=,columnName="PARAM",data=list(adlbc))) +}) From 42d4dfa6f190d8329e707244eaf1718f40c22c47 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 6 Feb 2019 04:58:41 -0800 Subject: [PATCH 3/9] make measureValue settings required --- data-raw/settingsMetadata.csv | 8 ++++---- data/adlbc.rda | Bin 95761 -> 95773 bytes data/settingsMetadata.rda | Bin 1968 -> 1968 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data-raw/settingsMetadata.csv b/data-raw/settingsMetadata.csv index a8a5a843..08f04869 100644 --- a/data-raw/settingsMetadata.csv +++ b/data-raw/settingsMetadata.csv @@ -9,10 +9,10 @@ TRUE,visit_col,Visit column,Visit variable name,character,FALSE,TRUE,character,F TRUE,visitn_col,Visit Number column,Visit number variable name,character,FALSE,TRUE,numeric,FALSE,FALSE,,VISITNUM,VISITNUM TRUE,filters,Filters columns,"An optional list of specifications for filters. Each filter is a nested, named list (containing the filter value column: 'value_col' and associated label: 'label') within the larger list.",vector,FALSE,TRUE,NA,FALSE,FALSE,,, TRUE,group_cols,Group columns,"An optional list of specifications for grouping columns. Each group column is a nested, named list (containing the group variable column: 'value_col' and associated label: 'label') within the larger list. ",vector,FALSE,TRUE,NA,FALSE,FALSE,,, -TRUE,measure_values--ALT,Alanine Aminotransferase value,Value used for Alanine Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Alanine Aminotransferase (U/L),"Aminotransferase, alanine (ALT)" -TRUE,measure_values--AST,Aspartate Aminotransferase value,Value used for Aspartate Aminotransferase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Aspartate Aminotransferase (U/L),"Aminotransferase, aspartate (AST)" -TRUE,measure_values--TB,Total Bilirubin value,Value used for Total Bilirubin in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Bilirubin (umol/L),Total Bilirubin -TRUE,measure_values--ALP,Alkaline Phosphatase value,Value used for Alkaline Phosphatase in the specified measure column,character,FALSE,FALSE,NA,NA,TRUE,measure_col,Alkaline Phosphatase (U/L),Alkaline phosphatase (ALP) +TRUE,measure_values--ALT,Alanine Aminotransferase value,Value used for Alanine Aminotransferase in the specified measure column,character,TRUE,FALSE,NA,NA,TRUE,measure_col,Alanine Aminotransferase (U/L),"Aminotransferase, alanine (ALT)" +TRUE,measure_values--AST,Aspartate Aminotransferase value,Value used for Aspartate Aminotransferase in the specified measure column,character,TRUE,FALSE,NA,NA,TRUE,measure_col,Aspartate Aminotransferase (U/L),"Aminotransferase, aspartate (AST)" +TRUE,measure_values--TB,Total Bilirubin value,Value used for Total Bilirubin in the specified measure column,character,TRUE,FALSE,NA,NA,TRUE,measure_col,Bilirubin (umol/L),Total Bilirubin +TRUE,measure_values--ALP,Alkaline Phosphatase value,Value used for Alkaline Phosphatase in the specified measure column,character,TRUE,FALSE,NA,NA,TRUE,measure_col,Alkaline Phosphatase (U/L),Alkaline phosphatase (ALP) TRUE,baseline--value_col,Baseline column,An optional list defining which column represent the baseline visit(s) of the study.,character,FALSE,TRUE,NA,FALSE,FALSE,,, TRUE,baseline--values,Baseline values,An optional list defining which values (one or more) represent the baseline visit(s) of the study.,vector,FALSE,FALSE,NA,NA,TRUE,baseline--value_col,, TRUE,analysisFlag--value_col,Analysis Flag column,An optional list defining which column should be used in eDish and mDish analyses.,character,FALSE,TRUE,NA,FALSE,FALSE,,, diff --git a/data/adlbc.rda b/data/adlbc.rda index aea28611190dde1a171087a67c08848aa386ad90..aa28c2dba7fcd41b1cfea7d3ce9254d0688fdd1c 100644 GIT binary patch literal 95773 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 EQSBl_sQ>@~ literal 95761 zcmaf4Wm6nXkjCBJU4pv>3m)9vHQ3_8g1ZKHOYmJ-oW%+L;_i#PyA$AYKj7;6!_-XG zOm($Y^)uZqZDcRPBW1{>ZKxOgog68m=HvgREendzuloWTi%=ua{4MlJH)JUtq~#Pv zhqyVtJVRsWo?k3N6%zE@+DCT|-Cn!1^**fJN@x6NDWd%RNL|hPx}~g7MJ9S17n789 zj*x1k5Ts>fqwmHR(`2l_VE&gr!N9<#_aQ=lDLIM#I|2e$BbDS($}ao~rC)#!j4&{d z8-h1N6rVp&a*unqC|erPh+`%Gn8!n8Wzp4&fxy6)5y+Nleo1|TVMt}lWx`isO2}ry z$-z`tDaV<^vvEkDIpIb5Jg_Z8+AmglJ` z9;aWEmn`opsVHB0X0!*R=*5^|AX$!z8jc#!D74D(vh z<0DvNV)Bsja_8{#^6>N9VC33N^IF*tPmla^2t~pfDNj&Igp)6gWg=z7A9Xkh(y`~a zarh-JGtX}iGi}d5@(TtNW*QR)h74wUnha)66$XaiX4)S17e7DQKV={kg0z?%E0IF} z?f-8=1<58SYR{zK^IBvlk`cVgK1Af&0z*dY+q-RbM0y)Iy$`6FkBLj~T13@M;h~nxF>I>rPG7Hqjg?T#nk~%kzz7D1Lg20z-`y3j80`pemGHuq+c9U?z{2vT zmq^=@hAh*`Ti9~fji;hG5G(yT=^4Pfs%S>hidCXX|04Ta)BFhbcNj;UVW2A;Q!G(F0ao)?{0YdqqxSFxJO5;Yr? zX%(5RX_%T5Qa#*=t7nU3QN?Q*W~XDAj1EZDF}6x{T&`RIMe1ftH}oWo5Luw}u*t6$ zLml~b>y3@#p#6AGaO}gGHY`=FiwxDHj`3Dtt13-BK^mgV$ONu6NR71C%(CYZ8rX z8!$NGW)s@UR`CkNr5Ti4mDzo5q~q@?x7jsfjjLQ31hpvXFV z4LJ-jt>m1@>d6M!c$n%^7e7VWYLO;4vhk=`8d=N{XeMMRmUCFt0|@IA<;cRxn(KAJ zgGNvnfqH{xLT7_!5)N=1PqRCu%1Cg9wRnNt+L6tLO`oZ`#Hv|Sj}>erC>Sp1#0V0M zgQn??G$#UF1T^iNofyG-#fu!(c}8rSC64??RdIvWn%(tApcc8}#i7AUNL=+qG1Rye zq*$#aw`i5t)R*S05zftIfxw)TrWv>gYCMvrSEu~4_)`j9KB`NfHn%M1=>cWoH;r%Z z=vP#lAv-%2)EoxdJZjEv(}0>KK8p5Ly7=Z3L(+nc(~f+Ys`{7>0#iY}c3za`42D$@ zxI_-fX5TD@XS9}KlIP^4sbeG%uQym_G}v5UVpLh*WDgQ3F@V}HQ8-yUkyRTBLO^kY z2JudcWs?AXMu3x531f}2i{PMKVm(NJtWCg$gFF?QDCJmXm56AWkp>_P2WWy5!H$U# z2)%r~wX@z#8B+s`KnAAG5F0POfnijlJ~K%%L~up0-Y5}JZ3HH4mNP2eslf@0;7{SM zY!eu^Rt#Af%M!q|_HbuP??WQyG`Y%e|IF(IXfmn;fB`x9+{KLuRoohjv`+LMPDHD_ zj(e+$0xkm0@mfQ)*`qUa zYCUAwV}GKAMHWyw#Nn<_t_c#XcXF};RW4KmK=B4^dAfs6Rx`5y; zxI>zZK2;$pbF&G6`1qI_$VLrQa^MY!Y)TBZnuZONop5sE1R$IokTu6R2%9qi%m{8> zGgyWiy8~Jm>=zVCK)a66cw=|np@k+VW3u1bG2jBFD_x!1n9~-$u&6TfKBo=bX(V)bjOSs$SfQ}bBHXO2AZR6>3Km>*>cqw z!%mXSER0@y^)pq8awct~Bi5Rrm24@)&?>TFyn|83G+!_|l0fAOT;;EL9RO3z@{H@? zag~#aUb89Df^IfQS@sxVt_?N5sPIr1Vof?4i7{Fq%RVY=hf_UTTs=&m62U(@$H+fE zm%D2Z#sv=!>NtX`QtQj{xvg1?8}SUwf#s;#X}lUa5srNgBSv-A!%jGhe5{5kc4$Pr zdf7%+st%w`i}6MRYevL!qQthbJf?+FJ=GdD!4acUAP2Xuk&Rv*ACZmLcvJ%bocK@f z5pXe3U}(q+shXapkm2X zPnaOXE2nCi*#zRF<)b%5s*dNiqvHuD(P=~{(dA>&*7nfj7%|#eU2UT`j$6}%?CPxu z7zzyJ#4pw`lMEY)&OgnXnaIXYuF zd~gEE@dlO6u^5Al)c`QL9&3}{BAbch5($_kN0ARj&jR0osh)K_g%8#+wYU+6?LUhW zLqaAiB|AEKZj5^)pm|oDU?X~zQd`|PVIb31ZXZ4Oc*uB$zO37-3GXuIMd(U9WW4e4 zp0*m>HdVmxQ+}J86tVRWgA_gly%l`!C<_kDY)~VM)&fNtnYV=tiNKI)2d_0KAR z*^6)%+{u{+LjE zW=p;&>GQV+GTV~gW|jYpUX|Wr&7$L)kxk5JSgP!YTfN~>I%>zp+Z;2hI0qlZUM0Vj z(|`OtXOP6k7$m6U#p^>tG0CvWV3eMdD&w%p76s_SHobm{b7yNAvC}lVY>@WEWxe`@ z#jTkQ-liAe$w?4i3s+eOkEo<#l6)L&~<_jhn7Y}sx3R=v8-H@{|i=WFS$x(ZzjtUf2 zN!(?VcrY-g2_xa88rF_92jgqTf(pM9Pj5W6}<8#|OuWA;+g=VbPSGu1VzKVRsNU{kUsu)RR&ptm%lhbZ-S$^vv1g z_OU`~4H6Kj!LVCxY~?BdN6MRlYd! zO3MYb*`gUZG(EA{YS9msOP>^U8O?5oRSPd}Z~yIT_X?gm$`-Dz zA1<_9cagRRMa{9|-V8g#-i3`WSxFn;Jrjj(ncZT&Cw?G!@fte4Ks7I}85erC?XdA# z_2+LruVPhifPKWa@&U1nenO8vM9AE{5P?(X7bZz@3*4Di&nZWX(oCk zb8zLGO8mMF=-lIqhjU@^%xU^kZkgo8`ixh9V6^tmjd^0PU`a6aRZ^3zualj=Hh(z_ za1;>O+?nAs@5ku#OgE3u^99N?{|!v|oI6{am_a2Zqqc;*{&!o^3!$EP>hgVZzBXg; z;jKHdanZEPquIRn;(o9;763SjSCQ4{WY@HEt;iI2z5qm2_?HP*RjUzn?_E8VC-Ws%(!QS?6JqzN@^6?WTGj zo_;9G^!By6kEOcbJuLrxQ?9D5USZj9caiW!VZeaep48W9gfe8|SHNys_E2PcCdYn< zsMAtYZ|VeK#CZp11s=Rgp!gX+M7$&@zmTG*O&+Ujo+bKYYPIJmtd8CDU=NO{y*6HX zGycTrs{PeQz zMEOp>?Og>Ejcnt&ZQnd|(iASeh7kZM{e)PqkNpN}&N{o>K;h<}Lv6lJ2~(n7*R^b8 zna_K6o|dL2SQib?TI#c>t`>MS_FrwE>fo@aMgw{j0}qVGadS}QL?|+~#=hn9|Mx5K zE)`3zJ4|vv8T}y#m1R661^uhT-F3--Xe!KLbKIhZXFJ=r)_^WmseK;f2Z5P`|TODbnPW#Y?dyhq>kbi34u+EZ|Mhl2V{N zegefG!`je6iN|xWRZ)1%pOv_4ZpuX#=waIBcdh5)LcylMLcF%K3y-YE-`LtVVGSd= z333JlJYkvKLnMRjmUPyz27NqnJR#ON)^L__)^PPdga1X`ulsx_cHsmpY~k#70)U8jaPJL(LphCXyeE3MQHZx;3|K0;#+` zILis%C~Cilnm&BJS=rh?e7&ggy!VWxhv2@n>Q7mUC2^EQX?F~IiI_PRmE_ZXn+ROm zXN#xpN9b_QfbPru>Eq+VE?M;yFL!N0`FX7jy!~7lkH5U5e_-{KeY~?;|e3j{060{RlYy zOVoB{N}|vSJ+&6MEf4wXC1_UtbczE%7PWSsZgN) zo$PKsahN%(cF542N*rE<9r8A*pVU{ir8yJUZ5;Hi=T73|GN|g8uQ2+wO*}9}?86hN zp3)J+*4ZO3N+(K+;|jc9YaV~nNM<=Bhu|{i7O}r4v8)|$?TFa;{q@{u$*$Vnp`w!7 z(DC-o=x5EH=oCk98r<4f?(T6LG3y_9#0sEq809Sa)WI2uw$3W*T{1w=lJ&escVV(+K>-hG9Dye?0V|4ugS*209_(dok0r=n;ldeRcXSrpD zk4=USm1w5Vq-@}5N$slov6u_qjx*L<1H3y@QweI<{lVZcG?9o5_FL+5(nHQ2FyW z-)}6HDvNF?k84|Sq<(pmm&TrVovbl)mKd7{o(+?>W!&y!ukGl3LRFXZogSQ8(ljh? zM)|<_5v{Gpu5XQd@Rw_NwL<;JrswwyXuYGi=dFLF6V7Rd=$hYJsppO;J2o=fn!vj*sX?*7wx^jZUV;~?RK z>qk;Ueyks#a`3rb_r?dLaOkRee5K#}Ld|j5s=ZxVWO@r-tLSV0Yi8PJcCP#&X{}3c zQ^3Vh>HZg>b>Dsel=LgrdQ>Bg@P%&yQFm`%7gc20#^roLCp^o&vyi}Q;omug+KP+ja_Oz7axA4+~Yk>6;Fe=zq^ZNCC{7xeoh7ZC(?J0 zn3YivEPeCf5{-_I`t~C=pq@G-LqaI1-{bL2U2*R_@!*WO>-eShbbx}x=~LOW`%p8s zYFN9!Wcb=8@qhX=PO@)ja;tmYyAqcF9Xy0TFnWD2GcO7+_82<|Bqs1)VIHC1yD9$r zM|EibK_?mOG$$n3^OQ2nDidnk2z0qYD0qB<@0(3*&<;?%T~p)uwLj%>D<)<}vDT5q z82$b4x^u4_kCJB*S$;1Adafe!mqR*Il|7^fs=VFLvMFmH*wY<wE|4ZEoE# zZ49B3*K45%Ukiu7f`&0KF1fO+SjCFvO9~hnklPWEi~F#!t3A{kzFzQ}#Sa|pAGw7e zk>1&ILWiJMft*_H6zfIQQ!kk9MoSc2Pk25e_ad72&|`g!pJo+8=Dyt|#1N(_@g6!E`cnMABB4LT-Xc&lCkUl zwN)p#az6};48g2Vo%AC&qLd$#R~ctY<{VK@vS)r>Y^{s&zhggE@fY^IdE-mAj)Z*+ z^ISC#1vKv*3-y{M(NQjWK6_4EnNKKGELE*&|1?u~2;2)cH!@dGeGpEHxC@$_y-HG` zzvEHw*vJsA6$1Iz2R_gSLRcn-qQ9}eJ{8?8{;npxHVMd@e2`%7-Ay?{GfP`PzbCJ_ zu*#T7cMs@}duuyzEBcmtX3N$xWw`ko*eHCZewuu@tbTa@fz?Y%Ps_2bth>j^jrYtR z$0dSF8c5+UQZQ+Q-~yZu<0>uvd#3TQ5?KC14BVRur1I}Jb0OJao~}RF$dVrB*>Izm zCT65etw09vZB1q$SC?ay_8pd%hCQ(;w2Zt>t!>(xkg~h;95$v=)iQsJ@4DjmJQVbJ z;<%@2vtpYo>ATNm^VRMjIJ^IBR>q`RdTcU|f;YDvU-r)pBG7#M|bq?|CfGrXIdD^RVMeNlWNI7m0*>kT#vuv3yk+M^0a4!U0vvxVWY{P&9_`{Tykcb>_mvOAzjyZ9-^bEUgSo<}d@G`BJ{*Zw z{uX>ph(WgA2D!2x{Y#vgGyY}e`JLVBZ4ZB?e^@1*Z3WtG96Ay!%$-m*5O3|6`^@cZ zxA_-B((jX|wH~QEKtiK_o#JZ5%uM{z&4drRujetHSl!`|(l4&%GZ5Kl*W&vh#P!3E zaY+pW_pc7bk*9&=Rsjr!(YQfBiDxe>+iv)F`JcpekF{#Mdc7`{g4By%s7^OLfX6%C z;V6%yj@l(Lx9SyaSKQS1mmn%^E^Uilzg06L)HRzY3IUymgsj*ibcXknq`-7B%4U{b zclWa-)xxE&D@gc0D9It^I+$6bWh$fZwOuSrO>cA>*IfNcAGn^{-^Zq4D|UA`k5dn3Gz#R zciE~hg%}mrx26hZ=8`FVv_Jf{3Mp^S%rmY)b@JS^Y==Usn_4!r5?i;vBv8q4Uy(MX z;NX*Yw!YI{V36MP>|plxuD3D8v)hiY(O7@)_vfb6O@hE<<+;E~sFI6^aLuDYXI9gc zO!^f!b|USeM^YzLs{q*ndd{p*k&}a57VJ{8VME#d@_TIml_I|r?Z$n_p96tX`U~k< z2w3*&7!S@c2DAOl2mG^YsPFo2cvV zCqI*@I#uqTuzj_z0`;Kk!5IqFS@YudNtatEJ7#Htx_5p`7oYtV)aML0#zeeHS0==J$CV7P39U4Jt9*;#uGP--Srv47-o#oV3LwzPMlAQ@X` zWyyi;}()`^ki)Wr;d-V0*46TE+WC3lVwa=s8X9lRPf7rl6R&)hRr>-H~- zUVY4&-5w&gXFI&oeg1HN-^AP(Gl^!}=qEd@%HXKx_ktv#Qj4P~B#*#7{5afDG_oPz zG~PPjyt?gtO}QTq9s_IKwJGQm9`GEBbhrfeg1qhVB=Q(ssNF){L}UP5Ti0{XC|?v3 zLQIIH4PPCI-iiH|Pp*iIS$^b;53Pdy#ggQz!sA&wnp^ zeMf)x{_cf}gYIUdYR5~6c@QYch5z@51M!5#-*)1EzlM$?yTGuzP z{{nB_#$Qcbrt)W$?!HAu1vD_jU$x7n_j!=(%31)_O@)0BY~$6Sebq8w@q73-DBk4~ zupbmtP}3wq&w6uvK=OJ~LB!rKCOVKxX*6)K_?(IbV_*ARlUH+}R zGohsM+Y?@QzmeQ+5#Zzji}^{Xi*r?7bmy};XBONaRpp&iDL*WUG10EkE54^sp1y@b zg=+;ek`eiaRMw)M(a(yzzM@a6J8wItlJJmK>LixAf!%8_O8)9+0@01fqIf^aSYo-< zcM-KA1;HNy(Kkwfl>OWBJ&74&$?rFBd?DbOC>eL90kO zxP`-?AY!pesLB>5v~aaf!5nw=Xo%laF2ojpzlE;YTta3!UBsR@$m5@O%fNIWqR4sQ zuIO$}0y%!)X!=oz1^)i)QJD4VgO>|2_1&QTnVO-XTp@JkLZHc1=5bQIndQX#xHF`i zf%V2YiIysx+|EcPau9`LOMy;$PvUEy?@QTA$5Nbd#|dydL@aL98PJB zrYD)eK$ctqE}^f7MqhxEC1XKGGL`cc|8G%XWk9-Fd_6Fj-Du#7gg7S4E9`XgE1w~f z^^1srDcLR@Dyk5lzfNnY7AylQDq5lJNNorTj-STemw=v0U|R_eEA+>o7=jjsQ<#)~ zbm#B}n06=^)J-L5tjCqz{ma_w#YWnt2O(M&qNd#)b8y zDoCy!Xqa>*AxF#dxy&y4L^a3jfhfT9-ec{JFUm)_mLausvzM?MD}S$;9;Gaky+e~^ zo@fGybHf%@hs_Zlaj7Okc8~vqa?+qPo&EjN(K9{i=6?-eYGXFt0fWe)IBf+JwQgEN zgT0Lo&7$jvWt%}?Z&d&wA!cb0!};7t!%fY?4PJC&Q*fCAb+6Q(e;X!CJVqg^WPNLD z$3iHIVU*ruU;bb~$M&W%9KfDRea!CpS;z4lL(?c)rZi6a{O2Z9|pp|F&`Bwf{9msjm4n8Y0Ytw3%}O35#n1}TYxuv>D$!or{USws-?c)zpk zAXwsvCn-!Nkq{3_fh~upUM>)y;02Y#P1|rZNkOEnrphv(xTeF?Rt`Ji6}Cdh zhHg?ULq;(2YLEl#Hh&F)TPvSf-RZMxJ%Z;G;BIm3|Lln&rxIB@V#Af65Z7FX(Cg=o zy%i0>W*W|Jg}5bu-S~1v^ZaCMJY$`!0= zO_~u63SHw~V=|S!Y4IMW>;Bjc4E2c>y#5t!JSWV#3}>Inw-Ak>^Z>9AT+5X2uWu_$ zvgH_~?Ybl>~@aqprR#0wb&tCq)XnB#fJqk{F|F$a+&gIlm``7pP%{E8f84r>=Li~e`o(BdtyMU&470VZ|^DS~7<)Gqrx0FImo7DuBcu{nS+C$NX` zRw9Ow?c))LU`j|@pt`!iO*s>Jzm=m21FhDCnhswZb zmbuvZrJVafS{Q|w-TkGVdJu+Q)PnwP>oBN76sZ;Q)YJD11Xiq%x?{YPyyztceTh4i z4t)X#fg=5j-C7LFgKNl|0VNJ%0xjkFF%ANWjQ84l3yhVN5b1DfkDZ!-bKo-VQ8;5q zAPNit>SF$uyvumA1Ri04xAK72D{*?my;K#!yJtI)o zs&sl_)!ii?dJt7$JuWBu&=?5VtcL@L1W@a?VKS(xaoDRilCcKjf4Z^5VRnuRME9!2 z;$|aNeJdS+r6MKffwAi^x(fBb!=t80W${V)EH>Sz!mc#5*M;dD#kSBX(U&|MtrUq})eHR2I%zVX z_&(V%eC5ut(~$v>2vDOfv%V+`QGT4mHjEx8OY}yn9yD~plO33so;Nlw*t2Bql~yj} zXdL$1G_j!TxAoYX!@Z=}%7~2V%K*$cxFerC;gBM{&y$5T{B^$)1MHM;k@!buHW7=A zGI6v#!C#jUC1JkQoO6eIk^taAeVb5=gd9zXaQHe;SX> zz+>blaCo+m%$h^qmC72n+mk?BKZqf04SSJW#O1X+-}}Z*A&XlG4aCIaMjCyxL|-*# z4(SO!Y@&iQJdW^yhIGP1#<%XKzuCCX{I~9W+EfB(*wVLfb$uCa6E=oaQR&e>gflnN z)*e7OW}?9l!Er`pYh9v73`P3VyYOo`>iZRYaGeA%@twQy%s%wiu<{1y@q}GTu~AIl&u#;)$29vO$9))F@apV9*;N1qsElhMaq3CwQ({HCfj83Wl21qpYs<)h!IfPVgm8t@rWB-Zr8%vKu0^T%(9HCNOEbt@2-ee$!9o!w zql+dY)fJI^eo^^qfVO73DJ({MNO@pcvxd$dmQ-)$)5VQU%ol<$np7K}K0J?=MLr*BZ|s zqx#lcv?He=5ebZ%xnZp%UpeoOpV7>TgjYIkf8Bk}+DqCiA3DtmuDa2(7T#I2BzNXr zpGHkK6Ur8D!p{F-m=vL@Bi|6TNzxI0#44S>7#P1(P-36QZoUc^w5%z$zAhJX-4}m< zKM-}b2iCS`1kS5Xt;X%2jdrE0nT@O0>ufg0ZoPgkSgMWP3!1H<>Zz4`a5t4St7wRw ze@|Dtd@1f?=CZ}FIAisbw9=Pc8MqC$Nem27+g%zs@xSMk=wtr#K}cByW~-Q&UAkd3 zd%Ld}`!AkSf?X}CHp7>CI(Gd{sYrlQy;=cqLg!o9Cf~iMPYouvy^j?5yU$hl4$4xv zpwHW^g1pA0i)$peYtni`xqdRRSM5k=1kz}1OY0UZTCf}hYv`YRs8BAQ=qw$?oxJC( zeQe4eKmMl<{XKX++ZG(8&wK&&+kA`jlC)JeuPa-AYbsc((>V`3%Q7BRFkaSlS}Flv zIto9QEDg@R`I*+<6SzLwd%Zp1+V1W|h))-}lr6rLewKLFF1aM=!d_tU2t*|MsE(FA zMI8GOP=3jv;#&UQf0o{1?jNna$>atUL?j|)ckWQy?JlbZeFf# zjShaeGtGKR?b83l{6}W!O?vyRwE5+$=i6vj@$0<6gVOfHuy6Obv(b~F)GX>n)YU+m z))%Wn<~jN#Z{U9~N`Gi7LQi(QB^R}m$`#UHhYS7#$F2s8XeSkEod;6{vl2&Mq<0i@ zT>(7<8z{4egx`6o@=oU4KS~r7lCFR(x;tSyIINp)#6Qf~Rvc7K~k zKL*nxBo&oqAc1H<0rLVJkt$aQb>idWHJFDEq@r@@!nTp{@lgswe3W%~njt4GE)VOv zgBu4LX?ix4ZRz$FJubzJIt8KR_#0_+)Ah41kDu}Jrwb#MpKPb|W7>_l*j&7#N2;nT zycOkDO(UZ~6&$3kDTGM0Dyd!jsu!;(&2N4yy8UIX;aku;YunRwhGb zx;1m|f;Lisknbo$5otpzYfAs2(-E8}N1~1Av^O$&=~7}GbRK~Ymn0=)hgzSLF2pmA zI$Q>R(Z9O&krZn){7xO`tY)S#fO+7)zAe12?bX^D)v#jd4mCN& zdAU!z@VmsdVm5o`S7*%SC&o0dG;)8n(?wX6lPl}CQyHld7-&oLX5vX)+F3{(HY%`Z-6b zbZwK)ihLfjJMa}UsL=@9?g)0(+GVUHhL5O0S|>7OAJW7^hEE~aiCYGz*&8DW#G*kl zegnZELur8~15QGYfsOPUWcWA=LO0qmPMOp_W?Er9R|I+6L8CDi6Nas-IL!g~>>9LI z`k3Nf67n=haz&2fRTqwdwOEL(?tq=609~U1CShM*s6gs?q~5M!N*@P^=rL}1u};y6 zjIa!#nxZ3N# zjZ>CcLX=e?TUArff%oTdo}6GFvx@4Bizmu z5ecz;7|ANBBwwTul%!y-h8V~JVdSW?VJHYViV;1-FsX`ksB}^YI8q2_g8gmRQY#*|pWWW{t%klD-x z6ea`@N}-4Yq&^Jpr>A}leg@Ra?K<5CV;vGuW}=f3o3pM$3hpot9ZJEBKQ_C)|8t4_ zRXEt*S{`#^rb%zb9;nGtEVyc<6~|a?D3_TT$M^{ds9D_tI4?t^wh@SmQ=Nr6>gZE& zzJ}tUB3y;h$P)1+v~^}&mU;?Lqc_N%lT9$6;l+) z&j$}?!67kp^_Z9~LnJgmyZkS@{O>zDI@(5MJo9;zr4{4zTTR+LXy9=fS5~%;*C#LD z@1bz8j>T;v_>Bszgzl`_Uv~IxO?Su>aQyNnP$OEC8EC?k2G_nYgrROD;Mt)vq)MxK z#>U{%p(015q9XLf;72nkV{2CU2)0WhsNHhj6dyU;K@rGyOg02JNi33~m?!!~ zR&?PVkhn$ld1@@Dd6Xk}qO+^!_f5`x$$mURb2=iqvSZ`LST0#)z` zR2uUF+(X59iVS2n5`z6G3^_L>5qRq~7ss@}l1=`xr-?|#5RP#cG{%ggCP(2m06^gF zdH?s~9J?SC5QjVLOdBv0j)Xxv(TeGNQIEt1RyHkDZo(gNPT!_rMl=p8I47AKeW)>gdYFD#g(yG!qgM8tD@1KK*n<6cnlB8wM)+tgzT#V zwv5(URrzNfm=@ZdAvFttIsP0~t9~ABJJy}e`1oj4;T+OXM_bJ1!Dh@GI~Hdi%qPgs zMixA&9Y$|VN6c%@1B{}NQsKkk9*(m!=_hH+iI0zIYHTb}FnekHFVKv%Y_p>g za&|o2lS7Ip4XemtpQ@S|Q0~Mz;8Wf_Q0@d8E3Z;T%yLTfbDXt+}ZxG$AlRn@7mq1 z20oM&@;897bz3v<+Ws&DcHtWyied|i;-qUNfv%2@6%VdvTpWnbs6IhcRxa*SWicyQ z=~Gr$OG#qqBime63;IuU%Vl)(k1A)nnQ`ka59EMK)~)$P9xb4;}*oJt`d! z3LQ;O6rD1Dp}bRIz-KKISD7Hy%mKTvP(bFaz{nqBWCX$O{_kD#(5toWUYUQRMifvj zdm6junWp?OMG>5ROjnmt2*}W?a*&WD!D_KMrg(^sl{F@g#YqcXxjxx>AtD}R0^O7p z%{@Mx{G(lBXtHgMXKSTmOQgpz1~)pWVpYyd#LKQK&;+lvh*;m;617?*C>!D3BQ&J! zcNb;NRMTjnU>IsIIGA@?KdWTQGFwo9RfeTzCN^QT=!B9PQ&~@-X%G_wiW_2$i5bd} zm1EI$>P{@ z%hJx#5~~wh?IUC)2e6(z?t^VLQg9Td`7!qUaB2ltXJ~OTG4X`Bgt&56^(4i!nS*+C ztZ{KwfXV`~(}kHoh#gO!1?wVP7gyfCK3W~6HjqT7#L_Z!o8&W5Pr6eIUET2$IBCVZ zeOl)8I;ov{O$mBJdOIfW(EDoEBE;z0;J`ALM`vB?{2mHtl0kHmC?1`Ejens5P=X@T zNMml9jXI^F+)qO+f$%UA$Dxgk2{59NPYCDUd+BK{49tZEy=#?mY`7%#I&x(sF=2F{ ziem=lbTsA2j5Lj~U7J_W9|~H|?N)L{YMvhMmsd8Yg(64+4Wo!G(vgwr48jiMCR4*p zfr~4u`KJstly0ZA1#Zmz3m#V4XN6Puy6I=3Nf)f=q5ISA z&rU9>*<|QsN&?{R_szMc=`JR#ot!8;^qeJHm}u7T5hU0)D1fdFP`XlaOnq76r(@dW&FZ0&x;P;51ndGhSN$7vXWbUa)UP0RV zyT5A0MuktVUo_er&4H&>@yTVvR~}3m{}Hu4Mq=uAQA9w#Ce}kr=)>|PnE8}gJWR4^ zMSkBFe4Frc?LYUgmp%b57@eSoGL5!yR#(7%{~OGsRO4(*p&e6o|ATX`bhou0r*#Cx zmq;u{Odi@#$m+%v*^7lLxaIDCU8(Ksz8_7Yk8B?Gl%j?(U!&C4bs8ZpHpe1+he3SF zn`VdmuX6ci4mE+0-KMtCrewB`(QimnJo1JFZpYSOIP%On)GT$7Q%{Y(&44!R`dqU< zODg(ZMbO%t(IGB2K~`*zkZ^KPen?9hqz1D8)g-{VrasVR{$J3X$Y}KE{L}oZR{Sv^ z3R$^iaM_FI;Sjl@M0iG^|LL6hE)A!l`(Q55;%7jXqZv`@5 zKZ@WNcvd@xjW~Q~6#4`JxF|4U&VuK>R-HALRmbSvU|Lg{7^lH)CQk@l6Lq;@a z&C_;@Gs}EhUK%fWc<)G!*i)0;P2cYANmoPImhjA0V>>*zaX{NArhPVXL)+yM8ZWsq z;fX$doT3sbiQcCs7I`jJv+`6+y(<{-pdB@dPR7qxFKkoF|HjADy4i<$r z;h5HW;kOo%j05a1`%0W;oTVLf0G&MJEL}BRH{2DrAcX$mjWh3dC1ExE)UqM3H5fN0 zw*rn=ITzGkVP*=G1r8UG@w^icd0OKdVdsXc=IARDdBnA|d;Tlq;@o3kh8 zj9`_=mMTc^*x5~>UKwq9OATQMD3o}MIj{`6V;}!9?nKX%1EHLFM*qyw==xiu#^x$r zlmZKBaMJ~WrCeHZ!Emx&b~bK#t-aVeZjA#BtTQfabIF|5TU-PwD>*o;j&J}}!2RA0 zAiag^(N=s1Hsj1@3e;lxp~Va~ou*cNxAOfwQaJ%-omPCW(ltoaZwI@~y(a19)#bdF z5L?w6;V9j~PFgnsV{$}*Y7NUjpi$Ol;>JY(lRNUC8hiD0cBHr5Ams~eZmV0W19`e_ z?mff#TEg0)pfWoL$CjQP@@-A4)*3X(?{;I3*a2~m-Bhgsk1R&Pbchg#vz5~F>Y9*~ zcWD(}Q;i8~iZE{9wzDeOhOi#AoLBl!6nEAwwNK>bx4vNKGFx)|z@1)KO`(B$<830m zoid?;hCKSzZB`R3#-2PUG~EWU-ZNTXUdynq>u($TQoC~b3~fHc6wsDxrE%sWkg4pS z%IU40q|3{I&MpzlYtwAH9D3WMt(EzNZV-r~v1*!sX1_rSfZslOfrEn~m&_R7p@WZw zF=7qEbhL=j!ol&SnIpDTx6Ck6%N|o%W4a7z^J`$iNRcecHaSyet)CaS7(kS#5(A01 z6cikXGRmV{2blbM>;zsz z`PT(Yz1U>l>QXCPdQ@N{UcGLZ#d0p|0telClW`f)vFvx{Y*}R^IliY27+5dptU9Lr zrAd%zXn6#)%s+!e5JO|-pAY6^(bdp47z5iu8&<9OF>VyBHAFz5UL$T#9!E;&h~BYd z3t>*I-b|}oe4KK~Kg3JU>YP{BWFiy87Ga_+r^;wFu8-!pmdOepizL@{VO?HcV;WfH zI58eg2Ant_!H4x*A3K4f!eTEJ~Y2>%xlZoYHLDh zH`pIh2dN5kR>KcvWUl$pc`Q1mcDS^A-Of6W&O4Xp92YFS5}`bDZvBmI(M5A_JiYN< zjQcj^?Oaj}D}M5<5Nm+>-u{rRNEMkGFPReW+(}9a|f=b1|8>Oi1BkZ;nHhNZM06HPrg6pbC(e8@{8zqvh{>t8;+5x5pD*}1u=-E5l zeyZ{@YNhAf*PhFTLk+$>K6=s^G@qufZnlX?6xUaxj{xs7;+WBxyPrb1aHiXj?%&Gr z;gzw+PjD8d;sE|*6qrl4SmOt}ZrPD@Iw+_-gGpXiSyrNOz3pQRHio5|6a2E zPe^9(s(&FVyXO?EPDZR510XtEsRjTpL^XJMPWDE8Xl9#(~o4l7tvQ@18ZMH*F#H-2^&ApzP2wvSXD?4 z?LK(fPjsx-4$CfZYgYh7CULOe3WNq?0f9a!grSfTBW2rza$_y}gs}y4 zSOmOmOF>^lDvqNm`=TjK1)X1n-)Ny{if(a(aS1n`NGNwbGj)l z^~GtPA2DMW>Oi17Ko;N)btjLRWe1W#(h6k}>HyLr;cQ+aq1eotSo!M3CAF-&q}(63 zsDlN=MT9YB+{>dkZ|Z805wA>cISZ2UFo65*X(2R@06t|<;4RI8L>(Y|DN75`JIWK# zV5F%WPbrd31L{;>-p&GVhc~U7y6nOtQF(b*g*y4-tSotqERgngrMLI(i)L>hfH&!4 zl>pQGxfo-xn!sOK*xT9*$Sb`>sS1Gzjhu+;d3VAqBV(Z=`kY~!A~k84_k|Hn62Gyz zy7%nZ!lD#F_B~LVgoj*fk%R~6ElZr8t4#-i@OXO{O3uUHR#yOFP}f>2iIeL3)K%?qvW4+%@YsQP0Mrw?ZacP;`?R!IBmP`Bm5Bs16 z$@!t4`uEpk{hJ2^en`S$yOO-sq)XYcD0?Q7#7B&$gNqB&?lE6w_=gaQ4#VxqqjH@8HbYaeC*vQB6okKCw_kjozeQJ+v~J4<~+v za5obOE)yq{foU!`)w6UFv&RXs;oI&`&j)6BOa=#fW09q$8)w0F)ggL}1zdiI0X3F` z$E9uooqjuA51w#1tX26;i-e3X^hJ&|GIP_WiK71bhYGV{0oIOc&oZ$7LOIjPK5$IcrnukGHj9R!87q_K2!HjZ9neep?aUL|p+kIfBLC z_`7~Y*{8gS>}CyH2IfQ%x{AJ>+DD4>OHp^IL6_li!`UYUnTv=UG}8W5^A#w;v>cv@ znpLm!p<3u_5$;M+H_VN3l0aSQW+rk8gF2Fj`TiO10U!~#xIRHrd8|z6# zwUkS$o~)leNfyvd6R5Pdj%ao#em9V>@o94QUPp928~dZ1$72|v0aGGzWt8TRe_od& zS3g^g;M9Dpl^B`A-=b{MsK&2R7Eir7SzRpFZ1yadESMZvzrXYdq?GeCW2zKanDq=p zswa7pfva?Ox39o-n@$}t;(aOY`BzjNnV z@jgl1k4f2;nAnh=w_%rC+RVqok557pGzcD1RCBzsEH!m6Uc$|PHh<~R2z&IXW$7Fv z-71ze-Cp>g$UA|rN4=dIH-@4??Ltm>HWxtdZ zN_AdZ3ccx?2t!j#CfRAJo9cv$Q$aSBesFd*f>rByVJd=K{CLj!FK@4k+JgmTsqLnq z#6MN6#}5g0;r4OZ?lp2CLoseo8|V9UC$oL~=W^7^s$#397j>vtyoL*!t?l(^tX^Tc zcd#ALo#I|Sd8UerWq}{ditQ{_a9$hg*%;ZE;kH{H(Jm5H%bk0912YJO&zmM(Sl@N_ zAiw%u<*ao=y(+uoc4va}YtgHd6?RAecV8=B$f3DFc5_b&gOUf)!qZ9$$$UBhw-j2^IpGy7v1=do15>kbdX+h;}=htez&{KU_ERy z*DsC`zOZ1sfYTbi{Kh9!*P;JD-4xkvvMxt*c#U!?+`JO|)oKe@X*!wa4AvLgnFjTV z*?+?!Wdm-KGnb_zyIN0U?@d1&@yeB3ocH=C@!M^vH2u#V&VDX^CeqAOOB1>2m7H^v z&{6g;ZA0^Cjhjw4#}22jKZHL8?@3btvc|3ZHt*C7zTpTyHmv)47J1H@vENW( zrJ~Bl>{A~LpErv`nV8Iw<~9napi#>oL1)~uVjl_Pyp)g=cmR35jQzqpEPT&#HaMG z-hTe&l27bmkzHR~ZV|3enEvQ+ABvfuyncTAh;<-_PB`czcr}Zh-FZn|xamw1occP^ zCxj`O2~`IL=`;rkAXFCvqkV zpE$uOlVwGiOm+!v;-6eK$3pa%EKF2nEaM95E&DN+Hg~@_S*}%n-7`BGJf1nOtP8nT zQoQ+%+fUgdTW&ya|bos=e>hIovRw z+I?>sNXHqo$5uh?H!Zl>6e{}Zmu7K*$@-&)%f}+0X-s^eIjjmWH-+H+)$vxQ(o?;J z>92De)t|{GQy#13h)eQz)*41Q%nXrpOo8M7ZGT)GPj8(hoiM?rqXq#Q?b9IB_KpUK z5|tgD^N;7$&Ho6$#Z7XmJ~SUKB#Z-mo&T!2IG|!ENQxt|q&&5NEY#b7(pDeubqeQJ zhh1Yz=CPS&uPwljnKQ`%BvfSVniQI?NzA$Ad7mZ!yQ83V{Ne1K$3`SYq~{iQ1EgVFEk_K0$q#Jdx0 zQruw6E3tR?$whQB>!}KygL4Hyz}%Yl+d?3c8RpbHCDD7ETE!i`vY%RE)JuP7id7{R zqSEfkr(9OYdB?>^Zlg~$Wta1X!C|&X0|F0MojvMrlMGfa6Bf8sw)Z!VD{sLvFx7`* zr;JHsZFfEcA5(qx9kLFy_Aha+8I5{60q#D(Qe}^8(9h=i#jF|Q=(?z&)bed6_NtaU zeCn9E(MNw<)qSMR@+Ak!4A~r_eMR+8lv+>kMI<`Yk}bJMZI({uXHh*^>Z!qbV8E8v z=3RIO(<9D1N!R!}gTw8Z_&`JqDh-bQWY)v&W#Z^p4SDk`nqD@i5Gh}8V?S{2$YW;c%^ z57tEG*=Rkv{j5__*DvUA)`{F#b&@n9_S9*<@nYVz?(ZW%QOZ4$;yn-9q_8|#4)@on zSwwc0?ivruoNcwO7;H0#M-ix2E8xY1~#6J<-)Tmisv|dtU4MQmU!z zSM#`dmL0wc+vF<#2m1#ktYg$f4C}-|1|H_6O0CHW*G%D&#PIaAK03bFf~s<|#zf3z z&o_(~Lgy08JW9Oa`-K&IBMako=6}!QCG^Z*?`75CQ{}lset8r?NsB-^d7#R7R9~?q9354 zXZg0+rW9B3XB_Y0D`k|u!LHgicbdw75PXwm)|RQjPHNB=1#_m_jw&n#hmrM4APw#VsgZpX~Da-mw_f|+J8 z`2Brt*FMyqg7zx74?FSmIEb~3q=c|BeUK69=FX9)W4pt0{%3%^F7?mLDm2=bd1B+r ztLgfg2>l)P!heDkl3$`kHJf7=zV#d=E=>EiR~&6Ut$Qf<*`GOt;VOPu^#D=^oRAX$ej%Q)a&kS_9z$00k=Jy+XdGXhxhk zEKiIlu+U51P$^maz8h4ahush{i7sB$)+F%|u-1r?u7YrOG~qpsi6Z9}g`hjC;2vYIHA$&!(k-g5 zOXp4&CF1af4kgpp^5x^A_!^@dO}+FG1y5p%PmBdlj(@wBOx5Z9=Ra_iKyB_hBzy;- zT5{)IbmegxW2MtF|E9kS3Uw0ug5m$oN*Zy#Ik%8DZ~Z`Nq6pnLF@$af?G292%(6;2 zy{X|k&>|ZO;&ZoOz=W`W@;GeltMkl#{!osQReL}5h%xV@=U~j;yXjsl+si$KKemIV z-lRqD)!xT*z}XHDF`MJuw4}nLQqgecKr}Mz+w7i0dbBrp<3jqVM32p;Do2g#tVx)} zJ+*IRYR{iepaCCYa+A$-iqrN5%3aTt9+I%;(w1_bkvRKy9(&XtG;pZp%6Z)V8@$%| zbpQ8a4XSr#??d3+vRB55ZFo1;)sShq;OUc9c4tA@=0ZEy$~1P6sPkllm(%N=YL>uy z@ruG$?;m$SnB7VcyUrWnJYB(3rvc`CU2*tYUed(sSU4@>Y0{c?HTni1qoz=CwD3fu z3xS`D5o;i?k)WRWn8I1QP@ToXB>F4`s(9TBJX{pxDtpDHOOhAWRkdGm@HLP#xc=$p zbXT~V+@iJpaSeo!dwMwP@u#u2cl_j->XD2y;?op{S9{+;8U3>GqHLKuz0x_-MGLQ86xDJ zq7~x$p_~0=P~Z*IE>XPsS?*oM?JNL}TxNl$WLj=Ae(a#-!x|5)uw!qO8nfO*)XzbWhQZ$C}^SlxJB(cbyCb*v%8sas7U`2+UL(bXfr<9CXR+vB@#M%NA2 zCC~JQ!hc%*IeTc=zTXq(N?;Af1&L|{NC%~Kqhq%xaqo#nxgCj6Z+K|2kNCk!@+Cg$pz{(C$ZU+ z6pUGCiZIKJY;vVeyWPKjJSY(RKdr=Q3+&YHM{KBYLg@|&j3vBJ9@CPP{hFipjChZx$r zcN#_K2kYz_-?~4k$$RD(>RS2gK6zm-HzD=KCV|LP@`>VMj|P_%W7Csy-NLQJmC0m@ zJK?Du%O(y-8AwEg)#mq|5@*rAXj-?iZI0v`MJ~C1)gJks%(s3ZGS(McMsQ0C3JZ zdPkj}Yu<}}6Z+23$>l_8f$n$LPwlVJX_ZxK7ccU_BpfY=(;GA?+<(tW#4~wVzclm2 zROq74@Tk{;ci49`^4)uT_Ad`s{kd)eir0{W_kdW*g?j?IPvl2g_Qjr(9oRDhjuoMA zBi(!rFJe=bJLET(PyN(BajKKXd^C;_YT9`4qT=XceIZmu`6)^4$1n%xV9d~l{9uDS zHusZJT=kZfW+2N1T(v64m!wsED|+Iyn<(kha#szB$f%LoPT_1xOW6P!(gmQqG)zNE zK_?{6utW(M#=Adh(PA`9lZs`S%5#n5FD6y)5(bAH(Ns`)1QW9_1qs%4lO0ZfMLuZQ zBCqw&8HiWhXx`S*{_Z&(KT`r*>y0DpMqLIOMGV6fT1f?Lrxw;eZ-Bz0cYbe}VxNy? zP6)k9bmDu&jI z*IU(MnK`VGi&m@H+5xylu?EHz!(`KDVU@1o912joKTx(O z75b3PG<$;VH-JDBU0tqGl=^`cO9|` zU_gD(JVl1j762fF2yy`e${hlfRDc%YVBVZtN+eRh-X3m>YDovnHRGCLqM~^T44w=Eb5eTfr7w|>djI?2yme9B zxqWtV0C!@=eBN%U$qDl*Tu1t6Hu=N*p%@N11x6j|9t1NEb3qJU=7XHHF zci2raixw90ANI2Tu9axan80Jw%0~rPuO5u<|9MA^`1ZW|5O}#wwk0IzA}_V(y<#Z=iZ)n)+tCz14uWb~zL6LE4R%Fani>gq7= zg*_i~??GG)BYT#*t9m|(<_FKg@tcE_hhP3FeHeWKsPg#p7Q6rHg{iKGv<(C5*bs=W zmLyk`BvyaTEcJ~C{GqgPiZ8{X5+D>OpeUhTJulR6%rP4AL2Ud-`0nL}V{i21$O%dH zSZx_YKn!iD@0W>_jZA@lO3loWC^PnezMiAcM7x$4Vj!(6Y5I|X^2aenI<<=AldsR( z*z*ySJlYgD##*l)w;#QTT3Kr@V$z{XHlnytHMzz}3pik=*?f<~HK@LMS|7ys{>O7^vw`e#)#Ed>X5JTuIS!E1(xs+L@}-dUf2 zz>cor8ytQGUTzZ$Y(YIdHGa@*8@YSWmZL@i%1s|60oiqCs>bY zaD^GqwrT5O8qlFGSQISQ4!y-N!(7)l_nviVOFmYymDeSmQN8m19Y4`H@>ytRcAJ*4 z&s7-P+eh{3OI&W9SN0`3!K$l@ha2Xp&J&?OO_on#v6cNu(4Ye~|E?pX>Nt z5f7@urY0iA5+vkt4l0Ix_9JmA9i8_MIBQy%31AG?uhSORk|{f!OjqPcu)MF7%TNk? zrcMRUi~Bj@aXiGI`K_8{_@#5&0edoGUovTzf~Yu#Vp@&(mB+jYLrQx7uU?ZL=BGK% zvFVR~F_GrdprQy=;rjzFn{BH=H&ZY)+%fU|p&x(!kcV^$!` zJM?%gf&P}9Y9u98!y5M;))BJ{Bui(08;i6i_+?(q%4%0}b`I`-WU^y@b~#kmy~s}K zE9p+>Vsxx^k&lW=)UKBJEuIWMS;Z->T0Vb)U*HS;E~z|2S;gYb8@TwX=nicMldiw& zR+CQ`yhL>){IK*@V*B0qy6WnQ>@-_W%R8hsofT5^{j)^*i#Wpp6A+}1BF&1FCWA$o zW5mv#+?(T<$4f1#XY4dK&HFxb)w8-g3oa(?Mb}=sb7%Q)!!YI#wOJAfTB3ZPVKYar z8rM}C3r%zoe!99IJdKt-w?i$_5wm)%z8tq>Ex-8bQ5E|*#gb3CrKqkxhE9u5Y*M9O zu4~u`8t2BqVkzFzF2PRUG@(oC>gusZ_fkChmJBV%=%X>IDz?jl)xX|rkyh5PPi$@H?16FVss^7G1(&wMt zj!LK~UV|Z7G1AL{C}i4zaOKdY_&0~n?CZuKbm8BcxV`CLmPgmyO;7cJeIX^RNeQo0 z%?XVJD;Hh^OE5a+F2`!YvWOwUhE`U_Qyy zSLUF`ynPYNtRJ3^^o#fXvlKkgRA=FzAi6tpoqm43Pwa5oP?Oo%H$~IcU~n*ij4t-u zeA1?pUuTD}>E;|qK2u<=QL8x-ocMHFQ&?+qcMD(Qh#skO%>I6_xwQUf*@8%}V>^tI z+u8WdeXb4HZ-kt|y>^w)7a`|Al9%!-le8kwce2i~OaaY@Z1OttP8lQ4tP*|U)qf}H zV?#qUge>oLbt{trOlSlx?j_d4rc6!uwvbq^b~9m!R}l$1**d3+BrA ziHV-gL>b0S6Unx9VGx!S{IWfh4kj@R;(MZN$mHP5v7 zqN-x^V`-6A0G)|I6z$*{I8oHhMQ);97%txs-lN6@zF&v3;G@U0Y|c6FJ(Dq+Sta6Xb^M;dj>XAFb?H|DpN}KMT`Lx=W`%;Pus-N1$H(56_*e@cQr`cGG(S z4W7~0k*S?2?t0g}^saPuSH_LVRp+S|BbpQ1=tkdH{wsnEeGS$X7jNC(^hO1I`I3KE zM@ieHCl4GnwBfHXtsth4f==6FP%3lQ52QJ5`T})KBsKiDc+}|_m>#Hkq}BZ_ojkfO z*vSX5RoMDkI!=mr6+LVjo9Rc}z&kTM5?GiOMPJHr`&lSuM3?M#GSCJR+byzZR#)0# zFgDa?GYZ98W^L?ffL{fDn!-RHgDXQp%DMc9XnX+1V2kyL@~dblgIN$}E}SQ4u_vQbL{ysQ|1W)VeUvOf8=^uEl#DN}&Y!O3}hBgRq^ zuRXCz-_kcz@m&7_!Lc<;EzW%KK`YZ07yVP!;WudAyVP7BbmZ)ead_GA9Df&9JkBsC zV=-?pU+=3~o8xUT(QaYc+=Kn1jU<0|VxHFH&q1CA0cZogmE!cK-IhYdQ=@+bd`_8+ zV#mcLUhxiwdm#A({T2#Lp7>h1YpUuN`P6;_%UPPzh$$TUx zVw&HO*;8gc6k#MMRrmC8wGh?Ka`WqHw4oqTzk4&~V2WaAqmvZL(h!HcbV)Sla<*27 zXKspDteP5ZYnr7(BP8|>oL)Zqy-;B_b8>Y$3cF0`b-H5%%Mvk%v3hA1)$RZ^7drDe zPnJq^3dwb0+Nlvc64z!|;ZL6b_dWM(xW-7Z zcm|-uoro@vYHQ$&c%ab}3MimaqZMl*v*lSqq2{|hfGR5tT96Phk*m<4@mvBf4blNp zLR;KcjlvpzEsc&>M7%$5{Ow$6hTp%>>BhPHzy-iZmrNH&BuFGoPmQR6i4wmLLrxZ2=e+JyTbwP?zbAfRaKtBlyc=pK%@cqqlj;dIyDn0E9m; z^D*YSYr5RwRuK>;dvF*aO~*qWJEl!R$745p{vhY{#~;wfx`gYey?~w311vSk1@r5g z1-g?-5ZQkYR=&cgJhRah$?bE0q#z;;0#VoZ%}>f-trZpR>4Lllk>m=$mVQ~K;4J$p zWCI@gMBd5L%oLHD`!8XsIw^^&Qp1XN>}H=TYsoXu<31$TZrv$|E1$@otDcW}_{)Xx z>~nrHDd}u3C@YJpOynF2T@HCzofOynUPLZf?Unk`2|M^MiHcTsWve)4zFv~aTu5DS z+;UtRdpuiW0A*VHnw5a=frr27aBVC0zln=F(h0LR>({RfUsIu|PoSJ6N;VP}@mk$! ztbDX-mrhb*7jm%GF|0))$RyBulaM_NMj#F+(ubyLZ1LXj5y-Xpwb4dkvLyD z_+ZJZ7>U_n_sR%L{#R#lwjWS?sH2>1qJzh<30kFYV_noXU`fj@$=7PNAkJ{c#xScZ)v=ACzWQ>LYMeTUq~yEywKMF z-1oqv-=e*H`q*w{p2@2#$|8`eQ7zC}W$HZQ;>Wkx!Ja&8Xk~p@AI(^P;wcPrQ&kR~ zID2JMnb2Pl^2TE?aI5X5E2WdXr;i)NhtO6@wVz&$d7YS7|I?17F!6UfG)*g$TG%d+ zzk{#R%tDN!^z>&)pTg(ukh-gNrmH{CoeKt4XF5vkB(=L0h&E&=^X(+f-rJ>(AT$0n zA#3YuUpF$v=#@pZt?DX>FIN@Gi@lPe@}%wZh*EtbINq>=N%Fva4D4mIQUV8d~r2>Qwy`*qB5(@uZOMi|{kIFw;i5mQ5cFV}6Wj(5jz>4vh7bV<09 zo5O}(Xwcu@H{e>iM6IECkSDv0!DpD{*k^BsCkLn^bhaX5gDAs z)91epfDosODa813&s`cztTAQLry5ZOzJ(B0zg+>r5=W=`p@C7MV6zFb^i9+HM$zoG z1rwmRDY^Yzgq(;~i7UDtp}+6G}~~B3+Xl^yPavB;92` zi{V!KZ5rapbl*5A?W`)ft~4X8D42MO&K4~>VpWy-86r<3;u)kUSv%^@E5#V@0NN1L zE>e*uCm00jy0&ap&mBn*rkoNPvN9yLyVuKg=BzVJEjF1ub^D1ktfPB zxRtGBBYDVEhR)yHIxD}r*Zz!lhuz2>wn-%rCCUi6d$5RPx}?0G`7rbJN#l zTeM&t3{`&WG~FZ_uj&3va0??bIZ}J0I+oT4v*G~ zt($azHbwXX!79WGlSEcm;}H_%K^A&5ea#s1-xkfkS^$8KtSS`f zs(Gs-|b7Z4_l_7IR5kGwu!XrWsK8ayltN^!wbl zfBrm+HCY{EG>@J47#;o}N2I>wlmMwdx$VQWBFcPb z8OySPw9B!oH?ueCzHB2x#oVKV>_n*7&hcT;3wy<2?j1?tYNCNQ4L73S*T0m0*+z%O zNxx?DY|iKoPJZfB%}Unu-utBoaT9-0eU7i({A1hIPsmpiY8z&+pu4_=N3S#)5@Pfo zIsJRt2inXanA7s-TkNtwVjv{~0C+z~7yjAys3hWXjV{}6t9Gqk@=A=^XuG-TuJJl3 z_&#H}X0_xRisPf7@ys1hkS8M~l?@Z8GI`nrGpi-=wma;HMFx61N5DJzyERU^DPR41l$<={0vgev%Vh~|GhzTYR97*S`lW#M1 zgQTbBrKhK(<{+X}bG{G(q!a=u2dVJJQr>orvFG5e&qcIoU~6&E*<8qKIuHb1;(&}S zLFdrvP#mzV7RM1hpN*`_c9GRMWwpU*iUF)1 zi~_{Lf@*`NLg!GZfqL(GV2&@CMb>+D+-7x^0Ag~3ih;3g*}}tZ-b=uARGT0J?Em)# z9B#}k6@I~^Z2Y7F!J@S%ZFwrU5ToU+;6;Sh0FJg64_TDQ3&1OjDd8z?w-~^AZ1u3! z96TPnDyB5fD#u~jgwTS4vT(H66b=!gL3=)U9)iTjY5|Jz#%nYqES{BP13stcf}rxq z!p+ko6~2t+x+hy}2=TGi2cBhNouW$B<2cvNU=e7P1Iuc` z+v^jU2-U;n6Iru)o?tulaf*EP0GE`|;xIs)(;q;CEZZ;aCnOwSl0K|Zjn*yz% zOjY~i!*S(L;WeWxWJ*_e{zQeD*Vv25XMY5@iJrf6UH*DqVy43CS0nFtW)ZaHNNOFe zsvQl2zG9`A3&jt46yb9|_|6>m5DPC4H~7ICOf46jEcM#Vjw@Ncd}jng1B$63gf(yR z{BjS`t7P-YJ4)73ja?}USrBykHaFbkb}wbshUs=i zB#j3jvAWSWP(HCI-3Mjj&0)0pV+c{a$r__82(8!5?+fGLhk&My!>D5&(d*= z*zgD0B@Ckcms_E@j|^vb2g*3eqH_b|Y1p&Q%>vT)NGXW<_}D38Wcan|xosc5_&564 zV*KGy9pC&NJ5yngUB-1muJ=Vs>E&6<7RvYijJ-_n>JiX&&ZDw=3k~ooxcoe47mPB1 zXO5v0Y2X9LxIv3=WzF_lu1(myR33ym2ikI<>b{hdP8 zn}UyYb42UHmhtB}?|3>y3$U<`ZjEY0UU;?He!;rbx(xGFyf*bIRTsOQ2~4y&)NW%H zO%N2VZC7IHZov1vt{a z)^>9j-3!Pubuy@8a0jkFp{VRi6~~%smRayPmDf0CILzXveFJv8Ljx0EGNJE% zRfq~=f!6Yvp*Jd>K@zM!hR6z+I!h4*qKsg{WYaV*fno65dqQ2k9O~HdrPFYuv%aFK z9?ehTUzgivCz)$WT0Uu`JmBKrwQN<%LNKL7S( z1aK#E71GrtKwslD8mX~jd5Azy!$ww}Aok6Tlf;-%3w_fHgfBHBo6bGeiZ+H@n!m_V z$}!xF&&JzPY2M*bgp6jbUUnNpm&eOHRxKz zA*B-4nd&8kv6VK6A!dJbDBM6+fAXA%h z9#1VF`FY!hY+`9vN+`XBl{z-Jb}G+qmO$%Du^#5Y*iaQbzc)Aaxu|JV5#?nxen*@g z+MKXdo=zK&zy_9hI|6OoizJICA^1N02>`_gq~97NrV-lfe18 zBS{m>xAukC-yJ$@_c~R~0-sl%RedYVdySyQc6nFsA0}5%zy`d>aIk8d+irgHkQL57 zhP}jUmT_Dmhk1`=ck-AOA@$xx}_3N?=l#BBz5?RHl*?NwkxRq%&( zDz++^z!FpZJSAx^`2by8Vp=)K!)m@h(}t87%%f=lEJ8@j*4gm;+D&?ZnwzVj^KW-GpzrIZ?US5+y`^KRO=hb%zW;dUAfv*k9c zc7utzx{Gr{j=tHOlaAfKwJN@)UL1~7e%`0uZZ&pY#|9z%=@Sz>=~d|+$03NS<AQnfB5MJlCh|9}HS|yeX0QB$XcNcD2^B06Pd@))afi*5Jj!HiD`{8oKtX_hXcB(-HwYCGCPU3?dMFG7&*tT}>>gEi;?MtQdd?tQQJ* zB6Iz1DnV%S_xsF&qWhxzwX1&qoJ-S%3QAf!>E`QF)P%<$s?G6&K)gq z&295cp5@hktu0HOlC8@qf?Rja^`(#Zg_{+_1ZtN-__a!)5llQ^)}}2t1q;LbP)b!0 z2~q+?*lfl7)yFd{4RhEEfs)yJ0&bpUspPU8-olGTazG^QZHGqpk!m}AMjptpkh~`X z8-P>GzS!o%WX&6AOW)_tyR41wbug&hTr5%f`q5e1FV?!OR$S}5ck*#+wOy<9a(0I! z^ZQ|z%qf0;F@y2#;yo#BbI}?`ZeIV8k6d}{caaBlm5_gf+;YMQ7%o-%;Bb0WmUcP3 zLbw)b-FZEA^;Ak3zFZ%Q%8B$AULnK5tQ0v9emZ_(Po}vXBN29fDnl9nG7q``K0Nm0 zbL58>vQ-QEd|&<;E!!hAd}w(;o$?C(+|#%v2)sn{O=Qc|VD=O@-{%mnl3DQDLTuK2 z@A>D$Sh&4BKHg5;hF}DTBi!ux;mb*rZcux&CVWy60kt~U2Q-4Q3G5 zV;je38*nKT) z$f6p1xk3H$fUn}<HqGLwFo3HhjPbPF-A#aI%A=viV$-<7b=ILr6zDASLTy@yi zJahKRl9{6gq;pPNh%XH1@cyPAzf*K5x}5E@f=QR7KW7fpr)RkB6RCx&9_Kj_;t{`Z0&_v@92&5UryF%2vRZ)6(NI zaU6np1l(A1!kee1d*<4*15I*rU7BY;YxYLp`8e_7o){|>b(-3jZL!B`{QWWd(P

>Lo2UwSE&@4+2DOGd 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 diff --git a/data/settingsMetadata.rda b/data/settingsMetadata.rda index df2f503880f169aedf894910d482a464e4921fcb..559f71355a7afd1b910f6ee3550f40862323b09f 100644 GIT binary patch literal 1968 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 C$&qOQ From afb68e06a25211b6e962db8d3876cd99e10657c4 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 6 Feb 2019 10:02:42 -0800 Subject: [PATCH 4/9] more detectStandard update/debug. #150 --- R/compare_to_standard.R | 30 ----------------- R/detectStandard.R | 4 +-- R/evaluateStandard.R | 48 +++++++++++++++++++++++++++ R/hasColumn.R | 10 +++--- R/hasField.R | 10 +++--- tests/testthat/test_compareStandard.R | 0 tests/testthat/test_hasField.R | 18 +++++++--- 7 files changed, 73 insertions(+), 47 deletions(-) delete mode 100644 R/compare_to_standard.R create mode 100644 R/evaluateStandard.R create mode 100644 tests/testthat/test_compareStandard.R diff --git a/R/compare_to_standard.R b/R/compare_to_standard.R deleted file mode 100644 index 6b3e5dcf..00000000 --- a/R/compare_to_standard.R +++ /dev/null @@ -1,30 +0,0 @@ -compare_to_standard <- function(data, standard, includeFields, domain="labs"){ - compare_summary<-list() - - # Get metadata for settings using the specified standard and see if required data elements are found - standardChecks <- getSettingsMetadata( - cols=c("text_key", "column_mapping", "field_mapping", "column_field_key", "setting_required", standard), - ) %>% - filter(column_mapping == TRUE || field_mapping ==TRUE) %>% - filter(setting_required==TRUE) %>% - mutate(type = ifelse(column_mapping), "column", "field") %>% - mutate(valid = ifelse(column_mapping, - hasColumn(data=data, colName=standard), - hasField(data=data, colName=column_field_key, fieldValue=standard) - )) %>% - select(text_key, standard, type, valid) - - compare_summary[["checks"]] <- as.list(standardChecks) - - # How many valid data elements - comare_summary[["valid_count"]] <- standardChecks %>% filter(valid==TRUE) %>% n() - compare_summary[["invalid_count"]] <- standardChecks %>% filter(valid==FALSE) %>% n() - - - if (compare_summary[["invalid_count"]]==0) { - compare_summary[["match"]] <- "Full" - } else if(compare_summary[["valid_count"]]>0) { - compare_summary[["match"]] <- "Partial" - } else { - compare_summary[["match"]] <- "None" - } diff --git a/R/detectStandard.R b/R/detectStandard.R index 32b7df0c..2007849c 100644 --- a/R/detectStandard.R +++ b/R/detectStandard.R @@ -27,8 +27,8 @@ detectStandard <- function(data, includeFields=TRUE, domain="labs"){ # Create placeholder list, with Standard = None. standard_list <- list() standard_list[["details"]] = list() - standard_list[["details"]][["ADaM"]]<-compare_to_standard(data,standard="ADaM", includeFields=includeFields, domain=domain) - standard_list[["details"]][["SDTM"]]<-compare_to_standard(data,standard="SDTM", includeFields=includeFields, domain=domain) + standard_list[["details"]][["ADaM"]]<-evaluateStandard(data,standard="ADaM", includeFields=includeFields, domain=domain) + standard_list[["details"]][["SDTM"]]<-evaluateStandard(data,standard="SDTM", includeFields=includeFields, domain=domain) # Determine the final standard if(standard_list[["details"]][["SDTM"]][["match"]] == "Full"){ diff --git a/R/evaluateStandard.R b/R/evaluateStandard.R new file mode 100644 index 00000000..d81246e3 --- /dev/null +++ b/R/evaluateStandard.R @@ -0,0 +1,48 @@ +evaluateStandard <- function(data, standard, includeFields=TRUE, domain="labs"){ + + stopifnot( + is.data.frame(data), + is.character(standard), + is.logical(includeFields), + is.character(domain), + tolower(standard) %in% c("adam","sdtm") + ) + + standard<-tolower(standard) + + compare_summary<-list() + + add<-function(val1,val2){return(val1+val2)} + data.frame(a=1,b=2,c=3)%>% + mutate(d=add(val1=b,val2=c)) + # Get metadata for settings using the specified standard and see if required data elements are found + standardChecks <- getSettingsMetadata(cols=c("text_key", "column_mapping", "field_mapping", "field_column_key", "setting_required","standard_val",standard))%>% + rename("standard_val"=standard)%>% + filter(column_mapping == TRUE || field_mapping ==TRUE) %>% + filter(setting_required==TRUE) %>% + mutate(type = ifelse(column_mapping, "column", "field")) %>% #working to here + rowwise %>% + mutate(field_column_name = ifelse(field_mapping, getSettingsMetadata(cols=standard, text_keys=field_column_key),"")) %>% + mutate(valid = ifelse(column_mapping, + safetyGraphics:::hasColumn(data=data, columnName=standard_val), + safetyGraphics:::hasField(data=data, columnName=field_column_name, fieldValue=standard_val) + ))# %>% + #select(text_key, standard, type, valid) + + compare_summary[["checks"]] <- standardChecks + + # How many valid data elements + #comare_summary[["valid_count"]] <- standardChecks %>% filter(valid==TRUE) %>% n() + #compare_summary[["invalid_count"]] <- standardChecks %>% filter(valid==FALSE) %>% n() + + + # if (compare_summary[["invalid_count"]]==0) { + # compare_summary[["match"]] <- "Full" + # } else if(compare_summary[["valid_count"]]>0) { + # compare_summary[["match"]] <- "Partial" + # } else { + # compare_summary[["match"]] <- "None" + # } + + return(compare_summary) +} \ No newline at end of file diff --git a/R/hasColumn.R b/R/hasColumn.R index 03685cd3..3ca51806 100644 --- a/R/hasColumn.R +++ b/R/hasColumn.R @@ -14,10 +14,10 @@ hasColumn <- function(columnName, data){ stopifnot( - typeof(column)=="character", - length(columnName)>1, - typeof(data)=="data.frame" + typeof(columnName)=="character", + length(columnName)==1, + is.data.frame(data) ) - - return toupper(columnName) %in% toupper(colnames(data)) + + return(toupper(columnName) %in% toupper(colnames(data))) } diff --git a/R/hasField.R b/R/hasField.R index 3378612a..94a1d3a1 100644 --- a/R/hasField.R +++ b/R/hasField.R @@ -14,10 +14,10 @@ hasField<- function(fieldValue, columnName, data){ stopifnot( - length(fieldValue)>1, - typeof(column)=="character", - length(columnName)>1, - typeof(data)=="data.frame" + length(fieldValue)==1, + typeof(columnName)=="character", + length(columnName)==1, + is.data.frame(data) ) columnFound <- hasColumn(columnName=columnName, data=data) @@ -28,5 +28,5 @@ hasField<- function(fieldValue, columnName, data){ } validFields <- unique(data[[columnName]]) - return fieldValue %in% validFields + return(fieldValue %in% validFields) } diff --git a/tests/testthat/test_compareStandard.R b/tests/testthat/test_compareStandard.R new file mode 100644 index 00000000..e69de29b diff --git a/tests/testthat/test_hasField.R b/tests/testthat/test_hasField.R index 9d5d61b0..a1e9197e 100644 --- a/tests/testthat/test_hasField.R +++ b/tests/testthat/test_hasField.R @@ -1,18 +1,26 @@ -context("Tests for the hasField() function") +context("Tests for the cField() function") library(safetyGraphics) test_that("fields are found when expected",{ # simple test case works expect_true(hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc)) + + # flexible regarding type expect_true(hasField(fieldValue=1015,columnName="SUBJID",data=adlbc)) + expect_true(hasField(fieldValue="1015",columnName="SUBJID",data=adlbc)) + expect_true(hasField(fieldValue=list(1015),columnName="SUBJID",data=adlbc)) + expect_true(hasField(fieldValue=list(1015),columnName="SUBJID",data=adlbc)) + + #but not regarding length + expect_error(hasField(fieldValue=list(1015,1023),columnName="SUBJID",data=adlbc)) + expect_error(hasField(fieldValue=c("a","b"),columnName="PARAM",data=adlbc)) + # returns false when fieldValue isn't there or there is a type mismatch expect_false(hasField(fieldValue="Not_a_real_value",columnName="PARAM",data=adlbc)) - expect_false(hasField(fieldValue="1015",columnName="SUBJID",data=adlbc)) + expect_false(hasField(fieldValue=12,columnName="PARAM",data=adlbc)) # fails with invalid parameters - expect_error(hasField(fieldValue=c("a","b"),columnName="PARAM",data=adlbc)) - expect_error(hasField(fieldValue=12,columnName="PARAM",data=adlbc)) expect_error(hasField(fieldValue="Bilirubin (umol/L)",columnName=c("PARAM","ID"),data=adlbc)) - expect_error(hasField(fieldValue=,columnName="PARAM",data=list(adlbc))) + expect_error(hasField(columnName="PARAM",data=list(adlbc))) #fieldValue missing }) From bee1c544de80b3ce2820281af9e890ac7e61aaab Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 6 Feb 2019 14:05:42 -0800 Subject: [PATCH 5/9] added test framework --- R/evaluateStandard.R | 59 +++++++++++++++++--------- R/hasField.R | 2 +- tests/testthat/test_evaluateStandard.R | 25 +++++++++++ 3 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 tests/testthat/test_evaluateStandard.R diff --git a/R/evaluateStandard.R b/R/evaluateStandard.R index d81246e3..79d2ca82 100644 --- a/R/evaluateStandard.R +++ b/R/evaluateStandard.R @@ -1,3 +1,25 @@ +#' Evaluate a data set against a data standard +#' +#' Determines whether the required data elements in a data standard are found in a given data frame +#' +#' @param data data.frame to evaluate +#' @param standard standard to evaluate +#' @param includeFields should field level data be evaluated? +#' @param domain data domain. "labs" only for now. +#' +#' @return a list describing to what degree the data set matches the data standard. The "match" property specifies describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. +#' +#' @examples +#'' +#' hasColumn(columnName="PARAM",data=adlbc) #TRUE +#' hasColumn(columnName="Not_a_column",data=adlbc) #FALSE +#' +#' @import dplyr +#' @importFrom purrr map +#' +#' @keywords internal + + evaluateStandard <- function(data, standard, includeFields=TRUE, domain="labs"){ stopifnot( @@ -11,38 +33,37 @@ evaluateStandard <- function(data, standard, includeFields=TRUE, domain="labs"){ standard<-tolower(standard) compare_summary<-list() + compare_summary[["standard"]]<-standard - add<-function(val1,val2){return(val1+val2)} - data.frame(a=1,b=2,c=3)%>% - mutate(d=add(val1=b,val2=c)) # Get metadata for settings using the specified standard and see if required data elements are found - standardChecks <- getSettingsMetadata(cols=c("text_key", "column_mapping", "field_mapping", "field_column_key", "setting_required","standard_val",standard))%>% - rename("standard_val"=standard)%>% + standardChecks <- getSettingsMetadata(cols=c("text_key", "column_mapping", "field_mapping", "field_column_key", "setting_required","standard_val",standard)) %>% + rename("standard_val"=standard) %>% filter(column_mapping == TRUE || field_mapping ==TRUE) %>% filter(setting_required==TRUE) %>% - mutate(type = ifelse(column_mapping, "column", "field")) %>% #working to here + mutate(type = ifelse(column_mapping, "column", "field")) %>% rowwise %>% mutate(field_column_name = ifelse(field_mapping, getSettingsMetadata(cols=standard, text_keys=field_column_key),"")) %>% mutate(valid = ifelse(column_mapping, safetyGraphics:::hasColumn(data=data, columnName=standard_val), safetyGraphics:::hasField(data=data, columnName=field_column_name, fieldValue=standard_val) - ))# %>% - #select(text_key, standard, type, valid) + )) %>% + select(text_key, standard_val, type, valid) - compare_summary[["checks"]] <- standardChecks + # compare_summary[["checks"]] <- split(standardChecks, seq(nrow(standardChecks)))%>%map(~as.list(.)) #coerce to list of lists? + compare_summary[["checks"]] <- standardChecks #or just keep the tibble ... - # How many valid data elements - #comare_summary[["valid_count"]] <- standardChecks %>% filter(valid==TRUE) %>% n() - #compare_summary[["invalid_count"]] <- standardChecks %>% filter(valid==FALSE) %>% n() + # count valid/invalid data elements + compare_summary[["valid_count"]] <- standardChecks %>% filter(valid) %>% nrow() + compare_summary[["invalid_count"]] <- standardChecks %>% filter(!valid) %>% nrow() - # if (compare_summary[["invalid_count"]]==0) { - # compare_summary[["match"]] <- "Full" - # } else if(compare_summary[["valid_count"]]>0) { - # compare_summary[["match"]] <- "Partial" - # } else { - # compare_summary[["match"]] <- "None" - # } + if (compare_summary[["invalid_count"]]==0) { + compare_summary[["match"]] <- "Full" + } else if(compare_summary[["valid_count"]]>0) { + compare_summary[["match"]] <- "Partial" + } else { + compare_summary[["match"]] <- "None" + } return(compare_summary) } \ No newline at end of file diff --git a/R/hasField.R b/R/hasField.R index 94a1d3a1..ba521961 100644 --- a/R/hasField.R +++ b/R/hasField.R @@ -10,7 +10,7 @@ #' hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE #' hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE #' -#' @export +#' @keywords internal hasField<- function(fieldValue, columnName, data){ stopifnot( diff --git a/tests/testthat/test_evaluateStandard.R b/tests/testthat/test_evaluateStandard.R new file mode 100644 index 00000000..76a735d7 --- /dev/null +++ b/tests/testthat/test_evaluateStandard.R @@ -0,0 +1,25 @@ +context("Tests for the evaluateStandard() function") +library(safetyGraphics) + +test_that("basic test cases evaluate as expected",{ + expect_equal(evaluateStandard(data=adlbc, standard="adam")[["match"]],"Full") + expect_equal(evaluateStandard(data=adlbc, standard="sdtm")[["match"]],"Partial") + expect_equal(evaluateStandard(data=data.frame(), standard="sdtm")[["match"]],"None") +}) + +test_that("a list with the expected properties and structure is returned",{ + a<- evaluateStandard(data=data.frame(),standard="adam") + + expect_is(a,"list") + expect_named(a,c('standard', 'checks', 'valid_count', 'invalid_count', 'match')) + expect_is(a[["standard"]],"character") + expect_is(a[["match"]],"character") + expect_is(a[["checks"]],"tbl") + expect_is(a[["valid_count"]],"integer") + expect_is(a[["invalid_count"]],"integer") +}) + + +test_that("field level data is ignored when useFields=false",{}) + +test_that("invalid options throw errors",{}) \ No newline at end of file From e7ee8ec143413c158af56fdbe402846c48d1114e Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 6 Feb 2019 14:27:37 -0800 Subject: [PATCH 6/9] update other tests --- tests/testthat/test_detectStandard.R | 10 ++++++---- tests/testthat/test_evaluateStandard.R | 12 ++++++++++-- tests/testthat/test_getRequiredSettings.R | 10 +++++++--- tests/testthat/test_getSettingsMetadata.R | 2 +- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/tests/testthat/test_detectStandard.R b/tests/testthat/test_detectStandard.R index 2d41343a..687e71c7 100644 --- a/tests/testthat/test_detectStandard.R +++ b/tests/testthat/test_detectStandard.R @@ -19,22 +19,24 @@ test_that("correct standards are identified",{ expect_equal(detectStandard(adlbc)[["details"]][["ADaM"]][["match"]], "Full") expect_equal(detectStandard(adlbc)[["details"]][["SDTM"]][["match"]], "Partial") - adam_test_data<-data.frame(USUBJID="001",AVAL=10,PARAM="HDL",VISIT="Visit 1",VISITNUM=1,ADY=0,A1LO=0,A1HI=20) + adam_params <- c("Alanine Aminotransferase (U/L)","Aspartate Aminotransferase (U/L)","Bilirubin (umol/L)","Alkaline Phosphatase (U/L)") + adam_test_data<-data.frame(USUBJID="001",AVAL=10,PARAM=adam_params, VISIT="Visit 1",VISITNUM=1,ADY=0,A1LO=0,A1HI=20) expect_equal(detectStandard(adam_test_data)[["standard"]],"ADaM") expect_equal(detectStandard(adam_test_data)[["details"]][["ADaM"]][["match"]], "Full") expect_equal(detectStandard(adam_test_data)[["details"]][["SDTM"]][["match"]], "Partial") - sdtm_test_data<-data.frame(USUBJID="001",STRESN=10,TEST="HDL",VISIT="Visit 1",VISITNUM=1,DY=0,STNRLO=0,STNRHI=20) + sdtm_params<-c("Aminotransferase, alanine (ALT)","Aminotransferase, aspartate (AST)","Total Bilirubin","Alkaline phosphatase (ALP)") + sdtm_test_data<-data.frame(USUBJID="001",STRESN=10,TEST=sdtm_params,VISIT="Visit 1",VISITNUM=1,DY=0,STNRLO=0,STNRHI=20) expect_equal(detectStandard(sdtm_test_data)[["standard"]],"SDTM") expect_equal(detectStandard(sdtm_test_data)[["details"]][["ADaM"]][["match"]], "Partial") expect_equal(detectStandard(sdtm_test_data)[["details"]][["SDTM"]][["match"]], "Full") - empty_test_data<-data.frame() + empty_test_data<-data.frame("") expect_equal(detectStandard(empty_test_data)[["standard"]],"None") expect_equal(detectStandard(empty_test_data)[["details"]][["ADaM"]][["match"]], "None") expect_equal(detectStandard(empty_test_data)[["details"]][["SDTM"]][["match"]], "None") - case_sensitive_test_data<-data.frame(usubjid="001",AVAL=10,PARAM="HDL",VISIT="Visit 1",VISITNUM=1,ADY=0,A1LO=0,A1HI=20) + case_sensitive_test_data<-data.frame(usubjid="001",AVAL=10,PARAM=adam_params, VISIT="Visit 1",VISITNUM=1,ADY=0,A1LO=0,A1HI=20) expect_equal(detectStandard(case_sensitive_test_data)[["standard"]],"ADaM") expect_equal(detectStandard(case_sensitive_test_data)[["details"]][["ADaM"]][["match"]], "Full") expect_equal(detectStandard(case_sensitive_test_data)[["details"]][["SDTM"]][["match"]], "Partial") diff --git a/tests/testthat/test_evaluateStandard.R b/tests/testthat/test_evaluateStandard.R index 76a735d7..2a37953d 100644 --- a/tests/testthat/test_evaluateStandard.R +++ b/tests/testthat/test_evaluateStandard.R @@ -19,7 +19,15 @@ test_that("a list with the expected properties and structure is returned",{ expect_is(a[["invalid_count"]],"integer") }) +test_that("expected checks are marked invalid",{ + expect_true(FALSE) +}) + -test_that("field level data is ignored when useFields=false",{}) +test_that("field level data is ignored when useFields=false",{ + expect_true(FALSE) +}) -test_that("invalid options throw errors",{}) \ No newline at end of file +test_that("invalid options throw errors",{ + expect_true(FALSE) +}) \ No newline at end of file diff --git a/tests/testthat/test_getRequiredSettings.R b/tests/testthat/test_getRequiredSettings.R index 1bca5f5a..6e4604e8 100644 --- a/tests/testthat/test_getRequiredSettings.R +++ b/tests/testthat/test_getRequiredSettings.R @@ -2,13 +2,17 @@ context("Tests for the getRequiredSettings() function") library(safetyGraphics) library(testthat) -defaultRequiredCols <- list( +defaultRequiredSettings <- list( list("id_col"), list("value_col"), list("measure_col"), list("normal_col_low"), list("normal_col_high"), - list("studyday_col") + list("studyday_col"), + list("measure_values","ALT"), + list("measure_values","AST"), + list("measure_values","TB"), + list("measure_values","ALP") ) @@ -30,7 +34,7 @@ customMetadata<- data.frame( test_that("default function call works as expected",{ a<- safetyGraphics::getRequiredSettings() expect_is(a,"list") - expect_equal(a,defaultRequiredCols) + expect_equal(a,defaultRequiredSettings) }) test_that("options work as expected",{ diff --git a/tests/testthat/test_getSettingsMetadata.R b/tests/testthat/test_getSettingsMetadata.R index 4cad3e7a..1b43492e 100644 --- a/tests/testthat/test_getSettingsMetadata.R +++ b/tests/testthat/test_getSettingsMetadata.R @@ -135,5 +135,5 @@ test_that("filter_expr parameters works as expected",{ ) expect_equal(safetyGraphics:::getSettingsMetadata(filter_expr=text_key=="id_col",cols="description"),"Unique subject identifier variable name.") expect_length(safetyGraphics:::getSettingsMetadata(filter_expr=column_type=="numeric",cols="text_key",chart="edish"),5) - expect_length(safetyGraphics:::getSettingsMetadata(filter_expr=setting_required,cols="text_key",chart="edish"),6) + expect_length(safetyGraphics:::getSettingsMetadata(filter_expr=setting_required,cols="text_key",chart="edish"),10) }) \ No newline at end of file From 5f6a59256db7b30a67b0abddc8a731500cb6c3f0 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 6 Feb 2019 14:50:17 -0800 Subject: [PATCH 7/9] add includeFields. finish tests. fix #150 --- R/evaluateStandard.R | 5 +++++ tests/testthat/test_evaluateStandard.R | 22 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/R/evaluateStandard.R b/R/evaluateStandard.R index 79d2ca82..f54babc8 100644 --- a/R/evaluateStandard.R +++ b/R/evaluateStandard.R @@ -49,6 +49,11 @@ evaluateStandard <- function(data, standard, includeFields=TRUE, domain="labs"){ )) %>% select(text_key, standard_val, type, valid) + # filter out the field level checks if includeChecks is false + if(!includeFields){ + standardChecks <- standardChecks %>% filter(type != "field") + } + # compare_summary[["checks"]] <- split(standardChecks, seq(nrow(standardChecks)))%>%map(~as.list(.)) #coerce to list of lists? compare_summary[["checks"]] <- standardChecks #or just keep the tibble ... diff --git a/tests/testthat/test_evaluateStandard.R b/tests/testthat/test_evaluateStandard.R index 2a37953d..72dd5ec8 100644 --- a/tests/testthat/test_evaluateStandard.R +++ b/tests/testthat/test_evaluateStandard.R @@ -19,15 +19,29 @@ test_that("a list with the expected properties and structure is returned",{ expect_is(a[["invalid_count"]],"integer") }) -test_that("expected checks are marked invalid",{ - expect_true(FALSE) +test_that("expected number of checks (in)valid",{ + expect_equal(evaluateStandard(data=adlbc, standard="sdtm")[["valid_count"]],1) + expect_equal(evaluateStandard(data=adlbc, standard="sdtm")[["invalid_count"]],9) + + adlbc_edit <- adlbc + adlbc_edit$TEST <- adlbc_edit$PARAM + a<-evaluateStandard(data=adlbc_edit, standard="sdtm") + expect_equal(a[["valid_count"]],2) + expect_equal(a[["invalid_count"]],8) + expect_true(a[["checks"]]%>%filter(text_key=="measure_col")%>%select(valid)%>%unlist) }) test_that("field level data is ignored when useFields=false",{ - expect_true(FALSE) + noFields<-evaluateStandard(data=adlbc, standard="adam", includeFields=FALSE) + expect_equal(noFields[["match"]],"Full") + expect_equal(noFields[["valid_count"]],6) }) test_that("invalid options throw errors",{ - expect_true(FALSE) + expect_error(evaluateStandard(data=list(a=1,b=2), standard="sdtm")) + expect_error(evaluateStandard(data="notadataframe", standard="sdtm")) + expect_error(evaluateStandard(data=adlbc, standard=123)) + expect_error(evaluateStandard(data=adlbc, standard="notarealstandard")) + expect_error(evaluateStandard(data=adlbc, standard="adam", includeFields="yesPlease")) }) \ No newline at end of file From 70b4b2263469261f959d3f6fce7e075881e264ce Mon Sep 17 00:00:00 2001 From: jwildfire Date: Thu, 7 Feb 2019 09:00:13 -0800 Subject: [PATCH 8/9] clean up docs. clear checks. --- NAMESPACE | 1 - R/detectStandard.R | 4 ++++ R/evaluateStandard.R | 30 +++++++++++++++--------------- R/hasColumn.R | 10 +++++----- R/hasField.R | 5 +++-- man/detectStandard.Rd | 3 +++ man/evaluateStandard.Rd | 5 +++++ man/hasColumn.Rd | 8 +++++++- man/hasField.Rd | 4 ++-- 9 files changed, 44 insertions(+), 26 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 5a2869b3..5b3e526a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -6,7 +6,6 @@ export(eDISHOutput) export(generateSettings) export(getRequiredSettings) export(getSettingsMetadata) -export(hasColumn) export(renderEDISH) export(safetyGraphicsApp) export(validateSettings) diff --git a/R/detectStandard.R b/R/detectStandard.R index 2007849c..feb3c7cc 100644 --- a/R/detectStandard.R +++ b/R/detectStandard.R @@ -5,9 +5,13 @@ #' This function compares the columns in the provided \code{"data"} with the required columns for a given data standard/domain combination. The function is designed to work with the SDTM and AdAM CDISC() standards for clinical trial data. Currently, only "labs" is the only domain supported. #' #' @param data A data frame in which to detect the data standard +#' @param includeFields specifies whether to check the data set for field level data in addition to columns. Default: \code{TRUE}. #' @param domain The data domain for the data set provided. Default: \code{"labs"}. +#' #' @return A list containing the matching \code{"standard"} ("ADaM", "SDTM" or "None") and a list of \code{"details"} describing each standard considered. #' +#' #' @examples +#' #' detectStandard(adlbc)[["standard"]] #AdAM #' detectStandard(iris)[["standard"]] #none #' diff --git a/R/evaluateStandard.R b/R/evaluateStandard.R index f54babc8..e238dfc4 100644 --- a/R/evaluateStandard.R +++ b/R/evaluateStandard.R @@ -10,13 +10,13 @@ #' @return a list describing to what degree the data set matches the data standard. The "match" property specifies describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. #' #' @examples -#'' -#' hasColumn(columnName="PARAM",data=adlbc) #TRUE -#' hasColumn(columnName="Not_a_column",data=adlbc) #FALSE +#' safetyGraphics:::evaluateStandard(data=adlbc, standard="adam") # Match is TRUE +#' safetyGraphics:::evaluateStandard(data=adlbc, standard="sdtm") # Match is FALSE #' #' @import dplyr #' @importFrom purrr map -#' +#' @importFrom rlang .data +#' #' @keywords internal @@ -38,28 +38,28 @@ evaluateStandard <- function(data, standard, includeFields=TRUE, domain="labs"){ # Get metadata for settings using the specified standard and see if required data elements are found standardChecks <- getSettingsMetadata(cols=c("text_key", "column_mapping", "field_mapping", "field_column_key", "setting_required","standard_val",standard)) %>% rename("standard_val"=standard) %>% - filter(column_mapping == TRUE || field_mapping ==TRUE) %>% - filter(setting_required==TRUE) %>% - mutate(type = ifelse(column_mapping, "column", "field")) %>% + filter(.data$column_mapping == TRUE || .data$field_mapping ==TRUE) %>% + filter(.data$setting_required==TRUE) %>% + mutate(type = ifelse(.data$column_mapping, "column", "field")) %>% rowwise %>% - mutate(field_column_name = ifelse(field_mapping, getSettingsMetadata(cols=standard, text_keys=field_column_key),"")) %>% - mutate(valid = ifelse(column_mapping, - safetyGraphics:::hasColumn(data=data, columnName=standard_val), - safetyGraphics:::hasField(data=data, columnName=field_column_name, fieldValue=standard_val) + mutate(field_column_name = ifelse(.data$field_mapping, getSettingsMetadata(cols=standard, text_keys=.data$field_column_key),"")) %>% + mutate(valid = ifelse(.data$column_mapping, + hasColumn(data=data, columnName=.data$standard_val), + hasField(data=data, columnName=.data$field_column_name, fieldValue=.data$standard_val) )) %>% - select(text_key, standard_val, type, valid) + select(.data$text_key, .data$standard_val, .data$type, .data$valid) # filter out the field level checks if includeChecks is false if(!includeFields){ - standardChecks <- standardChecks %>% filter(type != "field") + standardChecks <- standardChecks %>% filter(.data$type != "field") } # compare_summary[["checks"]] <- split(standardChecks, seq(nrow(standardChecks)))%>%map(~as.list(.)) #coerce to list of lists? compare_summary[["checks"]] <- standardChecks #or just keep the tibble ... # count valid/invalid data elements - compare_summary[["valid_count"]] <- standardChecks %>% filter(valid) %>% nrow() - compare_summary[["invalid_count"]] <- standardChecks %>% filter(!valid) %>% nrow() + compare_summary[["valid_count"]] <- standardChecks %>% filter(.data$valid) %>% nrow() + compare_summary[["invalid_count"]] <- standardChecks %>% filter(!.data$valid) %>% nrow() if (compare_summary[["invalid_count"]]==0) { diff --git a/R/hasColumn.R b/R/hasColumn.R index 3ca51806..d64fc52d 100644 --- a/R/hasColumn.R +++ b/R/hasColumn.R @@ -1,16 +1,16 @@ #' Check whether a column is found in a data set #' -#' This checks whether a specified column is found in a specified data set +#' Checks whether a specified column is found in a specified data set #' #' @param columnName The column to look for. #' @param data the data.frame to search. #' @return logical scalar. TRUE if the column is found. FALSE otherwise +#' #' @examples -#'' -#' hasColumn(columnName="PARAM",data=adlbc) #TRUE -#' hasColumn(columnName="Not_a_column",data=adlbc) #FALSE +#' safetyGraphics:::hasColumn(columnName="PARAM",data=adlbc) #TRUE +#' safetyGraphics:::hasColumn(columnName="Not_a_column",data=adlbc) #FALSE #' -#' @export +#' @keywords internal hasColumn <- function(columnName, data){ stopifnot( diff --git a/R/hasField.R b/R/hasField.R index ba521961..ab038568 100644 --- a/R/hasField.R +++ b/R/hasField.R @@ -6,9 +6,10 @@ #' @param columnName The column to check. #' @param data the data.frame to search. #' @return logical scalar. TRUE if field_value is found. FALSE otherwise +#' #' @examples -#' hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE -#' hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE +#' safetyGraphics:::hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE +#' safetyGraphics:::hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE #' #' @keywords internal diff --git a/man/detectStandard.Rd b/man/detectStandard.Rd index a2c5c494..bfae29b5 100644 --- a/man/detectStandard.Rd +++ b/man/detectStandard.Rd @@ -9,6 +9,8 @@ detectStandard(data, includeFields = TRUE, domain = "labs") \arguments{ \item{data}{A data frame in which to detect the data standard} +\item{includeFields}{specifies whether to check the data set for field level data in addition to columns. Default: \code{TRUE}.} + \item{domain}{The data domain for the data set provided. Default: \code{"labs"}.} } \value{ @@ -21,6 +23,7 @@ This function attempts to detect the data CDISC clinical standard used in a give This function compares the columns in the provided \code{"data"} with the required columns for a given data standard/domain combination. The function is designed to work with the SDTM and AdAM CDISC() standards for clinical trial data. Currently, only "labs" is the only domain supported. } \examples{ + detectStandard(adlbc)[["standard"]] #AdAM detectStandard(iris)[["standard"]] #none diff --git a/man/evaluateStandard.Rd b/man/evaluateStandard.Rd index dd2604a8..4f068acf 100644 --- a/man/evaluateStandard.Rd +++ b/man/evaluateStandard.Rd @@ -20,5 +20,10 @@ a list describing to what degree the data set matches the data standard. The "ma } \description{ Determines whether the required data elements in a data standard are found in a given data frame +} +\examples{ +safetyGraphics:::evaluateStandard(data=adlbc, standard="adam") # Match is TRUE +safetyGraphics:::evaluateStandard(data=adlbc, standard="sdtm") # Match is FALSE + } \keyword{internal} diff --git a/man/hasColumn.Rd b/man/hasColumn.Rd index f9796908..2373cecc 100644 --- a/man/hasColumn.Rd +++ b/man/hasColumn.Rd @@ -15,5 +15,11 @@ hasColumn(columnName, data) logical scalar. TRUE if the column is found. FALSE otherwise } \description{ -This checks whether a specified column is found in a specified data set +Checks whether a specified column is found in a specified data set } +\examples{ +safetyGraphics:::hasColumn(columnName="PARAM",data=adlbc) #TRUE +safetyGraphics:::hasColumn(columnName="Not_a_column",data=adlbc) #FALSE + +} +\keyword{internal} diff --git a/man/hasField.Rd b/man/hasField.Rd index 5d9a4584..5ce1103a 100644 --- a/man/hasField.Rd +++ b/man/hasField.Rd @@ -20,8 +20,8 @@ logical scalar. TRUE if field_value is found. FALSE otherwise This checks whether a specific value is found in a specified column in a specified data set } \examples{ -hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE -hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE +safetyGraphics:::hasField(fieldValue="Bilirubin (umol/L)",columnName="PARAM",data=adlbc) #TRUE +safetyGraphics:::hasField(fieldValue="Not_a_real_value",columnName="",data=adlbc) #FALSE } \keyword{internal} From d3c3c61f0072cd61309cacf744ac254c5d7bbb69 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Thu, 7 Feb 2019 09:02:11 -0800 Subject: [PATCH 9/9] fix typo --- R/evaluateStandard.R | 2 +- man/evaluateStandard.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/evaluateStandard.R b/R/evaluateStandard.R index e238dfc4..ae820df5 100644 --- a/R/evaluateStandard.R +++ b/R/evaluateStandard.R @@ -7,7 +7,7 @@ #' @param includeFields should field level data be evaluated? #' @param domain data domain. "labs" only for now. #' -#' @return a list describing to what degree the data set matches the data standard. The "match" property specifies describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. +#' @return a list describing to what degree the data set matches the data standard. The "match" property describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. #' #' @examples #' safetyGraphics:::evaluateStandard(data=adlbc, standard="adam") # Match is TRUE diff --git a/man/evaluateStandard.Rd b/man/evaluateStandard.Rd index 4f068acf..ac1a38ab 100644 --- a/man/evaluateStandard.Rd +++ b/man/evaluateStandard.Rd @@ -16,7 +16,7 @@ evaluateStandard(data, standard, includeFields = TRUE, domain = "labs") \item{domain}{data domain. "labs" only for now.} } \value{ -a list describing to what degree the data set matches the data standard. The "match" property specifies describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. +a list describing to what degree the data set matches the data standard. The "match" property describes compliance with the standard as "Full", "Partial" or "None". The "checks" property is a list of the data elements expected for the standard and whether they are "valid" in the given data set. "valid_checks" and "invalid_checks" provide counts of the specified checks. } \description{ Determines whether the required data elements in a data standard are found in a given data frame