Problem List Review
Overview
Perform a structured audit of the active problem list by pulling Condition resources and cross-referencing with MedicationRequests, recent Encounters, and Observations. Identify clinical discrepancies: conditions without active treatment, resolved conditions still listed as active, medications implying undocumented conditions, and ICD-10 coding specificity opportunities. Output actionable findings for clinical review.
FHIR Resources Used
| Resource |
Purpose |
Search Parameters |
| Condition |
Active problem list |
patient, clinical-status |
| MedicationRequest |
Cross-reference treatments |
patient, status=active |
| Encounter |
Recent visit context |
patient, date |
| Observation |
Lab correlation |
patient, category=laboratory, code |
Instructions
Step 1: Pull All Conditions
Tool: fhir_search
resourceType: "Condition"
queryParams: "patient=[patient-id]"
Retrieve all conditions regardless of status. Categorize each by:
clinicalStatus: active, recurrence, relapse, inactive, remission, resolved
verificationStatus: confirmed, unconfirmed, provisional, differential, refuted, entered-in-error
category: problem-list-item, encounter-diagnosis, health-concern
code.coding: Extract SNOMED CT code and ICD-10-CM code if present
Build two lists:
- Active conditions (clinicalStatus = active, recurrence, or relapse)
- Inactive/resolved conditions (clinicalStatus = inactive, remission, or resolved)
Step 2: Pull Active Medications
Tool: fhir_search
resourceType: "MedicationRequest"
queryParams: "patient=[patient-id]&status=active"
For each medication, extract:
- Drug name and RxNorm code from
medicationCodeableConcept
- Drug class (infer from name suffix or RxNorm hierarchy)
- Dosage from
dosageInstruction
Step 3: Pull Recent Encounters (Last 12 Months)
Tool: fhir_search
resourceType: "Encounter"
queryParams: "patient=[patient-id]&date=ge[12-months-ago]&_sort=-date"
Extract encounter diagnoses from reasonCode or associated Condition references with category = encounter-diagnosis.
Step 4: Cross-Reference Medications Against Problems
For each active medication, check if a corresponding condition exists on the active problem list. Use the medication-condition mapping reference.
Flag Type A -- Medication Without Matching Condition (Implied Diagnosis Missing):
| Medication / Class |
Implied Condition |
Check Problem List For |
| Metformin, glipizide, insulin |
Type 2 Diabetes Mellitus |
SNOMED 44054006 or ICD-10 E11.x |
| Lisinopril, losartan, amlodipine |
Hypertension |
SNOMED 59621000 or ICD-10 I10 |
| Atorvastatin, rosuvastatin |
Hyperlipidemia |
SNOMED 55822004 or ICD-10 E78.x |
| Levothyroxine |
Hypothyroidism |
SNOMED 40930008 or ICD-10 E03.x |
| Albuterol, fluticasone inhaler |
Asthma or COPD |
SNOMED 195967001 or 13645005 |
| Sertraline, fluoxetine, escitalopram |
Depression or Anxiety |
SNOMED 35489007 or 197480006 |
| Omeprazole, pantoprazole |
GERD |
SNOMED 235595009 or ICD-10 K21.0 |
| Warfarin, apixaban, rivaroxaban |
A-fib, DVT/PE, or valve condition |
SNOMED 49436004 |
| Gabapentin, pregabalin |
Neuropathy, seizure disorder, or chronic pain |
SNOMED 386033004 |
| Methotrexate |
Rheumatoid arthritis or psoriasis |
SNOMED 69896004 |
If medication is present but no matching condition exists on the active problem list, flag as: "Patient is on [medication] but [condition] is not on the active problem list."
Step 5: Check for Conditions Without Active Treatment
For each active condition, check if there is at least one active medication or recent encounter addressing it.
Flag Type B -- Untreated Active Condition:
- Active condition with no medication from the expected drug class
- No encounter in the last 12 months with the condition as a reason code
- Exception: conditions that may not require pharmacotherapy (e.g., obesity managed with lifestyle, resolved fracture under monitoring)
Step 6: Identify Resolved Conditions Still Listed as Active
Flag Type C -- Potentially Resolved Conditions:
- Condition has
clinicalStatus = active but abatementDateTime is in the past
- Condition is an acute diagnosis (e.g., pneumonia, UTI, fracture) with onset > 6 months ago and no recent encounter referencing it
- Condition was treated with a medication that has been stopped
Verify with lab data where applicable:
Tool: fhir_search
resourceType: "Observation"
queryParams: "patient=[patient-id]&code=[relevant-LOINC]&_sort=-date&_count=1"
Examples:
- "Diabetes" active but latest HbA1c (LOINC 4548-4) is consistently < 5.7% for 2+ years and no diabetes medications active
- "Hypothyroidism" active but latest TSH (LOINC 3016-3) normal and no levothyroxine prescribed
- "Iron deficiency anemia" active but latest ferritin (LOINC 2276-4) and hemoglobin (LOINC 718-7) both normal
Step 7: Assess ICD-10 Coding Specificity
For each active condition, check if the ICD-10 code can be made more specific:
Flag Type D -- Coding Specificity Opportunities:
| Current Code |
Issue |
Suggested Improvement |
| E11.9 (Type 2 DM without complications) |
Patient has documented neuropathy or nephropathy |
E11.40 (with neuropathy) or E11.22 (with CKD) |
| I10 (Essential hypertension) |
Adequate but check for hypertensive heart/kidney disease |
I11.x, I12.x, I13.x if applicable |
| E78.5 (Hyperlipidemia, unspecified) |
Can specify type |
E78.00 (pure hypercholesterolemia), E78.1 (hypertriglyceridemia) |
| J45.20 (Mild intermittent asthma, uncomplicated) |
Patient on daily controller |
J45.30 (mild persistent) or higher |
| M17.9 (Osteoarthritis of knee, unspecified) |
Laterality missing |
M17.11 (right), M17.12 (left) |
| F32.9 (Major depressive disorder, unspecified) |
Can specify episode/severity |
F32.0 (mild), F32.1 (moderate), F32.2 (severe) |
Step 8: Format Output
PROBLEM LIST REVIEW
===================
Patient: [name] ([patient-id])
Reviewed: [timestamp]
Active Conditions: [count]
Inactive/Resolved: [count]
Active Medications: [count]
ACTIVE PROBLEM LIST
-------------------
1. [Condition] - SNOMED: [code] / ICD-10: [code] - Onset: [date]
Treatment: [matching medication(s)]
2. ...
FINDINGS
--------
[A] MISSING DIAGNOSES (Medications imply undocumented conditions)
1. On Metformin 1000mg BID but Type 2 Diabetes not on problem list
-> Recommend adding: E11.9 Type 2 diabetes mellitus without complications
2. ...
[B] UNTREATED CONDITIONS
1. Essential hypertension (I10) - Active since 2020 - No antihypertensive medication found
-> Verify: Is patient on lifestyle management only? If pharmacotherapy indicated, address.
2. ...
[C] POTENTIALLY RESOLVED CONDITIONS
1. Acute bronchitis (J20.9) - Onset: 2025-03-15 - Still listed as active
-> Recommend: Update clinicalStatus to "resolved"
2. ...
[D] CODING SPECIFICITY OPPORTUNITIES
1. E11.9 (DM2 without complications) - Patient has documented diabetic neuropathy
-> Recommend: E11.40 (Type 2 DM with diabetic neuropathy)
2. ...
SUMMARY
-------
- [N] conditions reviewed
- [N] missing diagnoses identified
- [N] conditions potentially untreated
- [N] conditions potentially resolved
- [N] coding improvements suggested
Examples
Example 1: Routine Problem List Audit
User says: "Review the problem list for patient 44321"
Actions:
fhir_search Condition?patient=44321 -- returns 8 conditions (6 active, 2 resolved)
fhir_search MedicationRequest?patient=44321&status=active -- returns 7 active medications
fhir_search Encounter?patient=44321&date=ge2025-02-07&_sort=-date -- returns 4 encounters
Cross-reference findings:
- Metformin 1000mg and Glipizide 5mg on med list, "Type 2 Diabetes" IS on problem list. OK.
- Lisinopril 20mg on med list, "Hypertension" IS on problem list. OK.
- Omeprazole 20mg on med list, but NO GERD or peptic ulcer on problem list. FLAG A.
- Sertraline 100mg on med list, but NO depression or anxiety on problem list. FLAG A.
- "Acute sinusitis" (J01.90) onset 2025-01-10, still active, no recent encounter. FLAG C.
- Diabetes coded as E11.9 but patient also has documented CKD Stage 3. FLAG D: suggest E11.22.
Result: Formatted report with 2 missing diagnoses, 1 potentially resolved condition, 1 coding improvement.
Example 2: Post-Discharge Problem List Reconciliation
User says: "Audit the problem list for patient 77890 after their hospital stay"
Actions:
fhir_search Condition?patient=77890 -- returns 12 conditions
fhir_search MedicationRequest?patient=77890&status=active -- returns 10 medications
fhir_search Encounter?patient=77890&date=ge2025-02-07&_sort=-date -- returns 6 encounters including inpatient stay
Findings:
- New medications from discharge (apixaban, metoprolol) without corresponding new diagnoses added (atrial fibrillation). FLAG A.
- Hospital-acquired pneumonia on problem list from admission, patient discharged 3 weeks ago with completed antibiotic course. FLAG C.
- "Heart failure" (I50.9, unspecified) could be I50.22 (chronic systolic, compensated) based on echo results. FLAG D.
Troubleshooting
Condition Resources Use Only ICD-10 Codes Without SNOMED
- Cross-reference is still possible. Use the ICD-10 code directly for matching.
- Note that some medication-condition mappings are more reliable with SNOMED codes. Use the display text as a fallback for matching.
MedicationRequest Uses medicationReference Instead of medicationCodeableConcept
Too Many Conditions Returned (Including Historical)
- Filter client-side by
category = "problem-list-item" to exclude encounter-only diagnoses.
- Sort by
clinicalStatus to prioritize active conditions.
- If the list exceeds 50 items, paginate with
_count=50 and follow Bundle.link where relation = "next".
Related Skills
clinical-summary-generator -- for full chart summary including problems in context
allergy-adverse-reaction-summary -- for allergy-specific review
patient-demographics-summary -- when problem list review reveals missing demographic data
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: langcare-langcare-mcp-fhir-problem-list-review3description: Problem List Review4---56# Problem List Review78## Overview910Perform a structured audit of the active problem list by pulling Condition resources and cross-referencing with MedicationRequests, recent Encounters, and Observations. Identify clinical discrepancies: conditions without active treatment, resolved conditions still listed as active, medications implying undocumented conditions, and ICD-10 coding specificity opportunities. Output actionable findings for clinical review.1112## FHIR Resources Used1314| Resource | Purpose | Search Parameters |15|----------|---------|-------------------|16| Condition | Active problem list | patient, clinical-status |17| MedicationRequest | Cross-reference treatments | patient, status=active |18| Encounter | Recent visit context | patient, date |19| Observation | Lab correlation | patient, category=laboratory, code |2021## Instructions2223### Step 1: Pull All Conditions2425```26Tool: fhir_search27resourceType: "Condition"28queryParams: "patient=[patient-id]"29```3031Retrieve all conditions regardless of status. Categorize each by:32- `clinicalStatus`: active, recurrence, relapse, inactive, remission, resolved33- `verificationStatus`: confirmed, unconfirmed, provisional, differential, refuted, entered-in-error34- `category`: problem-list-item, encounter-diagnosis, health-concern35- `code.coding`: Extract SNOMED CT code and ICD-10-CM code if present3637Build two lists:381. **Active conditions** (clinicalStatus = active, recurrence, or relapse)392. **Inactive/resolved conditions** (clinicalStatus = inactive, remission, or resolved)4041### Step 2: Pull Active Medications4243```44Tool: fhir_search45resourceType: "MedicationRequest"46queryParams: "patient=[patient-id]&status=active"47```4849For each medication, extract:50- Drug name and RxNorm code from `medicationCodeableConcept`51- Drug class (infer from name suffix or RxNorm hierarchy)52- Dosage from `dosageInstruction`5354### Step 3: Pull Recent Encounters (Last 12 Months)5556```57Tool: fhir_search58resourceType: "Encounter"59queryParams: "patient=[patient-id]&date=ge[12-months-ago]&_sort=-date"60```6162Extract encounter diagnoses from `reasonCode` or associated `Condition` references with `category` = encounter-diagnosis.6364### Step 4: Cross-Reference Medications Against Problems6566For each active medication, check if a corresponding condition exists on the active problem list. Use the medication-condition mapping reference.6768**Flag Type A -- Medication Without Matching Condition (Implied Diagnosis Missing):**6970| Medication / Class | Implied Condition | Check Problem List For |71|--------------------|-------------------|----------------------|72| Metformin, glipizide, insulin | Type 2 Diabetes Mellitus | SNOMED 44054006 or ICD-10 E11.x |73| Lisinopril, losartan, amlodipine | Hypertension | SNOMED 59621000 or ICD-10 I10 |74| Atorvastatin, rosuvastatin | Hyperlipidemia | SNOMED 55822004 or ICD-10 E78.x |75| Levothyroxine | Hypothyroidism | SNOMED 40930008 or ICD-10 E03.x |76| Albuterol, fluticasone inhaler | Asthma or COPD | SNOMED 195967001 or 13645005 |77| Sertraline, fluoxetine, escitalopram | Depression or Anxiety | SNOMED 35489007 or 197480006 |78| Omeprazole, pantoprazole | GERD | SNOMED 235595009 or ICD-10 K21.0 |79| Warfarin, apixaban, rivaroxaban | A-fib, DVT/PE, or valve condition | SNOMED 49436004 |80| Gabapentin, pregabalin | Neuropathy, seizure disorder, or chronic pain | SNOMED 386033004 |81| Methotrexate | Rheumatoid arthritis or psoriasis | SNOMED 69896004 |8283If medication is present but no matching condition exists on the active problem list, flag as: "Patient is on [medication] but [condition] is not on the active problem list."8485### Step 5: Check for Conditions Without Active Treatment8687For each active condition, check if there is at least one active medication or recent encounter addressing it.8889**Flag Type B -- Untreated Active Condition:**90- Active condition with no medication from the expected drug class91- No encounter in the last 12 months with the condition as a reason code92- Exception: conditions that may not require pharmacotherapy (e.g., obesity managed with lifestyle, resolved fracture under monitoring)9394### Step 6: Identify Resolved Conditions Still Listed as Active9596**Flag Type C -- Potentially Resolved Conditions:**97- Condition has `clinicalStatus` = active but `abatementDateTime` is in the past98- Condition is an acute diagnosis (e.g., pneumonia, UTI, fracture) with onset > 6 months ago and no recent encounter referencing it99- Condition was treated with a medication that has been stopped100101Verify with lab data where applicable:102```103Tool: fhir_search104resourceType: "Observation"105queryParams: "patient=[patient-id]&code=[relevant-LOINC]&_sort=-date&_count=1"106```107108Examples:109- "Diabetes" active but latest HbA1c (LOINC 4548-4) is consistently < 5.7% for 2+ years and no diabetes medications active110- "Hypothyroidism" active but latest TSH (LOINC 3016-3) normal and no levothyroxine prescribed111- "Iron deficiency anemia" active but latest ferritin (LOINC 2276-4) and hemoglobin (LOINC 718-7) both normal112113### Step 7: Assess ICD-10 Coding Specificity114115For each active condition, check if the ICD-10 code can be made more specific:116117**Flag Type D -- Coding Specificity Opportunities:**118119| Current Code | Issue | Suggested Improvement |120|-------------|-------|----------------------|121| E11.9 (Type 2 DM without complications) | Patient has documented neuropathy or nephropathy | E11.40 (with neuropathy) or E11.22 (with CKD) |122| I10 (Essential hypertension) | Adequate but check for hypertensive heart/kidney disease | I11.x, I12.x, I13.x if applicable |123| E78.5 (Hyperlipidemia, unspecified) | Can specify type | E78.00 (pure hypercholesterolemia), E78.1 (hypertriglyceridemia) |124| J45.20 (Mild intermittent asthma, uncomplicated) | Patient on daily controller | J45.30 (mild persistent) or higher |125| M17.9 (Osteoarthritis of knee, unspecified) | Laterality missing | M17.11 (right), M17.12 (left) |126| F32.9 (Major depressive disorder, unspecified) | Can specify episode/severity | F32.0 (mild), F32.1 (moderate), F32.2 (severe) |127128### Step 8: Format Output129130```131PROBLEM LIST REVIEW132===================133Patient: [name] ([patient-id])134Reviewed: [timestamp]135Active Conditions: [count]136Inactive/Resolved: [count]137Active Medications: [count]138139ACTIVE PROBLEM LIST140-------------------1411. [Condition] - SNOMED: [code] / ICD-10: [code] - Onset: [date]142 Treatment: [matching medication(s)]1432. ...144145FINDINGS146--------147148[A] MISSING DIAGNOSES (Medications imply undocumented conditions)149 1. On Metformin 1000mg BID but Type 2 Diabetes not on problem list150 -> Recommend adding: E11.9 Type 2 diabetes mellitus without complications151 2. ...152153[B] UNTREATED CONDITIONS154 1. Essential hypertension (I10) - Active since 2020 - No antihypertensive medication found155 -> Verify: Is patient on lifestyle management only? If pharmacotherapy indicated, address.156 2. ...157158[C] POTENTIALLY RESOLVED CONDITIONS159 1. Acute bronchitis (J20.9) - Onset: 2025-03-15 - Still listed as active160 -> Recommend: Update clinicalStatus to "resolved"161 2. ...162163[D] CODING SPECIFICITY OPPORTUNITIES164 1. E11.9 (DM2 without complications) - Patient has documented diabetic neuropathy165 -> Recommend: E11.40 (Type 2 DM with diabetic neuropathy)166 2. ...167168SUMMARY169-------170- [N] conditions reviewed171- [N] missing diagnoses identified172- [N] conditions potentially untreated173- [N] conditions potentially resolved174- [N] coding improvements suggested175```176177## Examples178179### Example 1: Routine Problem List Audit180181**User says:** "Review the problem list for patient 44321"182183**Actions:**1841. `fhir_search` Condition?patient=44321 -- returns 8 conditions (6 active, 2 resolved)1852. `fhir_search` MedicationRequest?patient=44321&status=active -- returns 7 active medications1863. `fhir_search` Encounter?patient=44321&date=ge2025-02-07&_sort=-date -- returns 4 encounters187188**Cross-reference findings:**189- Metformin 1000mg and Glipizide 5mg on med list, "Type 2 Diabetes" IS on problem list. OK.190- Lisinopril 20mg on med list, "Hypertension" IS on problem list. OK.191- Omeprazole 20mg on med list, but NO GERD or peptic ulcer on problem list. FLAG A.192- Sertraline 100mg on med list, but NO depression or anxiety on problem list. FLAG A.193- "Acute sinusitis" (J01.90) onset 2025-01-10, still active, no recent encounter. FLAG C.194- Diabetes coded as E11.9 but patient also has documented CKD Stage 3. FLAG D: suggest E11.22.195196**Result:** Formatted report with 2 missing diagnoses, 1 potentially resolved condition, 1 coding improvement.197198### Example 2: Post-Discharge Problem List Reconciliation199200**User says:** "Audit the problem list for patient 77890 after their hospital stay"201202**Actions:**2031. `fhir_search` Condition?patient=77890 -- returns 12 conditions2042. `fhir_search` MedicationRequest?patient=77890&status=active -- returns 10 medications2053. `fhir_search` Encounter?patient=77890&date=ge2025-02-07&_sort=-date -- returns 6 encounters including inpatient stay206207**Findings:**208- New medications from discharge (apixaban, metoprolol) without corresponding new diagnoses added (atrial fibrillation). FLAG A.209- Hospital-acquired pneumonia on problem list from admission, patient discharged 3 weeks ago with completed antibiotic course. FLAG C.210- "Heart failure" (I50.9, unspecified) could be I50.22 (chronic systolic, compensated) based on echo results. FLAG D.211212## Troubleshooting213214### Condition Resources Use Only ICD-10 Codes Without SNOMED215- Cross-reference is still possible. Use the ICD-10 code directly for matching.216- Note that some medication-condition mappings are more reliable with SNOMED codes. Use the display text as a fallback for matching.217218### MedicationRequest Uses medicationReference Instead of medicationCodeableConcept219- The medication details are in a separate Medication resource. Resolve the reference:220 ```221 Tool: fhir_read222 resourceType: "Medication"223 id: "[medication-reference-id]"224 ```225- Extract the drug name from `Medication.code.coding`.226227### Too Many Conditions Returned (Including Historical)228- Filter client-side by `category` = "problem-list-item" to exclude encounter-only diagnoses.229- Sort by `clinicalStatus` to prioritize active conditions.230- If the list exceeds 50 items, paginate with `_count=50` and follow `Bundle.link` where `relation` = "next".231232## Related Skills233234- `clinical-summary-generator` -- for full chart summary including problems in context235- `allergy-adverse-reaction-summary` -- for allergy-specific review236- `patient-demographics-summary` -- when problem list review reveals missing demographic data237238---239> Converted and distributed by [TomeVault](https://tomevault.io/claim/langcare) — claim your Tome and manage your conversions.240<!-- tomevault:4.0:skill_md:2026-04-13 -->