Validate grid field values in EDC/CDMS
Table of Contents
Validate grid values
Calculation fields can be used to validate values in the grid field.
For example, this template validates the values entered in the first and second columns of the first row.
var obj = JSON.parse('{grid_variable_name}'); if (Object.values(obj[0])[0] == 1 && Object.values(obj[0])[1] == 1) { 'The values are correct!'; } else { 'The values are not correct!'; }
Use if/else logic to render various data validation messages.
Use if/else logic to output a number and add data validation to a calculation to display 'Warning' messages (like the one below) and other types of data validation messages.
Validate grid values between ranges
For example, this template validates the values entered and checks if the values are between the given range.
// Parse the JSON string into a JavaScript object var obj = JSON.parse('{grid_variable_name}'); // Define the ranges for each row label const ranges = [ ["1st Row Label", 50, 1000], ["2nd Row Label", 5, 35], ["3rd Row Label", 10, 40], ["4th Row Label", 10, 40], ["5th Row Label", 5, 20], ["6th Row Label", 25, 100], ] // Filter rows that fall outside of their specified range const outOfRange = ranges.filter(([name, min, max], index) => { // Extract the value from the object based on the index const value = Object.values(obj[index])[0]; // Check if the value is outside the specified range or empty return value !== "" && (value < min || value > max); }).map(([name]) => name); // Extract the row label for out-of-range values // Check if any rows are out of range if (outOfRange.length > 0) { // If there are out-of-range values, construct an error message `Check that: ${outOfRange.join(", ")} has been entered correctly!`; } else { // If all values are within range, display a success message "The input values seem correct"; }