Reports
1. Create reports
Asleep.createReports()
var config: Asleep.Config?
var reports: Asleep.Reports?
if let config {
reports = Asleep.createReports(config: config)
}
Property Name | Type | Description |
---|---|---|
config | Asleep.Config | Asleep.Config 객체를 입력 |
2. Get a single report
Asleep.Reports.report()
var reports: Asleep.Reports?
let sessionId: String
// Closure
reports?.report(sessionId: sessionId, completionBlock: { (report: Asleep.Report?, error: Asleep.AsleepError?) in
if let error {
print(error)
return
}
if let report {
}
})
// Async
Task {
do {
let report = try await reports?.report(sessionId: sessionId)
} catch {
print(error)
}
}
Property Name | Type | Description |
---|---|---|
sessionId | String | Sleep Tracking을 정지할 때 받을 수 있는 sessionId의 값 |
completionBlock | Asleep.Model.Report? | nil이면 에러 발생 |
Asleep.AsleepError? | Error Codes |
3. Get multiple reports
Asleep.Reports.reports()
var reports: Asleep.Reports?
let fromDate: String = "2023-05-01"
let toDate: String = "2023-05-07"
// Closure
reports?.reports(fromDate: fromDate, toDate: toDate, completionBlock: { (reportSessions: [Asleep.Model.SleepSession]?, error: Asleep.AsleepError?) in
if let error {
print(error)
return
}
if let reportSessions {
}
})
// Async
Task {
do {
let reportSessions = try await reports?.reports(fromDate: fromDate, toDate: toDate)
} catch {
print(error)
}
}
Property Name | Type | Description |
---|---|---|
fromDate | String (YYYY-MM-DD ) | 조회 시작 날짜 |
toDate | String (YYYY-MM-DD ) | 조회 마지막 날짜 |
orderBy - default value: .descending | Asleep.Model.OrderBy [.ascending, .descending] | DESC : 내림차순 정렬ASC : 오름차순 정렬 |
offset - default value: 0 | Int | 스킵할 Report 개수 |
limit - default value: 20 | Int | 최대 받을 Report 개수(0~100) |
completionBlock | Array<Asleep.Model.SleepSession>? | nil이면 에러 발생 |
Asleep.AsleepError? | Error Codes |
4. Get average stats
Asleep.Reports.getAverageReport()
v2.3.0<=SDK
var reports: Asleep.Reports?
let fromDate: String = "2023-05-01"
let toDate: String = "2023-05-07"
// Closure
reports?.getAverageReport(fromDate: fromDate, toDate: toDate, completionBlock: { (averageReport: Asleep.Model.AverageReport?, error: Asleep.AsleepError?) in
if let error {
print(error)
return
}
if let averageReport {
}
})
// Async
Task {
do {
let averageReport = try await reports?.getAverageReport(fromDate: fromDate, toDate: toDate)
} catch {
print(error)
}
}
Property Name | Type | Description |
---|---|---|
fromDate | String (YYYY-MM-DD ) | 평균을 확인하고자 하는 기간의 시작 시간 |
toDate | String (YYYY-MM-DD ) | 평균을 확인하고자 하는 기간의 종료 시간 |
completionBlock | Array<Asleep.Model.AverageReport>? | nil이면 에러 발생 |
Asleep.AsleepError? | Error Codes |
5. Delete report
세션 데이터 삭제 요청에 따라 에이슬립 서버에서 세션 데이터가 삭제된 경우, 추후 과금 사용량 분석 시 삭제된 세션에 대한 구체적인 근거 제공이 어렵습니다.
Asleep.Reports.deleteReport()
var reports: Asleep.Reports?
let sessionId: String
// Closure
reports?.deleteReport(sessionId: sessionId, completionBlock: { (error: Asleep.AsleepError?) in
if let error {
print(error)
return
}
})
// Async
Task {
do {
try await deleteReport?.deleteReport(sessionId: sessionId)
} catch {
print(error)
}
}
Property Name | Type | Description |
---|---|---|
sessionId | String | 삭제할 sessionId의 값 |
completionBlock | Asleep.AsleepError? | Error Codes |
6. Data Type
Asleep.Model.Report
struct Report {
let timezone: String
let peculiarities: [Peculiarity]
let missingDataRatio: Float
let session: Session
let stat: Stat?
}
enum Peculiarity {
case inProgress
case neverSlept
case tooShortForAnalysis
case tooLongForAnalysis
case tooManyDefectsInSleepStages
case noBreathingStability
case noRealtimePolling
}
Property name | Type | Description |
---|---|---|
timezone | String | 분석 결과의 시간대를 해당 timezone으로 변경해서 반환 예. UTC , Asia/Seoul (Timezone List) |
peculiarities | Asleep.Model.Peculiarity | 해당 수면 세션의 특이사항이 있을 경우 이를 설명해주는 필드. 해당 필드는 여러 개의 라벨을 포함할 수 있음.inProgress : 세션이 OPEN, CLOSED인 경우neverSlept : 분석 결과 세션 측정시간 동안 전혀 잠을 자지 않았다고 판단 되는 경우tooShortForAnalysis : 측정시간이 너무 짧아 유효한 분석을 할 수 없는 경우 (현재 20분 미만)tooLongForAnalysis : 분석은 정상적으로 되었지만, 세션 측정 시간이 너무 길어 신뢰하기 어려운 경우 (현재 24시간 초과)tooManyDefectsInSleepStages : 오디오 업로드 누락 등의 이유로 오류율이 높아 수면 분석 결과가 충분하지 않은 경우noBreathingStability : 고객의 계약 조건상 호흡 안정 분석을 지원하지 않는 경우noRealtimePolling : 고객의 계약 조건상 실시간으로 수면 정보를 확인할 수 없는 경우 |
missingDataRatio | Float | 오디오 업로드 누락 등의 이유로 인한 수면 분석 결과 오류율 (0~1.0) |
session | Asleep.Model.Session | 세션 분석 정보 |
stat | Asleep.Model.Stat | 분석 통계 정보 |
Asleep.Model.Session
struct Session {
let id: String
let state: State
let startTime: Date
let endTime: Date?
let unexpectedEndTime: Date?
let createdTimezone: String
let sleepStages: [Int]?
let breathStages: [Int]?
}
enum State {
case open
case closed
case complete
}
Property name | Type | Description | Version |
---|---|---|---|
id | String | 세션 Id | |
state | Asleep.Model.State | 세션의 상태OPEN : 진행 중인 세션으로, 오디오 업로드가 가능한 상태CLOSED : 세션 종료 요청이 보내져 종료된 세션. 오디오 파일 업로드 불가능. 업로드된 수면 오디오에 대한 분석이 계속 진행중인 상태COMPLETE : 세션 종료 후 모든 수면 분석이 완료된 상태 | |
startTime | Date | 세션 시작 시각 | |
endTime | Date? | 세션 종료 시각 | |
unexpectedEndTime | Date? | 비정상 세션 종료 시각. 앱 크래시 등으로 세션이 정상적으로 진행 및 종료되지 못했을 경우, 나중에 클라이언트가 initConfig 를 실행하여 세션을 종료시킨 시각이 기록됨. 이 경우 end_time은 마지막까지 업로드된 오디오 파일의 순서 번호를 기준으로 계산됨. 따라서 null이 아닐 경우 비정상 세션. | 2.2.0<=SDK |
createdTimezone | String | 세션이 생성된 타임존 (Timezone List) | 2.2.0<=SDK |
sleepStages | Array<Int> | 수면 단계 리스트-1 : error (invalid audio, analysis error, etc)0 : wake1 : light2 : deep3 : rem | |
breathStages | Array<Int> | 호흡 안정도 단계 리스트-1 : error (invalid audio, analysis error, etc)0 : stable1 : unstable |
Asleep.Model.Stat
struct Stat {
let sleepEfficiency: Float?
let sleepLatency: Int?
let sleepTime: Date?
let wakeupLatency: Int?
let wakeTime: Date?
let lightLatency: Int?
let deepLatency: Int?
let remLatency: Int?
let timeInWake: Int?
let timeInSleepPeriod: Int?
let timeInSleep: Int?
let timeInBed: Int?
let timeInRem: Int?
let timeInLight: Int?
let timeInDeep: Int?
let timeInStableBreath: Int?
let timeInUnstableBreath: Int?
let timeInSnoring: Int?
let timeInNoSnoring: Int?
let wakeRatio: Float?
let sleepRatio: Float?
let remRatio: Float?
let lightRatio: Float?
let deepRatio: Float?
let stableBreathRatio: Float?
let unstableBreathRatio: Float?
let snoringRatio: Float?
let noSnoringRatio: Float?
let unstableBreathCount: Int?
let breathingPattern: BreathingPattern?
let breathingIndex: Float?
let sleepCycle: Int?
let sleepCycleCount: Int?
let sleepCycleTime: [Date]?
let wasoCount: Int?
let longestWaso: Int?
let sleepIndex: Int?
let snoringCount: Int?
}
enum BreathingPattern {
case stableBreath
case mildlyUnstableBreath
case moderatelyUnstableBreath
case severelyUnstableBreath
}
Property name | Type | Description | Version |
---|---|---|---|
sleepEfficiency | Float? | 수면 측정 시간 중 실제로 잠든 시간의 비율 | |
sleepLatency | Int? | 잠들때까지 걸린 시간 | |
sleepTime | Date? | 수면 측정 시작 후 잠들기까지 걸린 시간 | |
wakeupLatency | Int? | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간 | |
wakeTime | Date? | 잠에서 깨어난 시각 | |
lightLatency | Int? | 첫 수면 시작으로부터 첫 번째 light가 발생하기까지의 시간 | 2.2.0<=SDK |
deepLatency | Int? | 첫 수면 시작으로부터 첫 번째 deep이 발생하기까지의 시간 | 2.2.0<=SDK |
remLatency | Int? | 첫 수면 시작으로부터 첫 번째 rem이 발생하기까지의 시간 | 2.2.0<=SDK |
timeInWake | Int? | 수면 도중에 깬 시간 | |
timeInSleepPeriod | Int? | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간 | |
timeInSleep | Int? | 수면 측정 시간 중 실제로 수면 중이었던 시간 이 시간이 deep, light, rem의 3단계로 구분됨 | |
timeInBed | Int? | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간 | |
timeInRem | Int? | 수면 단계가 rem 으로 진행된 총 시간 | |
timeInLight | Int? | 수면 단계가 light 로 진행된 총 시간 | |
timeInDeep | Int? | 수면 단계가 deep로 진행된 총 시간 | |
timeInStableBreath | Int? | 호흡 안정 구간이었던 총 시간 | |
timeInUnstableBreath | Int? | 호흡 불안정 구간이었던 총 시간 | |
timeInSnoring | Int? | 코골이가 발생한 총 시간 | 2.4.0<=SDK |
timeInNoSnoring | Int? | 코골이가 발생하지 않은 총 시간 | 2.4.0<=SDK |
wakeRatio | Float? | 수면 단계 도중 중간에 깬 시간의 비율 | |
sleepRatio | Float? | 수면 단계 도중 깨지 않고 잔 시간의 비율 | |
remRatio | Float? | 수면 단계 도중 REM 수면의 비율 | |
lightRatio | Float? | 수면 단계 도중 light 수면의 비율 | |
deepRatio | Float? | 수면 단계 도중 deep 수면의 비율 | |
stableBreathRatio | Float? | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율 | |
unstableBreathRatio | Float? | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율 | |
snoringRatio | Float? | 수면 단계 도중 코골이었던 시간의 비율 | 2.4.0<=SDK |
noSnoringRatio | Float? | 수면 단계 도중 코골이가 아니었던 시간의 비율 | 2.4.0<=SDK |
unstableBreathCount | Int? | 불안정 호흡이 발생한 횟수 | 2.2.0<=SDK |
breathingPattern | Asleep.Model.BreathingPattern? | 호흡 불안정의 단계STABLE_BREATH : 안정MILDLY_UNSTABLE_BREATH : 조금 불안정MODERATELY_UNSTABLE_BREATH : 불안정SEVERELY_UNSTABLE_BREATH : 심한 불안정 | |
breathingIndex | Float? | 호흡 불안정 레벨을 판단하기 위한 값 | |
sleepCycle | Int? | 수면 주기 1회당 평균 시간 | 2.2.0<=SDK |
sleepCycleCount | Int? | 수면 주기의 횟수 | 2.2.0<=SDK |
sleepCycleTime | [Date]? | 수면 주기 전환 기준 시각 예) [첫번째 수면 주기 시작 시각, 첫번째 수면 주기 종료 시각, 두번째 수면 주기 종료 시각, ..., 마지막 수면 주기 종료 시각] | 2.2.0<=SDK |
wasoCount | Int? | 수면 구간 중 wake가 발생한 횟수 | 2.2.0<=SDK |
longestWaso | Int? | 수면 구간 중 가장 긴 wake의 시간 | 2.2.0<=SDK |
sleepIndex | Int? | 수면 데이터 분포를 학습하여 정의된 수면의 질을 종합적으로 대표하는 지표 (수면 점수) | 2.3.0<=SDK |
snoringCount | Int? | 코골이 구간의 발생한 횟수 | 2.4.0<=SDK |
Asleep.Model.SleepSession
struct SleepSession {
let sessionId: String
let state: State
let sessionStartTime: Date
let sessionEndTime: Date?
let createdTimezone: String
let unexpectedEndTime: Date?
let lastReceivedSeqNum: Int
let timeInBed: Int
}
enum State {
case open
case closed
case complete
}
Property name | Type | Description | Version |
---|---|---|---|
sessionId | String | 수면 세션 ID | |
state | Asleep.Model.State | 세션의 상태OPEN : 진행 중인 세션으로, 오디오 업로드가 가능한 상태CLOSED : 세션 종료 요청이 보내져 종료된 세션. 오디오 파일 업로드 불가능. 업로드된 수면 오디오에 대한 분석이 계속 진행중인 상태COMPLETE : 세션 종료 후 모든 수면 분석이 완료된 상태 | |
sessionStartTime | Date | 세션 시작 시각 | |
sessionEndTime | Date? | 세션 종료 시각 | |
createdTimezone | String | 세션이 생성된 타임존 (Timezone List) | 2.2.0<=SDK |
unexpectedEndTime | Date? | 비정상 세션 종료 시각. 앱 크래시 등으로 세션이 정상적으로 진행 및 종료되지 못했을 경우, 나중에 클라이언트가 initConfig 를 실행하여 세션을 종료시킨 시각이 기록됨. 이 경우 end_time은 마지막까지 업로드된 오디오 파일의 순서 번호를 기준으로 계산됨. 따라서 null이 아닐 경우 비정상 세션. | 2.2.0<=SDK |
lastReceivedSeqNum | Int | 마지막으로 업로드한 오디오 파일의 순서 번호 | |
timeInBed | Int | 수면 측정 시작 시각부터 수면 측정 종료 시각까지의 시간 |
Asleep.Model.AverageReport
v2.3.0<=SDK
struct AverageReport {
let period: Period
let peculiarities: [Peculiarity]
let averageStats: AverageStats?
let neverSleptSessions: [NeverSleptSession]
let sleptSessions: [SleptSession]
}
Property name | Type | Description |
---|---|---|
period | Asleep.Model.Period | 타임존 (Timezone List) |
peculiarities | [Asleep.Model.Peculiarity] | 수면 세션들의 평균을 구할 때 특이사항.NO_BREATHING_STABILITY : 고객의 계약 조건상 호흡 안정 분석을 지원하지 않는 경우 |
averageStats | Asleep.Model.AverageStats? | slept_sessions의 수면 메트릭들의 평균들을 가지는 객체 |
neverSleptSessions | [Asleep.Model.NeverSleptSession] | 세션 측정시간 동안 전혀 잠을 자지 않았다고 판단 되는 세션들의 목록 |
sleptSessions | [Asleep.Model.SleptSession] | 세션 측정시간 동안 잠을 잤다고 판단 되는 세션들의 목록 |
Asleep.Model.Period
v2.3.0<=SDK
struct Period {
let timezone: String
let startDate: Date
let endDate: Date
}
Property name | Type | Description |
---|---|---|
timezone | String | 요청한 타임존 예. UTC, Asia/Seoul |
startDate | Date | 요청한 시작 시간 |
endDate | Date | 요청한 종료 시간 |
Asleep.Model.AverageStats
v2.3.0<=SDK
struct AverageStats {
let startTime: String
let endTime: String
let sleepTime: String
let wakeTime: String
let sleepLatency: Int
let wakeupLatency: Int
let timeInBed: Int
let timeInSleepPeriod: Int
let timeInSleep: Int
let timeInWake: Int
let timeInLight: Int?
let timeInDeep: Int?
let timeInRem: Int?
let timeInStableBreath: Int?
let timeInUnstableBreath: Int?
let timeInSnoring: Int?
let timeInNoSnoring: Int?
let sleepEfficiency: Double
let wakeRatio: Double
let sleepRatio: Double
let lightRatio: Double?
let deepRatio: Double?
let remRatio: Double?
let stableBreathRatio: Double?
let unstableBreathRatio: Double?
let snoringRatio: Double?
let noSnoringRatio: Double?
let breathingIndex: Double?
let wasoCount: Int
let longestWaso: Int
let unstableBreathCount: Int?
let sleepCycleCount: Int?
let snoringCount: Int?
}
Property name | Type | Description |
---|---|---|
startTime | String(hh:mm:ss ) | 세션 시작 시각 |
endTime | String(hh:mm:ss ) | 세션 종료 시각 |
sleepTime | String(hh:mm:ss ) | 잠들때까지 걸린 시각 |
wakeTime | String(hh:mm:ss ) | 잠에서 깨어난 시각 |
sleepLatency | Int | 잠들때까지 걸린 시각 |
wakeupLatency | Int | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간 |
timeInBed | Int | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간 |
timeInSleepPeriod | Int | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간 (timeInBed - sleepLatency - wakeupLatency) |
timeInSleep | Int | 수면 측정 시간 중 실제로 수면 중이었던 시간 이 시간이 deep, light, rem의 3단계로 구분됨 |
timeInWake | Int | 수면 도중에 깬 시간 |
timeInLight | Int? | 수면 단계가 light 로 진행된 총 시간 |
timeInDeep | Int? | 수면 단계가 deep로 진행된 총 시간 |
timeInRem | Int? | 수면 단계가 rem 으로 진행된 총 시간 |
timeInStableBreath | Int? | 호흡 안정 구간이었던 총 시간 |
timeInUnstableBreath | Int? | 호흡 불안정 구간이었던 총 시간 |
timeInSnoring | Int? | 코골이가 발생한 총 시간 |
timeInNoSnoring | Int? | 코골이가 발생하지 않은 총 시간 |
sleepEfficiency | Double | 수면 측정 시간 중 실제로 잠든 시간의 비율 |
wakeRatio | Double | 수면 단계 도중 중간에 깬 시간의 비율 |
sleepRatio | Double | 수면 단계 도중 깨지 않고 잔 시간의 비율 |
lightRatio | Double? | 수면 단계 도중 light 수면의 비율 |
deepRatio | Double? | 수면 단계 도중 deep 수면의 비율 |
remRatio | Double? | rem sleep 비율 |
stableBreathRatio | Double? | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율 |
unstableBreathRatio | Double? | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율 |
snoringRatio | Double? | 수면 단계 도중 코골이었던 시간의 비율 |
noSnoringRatio | Double? | 수면 단계 도중 코골이가 아니었던 시간의 비율 |
breathingIndex | Double? | 호흡 불안정 레벨을 판단하기 위한 값 |
wasoCount | Int | 수면 구간 중 wake가 발생한 횟수 |
longestWaso | Int | 수면 구간 중 가장 긴 wake의 시간 |
unstableBreathCount | Int? | 불안정 호흡이 발생한 횟수 |
sleepCycleCount | Int? | 수면 주기의 횟수 |
snoringCount | Int? | 코골이 구간의 발생한 횟수 |
Asleep.Model.NeverSleptSession
v2.3.0<=SDK
struct NeverSleptSession {
let id: String
let startTime: Date
let endTime: Date
let completedTime: Date
}
Property name | Type | Description |
---|---|---|
id | String | session id |
startTime | Date | 세션 시작 시각 |
endTime | Date | 세션 종료 시각 |
completedTime | Date | 세션 분석 완료 시각 |
Asleep.Model.SleptSession
v2.3.0<=SDK
struct SleptSession {
let id: String
let createdTimezone: String
let startTime: Date
let endTime: Date
let completedTime: Date
let sleepEfficiency: Double
let sleepLatency: Int?
let wakeupLatency: Int?
let lightLatency: Int?
let deepLatency: Int?
let remLatency: Int?
let sleepTime: Date?
let wakeTime: Date?
let timeInWake: Int
let timeInSleepPeriod: Int
let timeInSleep: Int
let timeInBed: Int
let timeInRem: Int?
let timeInLight: Int?
let timeInDeep: Int?
let timeInStableBreath: Int?
let timeInUnstableBreath: Int?
let timeInSnoring: Int?
let timeInNoSnoring: Int?
let wakeRatio: Double
let sleepRatio: Double
let remRatio: Double?
let lightRatio: Double?
let deepRatio: Double?
let stableBreathRatio: Double?
let unstableBreathRatio: Double?
let snoringRatio: Double?
let noSnoringRatio: Double?
let unstableBreathCount: Int?
let breathingPattern: BreathingPattern?
let sleepCycle: Int?
let sleepCycleCount: Int?
let wasoCount: Int?
let longestWaso: Int?
let snoringCount: Int?
}
Property name | Type | Description |
---|---|---|
id | String | session id |
createdTimezone | String | 세션이 생성된 타임존 (Timezone List) |
startTime | Date | 세션 종료 시각 |
endTime | Date | 세션 종료 시각 |
completedTime | Date | 세션 분석 완료 시각 |
sleepEfficiency | Double | 수면 측정 시간 중 실제로 잠든 시간의 비율 |
sleepLatency | Int? | 잠들때까지 걸린 시각 |
wakeupLatency | Int? | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간 |
lightLatency | Int? | 첫 수면 시작으로부터 첫 번째 light가 발생하기까지의 시간 |
deepLatency | Int? | 첫 수면 시작으로부터 첫 번째 deep이 발생하기까지의 시간 |
remLatency | Int? | 첫 수면 시작으로부터 첫 번째 rem이 발생하기까지의 시간 |
sleepTime | Date? | 수면 측정 시작 후 잠들기 까지 걸린 시간 |
wakeTime | Date? | 잠에서 깨어난 시각 |
timeInWake | Int | 수면 도중에 깬 시간 |
timeInSleepPeriod | Int | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간 (time_in_bed - sleep_latency - wakeup_latency) |
timeInSleep | Int | 수면 측정 시간 중 실제로 수면 중이었던 시간 이 시간이 deep, light, rem의 3단계로 구분됨 |
timeInBed | Int | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간 |
timeInRem | Int? | 수면 단계가 rem 으로 진행된 총 시간 |
timeInLight | Int? | 수면 단계가 light 로 진행된 총 시간 |
timeInDeep | Int? | 수면 단계가 deep로 진행된 총 시간 |
timeInStableBreath | Int? | 호흡 안정 구간이었던 총 시간 |
timeInUnstableBreath | Int? | 호흡 불안정 구간이었던 총 시간 |
timeInSnoring | Int? | 코골이가 발생한 총 시간 |
timeInNoSnoring | Int? | 코골이가 발생하지 않은 총 시간 |
wakeRatio | Double | 수면 단계 도중 중간에 깬 시간의 비율 |
sleepRatio | Double | 수면 단계 도중 깨지 않고 잔 시간의 비율 |
remRatio | Double? | rem sleep 비율 |
lightRatio | Double? | 수면 단계 도중 light 수면의 비율 |
deepRatio | Double? | 수면 단계 도중 deep 수면의 비율 |
stableBreathRatio | Double? | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율 |
unstableBreathRatio | Double? | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율 |
snoringRatio | Double? | 수면 단계 도중 코골이었던 시간의 비율 |
noSnoringRatio | Double? | 수면 단계 도중 코골이가 아니었던 시간의 비율 |
unstableBreathCount | Int? | 불안정 호흡이 발생한 횟수 |
breathingPattern | BreathingPattern? | 호흡 불안정의 단계 STABLE_BREATH: 안정 MILDLY_UNSTABLE_BREATH: 조금 불안정 MODERATELY_UNSTABLE_BREATH: 불안정 SEVERELY_UNSTABLE_BREATH: 심한 불안정 |
sleepCycle | Int? | 수면 주기 1회당 평균 시간 |
sleepCycleCount | Int? | 수면 주기의 횟수 |
wasoCount | Int? | 수면 구간 중 wake가 발생한 횟수 |
longestWaso | Int? | 수면 구간 중 가장 긴 wake의 시간 |
snoringCount | Int? | 코골이 구간의 발생한 횟수 |
Updated 5 months ago