refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게 [공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류. 문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인). - Topic_Programming → Domain_Programming (내부 구조 보존) - Topic_Graphic → Domain_Design - Topic_Business → Domain_Product - Topic_General → Domain_General - _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning), Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing) - 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서) - 빈 폴더 정리 (memory/procedures) - 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
---
|
||||
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 |
|
||||
Reference in New Issue
Block a user