skills/legal/icd-cpt-normalization/SKILL.md
Normalizes diagnostic and procedure codes from medical records into clean, attorney-readable form. Cross-walks ICD-9 to ICD-10-CM, expands ICD-10 codes to narrative descriptions, expands CPT codes to procedure descriptions, and flags bundling or unbundling oddities relevant to billing disputes. Use this skill any time medical codes appear in records being summarized for litigation use, including medical chronologies, demand letters, and billing review. Also use when the user asks what a specific medical code means.
npx skillsauth add casemark/skills icd-cpt-normalizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Medical records are full of codes that mean nothing to attorneys without translation. This skill normalizes ICD-10-CM diagnosis codes, ICD-9 codes (in older records), and CPT procedure codes into a form the attorney can actually use.
Whenever a code appears in records being summarized:
Use the configured ICD-10 / CPT lookup tool available in the environment. The tool name varies by deployment; check the available tools list for one that handles medical code lookup.
If no lookup tool is available, fall back to the inline reference below for common codes. For uncommon codes without a lookup tool, mark the code with [code description not verified] and surface in the methodology section.
ICD-10-CM codes are alphanumeric, 3 to 7 characters, often with a decimal point after the third character: M54.5, S83.241A. Records sometimes drop the decimal (M545) or add spaces (M 54.5); normalize to the standard format with the decimal.
For each code that appears, render it as:
[Code] - [Full narrative description from ICD-10-CM]
Example:
S83.241A - Other tear of medial meniscus, current injury, right knee, initial encounter
The seventh character (A, D, S, etc.) carries meaning and must be preserved:
A treating provider coding S83.241A (initial) on visit 1 and S83.241D (subsequent) on visit 5 is using the codes correctly. A provider still coding A after twelve visits may have a sloppy billing practice; flag for the attorney if this is a billing-relevant case.
ICD-10 distinguishes left, right, and unspecified. Records sometimes code "unspecified" when laterality was actually documented in the narrative. Cross-check:
Encounter narrative: "Right knee pain, status post MVA"
Code billed: M25.50 (Pain in unspecified joint)
This is a coding inaccuracy. Surface in Strategic Analysis if billing is at issue. The accurate code would be M25.561 (Pain in right knee).
ICD-9 was retired October 1, 2015. Records before that date use ICD-9; records after generally use ICD-10. Some legacy systems and some Workers Comp jurisdictions still emit ICD-9.
When ICD-9 codes appear:
Example:
847.2 (Sprain of lumbar) [ICD-9, encounter dated 2014-08-15]
Cross-walk: S33.5XXA - Sprain of ligaments of lumbar spine, initial encounter
GEMs are not always one-to-one. When the cross-walk is ambiguous, surface the alternatives:
787.91 (Diarrhea) [ICD-9]
Cross-walk: R19.7 (Diarrhea, unspecified) most likely; if context indicates
infection, A09 (Infectious gastroenteritis and colitis, unspecified)
CPT codes are 5-digit numeric codes (99213, 97110, 64483). Category II codes append F (0001F). Category III codes append T (0042T). Records occasionally use HCPCS Level II codes which start with a letter (G0463, J0696); these come from a different code set but appear alongside CPT in billing records and should be expanded the same way.
Render each code as:
[Code] - [Procedure description]
Example:
27447 - Arthroplasty, knee, condyle and plateau; medial AND lateral compartments
with or without patella resurfacing (total knee arthroplasty)
99204 - Office or other outpatient visit for the evaluation and management of a
new patient, requires a comprehensive history, comprehensive examination,
and medical decision making of moderate complexity
CPT modifiers are two-character suffixes that change the meaning of the procedure code. Common modifiers:
Modifiers must be expanded just like the base code:
64483-LT - Injection, anesthetic agent and/or steroid, transforaminal
epidural; lumbar or sacral, single level (left side)
In billing-relevant cases (med mal damages, fee disputes, lien negotiations), flag:
These are surfaced in Strategic Analysis, not the chronology itself. The chronology states what was done; the analysis interprets whether the billing was clean.
In a medical chronology encounter entry, codes appear in the Diagnoses and Treatment subsections:
Diagnoses:
- S83.241A - Other tear of medial meniscus, current injury, right knee, initial encounter [SMITH00147]
- M17.11 - Unilateral primary osteoarthritis, right knee [SMITH00147]
Treatment:
- 99204 - New patient evaluation, comprehensive [SMITH00147]
- 73721 - MRI any joint of lower extremity, without contrast (referred) [SMITH00147]
If a code is in the records but you cannot verify its description (lookup tool unavailable, code is non-standard), render as:
- 99204 [code description not verified] [SMITH00147]
Surface in methodology that some codes were not verified.
These appear repeatedly in personal injury and medical malpractice records. Use as a fallback if the lookup tool is unavailable. This is not a substitute for proper lookup on production cases.
This list is incomplete by design. Use the lookup tool for anything not on it.
[code description not verified].tools
Audits the complete in-scope medical-record universe in a litigation matter and produces an attorney-facing, Bates-cited analysis of treatment gaps, missing records or providers, baseline coverage, material billing or production mismatches, and complaint evolution. Use when asked to find missing medical records, analyze treatment gaps or first-care timing, identify absent providers, assess whether a production is complete, or prepare a records-request target list. Use medical-record-chronology instead when the primary request is a chronological clinical narrative.
development
Drafts a legally compliant Private Placement Memorandum for Regulation D offerings (Rule 506(b)/506(c)), covering full disclosure framework including risk factors, capitalization, securities terms, use of proceeds, and investor qualification requirements. Enforces SEC anti-fraud compliance under Section 10(b)/Rule 10b-5, blue sky law considerations, and accredited investor verification under Rule 501. Use this skill when drafting PPMs, offering memorandums, Reg D disclosure documents, or private offering circulars for issuers raising capital from sophisticated investors. Also trigger when the user mentions private placement disclosure, offering memorandum, Reg D fundraising, or accredited investor verification. Even if the user just says "PPM" or "draft our offering memo," use this skill.
data-ai
Generates structured privacy and data protection law briefings across US, EU, UK, and other jurisdictions. Organizes by jurisdiction with compliance deadlines, enforcement actions, and legislative changes. Use when preparing privacy law briefings, compliance updates, regulatory change summaries, or data protection landscape reviews.
testing
Generates structured summaries of prior art references for patent prosecution, validity analysis, and freedom-to-operate assessments. Maps disclosures to claim elements with precise citations. Use when summarizing prior art, analyzing patent landscapes, mapping references to claims, or preparing office action responses.