/ocr/medical/v2/medical_invoice
1.接口描述
该 API 用于识别提取医疗发票上的字段信息。
- 图片要求:
- 格式为 JPG(JPEG), PNG
- 宽和高大于 128px, 小于等于 6000px
- 小于等于 5 MB
请求方式
POST
https://cloudapi.deepfinch.com/ocr/medical/v2/medical_invoice/basic/{province}
支持省份
| province |
说明 |
| beijing |
北京 |
| tianjin |
天津 |
| shanghai |
上海 |
| zhejiang |
浙江 |
| shandong |
山东 |
| henan |
河南 |
| jiangsu |
江苏 |
| guangdong |
广东 |
| hebei |
河北 |
| shaanxi |
陕西 |
| sichuan |
四川 |
| liaoning |
辽宁 |
| jilin |
吉林 |
| anhui |
安徽 |
| guangxi |
广西 |
| hubei |
湖北 |
| hunan |
湖南 |
| shanxi |
山西 |
| chongqing |
重庆 |
| fujian |
福建 |
| gansu |
甘肃 |
| guizhou |
贵州 |
| hainan |
海南 |
| yunnan |
云南 |
| jiangxi |
江西 |
| neimenggu |
内蒙古 |
| ningxia |
宁夏 |
| xinjiang |
新疆 |
| heilongjiang |
黑龙江 |
| e_invoice |
电子发票 |
URL调用不加后缀province(省份标识),则表示通用门诊住院发票识别提取
调试工具
Debugging Tool
2.请求参数
2.1 请求头域
| 字段 |
类型 |
必需 |
描述 |
| X-DF-API-ID |
string |
是 |
API调用凭证信息,详细信息请参考API调用 |
| X-DF-API-SECRET |
string |
是 |
API调用凭证信息,详细信息请参考API调用 |
2.2 请求体
| 字段 |
类型 |
是否必需 |
描述 |
| file |
file |
见下方注释 |
需上传的图片文件,上传本地图片进行检测时选取此参数 |
| url |
string |
见下方注释 |
图片网络地址,采用抓取网络图片方式时需选取此参数 |
| auto_rotate |
boolean |
否 |
自动旋转图片,true开启,false不开启;默认不开启 |
请求参数 file 与 url 二选一。
url 中若含有特殊字符,则需要对这些字符进行转义,所有中文和特殊字符必需以UTF-8编码转义。
目前支持 http/https 协议的网络地址。下载限时 5s,超时后仍未下载完成则属于失败。
参数 file 需把图片文件以 multipart/form-data 的形式放到 POST 消息体中。
3.返回参数
| 字段 |
类型 |
说明 |
| request_id |
string |
本次请求的id |
| status |
string |
状态,正常为 OK |
| degree |
int |
图片旋转角度 |
| medical_result |
object |
票据信息提取结果 |
3.1 medical_result 字段的参数:
| 字段 |
类型 |
说明 |
| note_title |
string |
票据标题 |
| type |
int |
票据类型:0-未知,1-门诊票据,2-住院票据 |
| note_no |
string |
票据号码 |
| patient_name |
string |
患者姓名 |
| patient_gender |
int |
性别:0-未知,1-男, 2-女 |
| billing_date |
string |
开票日期 |
| cost_categories |
array |
大类项目 |
| cost_detail_list |
array |
细类项目 |
| hospital_name |
string |
医院名称 |
| start_hospital_date |
string |
入院日期 |
| end_hospital_date |
string |
出院日期 |
| hospital_days |
float |
住院天数 |
| total_cost |
float |
发票总金额 |
| medical_insurance_type |
string |
医保类型,根据票面内容提取 |
| medical_organization_type |
string |
医疗机构类型 |
| service_serial_no |
string |
业务流水号 |
| social_security_card_no |
string |
社会保障号码 |
| payments_info |
array |
支付信息项 |
| checksum |
object |
票据内校验结果:-1-无法校验,0-校验不通过,1-校验通过,根据票内逻辑关系校验 |
| charging_units |
string |
收款单位 |
| hospital_no |
string |
住院号/门诊号 |
| payee |
string |
收款人 |
| reviewer |
string |
复核人 |
| hospital_departments |
string |
住院科别 |
| work_unit |
string |
工作单位 |
| payment_channel |
string |
支付渠道 |
| medical_insurance_no |
string |
医保编号 |
| medical_card_no |
string |
就诊卡号 |
| check_code |
string |
校验码 |
| note_code |
string |
票据代码 |
| medical_record_no |
string |
病历号 |
| unified_social_credit_code |
string |
交款人社会统一信用代码 |
| treatment_date |
string |
就诊日期 |
3.1.1 checksum 字段的参数:
| 字段 |
类型 |
说明 |
| total_cost |
int |
总金额 |
| cost_detail_list |
int |
细目金额,细目金额之和是否等于总金额 |
| cost_categories |
int |
大类金额,大类金额之和是否等于总金额 |
| note_no |
int |
发票号,仅北京门诊校验(非电子票) |
| billing_date |
int |
开票日期,仅北京医保门诊校验(非电子票) |
| payments_class_b |
int |
自付二,仅北京、上海、浙江门诊(非电子票) |
| payments_class_c |
int |
自费,仅北京、上海、浙江门诊(非电子票) |
3.1.2 cost_categories 字段的参数:
| 字段 |
类型 |
说明 |
| name |
string |
大类单项名称 |
| cost |
float |
大类单项金额 |
3.1.3 cost_detail_list 字段的参数:
| 字段 |
类型 |
说明 |
| ocr_name |
string |
细目名称,基于票面名称拆解后细目名称,建议细目名称用此条 |
| cost |
float |
细目金额 |
| amount |
float |
细目数量 |
| unit_price |
float |
细目单价 |
| spec |
string |
规格 |
| unit |
string |
单位 |
| medical_level |
string |
医保等级,根据票面内容提取 |
| selfpay_ratio |
float |
自付比例,取值范围:[0-1] |
| selfpay |
float |
自付金额,从票面提取或通过细目金额 * 自付比例计算 |
| medical_type |
int |
项目类型:0-未知,1-西药,2-中药,3-诊疗项目 |
| class |
string |
细目所属大类,根据票面内容提取 |
| item_coding |
string |
项目编码,根据票面内容提取 |
| origin_ocr_name |
string |
票面上原始打印的细目名称 |
| name |
string |
通过细目名称匹配的医保库名称 |
| check_amount_unitprice_cost |
int |
细目校验规则:单价(unit_price)*数量(amount)=金额(cost),1-成立,0-不成立,-1-缺失规则字段 |
3.1.4 payments_info 的字段:
| 字段 |
类型 |
说明 |
| name |
string |
名称 |
| cost |
float |
金额 |
| check_info |
int |
金额校验是否通过:-1-无法校验,0-校验不通过,1-校验通过 |
3.1.4.1 payments_info中`name`的取值:
以下字段不同地区票面打印内容不一致,我方将含义一致的词进行了统一化处理,不同发票相同含义词均按以下词表中的词固定输出,如需对应的词库请联系商务索取
例如:北京的“自付二”和上海“分类自负”含义一致,均输出为“自付二”
以下字段如票面中不包含或未提取到,不做输出
| 字段 |
| 预缴金额 |
| 补缴金额 |
| 退费金额 |
| 医保统筹基金支付 |
| 其他支付 |
| 个人账户支付 |
| 个人现金支付 |
| 附加基金支付 |
| 医保账户余额 |
| 当年支付 |
| 历年支付 |
| 本年余额 |
| 历年余额 |
| 按比例自付 |
| 个人自付 |
| 自付一 |
| 自付二 |
| 个人自费 |
| 起付标准 |
| 本次医保范围内金额 |
| 累计医保内范围金额 |
| 年度门诊大额累计支付 |
| 超封顶金额 |
| 门诊大额支付 |
| 退休补充支付 |
| 残军补充支付 |
| 单位补充险[原公疗]支付 |
| 统筹累计支付 |
| 公务员补助 |
| 师职补助 |
| 大病保险报销 |
| 大病补充报销 |
| 医疗救助 |
| 产前检查费 |
| 民政救助 |
| 大病救助 |
| 伤残补助 |
| 其他补助 |
| 商业保险 |
| 医院承担 |
返回结果示例
{
"degree": 0,
"medical_result": {
"billing_date": "2020-11-29",
"charging_units": "重庆医科大学附属儿童医院",
"check_code": "8c2e08",
"checksum": {
"billing_date": -1,
"cost_categories": 1,
"cost_detail_list": -1,
"note_no": -1,
"payments_class_b": -1,
"payments_class_c": -1,
"total_cost": 1
},
"cost_categories": [
{
"cost": 270,
"name": "西药费"
}
],
"cost_detail_list": [],
"end_hospital_date": null,
"hospital_days": null,
"hospital_departments": null,
"hospital_name": "重庆医科大学附属儿童医院",
"hospital_no": "1201129114299",
"medical_card_no": null,
"medical_insurance_no": null,
"medical_insurance_type": "城镇居民医保",
"medical_organization_type": "综合医院",
"medical_record_no": null,
"note_code": "50060120",
"note_no": "0021528790",
"note_title": "重庆市医疗门诊收费票据(",
"patient_gender": 1,
"patient_name": "XXX",
"payee": "XX",
"payment_channel": null,
"payments_info": [
{
"check_info": 0,
"cost": 0,
"name": "医保统筹基金支付"
},
{
"check_info": 0,
"cost": 0,
"name": "其他支付"
},
{
"check_info": 0,
"cost": 0,
"name": "个人账户支付"
},
{
"check_info": 0,
"cost": 270,
"name": "个人现金支付"
},
{
"check_info": 0,
"cost": 0,
"name": "个人自付"
},
{
"check_info": 0,
"cost": 0,
"name": "个人自费"
}
],
"reviewer": "何洁",
"service_serial_no": "120112911429920201129100300",
"social_security_card_no": null,
"start_hospital_date": null,
"total_cost": 270,
"treatment_date": "2020-11-29",
"type": 1,
"unified_social_credit_code": "500113201411047812",
"work_unit": null
},
"status": "OK"
}
4.错误码
| 状态码 |
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"
}
5.输入示例