Files
VesiscanClinicalAndroid/USER_GUIDE.md
T
dw.jang 4252464ef6 docs: v6 전체 업데이트 (1.0.0-design, VBTFW0116 짝, 2026-05-26 기준)
a1042b8(v5) 이후 13개 커밋을 반영해 세 문서 일괄 갱신.

USER_GUIDE.md:
- 헤더: VBTAND0101 → 1.0.0-design (versionCode 24), 권장 펌웨어 VBTFW0116
- PIN DEMO 자동통과 안내 (배포 전 정리 필요)
- Personalization 평행 2-카드 (Maximum Bladder Capacity + Catheter Threshold)
- Sensor Alignment 리디자인 (38sp 큰 타이틀, pubic bone 빨강, 3-stop gradient, Canvas 화살표/아치 제거)
- Measurement Screen top bar에 Home 아이콘 + Voiding/ 텍스트 + 48sp Recorded Dialog
- Auto Scan 600ms로 단축 + 측정 사이클 ~330ms 실측 안내
- 설정 패널 폰/태블릿 자동 폰트 분기 (fontScale 표 추가)
- Dev Mode 추가 기능 (DeviceScan 측정 직진입 버튼, Status 더미 주입)
- Navigation에 placementFromMonitoring 라우팅 분기 설명 + startFromHome fix

VesiScan_Android_Pipeline_Summary.md:
- v6 주요 변경 요약 (헤더에 한눈 보기)
- §5.1 BLE 통신: Connection Parameter 협상 (MTU 247, CONN_PRIORITY HIGH), maa throttle
  state-based gate, 측정 사이클 실측 표
- 측정 흐름: Auto/Single Scan 600ms 동기화 + Voiding 시 자동 stop
- 연속 스캔 동작: Placement loop 1000 → 600ms + v6 화면 디자인 변경 박스
- §14 BLE 명령어 포맷: VBTFW0116 신규 사항 (pending slot 1→8, 안드로이드 짝꿍 변경)
- §22 향후 과제: v6 완료 항목 12개 추가

docs/ALGORITHM_COMPARISON.md:
- Placement loop 1s → 600ms, canSendMaa 게이트 단계 명시
- v6 BLE 사이클 실측 (330ms 평균)
- Measurement Modes: 800 → 600ms, Voiding 자동 stop
- 신규 섹션: BLE maa Throttle — State-Based Gate (배경/구현/효과/logcat 키워드)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 17:36:52 +09:00

14 KiB
Raw Blame History

VesiScan-Basic User Guide

App Version: 1.0.0-design (versionCode 24)

Last Updated: 2026-05-26


1. Getting Started

First Launch

  1. Install the app and open it
  2. Complete the onboarding screens
  3. Register your information (name, age, height, weight)
  4. Set a 4-digit PIN — 현재 빌드는 PIN 데모 자동통과: PinView 진입 시 즉시 verified 처리 (시연용)
  5. You will arrive at the Home screen

⚠️ DEMO 빌드 표시: 현재 빌드는 PIN 잠금이 우회됩니다 (PinView.kt:23-29). 원본 UI는 if (false) { ... } 안에 보존되어 있어 배포 시 1줄 제거로 복구 가능. 배포 전 정리 체크리스트 참조.

Home Screen

  • 큰 Bladdy 캐릭터 (3× 확대, 최대 660dp, 작은 화면에선 90% 캡)
  • Tap Start to begin
  • The app version is displayed below "Smart Bladder Monitoring"
  • To enable Developer Mode: tap the Bladdy character 3 times quickly (within 1.5 seconds)

2. Connecting the Device

  1. Tap Start on the Home screen
  2. The app will scan for nearby VesiScan devices (sorted alphabetically)
  3. When your device appears in the list, tap it to connect
  4. Complete the Bluetooth pairing when the system dialog appears
    • A "Pairing Required" dialog will guide you through the process
    • Tap Pair on the system Bluetooth dialog — canceling will block the connection
    • The app waits up to 30 seconds for pairing to complete
  5. Once paired, you will move to the Personalization screen

Personalization (전면 리디자인 — 평행 2-카드)

상하 정렬된 두 카드로 구성:

Card 1: Maximum Bladder Capacity

  • 큰 숫자 표시 (예: 500 64sp ExtraBold + mL 24sp)
  • 56dp 원형 솔리드 StepperButton −/+ 좌우 배치
  • 슬라이더 (200~800 mL, 50 단위, roundToInt() 절삭 fix 적용)
  • 카드 헤더 34sp ExtraBold

Card 2: Catheter Threshold

  • 3분할 텍스트: Level 24sp + 7 64sp + /10 24sp (Card 1과 픽셀 매칭)
  • 56dp StepperButton −/+
  • 슬라이더 Level 1~10 (roundToInt 적용)
  • 카드 헤더 34sp ExtraBold

두 카드는 64dp 간격으로 수직 중앙 정렬. Bladdy 히어로는 상단에 동적 사이징.

Tap Continue to proceed to Sensor Alignment.


3. Sensor Alignment (Placement)

This step ensures the sensor is positioned correctly over your bladder for accurate measurement.

화면 디자인 (리디자인 적용)

  • 큰 타이틀 "Sensor Alignment" 38sp ExtraBold 검정 (Maximum Bladder Capacity 톤 통일)
  • 3-stop vertical gradient 배경 (MlTeal 14% / 흰 / MlPrimary 10%) — GREEN 진입 시 단색 톤으로 덮임
  • Hint 텍스트에서 "pubic bone" 인라인 빨강 ExtraBold 강조
  • Canvas 방향 화살표 제거 — hint 텍스트만으로 방향 안내 (이전 4종 화살표 + 치골 아치 라인+halo+endpoint 모두 제거)
  • 토르소 실루엣 상단 16% UP shift (chestY 0.06 → 0.09)

Before Starting

  • Place VesiScan above the pubic bone
  • Apply ultrasound gel between the sensor and your skin
  • Tap the Start Alignment button (large orange button)

Step 1/3: Vertical Alignment

The app will begin scanning and provide direction:

  • "Slide up ↑" — slide the device upward toward your navel
  • "Slide down ↓" — slide the device downward toward your pubic bone
  • "Slide up slightly ↑" / "Slide down slightly ↓" — make small adjustments
  • Move the sensor slowly, 1-2mm at a time
  • When the vertical position is correct, the app will show Step 2/3

The hint text will show animated dots (e.g., "Slide up ↑.", "Slide up ↑..", "Slide up ↑...") to indicate the system is actively scanning.

Step 2/3: Lateral Alignment

  1. The app will first show "Checking..." for a few seconds
  2. Then it will guide you:
    • "Slide left ←" — slide the device to the left
    • "Slide right →" — slide the device to the right
  3. Adjust until both lateral sensors (CH4 and CH5) detect the bladder equally
  4. When balanced, the app will show Step 3/3

Step 3/3: Final Check (Green Zone)

  1. The app checks overall alignment quality (CV + LR deviation)
  2. If everything is optimal, the hint will show "In position!"
  3. The screen background turns green and holds this state for 7 seconds to confirm stability
  4. The Start Scanning button (green) becomes active
  5. Tap Start Scanning to proceed to the measurement screen

If Alignment is Lost

  • If the sensor shifts significantly after reaching "In position!":
    • The app allows up to 3 consecutive failures before exiting GREEN
    • After 3 failures: "Position lost. Restart above pubic bone."
    • The scanning will stop automatically
    • Re-place the sensor and tap Start Alignment again

If the Sensor is Detached

  • If the sensor loses contact with skin:
    • The app will show "Sensor detached. Restart above pubic bone."
    • Re-attach the sensor with gel and tap Start Alignment

Tips

  • Use plenty of ultrasound gel — dry contact causes poor readings
  • Keep the sensor flat against the skin — tilting reduces accuracy
  • Move slowly — fast movements cause unstable readings
  • You can tap Skip to go directly to measurement without alignment

4. Measurement Screen

After alignment, you will see the main measurement screen with a donut chart.

Screen Layout

  [Home] [Placement]  [Battery]  [Catheters]  [Settings]    ← Home 아이콘 추가됨
  
            Enjoy your day!
            
         ┌─────────────────┐
         │    Donut Chart   │   ← 너비 × 0.85 적응형 (이전 0.75 + 360dp cap 제거)
         │                  │
         │     [Bladdy]     │   ← 0.483 비율 (이전 0.55에서 -15% 후 +15%)
         │    325 mL        │   ← 72sp ExtraBold (이전 24sp의 3배), letterSpacing -1
         └─────────────────┘
         
   Current Measurement    |     65%
        280 mL            |   325/500 mL
        
   [Voiding/             [Auto Scan] [Single Scan]
    Catheterization]

Top Bar

  • Home 아이콘 (좌측 추가) — appState.goHome() 호출, 즉시 홈으로
  • Placement 아이콘 (Home 옆) — enterPlacementFromMonitoring() 호출 → Back 시 Monitoring으로 복귀
  • 배터리 / 카테터 카운트 / Settings 톱니바퀴는 기존과 동일

Understanding the Display

Element Description
Donut Chart Fills based on max measured volume / max volume setting
Center Value Maximum measured volume this session (updates every 5 seconds)
Current Measurement Latest trimmed mean value (Auto) or last Spot result
Fill Card Top: fill percentage, Bottom: max measured / bladder max volume
Battery Icon Device battery level with visual indicator
Catheter Count Remaining catheters (tap to add more)

5. Auto Scan

  1. Tap the Auto Scan button (orange)
  2. The device will measure continuously (minimum 600ms interval, 이전 1500ms에서 단축)
  3. For the first 5 measurements, the display will show "—" (collecting data)
  4. After 5+ measurements, the trimmed mean value will be displayed (10-sample window, top/bottom excluded)
  5. The donut chart will update every 5 seconds
  6. Tap Stop Scan (red) to end Auto measurement

속도 향상 배경 (2026-05-26): FW VBTFW0116 + MTU 247 + CONNECTION_PRIORITY_HIGH 조합으로 한 측정 사이클이 ~330ms로 단축. 이전(~1.2초) 대비 4배 향상. 자세한 내용은 Pipeline Summary §5.1 참조.

Auto Measurement Failure

  • If 2+ channels fail 5 times in a row (sensor shifted or lost contact):
    • A dialog will appear: "Position lost. Restart from alignment"
    • Tap Realign to re-align the sensor
    • Or tap Dismiss to stay on the measurement screen

6. Single Scan (Spot)

  1. Tap the Single Scan button
  2. The device will take 5 consecutive measurements (~4 seconds total, max 8 attempts)
  3. A spinner will show during measurement
  4. The result (trimmed mean of 5 readings) will be displayed immediately
  5. The donut chart and Current Measurement card will update

During Single Scan, the Auto Scan and Void buttons are disabled.


7. Voiding / Catheterization (텍스트 변경)

  1. Tap the Voiding / Catheterization button (이전 "Void/Catheterization" → "Voiding/" 로 첫 줄 갱신)
  2. The current measurement is recorded to the voiding diary
  3. 자동: Auto Scan 진행 중이면 stop + 측정 상태 정규화 (displayMaxVolumeMl/window/timer 모두 0)
  4. The catheter count decreases by 1
  5. The bladder level resets to 0
  6. 큰 "Recorded" 다이얼로그 (48sp ExtraBold 흰색, MlPrimary 0.95 alpha 배경, 1.5초 자동 닫힘) — 이전 Toast 대체

Managing Catheters

  • The catheter count is shown at the top of the screen (hospital icon + number)
  • Tap the catheter count to add more catheters
  • Enter the number and tap Add

8. Settings

Tap the gear icon at the top right to open settings.

General Settings (always visible)

Setting Description Default
Bladder Capacity Maximum bladder volume for fill calculation 500 mL
Catheter Threshold Alert level for catheterization Level 8

Developer Settings (Developer Mode only)

Setting Description
Threshold Otsu (auto) or manual echo threshold
DPS Distance per sample (mm)
Detection Method A / B / C
BV Frustum / V41 (volume calculation method)
SG Filter Savitzky-Golay noise filter on/off
Post Max Maximum sample index for wall detection (filters floor reflections)

폰/태블릿 자동 폰트 분기 (2026-05-26)

설정 패널 라벨 크기는 화면 너비에 따라 자동 조절:

val fontScale = (screenWidth / 360f).coerceIn(1.0f, 1.8f)
val isTablet = screenWidth >= 600
labelSize    = (14 * fontScale).sp       // 폰 14sp, 태블릿 ~25sp
rowSpacing   = (6  * fontScale).dp       // 폰 6dp, 태블릿 ~10dp
dividerPadding = if (isTablet) 12.dp else 0.dp
기기 screenWidth labelSize
Galaxy S20 (폰) 360dp 14sp
Pixel 7 (폰) 412dp 16sp
갤탭 S6 Lite 600dp 23sp
갤탭 S8 / iPad Pro 800dp+ 25sp (cap)

이전 시도(28sp 하드코딩)에서 폰 화면이 곱창나던 문제를 해결.

Dev Mode 추가 기능

  • HomeView Bladdy 3탭 → Developer Mode 토글
  • DeviceScanView "No devices found" 화면 + dev 모드 → "Enter Measurement Mode (Dev)" 버튼 (BLE 없이 측정 화면 진입)
  • PiezoMonitoring Status 배지 dev 탭 → 60~maxVol-50 범위 더미 측정값 랜덤 주입 (BLE 없이 동작 검증용)
  • dev 모드 한정 ChannelPanel / BleDebugPanel 표시 (Developer Tools 버튼 토글)

9. Navigation

Action Result
Home button (top left) Go to Home screen (appState.goHome())
Placement button (Home 옆) Re-enter Sensor Alignment (enterPlacementFromMonitoring())
Settings button (top right) Open/close settings panel
Back button (Android) Go to previous screen
Back button on Home "Exit App?" confirmation dialog

Placement 진입 경로 분기 (2026-05-12 신규)

placementFromMonitoring 플래그로 Back 동작이 자동 분기:

  • Personalization → Placement → Monitoring (정방향): Placement에서 Back = Personalization으로 복귀
  • Monitoring → Placement (재정렬): Placement에서 Back = Monitoring으로 복귀

코드: AppState.kt 의 enterPlacementFromMonitoring() / backFromPlacementGuide().

startFromHome() 라우팅 fix

페어링 완료 상태에서 Home → Start 시 Personalization부터 시작 (이전: Monitoring 직행 버그).


10. Troubleshooting

Problem Solution
"Place VesiScan above the pubic bone" won't go away Make sure the sensor is attached with gel, then press Start Alignment
Alignment keeps showing "Slide up/down" Move the sensor very slowly, 1-2mm at a time
Auto measurement shows "—" Wait for at least 5 measurements to accumulate
Donut chart value doesn't change Max volume updates every 5 seconds
Single Scan takes too long Each scan takes ~4 seconds (5 readings)
"Position lost" dialog appears The sensor may have shifted — go to Alignment
Bluetooth connection lost The app will attempt auto-reconnect (up to 5 times)
Pairing dialog appears but app won't proceed You must tap Pair — canceling will block the connection

11. LED Indicators (Device)

LED State Meaning
State 0 OFF (default)
State 4 Sensor detached warning
State 5 Alignment searching (orange)
State 6 Alignment complete / In position (green)

12. Important Notes

  • Always use ultrasound gel between the sensor and skin
  • Keep the sensor still during measurement — movement reduces accuracy
  • Do not use the device while charging
  • The app keeps the screen on during use to prevent BLE disconnection
  • Measurement logs are automatically saved to your device:
    • BLE logs: Downloads/VesiScan_BLE_*.log
    • ADC data: Downloads/VesiScan_ADC/*.csv

Contact

For technical support, contact: