@lowlysre/icd-10-cm 1.1.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,16 +1,20 @@
1
1
  # icd-10-cm
2
2
 
3
+ <p align="center">
4
+ <img src="assets/hero.png" alt="icd-10-cm hero" width="640">
5
+ </p>
6
+
3
7
  ![NPM Version](https://img.shields.io/npm/v/%40lowlysre%2Ficd-10-cm)
4
8
  [![Test](https://github.com/lowlysre/icd-10-cm/actions/workflows/test.yml/badge.svg)](https://github.com/lowlysre/icd-10-cm/actions/workflows/test.yml)
5
9
  [![sustainable-npm](https://img.shields.io/badge/sustainable--npm-🌱-blue?style=flat)](https://github.com/lowlysre/sustainable-npm)
6
-
10
+ [![immutable releases](https://img.shields.io/badge/immutable%20releases-active-green?logo=github)](https://github.com/lowlysre/icd-10-cm/releases)
7
11
 
8
12
  A data package containing the latest ICD-10 CM codes and descriptions, types included!
9
13
 
10
- * ⚡ Fast, lookups via dictionary of minified json
11
- * 🔒 Secure, a zero dependency package with provenance
12
- * ⚛️ Small, limited to CM (Clinical Modification) data and less than 1MB compressed
13
-
14
+ - ⚡ Fast, lookups via dictionary of minified json
15
+ - 🔒 Secure, a zero dependency package with provenance
16
+ - ⚛️ Small, limited to CM (Clinical Modification) data and less than 1MB compressed
17
+ - 🔏 Immutable, GitHub releases are locked and cannot be altered or replaced after publishing
14
18
 
15
19
  ## Install
16
20
 
@@ -30,7 +34,7 @@ const description = getICD10Description("A00.0");
30
34
  // Handle missing codes by checking for undefined
31
35
  const maybeDescription = getICD10Description("Z999");
32
36
  if (!maybeDescription) {
33
- // fallback logic here
37
+ // fallback logic here
34
38
  }
35
39
 
36
40
  // You can normalize a code explicitly if you store normalized keys elsewhere
@@ -45,7 +49,22 @@ const normalized = normalizeICD10Code(" a00.1 "); // "A001"
45
49
 
46
50
  For regenerating `data/icd10.min.json` via `npm run parse-icd`, use Node.js v22+ (required for `--experimental-strip-types`).
47
51
 
52
+ ### Updating the ICD-10-CM data
53
+
54
+ CDC/NCHS publishes a new code set annually (effective October 1) and occasionally a mid-year update (effective April 1). Check the [CDC files page](https://www.cdc.gov/nchs/icd/icd-10-cm/files.html) or the [CMS ICD-10 page](https://www.cms.gov/medicare/coding-billing/icd-10-codes) for the latest "Code Descriptions in Tabular Order" archive.
55
+
56
+ 1. Download the latest Code Descriptions in Tabular Order zip
57
+ 2. Extract `icd10cm_codes_<year>.txt` and save it as `scripts/icd10cm.txt` (format: code, whitespace, description per line)
58
+ 3. Run `npm run parse-icd` to regenerate `data/icd10.min.json`
59
+ 4. Run `npm test` and verify the reported code count matches the addenda
60
+ 5. Bump the package version and publish
61
+
48
62
  ## Versions
49
63
 
50
- * v1.0.0 - Normalized lookups, data load guard, bundled ESM/CJS build, flat ESLint 9 config, 100% tests/coverage
51
- * v0.x.x - April 1, 2024, ICD-10-CM update
64
+ - v2.0.0 - Data updated to the April 1, 2026 ICD-10-CM release (74,719 codes, from the FY2024 set). TypeScript 7 (native compiler) toolchain, ESLint replaced with oxlint + Prettier, dropped tsup for plain tsc (zero-bundler dual ESM/CJS), dataset shipped once and lazy-loaded (~50% smaller install, faster imports), fixed broken `require()` entry point
65
+ - v1.1.5 - Dependency and toolchain maintenance
66
+ - v1.1.0 - Migrated tests from Jest to Node's built-in test runner, TypeScript 6 toolchain
67
+ - v1.0.3 - Dependency maintenance, CODEOWNERS
68
+ - v1.0.1 - README badges, sustainable-npm publishing workflow
69
+ - v1.0.0 - Normalized lookups, data load guard, bundled ESM/CJS build, flat ESLint 9 config, 100% tests/coverage
70
+ - v0.0.x - Initial releases, April 1, 2024 ICD-10-CM update