feat(hospital): 정렬을 자세마다 — 부착 위치·재부착 확인·정렬 폴더·labdb 세션을 자세별로
임상 프로토콜은 자세마다 정렬을 처음부터 다시 한다(2026-10-01 확인): Supine 정렬 →
Supine 0~100% → Sitting 정렬 → Sitting 0~100% …. 앱은 환자당 한 번이었다 — Sitting 에서
다시 정렬하면 같은 `align/` 의 원시 파일이 덮이고 labdb 세션 ID 도 같아 섞였다.
· AppState: 부착 위치·근거·기준 채널·재부착 결과를 자세별 맵(AnchorState)으로. 기존
접근자(anchorCm 등)는 지금 자세의 항목을 읽고 쓴다. 환자·프로브가 바뀌면 전 자세를
비운다(clearAllAnchors).
· 저장: `align/` → `align_{자세}/`. 업로드 대상 탐색은 옛 `align` 과 `align_*` 전부.
labdb 601 세션 이름에 자세 꼬리(`…_align_sitting_HHmm`), 요약에 `posture`.
· 정렬 화면: 자세 칩은 첫 위치를 재고 나면 잠근다(폴더·세션의 조건이다). 바꾸려면
[처음부터 다시 정렬].
· 병원 화면: 환자명 → 자세 → 정렬 카드 순(자세가 정렬보다 위). 카드가 그 자세의 상태를
보인다 — "Sitting 부착 위치 미정렬" / "✓ Sitting 부착 위치 3cm 확정".
시험: 자세별 폴더 대상 탐색 · 세션 이름 자세 꼬리. 전체 190건 · failures 0.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -374,6 +374,10 @@ val anchorCm: Int? get() = bestCm?.let { it + offsetCm } // offsetCm = 1
|
||||
|
||||
### 3.6 실제 진행 순서
|
||||
|
||||
**자세마다 처음부터 다시 합니다**(2026-10-01). Supine 정렬 → Supine 0~100% 측정 → Sitting
|
||||
정렬 → Sitting 0~100% … 부착 위치·재부착 확인·정렬 폴더(`align_{자세}/`)·labdb 세션이
|
||||
전부 자세별입니다.
|
||||
|
||||
```
|
||||
치골 위 0cm 에 붙이고 측정 → 치골 위 1cm 에 붙이고 측정
|
||||
→ 치골 위 2cm 에 붙이고 측정 (판정이 나빠져도 멈추지 않습니다)
|
||||
|
||||
@@ -156,7 +156,7 @@ IMU 는 2026-09-21 이후 업로드분부터 `sensor.imu` 로 들어옵니다(
|
||||
|
||||
| 필드 | 타입 | 설명 |
|
||||
|---|---|---|
|
||||
| `testId` | string | `<날짜_환자폴더>_align_<HHmm>` 기반 (2026-09-29~). 그 전에는 `<환자명>_align` — 날짜가 없어 같은 환자를 다른 날 다시 정렬하면 전부 중복으로 무시됐습니다 |
|
||||
| `testId` | string | `<날짜_환자폴더>_align_<자세>_<HHmm>` 기반 (2026-10-01~ 자세별 정렬; 09-29~30 은 자세 없이). 그 전에는 `<환자명>_align` — 날짜가 없어 같은 환자를 다른 날 다시 정렬하면 전부 중복으로 무시됐습니다 |
|
||||
| `dataType` | string | `"601"` |
|
||||
| `sessionName` | string | `testId` 와 같은 바탕 |
|
||||
| `memo` | string | **간호사가 적은 증상.** 없으면 필드 자체가 없음 |
|
||||
@@ -178,6 +178,7 @@ IMU 는 2026-09-21 이후 업로드분부터 `sensor.imu` 로 들어옵니다(
|
||||
| `lateral_stream_frames` | int | 좌우 정렬 동안 흘린 프레임 전부 (2026-09-30~) |
|
||||
| `reattach_frames` | int | 재부착 확인 측정 cycle 수 (2026-09-30~). 0 = 안 했음 |
|
||||
| `confirm_channels` | bool[4] | 정렬 확인 측정에서 벽이 잡힌 채널 CH0~3 (2026-09-30~). 재부착 확인의 기준 |
|
||||
| `posture` | string | 이 정렬의 자세 `Supine`/`Sitting`/`Standing` (2026-10-01~). 정렬은 자세마다 따로 합니다 |
|
||||
| `reattach` | object | 재부착 확인 판정 `{ok, missing[], detached[], channels[4], ref_channels[4]\|null, bv_ml, at}` — 정렬 뒤 뗐다 붙인 자리에서 정렬 때 잡힌 채널이 빠졌는지 |
|
||||
| `cycles_total` | int | = `recordCount` |
|
||||
| `upload_reason` | string | `"nurse_review"` — 사람이 올린 세션 표시 |
|
||||
|
||||
Reference in New Issue
Block a user