Derives a character lab grade based on severity/toxicity criteria.
derive_var_atoxgr_dir(
dataset,
new_var,
tox_description_var,
meta_criteria,
criteria_direction,
abnormal_indicator = NULL,
get_unit_expr,
signif_dig = get_admiral_option("signif_digits")
)
Input dataset
The variables specified by the tox_description_var
argument are expected to be in the dataset.
none
Name of the character grade variable to create, for example, ATOXGRH
or ATOXGRL
.
none
Variable containing the description of the grading criteria. For example: "Anemia" or "INR Increased".
none
Metadata data set holding the criteria (normally a case statement)
atoxgr_criteria_ctcv4
, atoxgr_criteria_ctcv5
, atoxgr_criteria_daids
atoxgr_criteria_ctcv4
implements Common Terminology Criteria for Adverse Events (CTCAE) v4.0
atoxgr_criteria_ctcv5
implements Common Terminology Criteria for Adverse Events (CTCAE) v5.0
atoxgr_criteria_daids
implements
Division of AIDS (DAIDS) Table for Grading the Severity of Adult and Pediatric Adverse Events
The metadata should have the following variables:
TERM
: variable to hold the term describing the criteria applied to a particular lab test,
eg. "Anemia" or "INR Increased". Note: the variable is case insensitive.
DIRECTION
: variable to hold the direction of the abnormality of a particular lab test
value. "L" is for LOW values, "H" is for HIGH values. Note: the variable is case insensitive.
UNIT_CHECK
: variable to hold unit of particular lab test. Used to check against input data
if criteria is based on absolute values.
VAR_CHECK
: variable to hold comma separated list of variables used in criteria. Used to check
against input data that variables exist.
GRADE_CRITERIA_CODE
: variable to hold code that creates grade based on defined criteria.
FILTER
: Required only for DAIDS grading, specifies admiral
code to filter the lab data
based on a subset of subjects (e.g. AGE > 18 YEARS)
none
Direction (L= Low, H = High) of toxicity grade.
"L", "H"
none
Value in BNRIND
derivation to indicate an abnormal value.
Usually "HIGH" for criteria_direction
= "H" and "LOW" for criteria_direction
= "L".
This is only required when meta_criteria = atoxgr_criteria_ctcv5
and BNRIND
is a required
variable. Currently for terms "Alanine aminotransferase increased"
,
"Alkaline phosphatase increased"
, "Aspartate aminotransferase increased"
,
"Blood bilirubin increased"
and "GGT increased"
NULL
An expression providing the unit of the parameter
The result is used to check the units of the input parameters. Compared with
UNIT_CHECK
in metadata (see meta_criteria
parameter).
A variable containing unit from the input dataset, or a function call,
for example, get_unit_expr = extract_unit(PARAM)
.
none
Number of significant digits to use when comparing a lab value against another value.
Significant digits used to avoid floating point discrepancies when comparing numeric values. See blog: How admiral handles floating points
get_admiral_option("signif_digits")
The input dataset with the character variable added
new_var
is derived with values NA, "0", "1", "2", "3", "4", where "4" is the most
severe grade
"4" is where the lab value satisfies the criteria for grade 4.
"3" is where the lab value satisfies the criteria for grade 3.
"2" is where the lab value satisfies the criteria for grade 2.
"1" is where the lab value satisfies the criteria for grade 1.
"0" is where a grade can be derived and is not grade "1", "2", "3" or "4".
NA is where a grade cannot be derived.
BDS-Findings Functions that returns variable appended to dataset:
derive_basetype_records()
,
derive_var_analysis_ratio()
,
derive_var_anrind()
,
derive_var_atoxgr()
,
derive_var_base()
,
derive_var_chg()
,
derive_var_ontrtfl()
,
derive_var_pchg()
,
derive_var_shift()
,
derive_vars_crit_flag()
library(tibble)
data <- tribble(
~ATOXDSCL, ~AVAL, ~ANRLO, ~ANRHI, ~PARAM,
"Hypoglycemia", 119, 4, 7, "Glucose (mmol/L)",
"Lymphocyte count decreased", 0.7, 1, 4, "Lymphocytes Abs (10^9/L)",
"Anemia", 129, 120, 180, "Hemoglobin (g/L)",
"White blood cell decreased", 10, 5, 20, "White blood cell (10^9/L)",
"White blood cell decreased", 15, 5, 20, "White blood cell (10^9/L)",
"Anemia", 140, 120, 180, "Hemoglobin (g/L)"
)
derive_var_atoxgr_dir(data,
new_var = ATOXGRL,
tox_description_var = ATOXDSCL,
meta_criteria = atoxgr_criteria_ctcv5,
criteria_direction = "L",
get_unit_expr = extract_unit(PARAM)
)
#> # A tibble: 6 × 6
#> ATOXDSCL AVAL ANRLO ANRHI PARAM ATOXGRL
#> <chr> <dbl> <dbl> <dbl> <chr> <chr>
#> 1 Anemia 129 120 180 Hemoglobin (g/L) 0
#> 2 Anemia 140 120 180 Hemoglobin (g/L) 0
#> 3 Hypoglycemia 119 4 7 Glucose (mmol/L) 0
#> 4 Lymphocyte count decreased 0.7 1 4 Lymphocytes Abs (10^9/L) 2
#> 5 White blood cell decreased 10 5 20 White blood cell (10^9/L) 0
#> 6 White blood cell decreased 15 5 20 White blood cell (10^9/L) 0
data <- tribble(
~ATOXDSCH, ~AVAL, ~ANRLO, ~ANRHI, ~PARAM,
"CPK increased", 129, 0, 30, "Creatine Kinase (U/L)",
"Lymphocyte count increased", 4, 1, 4, "Lymphocytes Abs (10^9/L)",
"Lymphocyte count increased", 2, 1, 4, "Lymphocytes Abs (10^9/L)",
"CPK increased", 140, 120, 180, "Creatine Kinase (U/L)"
)
derive_var_atoxgr_dir(data,
new_var = ATOXGRH,
tox_description_var = ATOXDSCH,
meta_criteria = atoxgr_criteria_ctcv5,
criteria_direction = "H",
get_unit_expr = extract_unit(PARAM)
)
#> # A tibble: 4 × 6
#> ATOXDSCH AVAL ANRLO ANRHI PARAM ATOXGRH
#> <chr> <dbl> <dbl> <dbl> <chr> <chr>
#> 1 CPK increased 129 0 30 Creatine Kinase (U/L) 2
#> 2 CPK increased 140 120 180 Creatine Kinase (U/L) 0
#> 3 Lymphocyte count increased 4 1 4 Lymphocytes Abs (10^9/L) 0
#> 4 Lymphocyte count increased 2 1 4 Lymphocytes Abs (10^9/L) 0