/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.输入示例