标准API对接
用户在第三方合作伙伴APP或小程序进行登记注册,并通过相机管理软件启动相机
- 适用场景:有开发能力的院内,体检中心等场景
- 适用设备:带相机管理软件自研相机(Fd16R、Fd16AF)外采相机(新视野、佳能、拓普康等)
一、 流程图

二、 业务流程描述
- 用户在第三方系统中进行筛查登记,并将基础信息传入鹰瞳Airdoc系统中;
- 第三方系统会产生一个条形码或者二维码,由第三方服务人员通过相机管理软件,扫条形码或者二维码启动相机,进行拍摄眼底影像;
- 眼底相机自动将眼底影像上传至鹰瞳Airdoc系统;
- 鹰瞳Airdoc系统将基础信息和眼底影像进行匹配,生成评估报告;
- 鹰瞳Airdoc系统推送报告到第三方系统中(或者第三方系统主动查询鹰瞳Airdoc系统获取报告);
- 第三方系统展示报告。
三、接口
接口1:接收用户信息推送(鹰瞳Airdoc系统)
场景和说明
鹰瞳Airdoc系统使用本接口接收合作伙伴系统推送过来的⽤户信息。⼀次最多传输50条⽤户的信息。
接口地址
- 测试环境:https://staging-open.airdoc.com/api/openapi/receive_base_info
- 生产环境:https://pe-open.airdoc.com/api/openapi/receive_base_info
请求方式
HTTP METHOD:POST
HEADERS: "Content-Type: application/json"
参数说明(JSON)
| 字段名 |
类型 |
是否必填 |
默认值 |
描述 |
| appid |
int |
是 |
|
合作伙伴ID,Airdoc分配,在Airdoc系统内唯一 |
| t |
int |
是 |
|
当前时间戳,参与签名 |
| user_id |
int |
是 |
|
账号ID,Airdoc分配 |
| salt |
string |
否 |
|
签名计算用,不传或传空不参与签名验证 |
| sign |
string |
是 |
|
签名策略: md5(appid+salt+secret_key+t); appid,secret_key:通过邮件提供密钥 |
| data[0].uuid |
string |
是 |
|
筛查码,当前检查流水号 |
| data[0].medical_record_no |
string |
是 |
|
用户id(合作伙伴系统中,当前用户唯一id) |
| data[0].name |
string |
是 |
|
姓名 |
| data[0].gender |
int |
是 |
|
1:男;2:女 |
| data[0].age |
int |
是 |
|
周岁为准,如:30 |
| data[0].medical_history |
string |
是 |
|
多个病史用英文逗号分隔,比如:“1,2"表示有糖尿病和高血压病史 |
| data[0].package_id |
string |
否 |
|
Airdoc分配, 协商好枚举类型 |
| data[0].height |
int |
否 |
|
身高,单位厘米 |
| data[0].weight |
float |
否 |
|
体重,公斤 |
| data[0].phone |
string |
否 |
|
比如:13800000000 |
| data[0].complained |
string |
否 |
|
主诉, 255个字符以内 |
| data[0].left_corrected_vision |
string |
否 |
|
左眼矫正视力型 |
| data[0].right_corrected_vision |
string |
否 |
|
右眼矫正视力型 |
| data[0].exam_company_name |
string |
否 |
|
公司名称 |
| data[0].exam_project_id |
string |
否 |
|
项目id |
| data[0].bisheng_package_id |
string |
否 |
|
多套餐ID |
病史
| medical_history |
描述 |
| 0 |
无 |
| 1 |
糖尿病 |
| 2 |
高血压 |
| 3 |
高血脂 |
| 4 |
肾病 |
| 5 |
风湿免疫病 |
| 6 |
肿瘤 |
| 7 |
高眼压史/青光眼 |
| 8 |
白内障 |
参数示例
{
"appid": 870200,
"t": 1527062055,
"salt": "randstring",
"user_id": "87621",
"sign": "94a1b8563f08a8b9c65189161fb61922",
"data": [
{
"medical_record_no": "22201805222033999",
"name": "测试01",
"gender": 1,
"age": "22",
"medical_history": "1,2",
"height": 170,
"weight": 70,
"phone": "13800001234"
}
]
}
返回结果(JSON)
| 字段 |
必填 |
类型 |
示例值 |
描述 |
| error_code |
是 |
Int |
0 |
0:成功 |
| message |
是 |
string |
0 |
比如:同步成功 |
{
error_code: 0,
message: "同步成功",
data: {}
}
异常
{
"error_code": 900034,
"message": "设备序列号系统未找到",
"data": ""
}
接口2:接收Airdoc推送检查结果(合作伙伴系统)
描述
合作伙伴系统中用来接收Airdoc系统推送过来的报告的接口,Airdoc会配置到自身系统中,并在报告生成后调用。接口是的基于http协议的 (支持https),请区分测试环境和生产环境。签名验证成功表示推送来源(Airdoc)可信任。
请求方式
HTTP METHOD:POST
HEADERS: "Content-Type: application/json"
参数说明(JSON)
| 字段名 |
类型 |
是否必填 |
默认值 |
描述 |
| sign_type |
string |
是 |
|
sha1 |
| timestamp |
int |
是 |
|
时间戳(10位) |
| signature |
string |
是 |
|
签名 |
| h5 |
string |
是 |
|
h5报告链接(长期有效) |
| pdf |
string |
是 |
|
pdf报告链接(三天有效期) |
| medical_record_no |
string |
是 |
|
用户id,来自接口1 |
| uuid |
string |
是 |
|
筛查码 |
| right_result |
string |
否 |
|
右眼结果 |
| left_result |
string |
否 |
|
左眼结果 |
| suggestion |
string |
否 |
|
综合建议 |
| suggestion_level |
string |
否 |
|
综合建议等级 |
| image_qc |
string |
否 |
|
0正常,1左眼不可读, 2右眼不可读, 3双眼不可读 |
**注意:接口需支持幂等,即同一个单子支持接收多次推送,以最后一次为准且返回接收正常(error_code=0 或者 code=0)
**
综合建议等级
| suggestion_level |
综合建议 |
| 0 |
目前情况良好,建议定期复查。 |
| 1 |
目前暂无需就医治疗,定期复查。 |
| 2 |
如有视力下降、眼胀眼痛、视物模糊变形等症状,请及时就诊。 |
| 2.5 |
如有青光眼家族史、高度近视,或有眼痛、眼胀、虹视等症状,建议进一步眼科检查。否则暂无需就医,可定期复查。 |
| 3 |
建议进一步眼科检查。 |
| 4 |
视网膜存在严重病变高风险,视力可能受到严重影响,建议立即到医院眼科就诊。 |
参数示例(JSON)
{
"sign_type": "sha1",
"timestamp": 1603356013,
"signature": "4b41ad96b4e7e55b34f760b4490e977cb48065ae",
"h5": URL1,
"pdf": URL2,
"medical_record_no": "",
"uuid": "",
"right_result": "右眼结果",
"left_result": "左眼结果",
"suggestion": "综合建议 。",
"image_qc": 0,
"suggestion_level": 1
}
签名方法:
sha1(secret_key + timestamp + medical_record_no) 或
sha1(secret_key + timestamp + uuid)
* 具体情况根据配置来决定,请尝试两种方式,以具体匹配为准
签名举例
secret_key = "94a1b8563f08a8b9c65189161fb61aaa"; // 同接口1
timestamp = 1603356013; // 来自于推送参数, 当前unix时间戳,单位到秒
medical_record_no = "445678";
signature_string = "94a1b8563f08a8b9c65189161fb61aaa1603356013445678"
signature = sha1(signature_string)
返回
{
"error_code": 0,
"message": "success"
}
{
"error_code": 1001,
"message": "签名验证失败"
}
{
"error_code": 1003,
"message": "其他情况的失败都归到1003"
}
接口3:查询报告状态(鹰瞳Airdoc 系统)
场景和说明
本接⼝适⽤于从鹰瞳Airdoc 系统查询某个⽤户的报告的状态和获取PDF报告链接
接口地址
- 测试环境:https://staging-open.airdoc.com/api/openapi/get_report_result
- 生产环境:https://pe-open.airdoc.com/api/openapi/get_report_result
请求方式
HTTP METHOD:POST
HEADERS: "Content-Type: application/json"
参数说明(JSON)
| 字段名 |
类型 |
是否必填 |
默认值 |
描述 |
| appid |
int |
是 |
|
合作伙伴ID |
| t |
int |
是 |
|
当前时间戳,参与签名 |
| user_id |
int |
是 |
|
账号ID,Airdoc分配 |
| salt |
string |
否 |
|
签名计算用,不传或传空不参与签名验证 |
| sign |
string |
是 |
|
签名策略: md5(appid+salt+secret_key+t); appid,secret_key:通过邮件提供 |
| uuid |
string |
是 |
|
体检号,同接口1 (uuid、medical_record_no 二选一即可,有uuid优先) |
| medical_record_no |
string |
是 |
|
当前检查用户id,同接口1 |
参数示例
{
"appid": 870000,
"t": 1527062055,
"salt": "randstring",
"user_id": 87621,
"sign": "94a1b8563f08a8b9c65189161fb61922",
"medical_record_no": "987654345678"
}
返回结果(JSON)
| 字段 |
类型 |
示例值 |
描述 |
| error_code |
int |
0 |
0:成功, |
| message |
string |
|
比如:查询成功 |
| data.h5 |
string |
|
报告的H5链接 |
| data.pdf |
string |
|
PDF报告的链接, 3天有效期,需下载到第三方系统并存储 |
| data.medical_record_no |
string |
|
当前用户id |
| data.right_result |
string |
|
右眼结果 |
| data.left_result |
string |
|
左眼结果 |
| data.suggestion |
string |
|
综合建议 |
| data.suggestion_level |
string |
|
综合建议等级 |
| data.image_qc |
string |
|
0正常,1左眼不可读, 2右眼不可读, 3双眼不可读 |
返回示例
{
"error_code": 600001,
"message": "未拍摄或未上传"
}
{
"error_code": 600002,
"message": "未评估完成"
}
{
"error_code": 600003,
"message": "未查到用户id"
}
{
error_code: 0,
message: "查询成功",
data: {
"sign_type": "sha1",
"timestamp": 1603356013,
"signature": "4b41ad96b4e7e55b34f760b4490e977cb48065ae",
"h5": URL1,
"pdf": URL2,
"medical_record_no": "",
"right_result": "右眼结果",
"left_result": "左眼结果",
"suggestion": "综合建议 。",
"image_qc": 0,
"suggestion_level": 1
}
}
错误码
| error_code |
描述 |
| 0 |
0:成功 |
| 100401 |
appid不存在 |
| 100402 |
签名验证失败 |
| 900034 |
设备序列号系统未找到 |
| 600001 |
未拍摄或未上传 |
| 600002 |
未评估完成 |
| 600003 |
未查到用户id |
常见问题
Q: 接口1,返回 "error_code": 900034,"message": "设备序列号系统未找到"
A: 请检查body请求中data类型为array