Callback
분석된 결과를 원하시는 HTTP 콜백 URL 호출을 통해 전달해주는 기능으로, Session API에 업로드 및 세션 종료 API에서 파라미터에 적어주면, 아래와 같은 포맷으로 분석 결과를 전달합니다.
1. Request
1.1 Method
POST
1.2 Header
| Field | Type | Description | 
|---|---|---|
| x-api-key | String | 데이터 업로드 또는 세션 종료 시 사용한 API Key | 
| x-user-id | String | 수면 세션을 생성한 user id | 
1.3 Body
Field  | Type  | Description  | 
|---|---|---|
callback_event  | String (  | 콜백 이벤트 타입  | 
callback_data  | Callback Data Object  | 콜백 데이터  | 
1.3.1 INFERENCE_COMPLETE일 경우 Callback Data Object
Field  | Type  | Description  | 
|---|---|---|
user_id  | String  | user id  | 
session_id  | String  | session id  | 
seq_num  | Int  | 오디오 데이터 업로드 순서 번호  | 
inference_seq_num  | Int  | seq_num을 5분 단위로 변환한 번호  | 
stage_list  | [Int]  | 직전 20분 단위의 수면 단계 결과  | 
osa_stage_list  | [Int]  | 직전 20분 단위의 호흡 안정 단계 결과  | 
1.3.2 SESSION_COMPLETE일 경우 Callback Data Object
| Field | Type | Description | 
|---|---|---|
| user_id | String | user id | 
| session_id | String | session id | 
| sleep_data | Sleep Data Object | 전체 수면 분석 결과 | 
1.3.3 Sleep Data Object
메트릭에 대한 보다 자세한 설명은 Get Single Session을 참고하실 수 있습니다. 세션의 상태와 계약 조건에 따라 object와 object 내부 구성 요소들의 nullable이 결정됩니다.
if state == COMPLETE일 때if 2단계 수면 분석을 사용할 경우: wake와 sleep 밖에 단계가 없으므로 time_in_rem, time_in_light, time_in_deep, rem_ratio, light_ratio, deep_ratio 값은 nullif 호흡 안정도 분석 사용 안할 경우: 해당 기능이 제공되지 않으므로 time_in_stable_breath, time_in_unstable_breath, stable_breath_ratio, unstable_breath_ratio, breathing_pattern, estimated_ahi 값은 nullif 모든 stage가 wake인 경우(never slept session): 잠을 자지 않은 것이므로 sleep_latency, sleep_time, wakeup_latency, wake_time, wake_ratio, sleep_ratio, rem_ratio, light_ratio, deep_ratio, stable_breath_ratio, unstable_breath_ratio, breathing_pattern, estimated_ahi 모두 nullINVALID 세션인 경우(20분 미만 또는 분석 불가인 세션): 모든 nullable 필드 값 null
Field  | Type  | Description  | 
|---|---|---|
session_id  | String  | session id  | 
state  | String (  | 세션의 상태  | 
session_start_time  | String (  | 세션 시작 시각  | 
session_end_time  | String (  | 세션 종료 시각  | 
sleep_stages  | [Sleep Stages]  | 수면 단계 리스트  | 
osa_stages  | [OSA Stages]  | 호흡 안정도 단계 리스트  | 
sleep_efficiency  | float (  | 수면 측정 시간 중 실제로 잠든 시간의 비율  | 
sleep_latency  | int (  | 잠들때까지 걸린 시각  | 
sleep_time  | String (  | 수면 측정 시작 후 잠들기 까지 걸린 시간  | 
wakeup_latency  | int (  | 잠에서 깨어난 후 수면 측정을 종료하기까지 걸린 시간  | 
wake_time  | String (  | 잠에서 깨어난 시각  | 
time_in_wake  | int (  | 수면 도중에 깬 시간  | 
time_in_sleep_period  | int (  | 수면 측정 시간 중 수면 측정 시작으로부터 잠들기 까지 걸린 시간과 잠에서 깨어난 후로부터 수면 측정을 종료하기까지 걸린 시간을 제외한 시간  | 
time_in_sleep  | int (  | 수면 측정 시간 중 실제로 수면 중이었던 시간  | 
time_in_bed  | int (  | 수면 측정 시작 시각부터 수면 측정 종료 시각 까지의 시간  | 
time_in_rem  | int (  | 수면 단계가 rem 으로 진행된 총 시간  | 
time_in_light  | int (  | 수면 단계가 light 로 진행된 총 시간  | 
time_in_deep  | int (  | 수면 단계가 deep로 진행된 총 시간  | 
time_in_stable_breath  | int (  | 호흡 안정 구간이었던 총 시간  | 
time_in_unstable_breath  | int (  | 호흡 불안정 구간이었던 총 시간  | 
wake_ratio  | float (  | 수면 단계 도중 중간에 깬 시간의 비율  | 
sleep_ratio  | float (  | 수면 단계 도중 깨지 않고 잔 시간의 비율  | 
rem_ratio  | float (  | rem sleep 비율  | 
light_ratio  | float (  | 수면 단계 도중 light 수면의 비율  | 
deep_ratio  | float (  | 수면 단계 도중 deep 수면의 비율  | 
stable_breath_ratio  | float (  | 수면 단계 도중 호흡 안정 구간이었던 시간의 비율  | 
unstable_breath_ratio  | float (  | 수면 단계 도중 호흡 불안정 구간이었던 시간의 비율  | 
breathing_pattern  | String (  | 호흡 불안정의 단계 
  | 
estimated_ahi  | float (  | 호흡 불안정 레벨을 판단하기 위한 값  | 
Updated 5 months ago
