希卡立健康监测系列-数据云流转协议
HTTP |
可支持的SDK:Java/Python 2.7/Python 3/PHP/.NET
需注意:本参考文档为用户已自行将对应阿里云环境配置完成后可使用
以Java SDK为例,下载示例demo,然后根据我司提供的账户文档,替换代码中所对应的关键信息,运行后即可获得JSON格式云流转数据。下表列出了代码中需替换的标志位。
对应部分 |
需替换标志位 |
替换内容 |
host 部分 |
${YourHost} |
iot-010a0clt.amqp.iothub.aliyuncs.com |
accessKey 部分 |
ALIBABA_CLOUD_ACCESS_KEY_ID |
|
accessSecret 部分 |
ALIBABA_CLOUD_ACCESS_KEY_SECRET |
|
consumerGroupId 部分 |
${YourConsumerGroupId} |
|
clientId 部分 |
${YourClientId} |
自定义,用来区分自己的多个接收端 |
iotInstanceId 部分 |
${YourIotInstanceId} |
|
表格内容对应代码示例中标红部分
部分代码示例: (仅供参考)
Python |
以 Python 2.7 SDK 为例,根据我司提供的账户文档,替换代码中的关键信息,运行后即可获得 JSON 格式的云流转数据。下表列出了代码中需替换的标志位。
对应部分 |
需替换标志位 |
替换内容 |
url 部分 |
${YourHost} |
iot-010a0clt.amqp.iothub.aliyuncs.com |
accessKey 部分 |
ALIBABA_CLOUD_ACCESS_KEY_ID |
|
accessSecret 部分 |
ALIBABA_CLOUD_ACCESS_KEY_SECRET |
|
consumerGroupId 部分 |
${YourConsumerGroupId} |
|
clientId 部分 |
${YourClientId} |
自定义,用来区分自己的多个接收端 |
iotInstanceId 部分 |
${YourIotInstanceId} |
|
表格内容对应代码示例中标红部分
部分代码示例: (仅供参考)
Python |
1. 根据 api 的不同准备不同的请求和传递实际有效的功能参数
2. API 用户验证方面:需要额外传递验证所用参数,含义如下
参数标志位 |
含义 |
appkey |
分配给每个客户的 16 位随机字符串,需要每次调用 api 时传输; |
secret |
分配给每个客户的 24 位随机字符串,始终保留在开发者本地,不在请求参数中; |
timestamp |
发出 api 请求时的 13 位时间戳,超时将会拒绝请求; |
sign |
加密后得到的字符串; |
sign 计算方法为:sign以外的其他请求参数(包括 appkey 和 timestamp),按键字母顺序排序后的 k1=v1&k2=v2&……&kn=vn&secret=YOURSECRET 字符串,对其进行 UTF-8 编码后进行md5哈希,所得32位字符串再全部大写化即为sign
Python |
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
成功与否大类简写的字符串 |
data |
json |
所查询的具体内容(200)/0(200)/-1(40X报错)/报错信息字符串(500) |
code |
msg |
data |
含义 |
400 |
Essenttial params not passed |
-1 |
参数缺失或类别错误,post方法的情况下还可能是没有使用json传参 |
401 |
Rejected
|
"Timeout!" |
时间戳已经过期(一般为10分钟)或超前过多,最常见原因为时间戳误传为秒级精度的10位时间戳 |
"User not registered" |
appkey误传 |
||
"Signiture incorrect" |
签名计算有误 |
||
"No previlege" |
所传设备无权限操作或查询 |
||
"Valid request should arrive between 5-13 o'clock" |
部分接口存在时段限制 |
||
403 |
-- |
-- |
访问被拒绝 |
404 |
No record matched |
-1 |
请求中所要求查找或设置的设备或对应记录不存在 |
-- |
-- |
访问了错误路由 |
|
405 |
-- |
-- |
请求的Method错误 |
500 |
-- |
-- |
接口的服务端运行报错 |
一、数据传输方式:阿里云AMQP云流转方式
序号 |
标识符 |
数据类型 |
取值范围 |
含义 |
1 |
deviceName |
text (字符串) |
数据长度:10240 |
设备备注名 |
2 |
HeartRate |
int32 (整数型) |
取值范围:0 ~ 150 |
心率,单位:bpm |
3 |
D |
int32 (整数型) |
取值范围:0 ~ 65535 |
睡眠分期 计算方法:数值余8; 0-设备初始化中;1-清醒;2-REM;3-浅睡;4-深睡 |
4 |
E |
int32 (整数型) |
取值范围:0 ~ 100 |
呼吸暂停时长,单位:秒 0表示未发生呼吸暂停 |
5 |
RespiratoryRate |
int32 (整数型) |
取值范围:0 ~ 50 |
呼吸率,单位:bpm |
6 |
HRV |
int32 (整数型) |
取值范围:0 ~ 40 |
焦虑分数,越高表示越放松,越低表示越紧张 |
7 |
Version |
text (字符串) |
数据长度:10240 |
设备运行固件版本 |
8 |
Amp_value |
int32 (整数型) |
取值范围:0 ~ 100000 |
信号幅度,表示设备探测信号质量与稳定度 |
9 |
time_now |
text (字符串) |
数据长度:10240 |
时间戳 |
10 |
People_flag |
int32 (整数型) |
取值范围:0 ~ 1 |
有无人 |
11 |
id |
text (字符串) |
数据长度:10240 |
设备ID |
12 |
moving
|
int32 (整数型) |
取值范围:0 ~ 1
|
大体动标志 0-无大体动;1-有大体动 |
13 |
RSSI |
int32(整数型) |
取值范围-1000-0 |
信号质量,越高越好 |
*AMQP 流转消息中可能含有其他表格中未列出的数据,均为睡眠报告中需要用到的中
间值,对于实时展示无意义可以忽略。
无论用户采用Java或Python处理AMQP消息,收到的消息内容保持一致。虽然不同版本的设备接收到的消息有细微差别,但在设备上下线过程中,用户接收到的消息是一致的。
【补充:不同版本的设备(即Wi-Fi设备和4G-LTE设备)接收到的消息有细微差别详细解释:呼吸心率的信息所对应的 AMQP Topic 格式有所不同。】
json |
json |
json |
睡眠报告的对接存在两大类:AMQP推送,或者纯api调用
AMQP推送特点:独立于希卡立官方小程序、必须事先设置个性化报告起止时间、客户端被动从消息队列接收并过滤、预警消息也能独立推送
纯api调用特点:依托于希卡立官方小程序、不需要设置报告起止时间、客户端主动发起查询
如需获取睡眠报告,须先行进行API设置,详情请参照第五部分的表格关于record_st和record_ed的配置,确保相关设备能够计算并输出睡眠报告。
1、数据传输方式:阿里云AMQP云流转方式
键 |
类型 |
含义 |
AHI |
整型 |
睡眠期间每小时呼吸暂停数 |
ambulation_num |
整型 |
离床次数 |
Apn_begins |
时间戳列表 |
呼吸暂停检出时间点列表 |
Apn_lens |
整型列表 |
被检出的呼吸暂停长度 |
apnea_duration_average |
整型 |
呼吸暂停平均秒数 |
apnea_duration_max |
整型 |
呼吸暂停最长秒数 |
apnea_num |
整型 |
呼吸暂停次数 |
ave_br |
整型 |
平均呼吸率 |
ave_hr |
整型 |
平均心率 |
bed_duration |
整型 |
卧床时长(分钟) |
brs |
列表 |
hr_br_time_split_point所指示的前后时间点的区间内的平均呼吸率 |
bluetooth_name |
字符串 |
设备背部标识(蓝牙)名称 |
date |
字符串 |
报告产生日期 |
dcg |
字符串 |
750个4位16进制字符串,总长3000,表示50Hz采样的15秒长度的代表性心动图的数值;如’00011000……’表示dcg数组的第一位的数值为1,第二位的数值为4096,仅限X2设备 |
deep_duration |
整型 |
深睡时长(分钟) |
device_name |
整型 |
8位设备唯一标志 |
getoffbed_time |
北京时间 |
下床时间 |
gotobed_time |
北京时间 |
上床时间 |
heart_hp |
整型 |
心脏健康分数,分值范围0-100 |
hr_br_time_split_point |
列表 |
心率呼吸率统计的起止区间的时间点(一维,含开头和结尾,元素为字符串格式),长度为hrs和brs字段的列表长度+1 |
hrs |
列表 |
hr_br_time_split_point所指示的前后时间点的区间内的平均心率 |
hrv |
整型 |
心率变异性(毫秒) |
light_duration |
整型 |
浅睡时长(分钟) |
max_br |
整型 |
最大呼吸率 |
max_hr |
整型 |
最大心率 |
min_br |
整型 |
最小呼吸率 |
min_hr |
整型 |
最小心率 |
mood
|
整型 |
心情分数,分值范围0-100 |
moving_array |
字符串 |
(开发测试版)长度为入睡到醒来的总分钟数的字符串,每位数值为0-2,0表示体动,1表示体动,2表示翻身 |
moving_index |
浮点数 |
体动指数(每小时体动数) |
moving_num |
整型 |
体动次数 |
off_periods |
列表 |
[[t11,t12],[t21,t22]……]形式的列表,其中tn1表示离床开始,tn2表示离床结束;列表长度与ambulation_num字段一致 |
Onbed_valid |
布尔值 |
如果有连续且总计达1小时的在床,标志为1,反之为0 |
pnn50 |
整型 |
心动图RR间期差分绝对值大于50ms的个数占总RR间期个数之比,单位为%,仅限X2设备 |
respiration_score |
整型 |
呼吸分数,分值范围0-100 |
rmssd |
整型 |
心动图差分RR间期的均方根(毫秒),仅限X2设备 |
rr_period |
整型 |
心动图RR间期的均值(毫秒),仅限X2设备 |
sdnn |
整型 |
心动图RR间期的std(毫秒),仅限X2设备 |
sleep_duration |
整型 |
睡眠时长(分钟),不含清醒 |
sleep_efficiency |
浮点数 |
睡眠效率 |
sleep_latency |
整型 |
入睡潜伏期(分钟) |
sleep_score |
整型 |
睡眠总体分数,分值范围0-100 |
sleep_time |
北京时间 |
入睡时间 |
sleep_valid |
布尔值 |
如果有连续且总计达1小时的睡眠,标志为1,反之为0 |
stages |
元组列表 |
N个3元组,三元组分别为(st,ed,type),表示在st到ed的时间范围内,分期种类为type,type在1-4的范围内,依次表示清醒期/眼动期/浅睡期/深睡期 |
tiredness |
整型 |
缓解疲劳分数,分值范围0-100 |
wake_duration |
整型 |
夜醒时长(分钟) |
wake_num |
整型 |
夜醒次数 |
wake_time |
北京时间 |
醒来时间 |
无论用户采用Java或Python处理AMQP消息,收到的消息内容保持一致。
JSON |
* 睡眠打分:90分以上 - 睡的很棒
75-90分 睡得还不错哦
60-74分 - 睡的一般哦
60分以下 - 睡的不大好哦
* 呼吸健康打分:0-100分值,对应需要关注-优秀
二、AMQP版本的历史报告和周报获取方式:API
1、Api请求样例(GET方法+/dailyreport路由,请注意端口不同):
返回所查询日期的json格式的睡眠日报,仅仅是对通过amqp对接睡眠报告的条件下错接或需要历史日期的报告的情况下使用的
HTTP |
这里末尾的三个校验参数如何设置详见第一部分的“二、API方式”,下面给出有效参数的含义:
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
date |
字符串 |
报告所处日期(如2024.1.1日晚-2024.1.2日早的报告,日期应设置为’2024-1-2’) ,必选参数 |
API调用示例截图:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
整型/字符串 |
和AMQP推送同样层次的Json字符串(200)/-1(40X)/报错信息字符串(500) |
返回成功的Data字段的json中字段的定义详见"第三部分、睡眠报告对接"中的释义;
2、Api请求样例(GET方法+/periodreport路由):
返回所查询日期范围内的json格式的睡眠日报的列表
HTTP |
这里末尾的三个校验参数如何设置详见第一部分的“二、API方式”,下面给出有效参数的含义:
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
start_date |
字符串 |
报告起始日期(含此日期),必选参数 |
end_date |
字符串 |
报告结束日期(含此日期),必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
键值对分别为日期和当日日报(结构和前述每日的推送json一致)的字典,是时间段内的汇总Json(200)/-1(40X报错)/报错信息字符串(500) |
3、Api请求样例(GET方法+/reportindex路由):
获取所选时间周期内(包括其实和结束)内有有效睡眠报告的日期所构成的列表
HTTP |
这里末尾的三个校验参数定义不变,下面给出有效参数的含义:
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
start_date |
字符串 |
报告起始日期(含此日期),必选参数 |
end_date |
字符串 |
报告结束日期(含此日期),必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
列表 |
是时间段内的有报告的日期列表(200)/-1(40X报错)/报错信息字符串(500) |
4、Api请求样例(POST方法+/control-mq路由,请注意端口不同):
提前指示amqp报告立刻开始计算(不立刻返回),报告仍然将从消息队列推送。(不推荐高频成批次调用,建议通过设置第五部分中configset接口中的record_ed参数来控制)
HTTP |
这里末尾的三个校验参数定义不变,下面给出有效参数的含义。有效的请求发送时间范围为北京时间的5-13时,否则请求将被拒绝:
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
整型/字符串 |
0(200)/-1(40X报错)/报错信息字符串(500) |
5、Api请求样例(POST方法+/comparison路由,请注意端口与之前的均不同):
与periodreport接口不同,返回的是希卡立小程序风格的周报/月报,与上一周/月的对比结果的json数据
HTTP |
有效参数的含义。:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
startDay |
字符串 |
yyyy-mm-dd格式的日期,推荐为自然周/月的第一天,必选参数 |
endDay |
字符串 |
yyyy-mm-dd格式的日期,推荐为自然周/月的最后一天,必选参数 |
flag |
整型 |
可选范围为{0,1},0表示返回周报(此时时间范围内至少需要3天存在报告),1表示返回月报(此时时间范围内至少需要15天存在报告) |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X参数问题或无权限,500设备不存在或报告数据不足) |
msg |
字符串 |
简要信息 |
data |
整型/字符串 |
(仅验证报错情况下存在该字段)-1(400参数错误)/验证失败原因(401验证不通过) |
result |
字符串 |
完整的对比结果结构体 |
success |
布尔型 |
设置属性成功与否 |
timestamp |
整型 |
下发属性时刻 |
result字段返回信息
字段 |
类型 |
释义 |
title1 |
字符串 |
所查周日期范围/所查月份 |
title2 |
字符串 |
上一周(对比周)日期范围/所查月份的上一月份 |
sleepPreparationTime |
整型 |
所查周/月平均入睡准备时间 单位:分钟 |
sleepPreparationTimeText |
字符串 |
所查周/月平均入睡准备时间 |
deepSleepDuration |
整型 |
所查周/月平均深睡时长 单位:分钟 |
deepSleepDurationText |
字符串 |
所查周/月平均深睡时长 |
asleepDuration |
整型 |
所查周/月平均睡眠总时长 单位:分钟 |
asleepDurationText |
字符串 |
所查周/月平均睡眠总时长 |
reserve1 |
整型 |
所查周/月平均离床次数 单位:次 |
reserve1Text |
字符串 |
所查周/月平均离床次数 |
apneaNum |
整型 |
所查周/月平均呼吸暂停次数 单位:次 |
apneaNumText |
字符串 |
所查周/月平均呼吸暂停次数 |
hrv |
整型 |
所查周/月平均焦虑指数HRV |
hrvText |
字符串 |
所查周/月平均焦虑指数HRV |
sleepPreparationTimeLast |
整型 |
对比周/月平均入睡准备时间 单位:分钟 |
sleepPreparationTimeLastText |
字符串 |
对比周/月平均入睡准备时间 |
deepSleepDurationLast |
整型 |
对比周/月平均深睡时长 单位:分钟 |
deepSleepDurationLastText |
字符串 |
对比周/月平均深睡时长 |
asleepDurationLast |
整型 |
对比周/月平均睡眠总时长 单位:分钟 |
asleepDurationLastText |
字符串 |
对比周/月平均睡眠总时长 |
reserve1Last |
整型 |
对比周/月平均离床次数 单位:次 |
reserve1LastText |
字符串 |
对比周/月平均离床次数 |
apneaNumLast |
整型 |
对比周/月平均呼吸暂停次数 单位:次 |
apneaNumLastText |
字符串 |
对比周/月平均呼吸暂停次数 |
hrvLast |
整型 |
对比周/月平均焦虑指数HRV |
hrvLastText |
字符串 |
对比周/月平均焦虑指数HRV |
sleepPreparationTimeCompare |
字符串 |
入睡准备时间环比 |
deepSleepDurationCompare |
字符串 |
深睡时长环比 |
asleepDurationCompare |
字符串 |
睡眠总时长环比 |
reserve1Compare |
字符串 |
离床次数环比 |
apneaNumCompare |
字符串 |
呼吸暂停次数环比 |
hrvCompare |
字符串 |
焦虑指数HRV环比 |
respirationScore |
整型 |
所查周/月呼吸健康分数 |
mood |
整型 |
所查周/月情绪水平分数 |
tiredness |
整型 |
所查周/月疲劳水平分数 |
heartHp |
整型 |
所查周/月心脏健康水平分数 |
analyzeTextList |
字符串集合 |
所查周/月对比报告分析 |
suggestionText |
字符串集合 |
所查周/月对比报告建议 |
三、AMQP版本的X2进阶功能对接方式:API
用于设置床垫的宽度和厚度
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,amqp对接睡眠报告的条件下,所传参数为客户定制数据库名称;纯api对接条件下,所传参数为xkl_prod |
bedWidth |
浮点数 |
床宽,单位为厘米,必选参数 |
mattressThickness |
浮点数 |
床垫厚度,单位为厘米,必选参数 |
sleepEnv |
整型 |
0-单人睡,1-双人睡,其他-非法数值 |
返回样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据) |
msg |
字符串 |
简要信息 |
data |
整型/字符串 |
(仅验证报错情况下存在该字段)-1(400参数错误)/验证失败原因(401验证不通过) |
result |
字符串 |
简要信息 |
success |
布尔型 |
设置属性成功与否 |
timestamp |
整型 |
下发属性时刻 |
2、Api请求样例(POST方法+/pressure路由):
用于控制压敏在无人的情况下进行初始化
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
返回样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X参数问题或无权限) |
msg |
字符串 |
简要信息 |
data |
整型/字符串 |
(仅验证报错情况下存在该字段)-1(400参数错误)/验证失败原因(401验证不通过) |
result |
字符串 |
简要信息 |
success |
布尔型 |
设置属性成功与否 |
timestamp |
整型 |
下发属性时刻 |
四、纯API获取睡眠报告(AMQP对接报告的条件下请忽略这个板块)
1、Api请求样例(GET方法+/dailyreport路由,请注意端口不同):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
简单格式的主要睡眠信息所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
data部分字段示意:
字段名 |
数据类型 |
作用 |
id |
整型 |
表内记录主键 |
user_id |
整型 |
对应用户id |
device_id |
整型 |
对应设备id |
date |
时间戳 |
昨夜的时间戳,如5.1晚-5.2晨的睡眠报告中,date将会是5.1 |
go_to_bed_time |
时间戳 |
上床时间 |
getup_time |
时间戳 |
下床时间 |
sleep_time |
时间戳 |
入睡时间 |
wake_time |
时间戳 |
醒来时间 |
bed_duration |
整型 |
卧床时长(分钟) |
asleep_duration |
整型 |
入睡时长(分钟) |
deep_sleep_duration |
整型 |
深睡时长(分钟) |
light_sleep_duration |
整型 |
浅睡时长(分钟) |
awake_duration |
整型 |
清醒时长(分钟) |
ambulation_num |
整型 |
离床次数 |
apnea_num |
整型 |
呼吸暂停总个数 |
apnea_duration_max |
整型 |
呼吸暂停最长时长(秒) |
apnea_duration_average |
整型 |
呼吸暂停平均时长(秒) |
respiration_score |
浮点数 |
呼吸分数(与AHI有关) |
sleep_score |
整型 |
睡眠整体分数 |
anxiety_index |
整型 |
焦虑指数 |
isempty |
布尔型 |
是否整夜无人,是为1 |
early_stop |
布尔型 |
是否提前下线,是为1 |
reserve_1 |
字符串 |
体动次数,如果为‘null’则表示未打开该功能,’0’表示无体动被检出,’n’表示有n个体动或翻身被检出 |
2、Api请求样例(GET方法+/sleepstage路由):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和前述api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
n个分期类别(type在1-4的范围内,依次表示清醒期/眼动期/浅睡期/深睡期)和n+1个时间点(包含起始+结束+n-1个分割时间点)的列表所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和前述api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
n个平均心率(为0表示区间内无人),n个平均呼吸率(为0表示区间内无人),以及n+1个时间点(包含起始+结束+n-1个分割时间点)的列表所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
4、Api请求样例(GET方法+/apneadata路由):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和前述api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
n个呼吸暂停秒数,以及n个时间点(呼吸暂停开始时间点)的列表所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
5、Api请求样例(GET方法+/plusdata路由,目前仅限X2/X3设备使用):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
简单格式的主要睡眠信息所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
data部分有效字段示意:
字段名 |
数据类型 |
作用 |
id |
整型 |
表内记录主键 |
user_id |
整型 |
对应用户id |
device_id |
整型 |
对应设备id |
date |
时间戳 |
昨夜的时间戳,如5.1晚-5.2晨的睡眠报告中,date将会是5.1 |
ave_hr |
整型 |
整夜平均心率 |
max_hr |
整型 |
整夜最大心率 |
min_hr |
整型 |
整夜最小心率 |
ave_br |
整型 |
整夜平均呼吸率 |
mood |
整型 |
心情指数,范围0-100,越高越好 |
tiredness |
整型 |
疲劳指数,范围0-100,越高越好 |
heart_hp |
整型 |
心脏健康指数,范围0-100,越高越好 |
6、Api请求样例(GET方法+/dcgdata路由,目前仅限X2/X3设备使用):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date |
字符串 |
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
简单格式的主要睡眠信息所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
data部分字段示意:
字段名 |
数据类型 |
作用 |
id |
整型 |
表内记录主键 |
user_id |
整型 |
对应用户id |
device_id |
整型 |
对应设备id |
date |
时间戳 |
昨夜的时间戳,如5.1晚-5.2晨的睡眠报告中,date将会是5.1 |
dcg
|
字符串 |
长度为4*750的字符串,代表750个整数转化为4位16进制的字符串后拼接的结果;这750个整数的含义为所选的代表心动图的数据(15秒长度,50Hz采样) |
rr_period |
整型 |
平均rr间期,单位ms |
sdnn |
整型 |
心率变异性的sdnn统计量 |
7、Api请求样例(GET方法+/fullreport路由,以上4个(对X2/X3设备允许6个)API结果统一获取):
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name |
整型
|
设备唯一标志,必选参数,和前述api中的id字段含义相同 |
db |
字符串 |
所在数据库,必选参数,可选范围仅有[xkl_prod, x2_prod] |
date
|
字符串
|
报告的昨夜时间,如1.1晚-1.2所出报告,应传递参数为'20XX-1-1',与AMQP相关api含义不同,必选参数 |
target |
字符串 |
's','t','r','a','p','d'的组合,s对应dailyreport,t对应sleepstage,r对应ratedata,a对应apneadata,p对应plusdata,d对应dcgdata; 如'st'表示仅获取sleepdata和sleepstage的返回,'stra'表示获取前4类的api结果,'strapd'表示获取全部的6类的api结果 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
key分别为SleepData(前述dailyreport)/TimeData(前述sleepstage路由对应结果)/TimeData/RateData/ApneaData/PlusData/DcgData,值分别为对应的api的响应的data部分,所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
一、预警消息的阿里云AMQP云流转获取
使用前注意:
如需获取警报消息,须先行进行API设置,详情请参照“四、警报参数设置和查询方式”中的“参数表格”关于预警部分的配置,确保相关设备能够输出警报消息;警报消息只会在设置的预警时间段内生成。
键 |
类型 |
含义 |
phone |
字符串 |
手机号 |
DeviceType |
字符串 |
设备类型,例:睡眠监测仪X1 |
id |
字符串 |
设备id(纯数字) |
DeviceName |
字符串 |
设备名称(字符串) |
type |
整形 |
通知类型(0.呼吸率 1.心率 2.离床 3.设备上线 4.设备下线) |
typeStr |
字符串 |
通知类型中文解释(呼吸率 心率 离床...) |
title |
字符串 |
通知标题(例:心率过低,请注意!) |
content |
字符串 |
通知内容(例:21:37分,呼吸率为12,超出设定预警范围,请注意!) |
dateTime |
长整型 |
推送时间 |
注意:离床预警---需要先在床10分钟以上,才能进行后续的离床预警;
内容示例:
JSON |
二、预警消息获取的纯API对接(AMQP对接预警的情况下请忽略这个板块)
HTTP |
参数说明如下:
键 |
类型 |
含义 |
device_name
|
整型
|
设备唯一标志,必选参数,和AMQP相关api中的id字段含义相同 |
st |
整型 |
查询范围的起始时间点的13位时间戳,默认值为请求前1小时 |
ed |
整型 |
查询范围的结束时间点的13位时间戳,默认值为请求时间点 |
调用样例如下:
返回结果为json格式,内容含义为:
键 |
类型 |
含义 |
code |
整型 |
响应状态码(200成功,40X无权限或无数据,500数据库异常) |
msg |
字符串 |
简要信息 |
data |
json |
简单格式的主要睡眠信息所构成的json(200)/-1(40X报错)/报错信息字符串(500) |
data部分字段示意:
键 |
类型 |
含义 |
user_id |
整型 |
数据库内部用户id |
device_id |
整型 |
数据库内部设备id |
title |
字符串 |
通知标题(例:心率过低,请注意!) |
content |
字符串 |
通知内容(例:21:37分,呼吸率为12,超出设定预警范围,请注意!) |
type |
字符串 |
通知类型,包括heart,breathing,out_of_bed,online,offline |
date_time |
长整型 |
推送时间 |
record_date |
字符 |
date_time转化为的北京时间,格式为"%Y-%m-%d %H:%M:%S" |
第五部分、AMQP对接条件下的警报及睡眠参数设置和查询方式:API
1、API请求样例(POST 方法+/configset 路由):
HTTP |
这里末尾的三个校验参数如何设置详见第一部分的“二、API方式”,可以一次性传递n个有效参数键值对(n≥3,包括三个必选参数),下面给出有效参数的含义:
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
product |
字符串 |
设备所属产品,必选参数 |
record_st |
整型 |
睡眠报告的记录开始时间,为当天0点至所需时间的秒数;如设置20:00:00为睡眠报告起始,则设置为20*60*60=72000 |
record_ed |
整型 |
睡眠报告的记录结束时间,为当天0点至所需时间的秒数;如设置8:00:00为睡眠报告结束,则应设置为8*60*60=28800 |
warn_st |
字符串 |
子类指标(hr/br/offbed)指标统一的预警开始时间,如20:00:00开始预警则直接传入20:00(精确到分);优先级高于分别设置子类预警的warn_st |
warn_ed |
字符串 |
子类指标(hr/br/offbed)统一的预警结束时间,如8:00:00开始预警则直接传入8:00(精确到分);优先级高于分别设置子类预警的warn_ed |
hr_warn_start |
字符串 |
心率单独的预警开始时间,如20:00:00开始预警则直接传入20:00(精确到分) |
hr_warn_end |
字符串 |
心率单独的预警结束时间,如8:00:00开始预警则直接传入8:00(精确到分) |
br_warn_start |
字符串 |
呼吸率单独的预警开始时间,如20:00:00开始预警则直接传入20:00(精确到分) |
br_warn_end |
字符串 |
呼吸率单独的预警结束时间,如8:00:00开始预警则直接传入8:00(精确到分) |
offbed_warn_start |
字符串 |
离床单独的预警开始时间,如20:00:00开始预警则直接传入20:00(精确到分) |
offbed_warn_end |
字符串 |
离床单独的预警结束时间,如8:00:00开始预警则直接传入8:00(精确到分) |
all_day
|
布尔型 |
1表示子类指标(hr/br/offbed)都全天预警,0表示按之前设置的起止时间预警;优先级高于分别设置子类预警的all_day |
hr_all_day |
布尔型 |
1表示心率一项全天预警,0表示按之前设置的起止时间预警 |
br_all_day |
布尔型 |
1表示呼吸率一项全天预警,0表示按之前设置的起止时间预警 |
offbed_all_day |
布尔型 |
1表示离床一项全天预警,0表示按之前设置的起止时间预警 |
interval |
整型 |
预警推送最小间隔时间(单位分钟) |
offbed_switch |
布尔型 |
是否开启离床过久预警,1为是 |
offbed_thre |
整型 |
离床过久的报警阈值,单位为分钟 |
hr_switch |
布尔型 |
是否开启心率超限预警,1为是 |
hr_min |
整型 |
预警心率下限,单位为次/分钟 |
hr_max |
整型 |
预警心率上限,单位为次/分钟 |
br_switch |
布尔型 |
是否开启呼吸超限预警,1为是 |
br_min |
整型 |
预警呼吸率下限,单位次/分钟 |
br_max |
整型 |
预警呼吸率上限,单位次/分钟 |
API调用示例截图:
2、API请求样例(GET 方法+/cofigget 路由):
HTTP |
键 |
类型 |
含义 |
id |
整型 |
设备唯一标志,必选参数 |
db |
字符串 |
所在数据库,必选参数,不是xkl_prod或x2_prod,需要为专有参数 |
product |
字符串 |
设备所属产品,必选参数 |
这里参数和POST方法所用的定义相同,但是路由不同,API调用示例截图:
返回结果字段与前述POST方法设置参数的对应关系如下表(同名字段含义一致,表中仅展示非同名字段)
Get方法返回字段 |
POST方法中设置字段 |
含义 |
id |
无 |
数据库内字段,可以忽略 |
device_name |
id |
设备唯一标志 |
product_key |
product |
设备所属产品 |
record_start |
record_st |
睡眠报告的记录开始时间 |
record_end |
record_ed |
睡眠报告的记录结束时间 |
heart_rate_switch |
hr_switch |
是否开启心率超限预警,1为是 |
min_heart_rate |
hr_min |
预警心率下限,单位为次/分钟 |
max_heart_rate |
hr_max |
预警心率上限,单位为次/分钟 |
breath_rate_switch |
br_switch |
是否开启呼吸超限预警,1为是 |
min_breath_rate |
br_min |
预警呼吸率下限,单位次/分钟 |
max_breath_rate |
br_max |
预警呼吸率上限,单位次/分钟 |