From 83f63c62ca1ce1a008309acb49dccb98ce48598a Mon Sep 17 00:00:00 2001 From: jjangddu Date: Tue, 26 May 2026 16:13:25 +0900 Subject: [PATCH] =?UTF-8?q?UX=20Phase=203:=20Polish=20=E2=80=94=20?= =?UTF-8?q?=EB=9D=BC=EB=B2=A8/=EC=95=88=EC=A0=84/=EC=8B=A4=EB=A3=A8?= =?UTF-8?q?=EC=97=A3=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 스크린샷에서 발견된 디테일 4건 fix. 9. Status badge 임상 모드 분기 - 일반 모드: urgency.message ("Enjoy your day!" 등) 그대로 - 임상 모드: "Supine · 0 cm" 같은 측정 라벨 표시 - 임상 시연 시 캐주얼 메시지가 부적절했던 문제 해결 - 검사자가 현재 어느 condition인지 즉시 인지 가능 10. 카테터 카운트에 "left" 라벨 추가 - 이전: 아이콘 + 숫자만 (의미 모호 — 잔여? 추가? 누적?) - 새로: 아이콘 + 숫자 + "left" 텍스트 (10×fontScale, 0.7 alpha) - 한눈에 "잔여 카테터" 의미 전달 11. 토르소 실루엣 모래시계 완화 - chestW 0.42 → 0.40 (어깨 살짝 축소) - waistW 0.32 → 0.36 (허리 덜 잘록 — 다리처럼 보이던 원인) - hipW 0.46 → 0.42 (골반 살짝 축소) - 결과: 더 자연스러운 토르소 형태 12. Skip 버튼 Dev 모드 한정 - 이전: 항상 표시 (임상에선 정렬 우회 위험) - 새로: appState.isDevMode일 때만 표시 + "Skip (Dev)" 라벨 + 크기 ↓ - 폰트 15→13sp, alpha 0.6 — 의도된 dev 도구임을 시각적으로 명시 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../views/monitoring/PiezoMonitoringView.kt | 11 ++++++-- .../ui/views/monitoring/PlacementGuideView.kt | 27 ++++++++++--------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt index 7af9bfe..630330f 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt @@ -899,6 +899,9 @@ fun PiezoMonitoringView(appState: AppState) { Icon(Icons.Default.LocalHospital, "Catheter", tint = MlPrimary, modifier = Modifier.size(16.dp)) Spacer(modifier = Modifier.width(4.dp)) Text("$cathCount", fontSize = (13 * fontScale).sp, fontWeight = FontWeight.Bold, color = MlPrimary) + Spacer(modifier = Modifier.width(2.dp)) + Text("left", fontSize = (10 * fontScale).sp, fontWeight = FontWeight.SemiBold, + color = MlPrimary.copy(alpha = 0.7f)) } } if (showAddCatheter) { @@ -983,8 +986,12 @@ fun PiezoMonitoringView(appState: AppState) { Arrangement.spacedBy(nonDevSpacing) ) { - // Status badge (항상 urgency 메시지) — 빌드 114: dev 모드 한정 탭 시 더미 측정값 주입 - val statusText = urgency.message + // Status badge — 임상 모드에선 측정 라벨, 일반 모드에선 urgency 메시지. + // 빌드 114: dev 모드 한정 탭 시 더미 측정값 주입 + val clinicalSession = com.example.medilightv2android.services.ClinicalSessionStore.currentSession + val statusText = if (clinicalSession != null) + "${clinicalSession.posture.label} · ${clinicalSession.step.label}" + else urgency.message val statusColor = urgency.accentColor Text( text = statusText, diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt index 6ae0211..0e5e0b8 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt @@ -342,9 +342,10 @@ fun PlacementGuideView(appState: AppState) { val waistY = h * 0.42f val hipY = h * 0.76f val pubisY = h * 0.96f - val chestW = bodyW * 0.42f - val waistW = bodyW * 0.32f - val hipW = bodyW * 0.46f + // bodyW: Charles 833c110 가로 모드 대응 / 비율: 우리 d6b0a6b 다리처럼 안 보이게 조정 + val chestW = bodyW * 0.40f + val waistW = bodyW * 0.36f + val hipW = bodyW * 0.42f // ── Torso silhouette — hourglass via cubic bezier ── val bodyPath = Path().apply { @@ -881,15 +882,17 @@ fun PlacementGuideView(appState: AppState) { Text("Start Scanning", fontSize = 28.sp, fontWeight = FontWeight.Bold, color = Color.White) } - // Skip button - Spacer(modifier = Modifier.height(8.dp)) - TextButton(onClick = { isContinuousMode = false; appState.placementComplete() }) { - Text( - text = "Skip", - fontSize = 15.sp, - fontWeight = FontWeight.SemiBold, - color = MlSecondaryText - ) + // Skip — Dev 모드 한정 (임상에선 정렬 우회 위험) + if (appState.isDevMode) { + Spacer(modifier = Modifier.height(8.dp)) + TextButton(onClick = { isContinuousMode = false; appState.placementComplete() }) { + Text( + text = "Skip (Dev)", + fontSize = 13.sp, + fontWeight = FontWeight.SemiBold, + color = MlSecondaryText.copy(alpha = 0.6f) + ) + } } Spacer(modifier = Modifier.height(32.dp))