fix(alignment): clinical session Back/Skip 도 endMeasurement (저장)

이전: Back/Skip → discardAndDeleteFolder (저장 X)
변경: Back/Skip → endMeasurement (Complete 와 동일) — measurement.json + labdb 업로드
→ 사용자가 측정 도중 화면 떠나도 그때까지 누적된 baseline + 4-phase frame 보존

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-25 18:12:54 +09:00
parent 026076aa11
commit 37d3d0d84a
@@ -250,11 +250,12 @@ fun PlacementGuideView(appState: AppState) {
) {
IconButton(onClick = {
isContinuousMode = false
// Clinical alignment session 진입한 경우 — abort 후 Clinical Home 으로.
// Clinical alignment session 진입한 경우 — 저장 후 Clinical Home 으로.
// (PiezoMonitoring / Personalization 으로 떨어지지 않게)
// Back / Skip 도 endMeasurement → measurement.json + labdb 자동 업로드 (Complete 와 동일).
val curSess = com.example.medilightv2android.services.ClinicalSessionStore.currentSession
if (curSess != null && curSess.mode == com.example.medilightv2android.models.SessionMode.ALIGNMENT) {
com.example.medilightv2android.services.ClinicalSessionStore.discardAndDeleteFolder()
com.example.medilightv2android.services.ClinicalSessionStore.endMeasurement(context)
com.example.medilightv2android.services.ClinicalSessionStore.inClinicalFlow = true
appState.currentScreen = AppScreen.CLINICAL_HOME
} else {
@@ -1200,11 +1201,11 @@ fun PlacementGuideView(appState: AppState) {
Spacer(modifier = Modifier.height(8.dp))
TextButton(onClick = {
isContinuousMode = false
// Clinical alignment session 진입 → abort + Clinical Home 으로
// (Skip 은 저장 의도 X)
// Clinical alignment session 진입 → 저장 후 Clinical Home 으로
// Back / Complete / Skip 모두 endMeasurement → measurement.json + labdb 업로드.
val curSess = com.example.medilightv2android.services.ClinicalSessionStore.currentSession
if (curSess != null && curSess.mode == com.example.medilightv2android.models.SessionMode.ALIGNMENT) {
com.example.medilightv2android.services.ClinicalSessionStore.discardAndDeleteFolder()
com.example.medilightv2android.services.ClinicalSessionStore.endMeasurement(context)
com.example.medilightv2android.services.ClinicalSessionStore.inClinicalFlow = true
appState.currentScreen = AppScreen.CLINICAL_HOME
} else {