Reports
1. Create Reports
- Asleep.createReports
Sleep Tracking에 대한 결과를 가져오기 위한 Reports를 생성합니다.
fun createReports(asleepConfig: AsleepConfig?): Reports?
Parameter Name | Type | Description |
---|---|---|
asleepConfig | AsleepConfig? | initAsleepConfig호출에서 콜백받은 설정값을 입력 |
2. Get Single Report
- Asleep.Reports.getReport
sessionId에 해당하는 Report를 가져옵니다.
fun getReport(sessionId: String, reportListener: ReportListener)
Parameter Name | Type | Description |
---|---|---|
sessionId | String | Sleep Tracking을 정지할 때 받을 수 있는 sessionId의 값 |
reportListener | ReportListener | Report를 콜백 받을 listener |
- Asleep.Reports.ReportListener
interface ReportListener {
fun onSuccess(report: Report?)
fun onFail(errorCode: Int, detail: String)
}
성공 시, onSuccess()가 호출됩니다.
data class Report(
val validity: String?,
val session: Session?,
val stat: Stat?,
val timezone: String?
)
data class Session(
val endTime: String?,
val id: String?,
val osaStages: List<Int?>?,
val sleepStages: List<Int?>?,
val startTime: String?,
val state: String?
)
data class Stat(
val sleepEfficiency: Float?,
val sleepLatency: Int?,
val sleepTime: String?,
val timeInBed: Int?,
val timeInDeep: Int?,
val timeInLight: Int?,
val timeInRem: Int?,
val timeInSleep: Int?,
val timeInWake: Int?,
val wakeTime: String?,
val wakeupLatency: Int?,
val timeInSleepPeriod: Int?,
val timeInStableBreath: Int?,
val timeInUnstableBreath: Int?,
val wakeRatio: Float?,
val sleepRatio: Float?,
val remRatio: Float?,
val lightRatio: Float?,
val deepRatio: Float?,
val stableBreathRatio: Float?,
val unstableBreathRatio: Float?,
val breathingPattern: String?,
val estimatedAhi: Float?
)
Parameter Name | Type | Description |
---|---|---|
validity | String? | 해당 수면 세션의 분석이 유효한지 여부 업로드된 오디오 파일들 일부가 유효하지 않거나, 유실된 비율이 일정 이상일 경우 분석이 부정확하여 이를 표시해주는 필드 IN_PROGRESS: 세션이 OPEN인 경우 INVALID:TOO_MANDY_DEFECTS_IN_SLEEP_STAGES: 수면 단계 분석 결과가 충분하지 않음 INVALID:TOO_MANY_DEFECTS_IN_OSA_STAGES: 호흡 안정도 분석 결과가 충분하지 않음 VALID: 분석이 유효 |
session | Session? | 세션 분석 정보 |
stat | Stat? | 분석 통계 정보 |
timezone | String? | 분석 결과의 시간대를 해당 timezone으로 변경해서 반환 예. UTC, Asia/Seoul |
endTime | String? | 세션 종료 시각 예) 2022-08-01T01:31:17+09:00 (요청 타임존이 Asia/Seoul 일 경우) |
id | String? | 세션 Id |
osaStages | List<Int?>? | 호흡 안정도 단계 리스트 |
sleepStages | List<Int?>? | 수면 단계 리스트 |
startTime | String? | 세션 시작 시각 |
state | String? | 수면 세션 상태 (OPEN, CLOSED or COMPLETE) |
sleepEfficiency | Float? | 수면 측정 시간 중 실제로 잠든 시간의 비율 |
sleepLatency | Int? | 잠들때까지 걸린 시각 |
sleepTime | String? | 수면 측정 시작 후 잠들기 까지 걸린 시간 |
timeInBed | Int? | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간 |
timeInDeep | Int? | 수면 단계가 deep로 진행된 총 시간 |
timeInLight | Int? | 수면 단계가 light 로 진행된 총 시간 |
timeInRem | Int? | 수면 단계가 rem 으로 진행된 총 시간 |
timeInSleep | Int? | 수면 측정 시간 중 실제로 수면 중이었던 시간이 시간이 deep, light, rem의 3단계로 구분됨 |
timeInWake | Int? | 수면 도중에 깬 시간 |
wakeTime | String? | 잠에서 깨어난 시각 |
wakeupLatency | Int? | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간 |
timeInSleepPeriod | Int? | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간 |
timeInStableBreath | Int? | 호흡 안정 구간이었던 총 시간 |
timeInUnstableBreath | Int? | 호흡 불안정 구간이었던 총 시간 |
wakeRatio | Float? | 수면 단계 도중 중간에 깬 시간의 비율 |
sleepRatio | Float? | 수면 단계 도중 깨지 않고 잔 시간의 비율 |
remRatio | Float? | rem sleep 비율 |
lightRatio | Float? | 수면 단계 도중 light 수면의 비율 |
deepRatio | Float? | 수면 단계 도중 deep 수면의 비율 |
stableBreathRatio | Float? | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율 |
unstableBreathRatio | Float? | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율 |
breathingPattern | String? | 호흡 불안정의 단계 VERY_STABLE: 매우 안정 STABLE: 안정 UNSTABLE: 불안정 |
estimatedAhi | Float? | 호흡 불안정 레벨을 판단하기 위한 값 |
실패 시, onFail()이 호출됩니다.
Parameter Name | Type | Description |
---|---|---|
errorCode | Int | AsleepErrorCode 참조 |
detail | String | errorCode에 관련된 메세지 |
3. Get Multiple Reports
- Asleep.Reports.getReports
입력한 날짜의 범위내에 있는 Report 목록을 가져옵니다.
fun getReports(
fromDate: String,
toDate: String,
orderBy: String = "DESC",
offset: Int = 0,
limit: Int = 20,
reportsListener: ReportsListener?)
Parameter Name | Type | Description |
---|---|---|
fromDate | String (YYYY-MM-DD ) | 조회 시작 날짜 |
toDate | String (YYYY-MM-DD ) | 조회 마지막 날짜 |
orderBy = "DESC" | String | DESC : 내림차순 정렬ASC : 오름차순 정렬 |
offset = 0 | Int | 스킵할 Report 개수 |
limit = 20 | Int | 최대 받을 Report 개수(0~20) |
reportsListener | ReportsListener? | Report 목록을 콜백 받을 listener |
- Asleep.Reports.ReportsListener
interface ReportsListener {
fun onSuccess(reports: List<SleepSession>?)
fun onFail(errorCode: Int, detail: String)
}
성공 시, onSuccess()가 호출됩니다.
data class SleepSession(
val sessionId: String?,
val lastReceivedSeqNum: Int?,
val sessionEndTime: String?,
val sessionStartTime: String?,
val state: String?,
val timeInBed: Int?
)
Parameter Name | Type | Description |
---|---|---|
sessionId | String? | 세션 Id |
lastReceivedSeqNum | Int? | 마지막으로 업로드 받은 오디오 파일의 순서 번호 |
sessionEndTime | String? | 세션 종료 시각 |
sessionStartTime | String? | 세션 시작 시각 |
state | String? | 수면 세션 상태 (OPEN, CLOSED or COMPLETE) |
timeInBed | Int? | 침대에 있었던 시간 |
sessionId로 getReport() 호출 시 상세 리포트를 가져옵니다.
실패 시, onFail()이 호출됩니다.
Parameter Name | Type | Description |
---|---|---|
errorCode | Int | AsleepErrorCode 참조 |
detail | String | errorCode에 관련된 메세지 |
4. Delete Report
세션 데이터 삭제 요청에 따라 에이슬립 서버에서 세션 데이터가 삭제된 경우, 추후 과금 사용량 분석 시 삭제된 세션에 대한 구체적인 근거 제공이 어렵습니다.
- Asleep.deleteReport
sessionId에 해당하는 Report를 삭제합니다.
fun deleteReport(sessionId: String, deleteReportListener: DeleteReportListener)
Parameter Name | Type | Description |
---|---|---|
sessionId | String | 삭제할 sessionId의 값 |
deleteReportListener | DeleteReportListener | Report 삭제에 대한 콜백을 받을 listener |
- Asleep.Reports.DeleteReportListener
interface DeleteReportListener {
fun onSuccess(sessionId: String?)
fun onFail(errorCode: Int, detail: String)
}
성공 시, onSuccess()가 호출됩니다.
Parameter Name | Type | Description |
---|---|---|
sessionId | String? | 삭제된 sessionId의 값 |
실패 시, onFail()이 호출됩니다.
Parameter Name | Type | Description |
---|---|---|
errorCode | Int | AsleepErrorCode 참조 |
detail | String | errorCode에 관련된 메세지 |
Updated over 1 year ago