# Coding Icd10

Suggests candidate ICD-10-CM diagnosis codes (and ICD-10-PCS procedure codes) for...

- Repository: https://github.com/maziyarpanahi/openmed (5755 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add maziyarpanahi/openmed --skill coding-icd10 -g -a claude-code -y`
Codex: `npx skills add maziyarpanahi/openmed --skill coding-icd10 -g -a codex -y`
Cursor: `npx skills add maziyarpanahi/openmed --skill coding-icd10 -g -a cursor -y`
Gemini CLI: `npx skills add maziyarpanahi/openmed --skill coding-icd10 -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add maziyarpanahi/openmed`

## Description

Suggests candidate ICD-10-CM diagnosis codes (and ICD-10-PCS procedure codes) for diagnoses and procedures extracted by OpenMed, with rationale and a human-coder caveat. Use when the user wants to code a problem list, map a diagnosis span to a billable ICD-10-CM code, route a finding to the right chapter, cross-walk ICD-9 via GEMs, or pre-fill an encounter for coder review. Trigger keywords: ICD-10-CM, ICD-10-PCS, diagnosis coding, billable code, GEMs, problem list coding, encounter diagnosis, chapter range, CMS code lookup. references/icd10-chapters.md holds the chapter/section ranges. Pairs after OpenMed NER: consume Disease/Pathology entities from openmed.analyze_text and propose codes a certified coder validates. ICD-10-CM/PCS files are public domain from CMS, no license barrier (unlike CPT, which is restricted and out of scope).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Coding OpenMed diagnoses to ICD-10-CM / PCS

Suggest **ICD-10-CM** diagnosis codes (and **ICD-10-PCS** for inpatient
procedures) for the diagnosis and procedure spans OpenMed extracts. This is
**decision support for a certified coder**, not autonomous billing: OpenMed +
this skill narrow the candidate set and explain *why*; a human validates the
final, billable code.

ICD-10-CM and ICD-10-PCS are **public domain**. CMS publishes the complete
annual code files, addenda, and indexes for free. (CPT/HCPCS procedure codes are
**AMA-licensed and restricted**, out of scope here; obtain those separately
under the user's own AMA license.)

## When to use

- A note yields diagnoses ("type 2 diabetes with diabetic CKD", "community-
  acquired pneumonia") and you want candidate ICD-10-CM codes plus rationale.
- You need to **route** a span to the right chapter quickly
  (see `references/icd10-chapters.md` for code ranges).
- You hold legacy ICD-9 codes and need an approximate **GEM** cross-walk.
- You are pre-filling encounter diagnoses for a coder's review queue.

For clinical-meaning codes use `mapping-to-snomed`; for HCC/risk capture use
`coding-hcc-risk-adjustment`; this skill is for the ICD-10 classification.

## Quick start (public data + public FHIR lookup)

Two complementary paths, both license-clean:

**A) CMS files, loaded locally** (public domain; you download once):

```python
# CMS publishes the order/addenda file; load the code->description table.
# Columns: code (no dot), description; you insert the dot for display.
icd10cm = {}                       # "E1122" -> "Type 2 diabetes mellitus with diabetic chronic kidney disease"
with open("icd10cm_order_2025.txt", encoding="latin-1") as fh:
    for line in fh:
        code = line[6:13].strip()
        billable = line[14] == "1"     # '1' = valid billable code
        long_desc = line[77:].strip()
        if billable:
            icd10cm[code] = long_desc

The rest: https://github.com/maziyarpanahi/openmed/blob/HEAD/skills/coding-icd10/SKILL.md
