0a93aa1ab3941ffc9e4feba8b7d65acd57f60ba6
2026-10-13 임상(e.yu): supine 에서 CH3 가 끝내 안 잡혀 폴백(nch 최대)으로 자리를 골랐는데, 좌우 단계가 "↑ 머리방향으로 이동 (ch3 미검출)" 만 내서 끝나지 않았다. 좌우 advisor 는 Python `alignment_advice` 와 1:1 로 CH3 없음 → 무조건 MOVE_UP 이다. 폴백 자리는 CH3 가 없는 걸 알고 고른 자리라 그 조건이 모순이다. - AlignmentAdvice.advise(..., requireCh3 = true): false 면 CH3 없이 CH4·CH5 균형만 본다. STOP 문구에 "ch3 없음(폴백 위치)"를 붙여 화면·기록에 남긴다. 기본값은 종전 그대로(Python 1:1). - LateralGuide.requireCh3 — 좌우를 시작할 때 정렬 화면이 전 위치 판정의 select_rule 을 보고 `no_ch3_max_nch` 면 끈다. - 테스트 LateralNoCh3FallbackTest 5건. 기존 LateralAlignParityTest 는 그대로(기본값 경로). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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 §3.6, labdb 적재 모양은
docs/LABDB_DATATYPES.md (600 측정 · 601 정렬).
데이터
폰 Downloads/VesiScan_Hospital/{날짜}_{환자}/ 에 조합별 CSV + IMU, align_{자세}/ 에 그 자세의
정렬 원시·요약(2026-10-01 이전은 align/). labdb 업로드 마커(*.labdb.json, align_*/.labdb_align.json)로
재시도 대상을 가린다.
Description
Languages
Kotlin
97%
Python
3%