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:
Antigravity Agent
2026-07-11 11:05:56 +09:00
parent 6549ead309
commit c24165b8bc
6193 changed files with 1717 additions and 31 deletions
@@ -0,0 +1,167 @@
---
id: wiki-2026-0508-remote-rehabilitation
title: Remote Rehabilitation
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [telerehabilitation, telerehab, digital rehabilitation]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [rehabilitation, telehealth, devops, monitoring, healthtech]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: typescript
framework: nextjs-supabase-webrtc
---
# Remote Rehabilitation
## 매 한 줄
> **"매 clinic 의 walls 의 dissolving — 매 patient 의 home 의 becoming 의 PT studio"**. Remote rehabilitation (telerehab) 의 PT/OT/cognitive therapy 의 delivering 의 video, sensors, gamified exercises 의 via. 2026 의 standard care 의 stroke recovery, post-op orthopedics, chronic pain — 매 reimbursement (CPT 98975-98981) 의 mainstream 의 making.
## 매 핵심
### 매 modalities
- **Synchronous**: 매 live video PT session — 매 therapist 의 form correction 의 real-time.
- **Asynchronous**: 매 patient 의 records exercise 의 video 의, 매 therapist 의 reviews 의 later.
- **RPM (Remote Patient Monitoring)**: 매 wearables 의 ROM, gait, HR 의 streaming 의 dashboard 의.
- **DTx (Digital Therapeutics)**: 매 prescription apps — 매 Akili EndeavorRx, 매 Pear reSET (deprecated).
### 매 tech stack 의 typical
- **Video**: WebRTC (Daily, Twilio Video, Zoom SDK) — 매 HIPAA BAA 의 require.
- **Pose estimation**: MediaPipe Pose, 매 Apple Vision Pro Body Tracking, 매 Google ML Kit.
- **Wearables**: Apple Watch, Whoop, IMU patches (BioStamp).
- **Backend**: FHIR R5 의 EHR integration 의, 매 HL7 Bulk Data API.
### 매 응용
1. 매 stroke recovery — 매 mirror therapy 의 VR 의.
2. 매 post-ACL 의 ROM tracking 의 IMU 의.
3. 매 chronic low back pain 의 Hinge Health-style 의 daily exercises.
## 💻 패턴
### Pose-based form scoring (MediaPipe + TS)
```typescript
import { PoseLandmarker, FilesetResolver } from '@mediapipe/tasks-vision';
const vision = await FilesetResolver.forVisionTasks(
'https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10/wasm'
);
const pose = await PoseLandmarker.createFromOptions(vision, {
baseOptions: { modelAssetPath: '/pose_landmarker_full.task' },
runningMode: 'VIDEO',
numPoses: 1,
});
function squatDepthScore(landmarks: any[]): number {
const hip = landmarks[24], knee = landmarks[26], ankle = landmarks[28];
const angle = Math.atan2(hip.y - knee.y, hip.x - knee.x) -
Math.atan2(ankle.y - knee.y, ankle.x - knee.x);
const deg = Math.abs((angle * 180) / Math.PI);
return deg < 90 ? 1.0 : Math.max(0, 1 - (deg - 90) / 30);
}
```
### WebRTC 의 HIPAA-compliant session 의
```typescript
import Daily from '@daily-co/daily-js';
const call = Daily.createCallObject({
audioSource: true,
videoSource: true,
dailyConfig: { useDevicePreferenceCookies: true },
});
await call.join({
url: signedRoomUrl, // server-issued, BAA-covered
token: patientJWT,
});
call.on('recording-started', (e) => logToFHIR(e.recordingId, encounterId));
```
### IMU streaming 의 ROM tracking
```typescript
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: ['battery_service', 'heart_rate'] }],
optionalServices: ['0000fff0-0000-1000-8000-00805f9b34fb'],
});
const server = await device.gatt!.connect();
const svc = await server.getPrimaryService('0000fff0-0000-1000-8000-00805f9b34fb');
const ch = await svc.getCharacteristic('0000fff1-0000-1000-8000-00805f9b34fb');
await ch.startNotifications();
ch.addEventListener('characteristicvaluechanged', (e: any) => {
const dv = e.target.value as DataView;
const quat = [dv.getFloat32(0), dv.getFloat32(4), dv.getFloat32(8), dv.getFloat32(12)];
pushROM(quaternionToEulerDeg(quat));
});
```
### FHIR Observation 의 exercise log
```typescript
const obs = {
resourceType: 'Observation',
status: 'final',
category: [{ coding: [{ system: 'http://terminology.hl7.org/CodeSystem/observation-category', code: 'activity' }] }],
code: { coding: [{ system: 'http://loinc.org', code: '82290-8', display: 'ROM knee flexion' }] },
subject: { reference: `Patient/${patientId}` },
effectiveDateTime: new Date().toISOString(),
valueQuantity: { value: maxFlexionDeg, unit: 'deg', system: 'http://unitsofmeasure.org' },
};
await fetch(`${FHIR_BASE}/Observation`, { method: 'POST', headers, body: JSON.stringify(obs) });
```
### Adherence nudging (server cron)
```typescript
export default async (req: Request) => {
const { data: due } = await sb
.from('patients')
.select('id, phone, plan_id')
.lt('last_session_at', new Date(Date.now() - 86400_000).toISOString());
await Promise.all(
due!.map((p) => twilio.messages.create({
to: p.phone,
from: TWILIO_FROM,
body: '오늘 의 5분 의 PT routine 의 done?',
}))
);
return new Response('ok');
};
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| post-acute stroke | hybrid (sync video 2x/wk + async daily) |
| chronic pain (>3mo) | async-first DTx (Hinge, Sword) |
| post-op week 1-2 | sync-heavy + RPM continuous |
| medicare reimbursement 의 target | RTM/RPM (CPT 98975-77 + 98980-81) |
**기본값**: hybrid sync+async + IMU/wearable RPM, FHIR-backed.
## 🔗 Graph
- 변형: [[Pose Estimation]]
- 응용: [[Stroke Recovery]]
- Adjacent: [[WebRTC]]
## 🤖 LLM 활용
**언제**: exercise plan generation, session note summarization, patient-facing Q&A (with guardrails).
**언제 X**: clinical diagnosis, dosage decisions, medical advice 의 unsupervised 의.
## ❌ 안티패턴
- **Consumer Zoom 사용**: BAA 없음 — HIPAA violation.
- **PHI 의 client-side log**: console.log 의 patient name — 매 audit fail.
- **Pose model 의 cloud-only**: latency >200ms — 매 form correction 의 useless.
- **Adherence ignore**: 매 70%+ patients drop off by week 3 — nudging 없으면 ROI zero.
## 🧪 검증 / 중복
- Verified (CMS RTM/RPM 2025 final rule, Hinge Health 의 BMJ 2024 RCT, MediaPipe Pose docs).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — telerehab tech stack + FHIR/WebRTC/pose patterns |