5373723864
임상팀 결정(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>
29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# VesiscanClinicalAndroid
|
|
|
|
VesiScan **병원 임상 측정 앱** (Android · Kotlin · Compose). 정해진 프로토콜로 환자 데이터를
|
|
받아 폰에 저장하고 labdb 로 올리는 사내·병원 임상 전용 앱이다. 일반 사용자 앱이 아니다.
|
|
|
|
- applicationId `com.medithings.vesiscan.demo` · 플레이버 `demo`(임상) / `dev`
|
|
- 빌드 · 설치: `./gradlew :app:assembleDemoDebug` → `adb install -r app/build/outputs/apk/demo/debug/app-demo-debug.apk`
|
|
- 단위시험: `./gradlew :app:testDemoDebugUnitTest`
|
|
- `local.properties` 는 커밋하지 않는다(`local.properties.template` 참조)
|
|
|
|
## 어디서 왔나
|
|
|
|
구저장소 `medithings-rnd/VesiscanBasicAndroid` 의 `demo-final` 브랜치를 **히스토리째**
|
|
(2026-03-09 초기 커밋부터) 떼어 2026-10-01 에 이 저장소의 `main` 으로 옮겼다. 그 브랜치는
|
|
구저장소에 보관만 하고 더 쓰지 않는다. 일반 사용자 앱은 `vesiscan_pre_product/vesiscan_android_user`.
|
|
|
|
## 화면 흐름 (병원 임상)
|
|
|
|
연결 → labdb 등록 확인 → 환자명 · 자세 → **그 자세의** 정렬(치골 위 0~4cm 탐색 → N cm 확인 →
|
|
N cm 에서 바로 좌우) → 마킹·떼기·크래들 → **재부착 확인** → 채움 정도마다 측정 → 다음 자세는 정렬부터 다시. 자세한 것은
|
|
[`docs/CLINICAL_ALGORITHM.md`](docs/CLINICAL_ALGORITHM.md) §3.6, labdb 적재 모양은
|
|
[`docs/LABDB_DATATYPES.md`](docs/LABDB_DATATYPES.md) (600 측정 · 601 정렬).
|
|
|
|
## 데이터
|
|
|
|
폰 `Downloads/VesiScan_Hospital/{날짜}_{환자}/` 에 조합별 CSV + IMU, `align_{자세}/` 에 그 자세의
|
|
정렬 원시·요약(2026-10-01 이전은 `align/`). labdb 업로드 마커(`*.labdb.json`, `align_*/.labdb_align.json`)로
|
|
재시도 대상을 가린다.
|