dw.jang d1fd314e05 feat(align): 위치 칩(0~4cm)으로 한 자리만 다시 재기 — 미부착 신호가 뜨면 그 자리에 머문다
임상(2026-10-01): 0~2cm 재고 3cm 에서 미부착 신호가 떠서 0cm 부터 2~3번 다시 쟀다. 한 자리만
다시 잴 길이 없었다. 병원 화면의 채움 정도 칩처럼 정렬도 위치마다 따로 (다시) 잰다.

  · 정렬 화면에 0~4cm 위치 칩. 잰 자리 회색 ✓(재측정이면 ×n), 미부착 신호가 뜬 자리 빨강 ⚠,
    판정된 best 초록 테두리, 지금 잴 자리 파랑. 아무 칩이나 눌러 그 자리로 간다.
  · 측정에 미부착 신호(탈착 감시)가 뜨면 자동으로 다음 위치로 넘어가지 않고
    "치골 위 N cm 다시 측정 — 미부착 신호" 를 띄운다(확정보다 우선). 버튼은 "N cm 다시
    측정하기 (2회째)".
  · 재측정 파일은 덮어쓰지 않고 `align_{n}cm_r2.csv`(+IMU) 로 따로 남긴다 — labdb 가 같은
    rowIndex 를 중복으로 무시해 옛 데이터만 남는 일을 막고, 앞 측정도 분석 대상이다.
    판정은 AnchorGuide 가 같은 cm 을 덮어 마지막 것을 쓴다.
  · 탐색 완료 기준을 "최대 cm 까지 올렸나"에서 "0~4cm 에 빈 자리가 없나"로. 확인 측정은
    재기 전 상태로 판정된 best 자리를 잴 때만. 확정 뒤 다른 자리를 다시 재면 확정을 푼다.
  · 601: 레코드 `attempt`(1 = 첫), 위치 수는 서로 다른 cm 만. 요약에 `attempts`·
    `detached_positions`. 미업로드 대상 판정(첫 파일 기준)은 그대로.

시험: 미부착 지시문 · attempt 파일 이름/파싱 · 위치 수 — 전체 195건 · failures 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-01 17:14:50 +09:00

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)로 재시도 대상을 가린다.

S
Description
No description provided
Readme 20 MiB
Languages
Kotlin 97.1%
Python 2.9%