Recipe

Medical record coding (ICD-10)

Automate ICD-10-CM code assignment from de-identified clinical notes using Meridian.

!

HIPAA Notice

Meridian is not HIPAA-certified. Do not submit protected health information (PHI). All examples in this recipe use synthetic, de-identified data. Review your compliance obligations before processing real patient records.

Overview

ICD-10-CM (International Classification of Diseases, 10th Revision, Clinical Modification) is the standard diagnostic coding system used in US healthcare. This recipe demonstrates how to extract structured diagnosis codes from unstructured clinical text using Meridian, producing a JSON payload with code, description, category, and confidence.

Input
Clinical note (plain text)
Output
ICD-10 codes + metadata
Model
Meridian default

Sample Input

De-identified clinical note — no real patient data.

Patient: SUBJECT-0042 | DOB: [REDACTED] | Sex: F
Encounter Date: 2025-11-14

Chief Complaint: Shortness of breath and bilateral
lower extremity swelling x 5 days.

Assessment:
1. Acute systolic heart failure, chronic (I50.23
   confirmed from prior admission)
2. Essential hypertension, uncontrolled
3. Type 2 diabetes mellitus with diabetic
   peripheral neuropathy
4. Chronic kidney disease, stage 3a

Plan: Admit for IV diuresis. Echo in AM.

Prompt Template

Send this system prompt alongside the clinical note as the user message.

You are a clinical coding assistant. Given a
de-identified clinical note, extract all diagnoses
and map them to the most specific ICD-10-CM codes.

Return ONLY valid JSON with this schema:
{
  "codes": [
    {
      "code": "I50.23",
      "description": "Acute on chronic systolic
        (congestive) heart failure",
      "category": "Diseases of the circulatory
        system (I00-I99)",
      "confidence": 0.97
    }
  ]
}

Rules:
- Use the most specific billable code available.
- If a diagnosis is mentioned but no code is
  provided in the note, infer the best match.
- Set confidence based on how explicitly the
  diagnosis is stated.
- Do not invent diagnoses not present in the note.

Expected Output

{
  "codes": [
    {
      "code": "I50.23",
      "description": "Acute on chronic systolic
        (congestive) heart failure",
      "category": "Diseases of the circulatory
        system (I00-I99)",
      "confidence": 0.98
    },
    {
      "code": "I10",
      "description": "Essential (primary)
        hypertension",
      "category": "Diseases of the circulatory
        system (I00-I99)",
      "confidence": 0.94
    },
    {
      "code": "E11.42",
      "description": "Type 2 diabetes mellitus
        with diabetic polyneuropathy",
      "category": "Endocrine, nutritional and
        metabolic diseases (E00-E89)",
      "confidence": 0.96
    },
    {
      "code": "N18.31",
      "description": "Chronic kidney disease,
        stage 3a",
      "category": "Diseases of the genitourinary
        system (N00-N99)",
      "confidence": 0.95
    }
  ]
}

Usage Notes

  • De-identification: Strip names, MRNs, dates of birth, addresses, and phone numbers before sending to Meridian. Use placeholder tokens like SUBJECT-0042.
  • Confidence threshold: Filter codes with confidence below 0.85 for manual review. The model expresses uncertainty honestly — low-confidence codes often indicate ambiguous or incomplete documentation.
  • Batch processing: For multi-note batches, send each note as a separate request. Meridian does not retain state between calls.
  • Code validation: Always validate output codes against the latest CMS ICD-10-CM code set. Codes change annually (October 1).

Ready to automate coding?

Start with de-identified data and scale when your compliance review is complete.