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.
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.