医疗发票OCR识别
一、接口描述
1. 功能描述
该 API 用于识别提取医疗发票上的文字信息。
2. 接口数据要求:
编码格式:UTF-8
图片要求:
- 格式为 JPG(JPEG), PNG
- 宽和高大于 128px,小于等于 6000px
- 小于等于 5 MB
3. 接口使用:
平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。
免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。
在获得使用权限后,您可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程
用户需要使用图片base64编码去做请求,使用其他图片的base64编码请求成功时也会加入计费。
二、请求说明
1. 接口地址 :
https://aiapi.jd.com/deepfinch/ocr_medical_invoice
2. 请求方式:
post
3. 请求参数
(1)query请求参数
公共请求参数
名称 |
类型 |
必填 |
示例值 |
描述 |
appkey |
String |
是 |
80d2b762ecb86593f9668526920f46c |
您的appkey,可在买家中心控制台中获取 |
timestamp |
long |
是 |
1541491668060 |
请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign |
String |
是 |
2e148773a0337a8f2200ba90d445f083 |
签名,根据规则MD5(sectetkey+timestamp) |
业务请求参数
名称 |
类型 |
必填 |
示例值 |
描述 |
Content-Type |
String |
是 |
application/json |
标准编码格式 |
(3)body请求参数
业务请求参数
名称 |
类型 |
必填 |
描述 |
image_base64 |
String |
是 |
图片的base64格式数据 |
body输入示例:
{
"image_base64": "xxxxxx"
}
三、返回说明
1.返回参数
(1)公共返回参数
名称 |
类型 |
示例值 |
描述 |
code |
string |
1000 |
参见下方错误码-系统级错误码 |
charge |
boolean |
false 或 true |
false:不扣费, true:扣费 |
remainTimes |
long |
1305 |
剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds |
long |
1223456 |
剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg |
string |
查询成功 |
参见下方错误码-系统级错误码 |
result |
object |
{...} |
查询结果 |
(2)业务返回参数
字段 |
类型 |
说明 |
request_id |
string |
本次请求的id |
status |
string |
状态,正常为 OK |
degree |
int |
图片旋转角度 |
medical_result |
object |
票据关键信息提取结果 |
1.medical_result
字段的参数:
字段 |
类型 |
说明 |
average_prob |
float |
识别结果的平均置信度 |
billing_date |
string |
开票日期 |
checksum |
object |
票据内校验结果,true指通过校验,false指未通过校验 |
cost_categories |
array |
大类项目 |
cost_detail_list |
array |
细类项目,仅门诊发票包含 |
fund_payments |
array |
医保统筹支付;医保赔付金额用此项,根据票面内容提取; |
hospital_dates |
array |
出入院日期,[入院日期, 出院日期],日期格式为YYYY-MM-DD |
hospital_days |
float |
住院天数 |
hospital_name |
string |
医院名称 |
medical_insurance_type |
string |
医保类型 |
medical_organization_type |
string |
医疗机构类型 |
note_no |
string |
发票号 |
patient_gender |
int |
患者性别:0-未知,1-男, 2-女 |
patient_name |
string |
患者姓名 |
person_assume_situation |
array |
患者承担费用信息,预留字段,一般不输出 |
person_payment_situation |
array |
个人账户支付金额 |
service_serial_number |
string |
交易流水号 |
social_security_card_number |
string |
社会保障号码 |
supplement_payment_situation |
array |
医保信息,支持北京门诊发票 |
total_cost |
float |
发票总金额 |
type |
int |
票据类型:0-未知, 1-门诊票据, 2-住院票据 |
cash_payment_situation |
array |
个人现金支付 |
else_payment_situation |
array |
其他医保支付;第三方支付金额,一般无输出 |
fund_subitem_situation |
array |
医保统筹分项 ,仅北京有 |
charging_units |
string |
收款单位 |
hospital_no |
string |
住院号/门诊号 |
payee |
string |
收款人 |
medical_record_no |
string |
病例号 |
1.1checksum
字段的参数:
字段 |
类型 |
说明 |
total_cost |
boolean |
总金额 |
total_check_payment |
boolean |
个人支付金额、个人账户支付、统筹支付 |
cost_categories |
boolean |
大类项目 |
1.1.1cost_categories
字段的参数:
字段 |
类型 |
说明 |
name |
string |
大类单项名称 |
cost |
float |
大类单项花费 |
1.2cost_detail_list
字段的参数:
字段 |
类型 |
说明 |
amount |
float |
数量 |
check_info |
string |
校验情况,预留字段 |
medical_type |
int |
项目类型:0-未知,1-西药,2-中药,3-诊疗项目 |
name |
string |
通过细目名称匹配的医保库名称 |
ocr_name |
string |
结合医保库修正的细目名称 ;建议细目名称用此条 |
price |
float |
细目金额 |
selfpay |
float |
自付金额;从票面提取或通过细目金额*自付比例 计算 |
selfpay_ratio |
float |
自付比例,取值范围[0-1],从票面提取或通过细目名称查询医保库获取 |
unit_price |
float |
单价 |
spec |
string |
规格 |
1.3fund_payments
字段的参数:
字段 |
类型 |
说明 |
name |
string |
统筹支付单项名称 |
cost |
float |
统筹支付单项花费 |
1.4person_assume_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
患者承担费用信息名称 |
cost |
float |
对应金额 |
1.5person_payment_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
患者支付费用信息名称 |
cost |
float |
对应金额 |
1.6supplement_payment_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
医保信息名称 |
cost |
float |
对应金额 |
1.6.1supplement_payment_situation
中name包含字段:
字段 |
当年账户结余 |
历年账户结余 |
预缴金额 |
补缴金额 |
退费金额 |
分类自负 |
自负 |
自费 |
1.7cash_payment_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
个人现金支付名称 |
cost |
float |
对应金额 |
1.8else_payment_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
其他医保支付名称 |
cost |
float |
对应金额 |
1.9fund_subitem_situation
字段的参数:
字段 |
类型 |
说明 |
name |
string |
医保统筹分项名称 |
cost |
float |
对应金额 |
2.返回示例
返回结果示例
{
"request_id": "TID829be1cdd7974c4fafdd8a86943980cd",
"status": "OK",
"degree": 0,
"medical_result": {
"average_prob": 0.7799552732899758,
"billing_date": "2018-03-27",
"cash_payment_situation": [{
"cost": 211.58,
"name": "个人支付金额"
}],
"checksum": {
"cost_categories": true,
"total_check_payment": true,
"total_cost": true
},
"cost_categories": [{
"cost": 200.5,
"name": "治疗费"
}, {
"cost": 7.0,
"name": "西药费"
}, {
"cost": 4.08,
"name": "卫生材料费"
}],
"cost_detail_list": [{
"amount": 90.00001,
"check_info": null,
"medical_type": 3,
"name": null,
"ocr_name": "神经阴润麻醉/",
"price": 90.0,
"selfpay": null,
"selfpay_ratio": null,
"spec": null,
"unit_price": 0.9999998888889012
}, {
"amount": 1.0,
"check_info": null,
"medical_type": 3,
"name": null,
"ocr_name": "专科综合治疗合/",
"price": 4.0,
"selfpay": null,
"selfpay_ratio": null,
"spec": null,
"unit_price": 4.0
}],
"else_payment_situation": [],
"fund_payments": [{
"cost": 0.0,
"name": "基金支付"
}],
"fund_subitem_situation": [{
"cost": 0.0,
"name": "退休补充支付"
}, {
"cost": 0.0,
"name": "门诊大额支付"
}, {
"cost": 0.0,
"name": "残军补助支付"
}, {
"cost": 0.0,
"name": "单位补充险[原公疗]支付"
}],
"hospital_name":"北京市朝阳医院",
"medical_insurance_type": "城镇职工",
"medical_organization_type": "专科医院",
"note_no": "1701410255",
"patient_gender": 1,
"patient_name": "张三",
"person_assume_situation": [],
"person_payment_situation": [{
"cost": 0.0,
"name": "个人账户支付"
}],
"social_security_card_number": "110751190002",
"supplement_payment_situation": [],
"total_cost": 211.58,
"type": 1
}
}
四、错误码信息
状态码 |
status 字段 |
说明 |
400 |
INVALID_ARGUMENT |
请求参数错误 |
400 |
DETETION_FAILED |
图片检测失败 |
400 |
DOWNLOAD_ERROR |
网络地址图片获取失败 |
401 |
UNAUTHORIZED |
未授权或授权失败 |
401 |
KEY_EXPIRED |
账号过期 |
403 |
NO_PERMISSION |
无调用权限 |
403 |
OUT_OF_QUOTA |
调用次数超出限额 |
403 |
RATE_LIMIT_EXCEEDED |
调用频率超出限额 |
404 |
NOT_FOUND |
请求路径错误 |
500 |
INTERNAL_ERROR |
服务器内部错误 |
备注: 以上40X系列错误描述请参考reason
字段
输出样例
{
"status": "INVALID_ARGUMENT",
"reason": "must specify 'file' or 'url' argument",
"request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e"
}