These docs are for v1.0. Click to read the latest docs for v3.0.

Reports

1. Create Reports

  • Asleep.createReports

Sleep Tracking에 대한 결과를 가져오기 위한 Reports를 생성합니다.

fun createReports(asleepConfig: AsleepConfig?): Reports?
Parameter NameTypeDescription
asleepConfigAsleepConfig?initAsleepConfig호출에서 콜백받은 설정값을 입력

2. Get Single Report

  • Asleep.Reports.getReport

sessionId에 해당하는 Report를 가져옵니다.

fun getReport(sessionId: String, reportListener: ReportListener)
Parameter NameTypeDescription
sessionIdStringSleep Tracking을 정지할 때 받을 수 있는 sessionId의 값
reportListenerReportListenerReport를 콜백 받을 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 NameTypeDescription
errorCodeIntAsleepErrorCode 참조
detailStringerrorCode에 관련된 메세지

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 NameTypeDescription
sessionIdString?세션 Id
lastReceivedSeqNumInt?마지막으로 업로드 받은 오디오 파일의 순서 번호
sessionEndTimeString?세션 종료 시각
sessionStartTimeString?세션 시작 시각
stateString?수면 세션 상태 (OPEN, CLOSED or COMPLETE)
timeInBedInt?침대에 있었던 시간

sessionId로 getReport() 호출 시 상세 리포트를 가져옵니다.

실패 시, onFail()이 호출됩니다.

Parameter NameTypeDescription
errorCodeIntAsleepErrorCode 참조
detailStringerrorCode에 관련된 메세지

4. Delete Report

❗️

세션 데이터 삭제 요청에 따라 에이슬립 서버에서 세션 데이터가 삭제된 경우, 추후 과금 사용량 분석 시 삭제된 세션에 대한 구체적인 근거 제공이 어렵습니다.

  • Asleep.deleteReport

sessionId에 해당하는 Report를 삭제합니다.

fun deleteReport(sessionId: String, deleteReportListener: DeleteReportListener)
Parameter NameTypeDescription
sessionIdString삭제할 sessionId의 값
deleteReportListenerDeleteReportListenerReport 삭제에 대한 콜백을 받을 listener
  • Asleep.Reports.DeleteReportListener
interface DeleteReportListener {
    fun onSuccess(sessionId: String?)
    fun onFail(errorCode: Int, detail: String)
}

성공 시, onSuccess()가 호출됩니다.

Parameter NameTypeDescription
sessionIdString?삭제된 sessionId의 값

실패 시, onFail()이 호출됩니다.

Parameter NameTypeDescription
errorCodeIntAsleepErrorCode 참조
detailStringerrorCode에 관련된 메세지