dw.jang b3d9c16780 Clinical: labdb.medithings.net REST 업로드 통합 (Phase A+B)
End Session 시 measurement.json을 https://labdb.medithings.net/api/v1/upload/json
에 자동 업로드. dataType="000" (VesiScan 6채널). cycle 1개 = record 1개.
testId는 폴더명 그대로 사용 (40자 초과 시 prefix+hash로 축약).

Files:
  - LabdbCredentials: apiKey/deviceId를 EncryptedSharedPreferences에 안전 저장
  - LabdbClient: register/checkStatus/uploadJson + 5가지 에러 분기
    (PendingApproval / Reregister / RateLimit / ApiError / Network)
  - LabdbUploader: measurement.json → payload 변환 + fire-and-forget 업로드
    성공 시 labdb_upload.json, 실패 시 labdb_upload_error.json 마커 작성

ClinicalSessionStore.endMeasurement: cycle>0 + active 상태일 때만 자동 트리거.
ClinicalHomeView: labdb 상태 카드(Register/Refresh) + 직전 측정 업로드 상태
표시 + 수동 Upload 재시도 버튼.

오프라인 큐는 아직 없음 (Phase C는 후속).

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