dw.jang 1574d659cd Clinical: 잘못 측정한 값 폐기 — Discard(측정 중) + Delete(측정 후 + labdb 서버)
회의 결정: 잘못 측정한 경우를 없앨 방법이 없었음. 두 시점 모두 제공.

ClinicalSessionStore:
  - discardAndDeleteFolder(): 측정 중 즉시 폐기. endMeasurement 호출 안 하고
    currentSession + cyclesBuffer 비우고 폴더 전체 삭제.
  - deleteFinalizedFolder(): lastFinalizedFolder 로컬 삭제 + reset.

LabdbClient.deleteSession(testId):
  DELETE /api/v1/sessions/{testId} — Cascade로 모든 records 함께 제거.
  204/200/404 모두 성공 처리 (404 = 이미 없음, 멱등).
  401 → 자격 clear + Reregister, 403 → PendingApproval, 429 → RateLimit.

LabdbUploader.deleteSessionForFolder(folder):
  labdb_upload.json에 sessionId 있으면 그것을, 없으면 sanitizeTestId(폴더명).
  미업로드 폴더에 대해서도 안전하게 호출 가능 (404 처리).

ClinicalLiveView:
  - 기존 End Session 단일 버튼 → Discard + End Session 두 버튼 (50/50 Row)
  - Discard: 빨간 outline. confirm dialog → 폴더 삭제 + ClinicalHome 복귀
  - 사이클 진행 중에도 누를 수 있음 (잘못 측정 즉시 인지 시)

ClinicalHomeView:
  - Last saved 카드에 Upload 버튼 옆 (또는 단독) Delete 버튼 추가
  - confirm dialog → labdb 서버 DELETE 시도 → 로컬 폴더 삭제 → state reset
  - 서버 실패해도 로컬은 진행, Toast로 결과 표시

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-09 09:51:21 +09:00
S
Description
No description provided
20 MiB
Languages
Kotlin 97.1%
Python 2.9%