f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
143 lines
5.2 KiB
Markdown
143 lines
5.2 KiB
Markdown
---
|
|
id: wiki-2026-0508-occupational-therapy
|
|
title: Occupational Therapy
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [OT, Pediatric OT, Sensory Integration, ADL Therapy]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.85
|
|
verification_status: applied
|
|
tags: [occupational-therapy, sensory-integration, motor-planning, adl, pediatrics, ai-assessment]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack: { language: Python, framework: MediaPipe/scikit-learn }
|
|
---
|
|
|
|
## 한 줄
|
|
일상생활동작(ADL)/직업/놀이 수행을 위한 감각통합·운동계획·인지 능력을 평가-중재하며, 2026 현재 비전·웨어러블 기반 AI 보조 평가가 임상에 도입되고 있다.
|
|
|
|
## 핵심
|
|
- **모델**: PEOP (Person-Environment-Occupation-Performance), MOHO (Model of Human Occupation).
|
|
- **평가 도구**:
|
|
- 소아: SIPT, Sensory Profile-2, BOT-2, Peabody-2, M-FUN.
|
|
- 성인: COPM, FIM/WeeFIM, AMPS, Barthel Index.
|
|
- **중재 영역**:
|
|
- **Sensory Integration (Ayres)** — 그네/볼풀/브러싱.
|
|
- **Motor planning (praxis)** — 장애물 코스, 양측협응.
|
|
- **ADL** — 옷 입기, 식사, 위생, 학교 기능.
|
|
- **Fine motor** — pinch grasp, scissor, 글씨.
|
|
- **AI 보조**: 비전 기반 자세/보행 분석, 웨어러블 IMU로 grasp 패턴, ML로 Sensory Profile 자동 채점.
|
|
- **소아 OT** 강조: developmental milestone 추적, 학교 통합.
|
|
|
|
## 💻 패턴
|
|
|
|
```python
|
|
# 1) MediaPipe Hands로 fine motor (pinch) 평가
|
|
import mediapipe as mp, cv2, numpy as np
|
|
mp_hands = mp.solutions.hands
|
|
def pinch_distance(landmarks):
|
|
thumb = np.array([landmarks[4].x, landmarks[4].y, landmarks[4].z])
|
|
index = np.array([landmarks[8].x, landmarks[8].y, landmarks[8].z])
|
|
return float(np.linalg.norm(thumb - index))
|
|
|
|
with mp_hands.Hands(static_image_mode=False) as hands:
|
|
res = hands.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
|
if res.multi_hand_landmarks:
|
|
d = pinch_distance(res.multi_hand_landmarks[0].landmark)
|
|
```
|
|
|
|
```python
|
|
# 2) MediaPipe Pose 기반 양측협응 (좌우 대칭) 점수
|
|
import numpy as np
|
|
def bilateral_symmetry(pose_landmarks):
|
|
L = np.array([(p.x, p.y) for p in [pose_landmarks[i] for i in (11, 13, 15)]]) # L sh/el/wr
|
|
R = np.array([(p.x, p.y) for p in [pose_landmarks[i] for i in (12, 14, 16)]])
|
|
R_mirror = R * np.array([-1, 1]) + np.array([1, 0])
|
|
return 1.0 - np.linalg.norm(L - R_mirror, axis=1).mean() # 0~1
|
|
```
|
|
|
|
```python
|
|
# 3) Sensory Profile-2 자동 채점
|
|
import pandas as pd
|
|
def sensory_profile_score(answers: pd.Series, scoring_key: pd.DataFrame):
|
|
merged = pd.concat([answers.rename("score"), scoring_key], axis=1)
|
|
quadrants = merged.groupby("quadrant")["score"].sum()
|
|
# 4 quadrants: seeking / avoiding / sensitivity / registration
|
|
return quadrants.to_dict()
|
|
```
|
|
|
|
```python
|
|
# 4) ADL FIM 점수 7단계 → 독립도 카테고리
|
|
def fim_category(fim_total):
|
|
if fim_total >= 108: return "independent"
|
|
if fim_total >= 80: return "modified_independence"
|
|
if fim_total >= 54: return "modified_dependence"
|
|
return "complete_dependence"
|
|
```
|
|
|
|
```python
|
|
# 5) IMU 손목 데이터로 grasp 분류 (간단)
|
|
from sklearn.ensemble import RandomForestClassifier
|
|
def featurize(window): # window: (T, 6) acc+gyro
|
|
import numpy as np
|
|
return np.concatenate([window.mean(0), window.std(0),
|
|
window.max(0), window.min(0)])
|
|
clf = RandomForestClassifier(n_estimators=200).fit(X_train, y_train)
|
|
```
|
|
|
|
```python
|
|
# 6) 발달 마일스톤 체크리스트 → red flag 자동 검출
|
|
MILESTONES = {
|
|
18: ["walks alone", "uses spoon", "stacks 2 blocks"],
|
|
24: ["runs", "kicks ball", "stacks 6 blocks"],
|
|
36: ["pedals tricycle", "draws circle", "dresses with help"],
|
|
}
|
|
def red_flags(age_months, achieved: set):
|
|
bench = [m for cutoff, ms in MILESTONES.items() for m in ms if cutoff <= age_months]
|
|
return [m for m in bench if m not in achieved]
|
|
```
|
|
|
|
```python
|
|
# 7) COPM 점수 변화 (수행/만족) — 임상 유의 변화 ≥ 2점
|
|
def copm_change(pre, post, threshold=2.0):
|
|
delta = post - pre
|
|
return {"delta": float(delta), "clinically_significant": bool(abs(delta) >= threshold)}
|
|
```
|
|
|
|
## 결정 기준
|
|
|
|
| 상황 | 평가/중재 |
|
|
|---|---|
|
|
| 소아 감각통합 의심 | Sensory Profile-2 + Ayres SI |
|
|
| 학령기 글씨/가위 어려움 | BOT-2 + fine motor 중재 |
|
|
| 뇌졸중 성인 ADL | FIM + task-specific training |
|
|
| 자폐 ADL 일반화 | task analysis + visual schedule |
|
|
| 손 부상 재활 | grip/pinch dynamometer + graded ROM |
|
|
|
|
## 🔗 Graph
|
|
- 인접: [[Sensory Integration]]
|
|
- 도구: [[MediaPipe]]
|
|
|
|
## 🤖 LLM 활용
|
|
- 자유 서술 평가 노트 → 표준화 평가 도메인 매핑.
|
|
- 가정 환경 사진 → 환경 modification 제안.
|
|
- 부모/교사 보고서를 SOAP note로 자동 변환.
|
|
|
|
## ❌ 안티패턴
|
|
- 단일 평가 도구로 OT 진단 결정.
|
|
- 비전 AI 결과를 임상가 검증 없이 채택.
|
|
- 감각통합 효과를 비-SI 영역 (학업)으로 과확장.
|
|
- 가정/학교 일반화 없이 클리닉 내 훈련만.
|
|
|
|
## 🧪 검증
|
|
- COPM ≥ 2점 변화 = 임상 유의.
|
|
- 평가 신뢰도: rater ICC > 0.75.
|
|
- 비전/IMU 모델: 임상가 라벨 대비 Cohen κ > 0.7.
|
|
|
|
## 🕓 Changelog
|
|
- 2026-05-08 Phase 1 자동 생성
|
|
- 2026-05-10 Manual cleanup — house style 적용
|