diff --git a/R/parse-comorbid.R b/R/parse-comorbid.R index c0185faf..288afd2f 100644 --- a/R/parse-comorbid.R +++ b/R/parse-comorbid.R @@ -44,11 +44,14 @@ icd9_fetch_ahrq_sas <- function() { ) } -icd10_fetch_ahrq_sas <- function(ver = "2016") { +icd10_fetch_ahrq_sas <- function(ver = "2018") { + if (!ver %in% c("2016","2017","2018")) { + stop(ver," not currently available") + } .download_to_data_raw( - url = paste0(.ahrq_url_base, "comorbidityicd10/comformat_icd10cm_2016.txt"), - file_name = .get_versioned_raw_file_name("ahrq-comformat_icd10cm_2016.txt", - ver = "2016" + url = paste0(.ahrq_url_base, "comorbidityicd10/comformat_icd10cm_",ver,".txt"), + file_name = .get_versioned_raw_file_name(paste0("ahrq-comformat_icd10cm_",ver,".txt"), + ver = ver ) ) } @@ -138,10 +141,10 @@ icd9_parse_ahrq_sas <- function(save_pkg_data = FALSE) { # This is in some ways simpler than that ICD-9 equivalent because I make no # attempt to find all the child codes. -icd10_parse_ahrq_sas <- function(save_pkg_data = FALSE, +icd10_parse_ahrq_sas <- function(version = "2018", save_pkg_data = FALSE, offline = TRUE) { assert_flag(save_pkg_data) - ahrq_info <- icd10_fetch_ahrq_sas() + ahrq_info <- icd10_fetch_ahrq_sas(ver = version) ahrq_sas_lines <- readLines(ahrq_info$file_path, warn = FALSE) icd10_map_ahrq <- sas_format_extract_rcomfmt(ahrq_sas_lines) unun <- function(x) unname(unlist(x)) diff --git a/R/update.R b/R/update.R index 123c2f62..1849d4bf 100644 --- a/R/update.R +++ b/R/update.R @@ -39,7 +39,7 @@ icd9_generate_map_elix(save_pkg_data = TRUE) # ICD 10 .parse_icd10cm_all(save_pkg_data = TRUE) - icd10_parse_ahrq_sas(save_pkg_data = TRUE) + icd10_parse_ahrq_sas(version = "2018", save_pkg_data = TRUE) .parse_icd10cm_cc(save_pkg_data = TRUE) icd10_generate_map_quan_elix(save_pkg_data = TRUE) icd10_generate_map_quan_deyo(save_pkg_data = TRUE) diff --git a/data/icd10_map_ahrq.rda b/data/icd10_map_ahrq.rda index a38039df..31e5a819 100644 Binary files a/data/icd10_map_ahrq.rda and b/data/icd10_map_ahrq.rda differ diff --git a/tests/testthat/test-build-maps-icd10.R b/tests/testthat/test-build-maps-icd10.R index 1b7484a1..011bc721 100644 --- a/tests/testthat/test-build-maps-icd10.R +++ b/tests/testthat/test-build-maps-icd10.R @@ -32,8 +32,14 @@ test_that("icd-10 ahrq map is reproduced", { if (is.null(icd10_fetch_ahrq_sas())) { skip("AHRQ ICD-10 SAS must be downloaded with icd10_fetch_ahrq_sas") } - expect_equivalent( + expect_identical( icd10_map_ahrq, - icd10_parse_ahrq_sas(save_pkg_data = FALSE) + icd10_parse_ahrq_sas(save_pkg_data = FALSE,version = "2018") ) + + expect_false(identical( + icd10_map_ahrq, + icd10_parse_ahrq_sas(save_pkg_data = FALSE,version = "2016") + )) + })