界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

problem-list-review

problem-list-review

【开发与工程】Reviews the active problem list by cross-referencing Conditions with medications, encounters, and labs to identify discrepancies. Use when user asks to "review the problem list", "audit diagnoses", "check conditions", "problem list reconciliation", "coding review", "are there missing diagnoses", or "what conditions are untreated". Do NOT use for alle…

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: problem-list-review description: | Reviews the active problem list by cross-referencing Conditions with medications, encounters, and labs to identify discrepancies. Use when user asks to "review the problem list", "audit diagnoses", "check conditions", "problem list reconciliation", "coding review", "are there missing diagnoses", or "what conditions are untreated". Do NOT use for allergy review, medication reconciliation, or generating full clinical summaries. metadata: author: LangCare version: 1.0.0 mcp-server: langcare-mcp-fhir category: patient-data

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

ResourcePurposeSearch Parameters
ConditionActive problem listpatient, clinical-status
MedicationRequestCross-reference treatmentspatient, status=active
EncounterRecent visit contextpatient, date
ObservationLab correlationpatient, 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:

  1. Active conditions (clinicalStatus = active, recurrence, or relapse)
  2. 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 / ClassImplied ConditionCheck Problem List For
Metformin, glipizide, insulinType 2 Diabetes MellitusSNOMED 44054006 or ICD-10 E11.x
Lisinopril, losartan, amlodipineHypertensionSNOMED 59621000 or ICD-10 I10
Atorvastatin, rosuvastatinHyperlipidemiaSNOMED 55822004 or ICD-10 E78.x
LevothyroxineHypothyroidismSNOMED 40930008 or ICD-10 E03.x
Albuterol, fluticasone inhalerAsthma or COPDSNOMED 195967001 or 13645005
Sertraline, fluoxetine, escitalopramDepression or AnxietySNOMED 35489007 or 197480006
Omeprazole, pantoprazoleGERDSNOMED 235595009 or ICD-10 K21.0
Warfarin, apixaban, rivaroxabanA-fib, DVT/PE, or valve conditionSNOMED 49436004
Gabapentin, pregabalinNeuropathy, seizure disorder, or chronic painSNOMED 386033004
MethotrexateRheumatoid arthritis or psoriasisSNOMED 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 CodeIssueSuggested Improvement
E11.9 (Type 2 DM without complications)Patient has documented neuropathy or nephropathyE11.40 (with neuropathy) or E11.22 (with CKD)
I10 (Essential hypertension)Adequate but check for hypertensive heart/kidney diseaseI11.x, I12.x, I13.x if applicable
E78.5 (Hyperlipidemia, unspecified)Can specify typeE78.00 (pure hypercholesterolemia), E78.1 (hypertriglyceridemia)
J45.20 (Mild intermittent asthma, uncomplicated)Patient on daily controllerJ45.30 (mild persistent) or higher
M17.9 (Osteoarthritis of knee, unspecified)Laterality missingM17.11 (right), M17.12 (left)
F32.9 (Major depressive disorder, unspecified)Can specify episode/severityF32.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:

  1. fhir_search Condition?patient=44321 -- returns 8 conditions (6 active, 2 resolved)
  2. fhir_search MedicationRequest?patient=44321&status=active -- returns 7 active medications
  3. 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:

  1. fhir_search Condition?patient=77890 -- returns 12 conditions
  2. fhir_search MedicationRequest?patient=77890&status=active -- returns 10 medications
  3. 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

  • The medication details are in a separate Medication resource. Resolve the reference:
    Tool: fhir_read
    resourceType: "Medication"
    id: "[medication-reference-id]"
    
  • Extract the drug name from Medication.code.coding.

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
我的收藏