🧠 Catcher Treatment Engine — 엔진 매뉴얼 v2

Boston Neuromind · 증상 무관 진단·훈련·진화 엔진의 전체 구조 문서. 코드는 공통, 데이터(rules)만 교체해 증상을 복제한다.

v2 · 2026-07 · 판단 알고리즘 + 근거 + 세션추적 + 복제 자동화 반영
목차   ★ 이번 업데이트 ① 철학② 전체 흐름③ 3층 AI ④ 판단 알고리즘⑤ 심장1·심장2 ⑥ rules 구조⑦ 코드 모듈 ⑧ QEEG 세션추적⑨ 세션추세 ⑩ 진화 루프⑪ 증상 복제⑫ 로드맵

★ 이번 업데이트에서 바뀐 것 읽고 시작

할비 참고: 아래가 이번에 추가·변경된 것. 나중에 혼자 복제·관리할 때 이 요약부터 보면 됨.
항목무엇이어디에
판단 알고리즘 신규각 증상마다 상태공식·축계산·하위유형판별 (rules에 내장)rules.game_module.state_formulas / axis_formulas / profile_matching
논문 근거 신규각 공식에 메타분석 + 효과크기 + 한계각 state_formula의 evidence[]
심장2 v2 신규판단 알고리즘 관리 화면 (3패널 + 근거표시)adhd-super.html 인라인 (AdhdHeartAlgo)
세션 추세 그래프 신규설문 점수가 세션마다 어떻게 변하는지board.html (renderSessionTrend)
QEEG 세션 추적 신규QEEG 스펙트럼 + 진행 그래프, 엑셀 업로드/손입력qeeg-session.html (독립)
dept 마커 자동화 신규복사 시 각 증상 QEEG 마커 자동 표시dept_marker_helper.js
catcher_id 정리 수정8증상 rules가 각자 증상 ID를 가짐 (복사 위생)각 rules.meta.catcher_id
8증상 완비 확장우울·불안·수면·번아웃·PTSD·OCD·양극성·자폐public/adhd-engine/rules/*.json

① 설계 철학

"AI 적용 안 되면 nothing." 진짜 AI = LLM 호출(검색)이 아니라 판단 메커니즘 + 스스로 자기발전하는 루프. 데이터가 쌓일수록 정밀해지는 구조여야 카피 불가 IP가 된다.

핵심 원칙 4가지

원칙의미
엔진 차원ADHD는 첫 콘텐츠일 뿐. 코드는 증상 무관, rules 데이터만 갈아끼워 9+ 증상 복제.
1세대 → 2세대논문 기반 합성으로 지금 작동(부트스트랩) → 실측 쌓이면 표상/정책 학습으로 진화.
측정 = 훈련게임 1판이 훈련이자 측정기(behavioral probe). 묻지 않고 재게 한다.
판단 전시엔진의 내부 추론(상태공식·z지문·교차판별·적응)을 화면에 꺼내면, 같은 데이터가 "판단하는 AI"로 보인다.
정직한 경계선: 표상·정책 학습은 실측 N이 쌓여야 켜진다. N=0이면 못 돈다. 그래서 1세대(논문 합성)로 첫 데이터를 걷고, behavioral probe가 그 데이터를 누적한다.

② 전체 흐름 (사용자 여정)

입력(나이·BPS)설문(진단)QEEG 측정판단 알고리즘(상태·축·하위유형)알고리즘 리포트AI 심층분석뉴로피드백/QEEG 세션추적AI 치료훈련(게임)
이번 추가: "판단 알고리즘" 단계가 명시됨 — 설문·QEEG·게임 측정을 각 증상의 상태공식으로 계산해 5축 상태 + Bio/Psycho/Social + 하위유형을 산출. 이 판단이 심장2에서 관리·전시됨.

③ 3층 AI 구조 (경쟁력의 심장)

층위AI 능력현재 상태
L1 교차판별설문+QEEG+행동을 융합해 사람이 못 잇는 판별1세대 가동 (norm 기반)
L2 적응처방반응 결과로 난이도·게임 순서 학습1세대 가동 (곡선 기반)
L3 해석생성엔진 근거를 LLM에 주입해 개인 해석 문장API 대기
판단 알고리즘(④)이 L1의 입력을 만든다: 상태공식으로 5축 상태를 계산 → 그 상태들이 교차판별·하위유형 판별의 재료. 즉 상태공식 = L1의 앞단.

④ 판단 알고리즘 신규 핵심

이게 이번의 심장. 각 증상마다 "측정값 → 판단"을 하는 실제 공식. 증상별로 다르고, 각 공식이 논문 근거를 달고 있다.

3층 구조

역할rules 위치
🧮 state_formulas측정 지표로 5개 상태를 계산 (증상별 5축)game_module.state_formulas
🧭 axis_formulas상태들을 묶어 Bio/Psycho/Social 3축 산출game_module.axis_formulas
🎯 profile_matching측정 프로파일이 어느 하위유형과 닮았는지 (강/중/약)game_module.profile_matching

상태공식(state_formula) 구조 — 예: 우울 무쾌감

{
  "id": "anhedonia",
  "name": "무쾌감 (anhedonia)",
  "formula": {
    "base": 100,
    "terms": [
      {"feature":"detection", "op":"add", "multiplier":0.6},
      {"feature":"frontal_alpha_asymmetry", "op":"add", "multiplier":40}
    ]
  },
  "evidence": [                       ← ★ 논문 근거 (이번 신규)
    {"indicator":"detection (보상/긍정 탐지)",
     "direction":"저하 → 무쾌감↑",
     "meta":"Halahakoon 2020 (JAMA Psychiatry 메타); Pizzagalli 2014",
     "effect":"복측선조체 보상반응 둔화 일관 (fMRI 메타)",
     "limit":"행동 탐지과제로 직접 측정한 표준 효과크기는 제한적"}
  ],
  "coefficient_status": "방향·관여는 논문 근거. 정밀 계수는 Genius 검수·실측 조정."
}

공식 문법 (terms의 op)

op의미
add지표값 × multiplier 를 더함
subtract지표값 × multiplier 를 뺌 (offset으로 기준점 조정)
add_inverted역방향 (높을수록 낮은 상태)
conditional_addif_greater_than / if_less_than 조건 충족 시 value 더함
★ 계수 원칙 (할비 검수 대상): 논문은 "이 지표가 이 방향으로 관여한다"까지 준다. 정밀 계수 숫자(0.6, 40)는 논문이 안 준다 — 그건 임상 검수·실측 조정. 그래서 각 공식에 coefficient_status로 명시. 발표 때 "방향은 논문, 계수는 검수 예정"이라 방어 가능.

근거(evidence) 3요소 — 각 지표↔상태 연결마다

필드내용
meta메타분석/체계적 리뷰 (개수보다 질 — 메타 우선)
effect효과크기 (Hedges g, Cohen d, r 등)
limit한계·논란 (정직하게 — 효과크기 작음, 대리지표 등)
왜 이렇게? "논문 하나"로는 임상 방어 불가. 각 지표↔상태 연결마다 메타분석급 근거 + 효과크기 + 한계를 달아야, 할비가 "이 계수 왜?"에 답할 수 있다. 8증상 × 5상태 = 40개 상태공식 전부 이 기준.

8증상 하위유형 (profile_matching)

증상하위유형 3개
우울멜랑콜리형 · 비정형 · 인지형
불안범불안형 · 신체형 · 회피형
수면입면곤란형 · 수면유지형 · 일주기형
번아웃소진우세형 · 냉소이탈형 · 인지피로형
PTSD침습우세형 · 회피마비형 · 해리형
OCD확인형 · 오염형 · 억제결손형
양극성조증우세형 · 우울우세형 · 급속순환형
자폐사회의사소통형 · 감각우세형 · 실행기능형

⑤ 심장1 · 심장2 (슈퍼 관리) 신규

public/adhd-super.html (슈퍼 게이트 bnm123#)
슈퍼 대시보드에 두 개의 "심장" — 9증상을 풀다운으로 중앙 관리.

심장1 — 게임 엔진 관리

각 증상의 게임 모듈 관리: axes·games·axis_game_map·norms·qeeg_norms 등. 증상 선택하면 그 증상의 게임 구성이 보임. window.AdhdHeartGame (adhd-super.html 인라인).

심장2 — 판단 알고리즘 관리 v2 이번 개편

이번에 v2로 개편. 판단 알고리즘(④)을 화면에 전시. window.AdhdHeartAlgo (adhd-super.html 인라인, L592~717).

심장2가 보여주는 패널

패널내용
🧮 상태 계산 공식5개 상태공식 + 📚메타 + 📊효과크기 + ⚠한계 + 🔬계수상태
🧭 축 계산Bio/Psycho/Social 산출 공식
🎯 하위유형 판별3개 하위유형 + 근거 + 판별 조건
(기존)행동 norm · QEEG norm · 교차판별 · 적응규칙
사용법: 슈퍼 로그인 → 📊 알고리즘 엔진 카드 → 증상 풀다운 선택 → 그 증상의 판단 로직 + 근거 전부 표시. 관리·검수용.
인터페이스 규약: 심장2는 window.AdhdHeartAlgo={render} 형태. 배선은 openSection('algo')에서 AdhdHeartAlgo.render() 호출. 교체 시 이 인터페이스 유지하면 배선 안 건드려도 됨.

⑥ rules 구조 (game_module) 확장

모든 임상 콘텐츠는 <증상>_rules.jsongame_module에 있다. 증상 복제 = 이 파일만 교체.
public/adhd-engine/rules/{adhd,depression,anxiety,sleep,burnout,ptsd,ocd,bipolar,autism}_rules.json

game_module 섹션 (★ = 이번 추가)

섹션내용복제 시
axes5 조절축 (색·근거·정의)증상별 재정의
surveys6 설문 (3층 × 2연령)증상 문헌으로 교체
games7 게임 = 5엔진 + 파라미터파라미터만 조정
norms지표별 문헌 norm + 블렌딩증상 문헌 norm
qeeg_normsQEEG 마커 (대표 마커 포함)증상별 마커
adaptation반응곡선 + 적응 규칙증상별 곡선
state_formulas 5축 상태 계산 공식 + 근거증상별 공식·근거
axis_formulas Bio/Psycho/Social 산출증상별 조합
profile_matching 하위유형 판별증상별 하위유형
_algo_meta 근거 정책 메타 정보공통

5개 범용 게임 엔진

엔진측정 지표
react_inhibit억제율·오반응 (commission/inhibition)
detect_target탐지·RT변동·누락 (detection/rtVariability)
match_memory작업기억 정확도 (matchAccuracy)
choice_conflict갈등 간섭 (conflictEffect)
pace_regulate호흡·자율 (autonomic)
상태공식이 쓰는 지표 = 게임 엔진의 측정값. 예: 우울 무쾌감은 detection(탐지) + frontal_alpha_asymmetry(QEEG). 즉 게임 측정 → 상태공식 → 판단. 지표 이름이 연결고리.

⑦ 코드 모듈 (전부 증상 무관 공통)

모듈window역할
engines_v3.jsAdhdGames5 범용 엔진 + 디스패처
matcher.jsAdhdMatcher3레이어 → 축·강도·게임화
cross_engine.jsAdhdCrossL1: z지문·교차판별·블렌딩
adapt_engine.jsAdhdAdaptL2: 궤적분석·적응처방
dept_marker_helper.js getDeptQeegMarkerrules에서 각 증상 QEEG 마커 자동 추출 (복제용)
public/adhd-training/shared/*.js

⑧ QEEG 세션 추적 신규

public/qeeg-session.html (독립 페이지)
뉴로피드백 훈련 자체는 뺀, QEEG 기반 세션 추적기. Linda Thomson 모듈 데이터를 세션별로 올리거나 손입력 → 그래프. 다른 것과 연계 없는 독립 모듈.

담은 것

기능설명
화면 통일일반/임상가 같은 화면. 임상가는 대상(환자) 여러 명 관리, 개인은 자기 것만
엑셀 업로드.xlsx 자동 파싱 (1Hz bin + 3비율: Monastra/DT-SMR/BB-SMR)
손입력세 비율 직접 입력
그래프① 세션 스펙트럼2~30Hz 1Hz bin, 대역별 색(Delta~Hi Beta), EO/EC 토글
그래프② 세션 진행 변화비율이 세션마다 어떻게 변하는지 추세선
ProComp Infiniti 파일: 할비가 주로 쓰는 Thought Technology 기계. BioGraph Infiniti는 텍스트/CSV export 지원하나, 열 구조가 채널셋마다 달라 실제 export 샘플이 오면 파서를 정밀화. 지금은 유연 파싱으로 준비됨.
제외 (할비 확정): HRV·Temp·GSR 추가탭은 제외. QEEG 세션 그래프만.

QEEG 규준 (qeeg_norms) — 판단 축 보정용 신규

rules depression_rules.json → game_module.qeeg_norms
이 증상(우울)의 QEEG 바이오마커 규준. 설문(진단)을 보강하는 보조 축. qeeg_evidence가 이 primary(★) 마커를 참조해 해석·근거를 가져옴. ★=대표 마커.
마커부위정상 mean±sd우울 mean±sd해석
전두 알파 비대칭 frontal_alpha_asymmetryF3-F40 ± 0.15-0.12 ± 0.2좌측 전두 저활성(좌<우) = 우울 대표 QEEG 지표. 접근동기·긍정정서 저하 반영. 단 효과크기 작아 보조 지표(단독 진단 불가).
베타 파워 beta_powerfrontal1 ± 0.31.25 ± 0.4전두 베타 증가 = 우울에서 메타분석적으로 확인된 지표(과각성·반추 연관).
델타·세타 서파 slow_wavefrontal1 ± 0.251.2 ± 0.35저주파(델타·세타) 파워 증가 경향 — 우울 반정량적 근거.
_meta.basis: 우울 resting-state EEG 메타분석 (medRxiv 2025 52연구; npj 2025 FAA 메타; Newson&Thiagarajan 2019). 값=문헌 근사, Genius 검수 필요.
★ Genius 검수 필요: 값=문헌 근사(healthy/condition mean·sd). 실제 임상 규준은 할비 BCN 확정 대상. n_real 누적 시 real_sum/real_sumsq로 실측 블렌딩.

QEEG 규준 채우기 가이드 (Normative Database)

1. 개요

엔진은 측정된 QEEG 값을 각 증상의 정상 규준(healthy_mean·sd)과 비교해 z-score를 계산하고, 그 편차로 증상 관련성을 판단합니다. 즉 규준 수치가 정확할수록 판단이 정확합니다. QEEG는 단독 진단이 아니라 설문·임상과 합쳐 쓰는 보조 신호입니다(대역 패턴은 장애 간 중첩이 큼).

2. 현재 상태 (draft 들어가 있음)

qeeg_norms.metrics에는 각 증상 대표 마커·방향·draft 값이 논문 기반으로 이미 배선되어 보고서에 표시됩니다. 아래 값들은 방향은 논문 확정, 정밀 수치는 규준 DB로 정밀화 대상(draft)입니다.

3. 증상별 대표 마커 (논문 확정)

증상마커방향부위근거
우울전두 알파 비대칭(FAA)+베타좌측 알파↑/베타↑F3-F4우울 resting EEG 메타분석 2025
불안고베타·전두 델타베타↑전두Newson & Thiagarajan 2019
수면고주파 베타베타↑(과각성)전영역만성불면 주간 과각성 qEEG
PTSD피질 연결성델타/세타/저베타 연결성↓전두중심PTSD resting EEG 네트워크
강박전두 세타세타↑(강박 상관)Fz/F3/F4Newson 2019
양극성저주파(상태 의존)기분삽화 의존 ⚠Newson 2019(약함)
자폐연결성·감마대역파워 차 미미 ⚠연결성Newson 2019

4. 규준 수치(mean·sd) 채우는 법

  1. 규준 DB 사용: NeuroGuide(Thatcher), HBImed 등 정규 규준 데이터베이스에서 해당 마커·부위·연령대의 healthy mean·sd를 가져옴.
  2. 논문 사용: 각 마커의 mean±SD를 보고한 검증 논문에서 인용 (조작 방지 — 실제 보고값만).
  3. EC/EO 구분: 눈감음(EC)·눈뜸(EO)은 규준이 다름 — 마커별 조건 명시.
  4. connectivity 마커(PTSD/autism)는 파워가 아닌 coherence/연결성 지표라 별도 규준 필요.

5. 필드 설명

6. z-score 해석

z = (측정값 − healthy_mean) / healthy_sd. |z|>2는 통계적 이탈이나, QEEG 단독 판정이 아니라 설문·임상과 종합해야 함.

7. 참고 문헌

원칙: 방향·마커·근거는 논문으로 확정(위 표). 정밀 mean·sd는 규준 DB + 임상 보정으로 채움 — 추측 수치 금지(조작 방지).

⑨ board 세션 추세 그래프 신규

public/board.html (임상가 환자관리 화면)
환자관리(board)에서 설문 점수가 세션마다 어떻게 변하는지 그래프. 임상가가 환자 대신 입력, 이메일이 환자 식별 키.

동작

임상가 로그인 → 환자 리스트에서 선택 → 세션 진행에 따른 변화 그래프 (총점·주의력·과활동 추세선)
요소확정값
데이터원listAssessments(clientId) — 전체 세션 반환
X축session_date
Y축total_score / inattention_score / hyperactivity_score (0~1 → ×100 %)
함수window.renderSessionTrend(rows)
★ 세션 자유 추가: 세션 수 고정 로직 없음. 있는 세션 전부 그림. 새 세션 저장 → loadAssess 재호출 → 그래프 자동으로 점 추가. 미리 10세션 잡아도 15세션 되면 15개 다 그려짐.
QEEG θ/β 추세 (다음): 지금은 설문 추세만. QEEG 마커 추세(qeeg_data.derived.<marker>)는 실제 저장 레코드 1건 구조 확인 후 붙임. 이때 getDeptQeegMarker로 각 증상 마커를 자동으로 읽게 함.

⑩ 진화 루프 (1세대 → 2세대)

1세대 (현재)
논문 기반 합성 norm으로 상태공식·z지문·교차판별·적응이 지금 작동. 데이터 0에서 부트스트랩.
2세대 (진화 후)
실측 N 쌓이면 norm 자동 블렌딩. 표상학습·정책학습으로 격상. 계수도 실측으로 재보정(지금은 논문 방향 + 검수 계수).

블렌딩 공식

w_real = n_real / (n_real + K)   # K=50
blended = 문헌 × (1 - w) + 실측 × w   # 캡 95%

n=0   → 문헌 100%  (1세대)
n=500 → 실측 91%   (2세대)

⑪ 증상 복제 절차 상세 갱신

원칙: 코드는 공유, rules만 각 증상으로. AI 분석 기준 룰(rules)을 바꾸는 게 정답 — 코드는 안 건드림.

복사 시 바뀌는 것 = rules만

각 증상 사이트에 그 증상 rules 파일만 넣으면 됨. rules 안에 모든 증상-고유 규칙이 있어 자동으로 바뀜:
✅ 상태공식 · ✅ 하위유형 · ✅ QEEG 마커 · ✅ 논문 근거 · ✅ 설문 · ✅ catcher_id

복사해도 그대로 = 코드 공유

심장1/2, board 세션추세, QEEG 세션추적, dept 마커 헬퍼 — 전부 rules만 읽어 각 증상에 맞게 동작. 코드 안 바꿈.

각 증상 대표 QEEG 마커 (자동 추출)

증상대표 마커측정 위치
우울frontal_alpha_asymmetryF3-F4
불안beta_powerfrontal
수면delta_beta_ratiocentral
번아웃frontal_alpha_asymmetryF3-F4
PTSDfrontal_alpha_asymmetryF3-F4
OCDfrontal_theta (error/ERN)Fz
양극성frontal_thetaFz
자폐frontal_theta (EF)Fz

복제 절차 (사이트당)

1
ADHD 사이트 전체 복사 (코드 그대로)
2
public/adhd-engine/rules/에 그 증상 rules 넣기 (예: depression_rules.json)
3
심장1/2 CONDITIONS에서 그 증상 ready:true + rules 경로 (이미 9증상 등록됨)
4
adhd-config.js의 dept/symptom을 그 증상으로
5
도메인·브랜드 색만 사이트별로
Genius 저작 필수 (코드 아님, 데이터가 IP): 설문 문항·축 정의·상태공식 계수·norm 수치·근거는 임상 저작. 특히 상태공식의 정밀 계수는 검수 대상 (논문은 방향까지, 계수는 할비).

⑫ 로드맵

완료 (이번 세션 포함)

✅ 5엔진·게임✅ 3층 설문✅ L1 교차판별✅ L2 적응처방 ✅ 8증상 판단 알고리즘✅ 논문 근거+효과크기✅ 심장2 v2 ✅ board 세션추세✅ QEEG 세션추적✅ dept 마커 자동화✅ catcher_id 정리

대기

⏳ QEEG θ/β 추세 그래프 ⏳ ProComp Infiniti 파서 (샘플 대기) ⏳ 상태공식 계수 임상 검수 (할비, 몰아서) ⏳ L3 LLM 해석(API) ⏳ 8사이트 복제 실행 ⏳ NF 적응 엔진
Boston Neuromind · Catcher Treatment Engine 매뉴얼 v2 · 코드=공통 / rules=증상별 · 슈퍼 관리 참조용 · 2026-07