Jackwasey Icd Versions Save

Fast ICD-10 and ICD-9 comorbidities, decoding and validation in R. NB use main instead of master for default branch.

v3.0.0

6 years ago

Version 3.0

  • major improvement in comorbidity calculation speed using matrix multiplication behind the scenes. ICD-10 codes were slower than ICD-9 code comorbidities before, and are now 1.5 - 2 orders of magnitude faster.
  • Added AHRQ clinical condition software (CCS) classification for ICD-9 and ICD-10, thanks to Vitaly Druker, fixes #127
  • added 'charlson' synonyms for 'quan_deyo', e.g. Charlson comorbidities can now be found using comorbid_charlson(patient_data)
  • Added AHRQ clinical condition software (CCS) classification for ICD-9 and ICD-10, thanks to Vitaly Druker, fixes #127
  • function names have lost the 'icd_' prefix, old names kept for compatiblity, but easier now to write comorbid(patient_data), and icd::comorbid may also be used, and which many consider good practice.
  • Assume C++11, which is now four years old, enabling code simplification
  • rename all functions to remove the icd_, people can use the concise icd:: if library(icd) was not callled
  • deprecated rarely or unused code, including %i9in%

v1.2.1

8 years ago

Obscure memory access error corrected. Other minor updates.

v1.2

9 years ago

Perhaps it is an obsession, but for reproducible research, I think it is important to extract data from source wherever possible. ICD-9-CM code definitions are scattered between very old formal documents, text files (with no hierarchical information) and a monstrous RTF document with everything on it. The RTF is not in any way designed to be machine readable for anything other than display, but, with difficulty, can be parsed to get the data.

This version derives ICD-9 codes from the RTF and plain text sources. Previously, icd9 relied on scraping some heading data from an unofficial web site. For the end user, this means greater fidelity to the actual specification (which changes annually), and improved processing of ICD-9 code ranges, e.g. finding parent codes common to a subset of codes in a list, and thus enabling summaries of otherwise complicated lists.

The OpenMP parallelization and C++11 optimization are now working to the satisfaction of CRAN (and Solaris and OS X compilers), using a configure script which builds the right Makevars each installation. I haven't benchmarked -O3 compiler flag, but this is likely to give a boost.

Other changes and many small improvements and bug fixes are listed in NEWS.md and the git log.

v1.1

9 years ago

Major change is parallelization and much more efficient coding of comorbidity assignment. Bug fixes.

v1.0

9 years ago
  • Calculate Charlson scores
  • Sum distinct comorbidities or diagnoses by patient
  • Core rewrite in C++ for 50+ times speed improvement. 100,000 patients assigned comorbidities in ~2 seconds.
  • Simplified handling validation of codes. No longer done in every function.
  • Most functions now guess the ICD-9 code type automatically (e.g. 00321 vs 003.21)
  • Reduced external dependencies down to Rcpp and checkmate (a very lightweight and fast function argument checker)
  • Bug fixes (see github)
  • API changes
  • no more validation except in the icd9IsValidXxx functions. Removed stopIfInvalidIcd9, icd9InvalidActions
  • internalized utility functions. They are also packaged and tested in jwutil
  • deprecated icd9ValidXxx in favour of icd9IsValidXxx
  • deprecated icd9ComorbditiesXxx replacing with briefer icd9ComorbidXxx
  • stopped exporting benchmarking and SAS code processing.