---
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
- 부모: [[Rehabilitation]], [[Clinical Practice]]
- 인접: [[Physical Therapy]], [[Speech Therapy]], [[Sensory Integration]], [[Pediatrics]]
- 도구: [[MediaPipe]], [[OpenPose]], [[IMU Wearables]]

## 🤖 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 적용
