---
id: wiki-2026-0508-geriatric-medicine
title: Geriatric Medicine
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [geriatrics, aging, elderly care, frailty, polypharmacy, CGA]
duplicate_of: none
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [medicine, geriatrics, aging, frailty, healthcare, ai-medicine]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: Medical / Clinical
  applicable_to: [Healthcare AI, Elderly Care, Risk Stratification]
---

# Geriatric Medicine

## 매 한 줄
> **"매 elderly (65+) 의 specific medical care"**. 매 frailty + multimorbidity + polypharmacy + cognitive decline + functional decline. 매 modern: 매 ML risk stratification + 매 fall detection + 매 dementia screening.

## 매 핵심

### 매 syndromes (Geriatric Giants)
- **Frailty**.
- **Falls**.
- **Cognitive decline / dementia**.
- **Incontinence**.
- **Iatrogenic** (medication-related).

### 매 framework
- **CGA** (Comprehensive Geriatric Assessment): 매 medical + functional + psychological + social.
- **Frailty index** (Rockwood).
- **ADL / IADL**: 매 activities of daily living.
- **MMSE / MoCA**: 매 cognitive screen.

### 매 modern AI
- **Risk stratification**: 매 readmission, fall, mortality.
- **Wearable monitoring**: 매 fall detection.
- **Dementia screening**: 매 voice / writing.
- **Polypharmacy**: 매 drug interaction LLM.
- **Telehealth**.

### 매 응용
1. **Hospital readmission predict**.
2. **Fall risk score**.
3. **Frailty progression**.
4. **Medication review**.
5. **Cognitive assessment**.
6. **End-of-life planning**.

## 💻 패턴

### Frailty index
```python
def frailty_index(deficits, max_deficits=70):
    """매 Rockwood frailty: count of deficits / total."""
    n_deficit = sum(1 for d in deficits if d.present)
    return n_deficit / max_deficits  # 매 > 0.25 = frail
```

### Charlson Comorbidity Index
```python
CCI_WEIGHTS = {
    'mi': 1, 'chf': 1, 'pvd': 1, 'cvd': 1, 'dementia': 1,
    'copd': 1, 'connective': 1, 'ulcer': 1, 'liver_mild': 1,
    'diabetes': 1, 'hemiplegia': 2, 'renal_mod_severe': 2,
    'diabetes_complications': 2, 'tumor': 2, 'leukemia': 2,
    'lymphoma': 2, 'liver_mod_severe': 3, 'metastatic_tumor': 6, 'aids': 6,
}

def cci_score(conditions, age):
    score = sum(CCI_WEIGHTS.get(c, 0) for c in conditions)
    if age >= 50: score += (age - 40) // 10
    return score
```

### Fall risk (Morse Fall Scale)
```python
def morse_fall_scale(history_falls, secondary_diagnosis, ambulatory_aid, iv_therapy, gait, mental_status):
    score = 0
    if history_falls: score += 25
    if secondary_diagnosis: score += 15
    score += {'none': 0, 'crutch_cane_walker': 15, 'furniture': 30}[ambulatory_aid]
    if iv_therapy: score += 20
    score += {'normal': 0, 'weak': 10, 'impaired': 20}[gait]
    score += {'oriented': 0, 'forgets_limit': 15}[mental_status]
    
    risk = 'low' if score < 25 else 'medium' if score < 45 else 'high'
    return score, risk
```

### Polypharmacy detection (Beers / STOPP)
```python
BEERS_INAPPROPRIATE = {'diphenhydramine': 'anticholinergic load', 'amitriptyline': 'TCA elderly', ...}

def beers_check(medications):
    flagged = []
    for med in medications:
        if med.name in BEERS_INAPPROPRIATE:
            flagged.append({'med': med.name, 'reason': BEERS_INAPPROPRIATE[med.name]})
    return flagged
```

### Drug interaction (LLM-aided)
```python
def drug_interaction_check(medications, llm):
    prompt = f"""Check drug interactions for elderly patient.
Medications: {medications}

Output JSON list:
- pair: [drug1, drug2]
- severity: minor / moderate / severe
- mechanism
- recommendation"""
    return json.loads(llm.generate(prompt))
```

### Cognitive screen (MoCA)
```python
def moca_total(scores):
    """매 30-point — 26+ normal, 18-25 mild, < 18 mod-severe."""
    return sum(scores.values())  # 매 visuospatial + naming + memory + attention + language + abstraction + delayed recall + orientation
```

### Readmission risk (LACE)
```python
def lace_index(length_of_stay, acuity_admission, charlson, ed_visits_6mo):
    """매 30-day readmission risk."""
    los_score = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 5, 7: 6, 8: 6, 9: 7}.get(min(length_of_stay, 9), 7)
    acuity = 3 if acuity_admission else 0
    charlson_score = min(charlson, 5)
    ed_score = min(ed_visits_6mo, 4)
    return los_score + acuity + charlson_score + ed_score
```

### Fall detection (wearable)
```python
def detect_fall(accelerometer_data, threshold_g=2.5):
    """매 spike + post-impact stillness."""
    magnitudes = np.linalg.norm(accelerometer_data, axis=1)
    spikes = np.where(magnitudes > threshold_g)[0]
    for spike in spikes:
        if spike + 50 < len(magnitudes):
            post = magnitudes[spike+10:spike+50]
            if post.std() < 0.1:  # 매 still
                return {'fall_detected': True, 'time': spike}
    return {'fall_detected': False}
```

### Sarcopenia (SARC-F)
```python
def sarc_f_questionnaire():
    return {
        'strength': 'how much difficulty lifting 10lb',
        'walking': 'how much difficulty walking across room',
        'rising': 'how much difficulty rising from chair',
        'climbing': 'how much difficulty climbing 10 stairs',
        'falls': 'how many falls in last year',
    }
# 매 score >= 4 → sarcopenia screen positive
```

### CGA (comprehensive)
```python
def comprehensive_geriatric_assessment(patient):
    return {
        'medical': cci_score(patient.conditions, patient.age),
        'functional': adl_score(patient.adls),
        'cognitive': moca_total(patient.moca),
        'mood': geriatric_depression_scale(patient.gds),
        'social': social_isolation_score(patient),
        'frailty': frailty_index(patient.deficits),
        'medications': beers_check(patient.medications),
    }
```

### LLM clinical assistant
```python
def geriatric_consult(patient, llm):
    prompt = f"""You are a geriatrics expert. For this patient:
{patient}

Output:
1. Top 3 medical priorities
2. Medication review (Beers / STOPP)
3. Functional intervention recommendations
4. Goals of care discussion points
DO NOT diagnose without confirmation. Always defer to attending."""
    return llm.generate(prompt)
```

### End-of-life (POLST)
```python
@dataclass
class POLST:
    cpr_preference: str  # 매 attempt / DNR
    medical_intervention: str  # 매 full / selective / comfort
    artificial_nutrition: str
    
    def is_complete(self):
        return all([self.cpr_preference, self.medical_intervention, self.artificial_nutrition])
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| Hospital admission | CGA + LACE |
| Fall risk | Morse + ambient sensor |
| Multi-medication | Beers / STOPP + LLM check |
| Cognitive concern | MoCA + DEM screen |
| Frailty | Rockwood index |
| End-of-life | POLST + family meeting |

**기본값**: 매 CGA + 매 risk stratification + 매 multi-disciplinary team + 매 wearable monitoring + 매 LLM medication check.

## 🔗 Graph
- 부모: [[Aging]]
- 변형: [[Frailty]] · [[Polypharmacy]]

## 🤖 LLM 활용
**언제**: 매 risk stratification. 매 medication review. 매 documentation.
**언제 X**: 매 final diagnosis (clinician-only).

## ❌ 안티패턴
- **Generic adult protocol**: 매 elderly different.
- **Polypharmacy ignore**: 매 cascade.
- **No functional assessment**: 매 hospitalization missing.
- **AI without clinician**: 매 liability.

## 🧪 검증 / 중복
- Verified (Beers Criteria 2023, AGS, MoCA, Rockwood frailty).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-04-26 | Auto |
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — geriatric giants + 매 Frailty / Beers / Morse / MoCA / fall code |
