comorbidities() gains a mapping argument. The default
mapping = "precomputed" uses the precomputed ICD code-condition links
included with medicalcoder. mapping = "regex" applies method regular
expressions directly to input ICD codes. Regex mapping is currently available
for Charlson methods except charlson_beyrer2021. (part of #45)
Document flag.method = "cumulative" as experimental. This option remains
available for longitudinal data, but users should validate encounter ordering
and POA behavior carefully for their study design.
Add validation for the encounter-order column used by
flag.method = "cumulative". Missing values and factor columns now error;
character columns are allowed with a warning because they are sorted
lexicographically.
Add charlson_sundararajan2004
Add charlson_ludvigsson2021, a Charlson-style Swedish register-based
comorbidity method.
Add charlson_mimicivcode, a mapping between ICD-10 codes and Charlson
comorbidities to be consistent with
mimiciv-code
Add charlson_beyrer2021, a Charlson style comorbidity based on U.S.
ICD-10-CM diagnostic and ICD-10-PCS (procedure) codes from Beyrey et al.
(2021)
Add ICD-10-AM (Australian Modification) to the ICD database
Add ICD-10-SE (Swedish) to the ICD database. Source files from Socialstyrelsen.
summary() falls back to the next applicable method with a warning when a
modified medicalcoder_comorbidities object no longer has the structure
required by medicalcoder's methods.
Prevent unrelated input columns from colliding with internal lookup columns
while mapping ICD codes to comorbidities in comorbidities().
ICD-10 Z49.1 has been added to elixhauser_quan2005; it was missing by error in the prior version of medicalcoder.
Clarify that rows with icdv.var values other than 9 or 10 are not used
when mapping ICD codes to comorbidities.
Clarify that rows with dx.var values other than 0 or 1 are not used when
mapping ICD codes to comorbidities.
WHO ICD-10 codes extend 2019 to 2020 and 2021. WHO last published ICD-10 in 2019 and transitioned to ICD-11 on January 1, 2022.
Fix Charlson age.var handling when id.vars is missing or has multiple ages
per ID. (#43)
Fix summary() for Charlson results when age.var is omitted and
age_score is all missing.
Account for possible zero nrow sets in mdcr_set()
Harden sort order for the results from lookup_icd_codes()
medicalcoder <= 0.7.0 was under GPL-2 for no other reason that that was the default in the template DESCRIPTION file. With this release we have transitioned from GPL-2 to BSD-3-Clause to reduce almost all barriers to use of the package in other environments.
If a tibble is passed to comorbidities() and the dplyr namespace is
available, then dplyr methods will be used for data manipulation. This
change will generally result in less computation time than base R
data.frames (data.tables require even less time).
Add the elixhauser_ahrq2026 method for comorbidities() (#32)
summary.medicalcoder_comorbidites() no longer crashes when a zero row input
is passed in. Consistently return NA instead of NaN when counts are zeros.
(#26, #27)
Improve the conditional and multiple comorbidities mapped by a code under AHRQ ICD-10 codes for fiscal years 2023 through 2026. The bug was found and fixed as part of the extension #32.
Add ICD-9-PCS 35.7 to the PCCC codes. (#38) The v2 docs have 37.52, 37.53, 37.54, 37.55 as cvd (device) and 37.5, 37.51 as cvd (transplant). v3 docs have 3751 as cvd (transplant), all other four digit codes under 37.5 as cvd (device). One issue here is that 37.5 was an assignable code from CDC through 2003 and then was a header with the same four digit codes as CMS through 2012. CMS continued to use the four digit codes through 2015.
Improve Elixhauser (Quan 2005) ICD-10 codes
Add checks for data structures (#41)
Handle zero length patterns in regex (#42)
Extend and improve the internal ICD-9 database to distinguish between CDC and CMS source.
Fix documentation of the mdcr and mdcr_longitudinal datasets.
Clarified internal data.frame/data.table helpers: documented that mdcr_select()
deep-copies data.table subsets to avoid aliasing, noted the selfref fix in
mdcr_set(), and added inline guidance in the longitudinal section of
comorbidities() to explain the first-occurrence logic.
Improve cumulative flagging to apply first-occurrence logic more efficiently.
Extend documentation for the expected default behavior between the
present-on-admission flags and flag.method argument in comorbidities()
(re: #28)
Add mdcr_unique() to the data.frame utilities. This reduced the computational
time required to apply comorbidities() to tibbles and data.tables. (#31)
Elixhauser AHRQ 2022 - 2025
Make internal data.frame tool mdcr_duplicated() data.table aware.
Elixhauser (Quan 2005) - added missing ICD-10 codes to the mappings
comorbidities() will return a tibble when the input data is a tbl_df
(#9). Assuming the data.table and/or tibble namespaces are available,
then the initial release (v0.6.0) would return a data.table if a
data.table was passed to a comorbidities() due to the S3 method
dispatches. If a tibble (tbl_df) or a data.frame was passed to
comorbidities() then the return would be a data.frame. In this release we
have added logic to determine if the input is a tibble and if the tibble
namespace is available, then the return from comorbidities() will be a
tibble (or list of tibbles when subconditions = TRUE).
The tests were extended to consider the cases of passing in a data.table or
tibble to comorbidities when the associated namespaces are not available.
Added elixhauser_ahrq_icd10 to use all the ICD codes ever defined from 2022
to 2025. This will capture any future years as well.
lookup_icd_codes(),get_icd_codes(),icd_compact_to_full(), andis_icd().comorbidities() interface covering Charlson (Deyo, Quan
2005/2011, Glasheen), Elixhauser (original, Quan 2005, AHRQ 2017-2025), and
Pediatric Complex Chronic Conditions (v2.0/2.1/3.0/3.1).comorbidities().mdcr,
mdcr_longitudinal) for reproducible testing and demonstrations.