diff --git a/NEWS.md b/NEWS.md index 22739f61..8a65dc82 100755 --- a/NEWS.md +++ b/NEWS.md @@ -12,6 +12,7 @@ This version will eventually become v2.0! We're happy to reach a new major miles * The MO matching score algorithm (`mo_matching_score()`) now counts deletions and substitutions as 2 instead of 1, which impacts the outcome of `as.mo()` and any `mo_*()` function * **Argument `combine_IR` has been removed** from this package (affecting functions `count_df()`, `proportion_df()`, and `rsi_df()` and some plotting functions), since it was replaced with `combine_SI` three years ago * Interpretation **guidelines older than 10 years were removed**, the oldest now included guidelines of EUCAST and CLSI are from 2013 +* Using `units` in `ab_ddd(..., units = "...")` had been deprecated and is now not supported anymore. Use `ab_ddd_units()` instead. ### New * **EUCAST 2022 and CLSI 2022 guidelines** have been added for `as.rsi()`. EUCAST 2022 is now the new default guideline for all MIC and disks diffusion interpretations. diff --git a/R/ab_property.R b/R/ab_property.R index dd0af2af..65133cbb 100644 --- a/R/ab_property.R +++ b/R/ab_property.R @@ -241,20 +241,7 @@ ab_ddd <- function(x, administration = "oral", ...) { meet_criteria(administration, is_in = c("oral", "iv"), has_length = 1) x <- as.ab(x, ...) - ddd_prop <- administration - # old behaviour - units <- list(...)$units - if (!is.null(units) && isTRUE(units)) { - if (message_not_thrown_before("ab_ddd", entire_session = TRUE)) { - warning_( - "in `ab_ddd()`: using `ab_ddd(..., units = TRUE)` is deprecated, use `ab_ddd_units()` to retrieve units instead.", - "This warning will be shown once per session." - ) - } - ddd_prop <- paste0(ddd_prop, "_units") - } else { - ddd_prop <- paste0(ddd_prop, "_ddd") - } + ddd_prop <- paste0(administration, "_ddd") out <- ab_validate(x = x, property = ddd_prop) if (any(ab_name(x, language = NULL) %like% "/" & is.na(out))) { @@ -274,16 +261,17 @@ ab_ddd_units <- function(x, administration = "oral", ...) { meet_criteria(administration, is_in = c("oral", "iv"), has_length = 1) x <- as.ab(x, ...) - if (any(ab_name(x, language = NULL) %like% "/")) { + ddd_prop <- paste0(administration, "_units") + out <- ab_validate(x = x, property = ddd_prop) + + if (any(ab_name(x, language = NULL) %like% "/" & is.na(out))) { warning_( - "in `ab_ddd_units()`: DDDs of combined products are available for different dose combinations and not (yet) part of the AMR package.", + "in `ab_ddd_units()`: DDDs of some combined products are available for different dose combinations and not (yet) part of the AMR package.", "Please refer to the WHOCC website:\n", "www.whocc.no/ddd/list_of_ddds_combined_products/" ) } - - ddd_prop <- paste0(administration, "_units") - ab_validate(x = x, property = ddd_prop) + out } #' @rdname ab_property diff --git a/R/av_property.R b/R/av_property.R index 2460ab8d..6f3d0265 100644 --- a/R/av_property.R +++ b/R/av_property.R @@ -130,35 +130,11 @@ av_group <- function(x, language = get_AMR_locale(), ...) { } #' @rdname av_property -#' @aliases ATC #' @export -av_atc <- function(x, only_first = FALSE, ...) { +av_atc <- function(x, ...) { meet_criteria(x, allow_NA = TRUE) - meet_criteria(only_first, allow_class = "logical", has_length = 1) - - atcs <- av_validate(x = x, property = "atc", ...) - - if (only_first == TRUE) { - atcs <- vapply( - FUN.VALUE = character(1), - # get only the first ATC code - atcs, - function(x) { - # try to get the J-group - if (any(x %like% "^J")) { - x[x %like% "^J"][1L] - } else { - as.character(x[1L]) - } - } - ) - } else if (length(atcs) == 1) { - atcs <- unname(unlist(atcs)) - } else { - names(atcs) <- x - } - - atcs + # ATCs in the antivirals data set are not a list + av_validate(x = x, property = "atc", ...) } #' @rdname av_property @@ -181,20 +157,7 @@ av_ddd <- function(x, administration = "oral", ...) { meet_criteria(administration, is_in = c("oral", "iv"), has_length = 1) x <- as.av(x, ...) - ddd_prop <- administration - # old behaviour - units <- list(...)$units - if (!is.null(units) && isTRUE(units)) { - if (message_not_thrown_before("av_ddd", entire_session = TRUE)) { - warning_( - "in `av_ddd()`: using `av_ddd(..., units = TRUE)` is deprecated, use `av_ddd_units()` to retrieve units instead.", - "This warning will be shown once per session." - ) - } - ddd_prop <- paste0(ddd_prop, "_units") - } else { - ddd_prop <- paste0(ddd_prop, "_ddd") - } + ddd_prop <- paste0(administration, "_ddd") out <- av_validate(x = x, property = ddd_prop) if (any(av_name(x, language = NULL) %like% "/" & is.na(out))) { @@ -214,16 +177,17 @@ av_ddd_units <- function(x, administration = "oral", ...) { meet_criteria(administration, is_in = c("oral", "iv"), has_length = 1) x <- as.av(x, ...) - if (any(av_name(x, language = NULL) %like% "/")) { + ddd_prop <- paste0(administration, "_units") + out <- av_validate(x = x, property = ddd_prop) + + if (any(av_name(x, language = NULL) %like% "/" & is.na(out))) { warning_( - "in `av_ddd_units()`: DDDs of combined products are available for different dose combinations and not (yet) part of the AMR package.", + "in `av_ddd_units()`: DDDs of some combined products are available for different dose combinations and not (yet) part of the AMR package.", "Please refer to the WHOCC website:\n", "www.whocc.no/ddd/list_of_ddds_combined_products/" ) } - - ddd_prop <- paste0(administration, "_units") - av_validate(x = x, property = ddd_prop) + out } #' @rdname av_property diff --git a/man/av_property.Rd b/man/av_property.Rd index 5e57eb7c..2015bd97 100644 --- a/man/av_property.Rd +++ b/man/av_property.Rd @@ -8,7 +8,6 @@ \alias{av_tradenames} \alias{av_group} \alias{av_atc} -\alias{ATC} \alias{av_loinc} \alias{av_ddd} \alias{av_ddd_units} @@ -26,7 +25,7 @@ av_tradenames(x, ...) av_group(x, language = get_AMR_locale(), ...) -av_atc(x, only_first = FALSE, ...) +av_atc(x, ...) av_loinc(x, ...)