feat(align): 부착 오프셋 0 — best 자리에서 바로 좌우 밸런스 (이번 임상부터 모든 자세에서 정렬)

임상팀 결정(2026-10-01, e.yu · kai.han): 모든 자세에서 정렬을 하므로 "best + 1cm 올리고
거기서 좌우" 단계를 빼고, 확인 측정한 best 자리에서 바로 좌우를 맞추고 그대로 붙인다.

  · AnchorConfig.FINAL_OFFSET_CM = 1 → 0. anchor_cm = best_cm. 2026-10-01 이전 세션
    (final_offset_cm: 1)과 대조할 때는 Python select_supine_anchor(offset_cm=0).
  · 지시문: 확인 측정 뒤 "치골 위 N cm 그대로 — 좌우 맞추기 / 옮기지 말고". 오프셋이
    0 이 아닐 때의 "N+offset cm 에 붙이세요" 는 남겨 둔다(상수만 되돌리면 그대로 동작).
  · AnchorGuide STOP 문구도 "이 자리(N cm)에 그대로 부착합니다".
  · 재부착 확인의 기준(좌우 확인 창)은 이제 확인 측정과 같은 높이 — "떼기 직전" 이라 그대로 둔다.

시험 AlignInstructionTest 오프셋 0 문구 1건 추가 — 전체 192건 · failures 0.
문서: CLINICAL_ALGORITHM §3.5/3.6/상수표, LABDB_DATATYPES final_offset_cm/anchor_cm, README.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-01 09:53:09 +09:00
parent 346f647857
commit 5373723864
6 changed files with 53 additions and 20 deletions
+10 -5
View File
@@ -359,12 +359,17 @@ eligible = ch3Mean && ch3Rate >= 0.80
입력은 **`cap_frac` 이 유한한 위치만**입니다 (`selectableRecords()`).
### 3.5 부착 위치 = 최적 + 1cm, 그 자리는 재지 않습니다
### 3.5 부착 위치 = 최적 (오프셋 0 · 2026-10-01~)
```kotlin
val anchorCm: Int? get() = bestCm?.let { it + offsetCm } // offsetCm = 1
val anchorCm: Int? get() = bestCm?.let { it + offsetCm } // offsetCm = 0 (2026-10-01 전에는 1)
```
**2026-10-01 부터 오프셋이 0 입니다.** 이번 임상부터 모든 자세에서 정렬을 하기로 하면서
(e.yu · kai.han) "best + 1cm 올리고 거기서 좌우" 단계를 빼고, **best 자리(확인 측정한
그 자리)에서 바로 좌우 밸런스**를 맞추고 그대로 붙입니다. 아래는 오프셋이 1 이던 때의 설명이며
그때 세션(`final_offset_cm: 1`)을 읽을 때만 해당합니다.
**단순 덧셈**입니다. 측정된 위치로 스냅하지 않습니다 — Python 의
`select_supine_anchor(offset_cm=)` 이 그 스냅을 하지만 그건 **회고 분석 전용**이고,
실시간 안내로는 틀립니다(실측 `p2_7 v2`: best=1 → 4cm 로 튐).
@@ -387,9 +392,9 @@ val anchorCm: Int? get() = bestCm?.let { it + offsetCm } // offsetCm = 1
↓
치골 위 N cm 에 다시 붙이고 측정 (확인 측정 = 확정 신호 · 이미 그 자리면 "에서 한 번 더 측정")
↓
치골 위 N+1 cm 에 붙이세요 (초록 · 여기서는 측정하지 않음)
치골 위 N cm 그대로 — 좌우 맞추기 (초록 · 오프셋 0, 2026-10-01~)
↓
좌우 정렬 (치골 위 N+1 cm 그대로) ← 흐름 전체 + 확인 완료 순간의 창을 저장
좌우 정렬 (치골 위 N cm 그대로) ← 흐름 전체 + 확인 완료 순간의 창을 저장
↓
(위치 마킹 → 프로브 떼기 → 크래들로 다시 붙이기)
↓
@@ -618,7 +623,7 @@ Stage 5 소수점 보정
| dps / delay (R계열) | **1.897** mm / **7.651** mm |
| CH3 검출률 임계 | **0.80** |
| nch 붕괴 문턱 | **1.0** |
| 탐색 상한 / 오프셋 | **4** cm / **+1** cm |
| 탐색 상한 / 오프셋 | **4** cm / **0** cm (2026-10-01~, 그 전 +1) |
| 정렬 cycle / 슬라이딩 창 | **20** / **10** (→ 11 trace) |
| 좌우 허용 \|Δu\| / 누적 프레임 | **8** 샘플 / **10** |
| 연속 측정 창 / 최소 표시 | **10** / **5** |