医疗发票OCR
<h3>接口描述</h3>
<ul>
<li>支持识别全国各地门诊/住院发票的业务流水号、发票号、住院号、门诊号、病例号、姓名、性别、社保卡号、金额大/小写、收款单位、省市、医保统筹支付、个人账户支付等关键字段,其中北京/广东/河北/河南/江苏/山东/上海/天津/浙江等地区票据识别效果较佳。支持识别收费项目明细,并可根据不同省市地区返回对应的识别参数。</li>
<li>格式为 jpg(jpeg),bmp,png,图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,</li>
<li>url图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px</li>
</ul>
<h3>请求地址</h3>
<p><code>https://api.jumdata.com/ocr/medicalInvoice</code></p>
<h3>请求方式</h3>
<ul>
<li>POST</li>
</ul>
<h3>请求格式</h3>
<ul>
<li>form-data</li>
</ul>
<h3>请求参数</h3>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>String</td>
<td>是</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>Long</td>
<td>是</td>
<td>当前时间的毫秒数</td>
</tr>
<tr>
<td>sign</td>
<td>String</td>
<td>是</td>
<td>签名,见签名算法说明</td>
</tr>
<tr>
<td>file</td>
<td>File</td>
<td>否</td>
<td>医疗发票照片,文件类型,file、base64、url 必须提供一个</td>
</tr>
<tr>
<td>base64</td>
<td>String</td>
<td>否</td>
<td>照片base64字符串,file、base64、url 必须提供一个</td>
</tr>
<tr>
<td>url</td>
<td>String</td>
<td>否</td>
<td>照片 url,file、base64、url 必须提供一个</td>
</tr>
</tbody>
</table>
<h3>签名算法说明</h3>
<pre><code>sign = sha256( appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 appId、服务商分配的 appSecret,当前时间毫秒数 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:</p>
<pre><code class="language-java">String appId = "xyzxy2121zxyz";
String timestamp = "1555378976238";
String appSecret = "efcefcef1121cefcefc1212121";
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>正确返回样例</h3>
<pre><code class="language-json">{
"code": 200, // 返回码,详见返回码说明
"msg": "成功", // 返回码对应描述
"taskNo": "65605503936940344488", // 本次请求号
"charge": false, // 计费标志
"data": {
"Name": "张三", // 姓名
"Sex": "男", // 性别
"InsuranceType": "城镇职工", // 医保类型
"SocialSecurityNum": "", // 社保卡号
"Province": "浙江",
"HospitalType": "综合医院", // 医疗机构类型
"HospitalName": "浙江医院", // 医院名称
"ClinicNum": "12169298", // 门诊号
"HospitalNum": "0937829032", // 住院号
"BusinessNum": "40091198916051710196", // 业务流水号
"RecordNum": "0001268129", // 病例号
"AdmissionDate": "2020-06-01", // 入院时间
"DischargeDate": "2020-06-03", // 出院时间
"HospitalDay": "3", // 住院天数
"InvoiceNum": "0103152099", // 发票号码
"Payee": "李四", // 收款人
"Date": "2020年06月03日", // 开票日期
"InvoiceType": "门诊发票", // 票据种类
"ChargingUnit": "浙江医院", // 收款单位
"AmountInWords": "玖佰叁拾玖元肆角捌分", // 大写合计金额
"AmountInFiguers": "1939.48", //小写合计金额
"RefundAmount": "0.00", // 退费金额
"PrepayAmount": "0.00", // 预缴金额
"PersonalPayment": "0.00", // 个人账户支付
"InsurancePayment": "0.00", // 医保统筹支付
"PaymentAmount": "0.00", // 补缴金额
"CostCategories": [ // 项目大类:治疗费、检查费等项目大类 详见CostCategories字段说明
[
{
"name": "收费项目",
"word": "吨(座)位:"
},
{
"name": "金额",
"word": "11.88"
}
],
...
],
"CostDetail": [ // 明细类别:药物/检查的明细类别 详见CostDetail字段说明
[
{
"name": "编码",
"word": "01"
},
{
"name": "项目",
"word": "阿托伐他汀钙胶囊"
},
{
"name": "规格",
"word": "10mg*7支"
},
{
"name": "数量",
"word": "10"
},
{
"name": "单价",
"word": "29.3200"
},
{
"name": "金额",
"word": "293.20"
}
],
...
],
"RegionSupplement": [ // 地区字段:根据省市返回改地区特有的字段, 详见RegionSupplement字段说明
{
"name": "其他医保支付",
"word": "0.00"
},
{
"name": "年度门诊大额累计支付",
"word": "83.79"
},
{
"name": "起付金额",
"word": "777.11"
},
{
"name": "基金支付",
"word": "101.75"
},
{
"name": "本次支付后个人账户余额",
"word": "0.00"
},
{
"name": "个人支付金额",
"word": "837.73"
},
{
"name": "交易流水号",
"word": "111100030Z160517006328"
},
{
"name": "自付一",
"word": "795.06"
},
{
"name": "自付二",
"word": "42.67"
},
{
"name": "累计医保内范围金额",
"word": "1419.70"
},
{
"name": "门诊大额支付",
"word": "83.79"
},
{
"name": "本次医保范围内金额",
"word": "896.81"
},
{
"name": "退休补充支付",
"word": "17.96"
},
{
"name": "超封顶金额",
"word": "0.00"
},
{
"name": "残军补助支付",
"word": "0.00"
},
{
"name": "单位补充险[原公疗]支付",
"word": "0.00"
},
{
"name": "自费",
"word": "42.67"
}
]
}
}</code></pre>
<h3>错误返回样例</h3>
<pre><code class="language-json">{
"msg": "图片格式错误,支持的图片格式为:PNG、JPG、JPEG、BMP",
"code": 400
}</code></pre>
<h3>CostCategories字段说明</h3>
<p>包含多个array,每个数组包含多个object,见以下参数</p>
<table>
<thead>
<tr>
<th>字段</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>字段名,包括:收费项目、金额</td>
</tr>
<tr>
<td>word</td>
<td>name字段对应的识别结果</td>
</tr>
</tbody>
</table>
<h3>CostDetail字段说明</h3>
<p>字段包含多个array,每个数组包含多个object,见以下参数</p>
<table>
<thead>
<tr>
<th>字段</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>字段名,包括:编码、项目、规格、数量、单价、金额</td>
</tr>
<tr>
<td>word</td>
<td>name字段对应的识别结果</td>
</tr>
</tbody>
</table>
<h3>RegionSupplement字段说明</h3>
<p>RegionSupplement字段包含多个object,不同省市返回字段不同,见以下参数</p>
<table>
<thead>
<tr>
<th>省市</th>
<th><div style="width:420px">返回参数(name)</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>北京</td>
<td>个人支付金额、其他医保支付、交易流水号、基金支付、单位补充险[原公疗]支付、年度门诊大额累计支付、本次医保范围内金额、本次支付后个人账户余额、残军补助支付、累计医保内范围金额、自付一、自付二、自费、起付金额、超封顶金额、退休补充支付、门诊大额支付</td>
</tr>
<tr>
<td>广东</td>
<td>个人支付金额、其他医保支付</td>
</tr>
<tr>
<td>河北</td>
<td>个人账户余额、统筹累计支付、自负、自费、起付标准</td>
</tr>
<tr>
<td>河南</td>
<td>个人支付金额、其他医保支付</td>
</tr>
<tr>
<td>江苏</td>
<td>个人支付金额、其他医保支付</td>
</tr>
<tr>
<td>山东</td>
<td>个人支付金额、其他医保支付</td>
</tr>
<tr>
<td>上海</td>
<td>分类自负、历年余额、本年余额、现金支付、自负、自费、附加支付</td>
</tr>
<tr>
<td>天津</td>
<td>个人支付金额、其他医保支付</td>
</tr>
<tr>
<td>浙江</td>
<td>历年余额、历年支付、基金支付、本年余额、本年支付、现金支付</td>
</tr>
</tbody>
</table>
<h3>code返回码说明</h3>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功 (计费)</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>接口地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>系统维护,请稍候再试</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>603</td>
<td>余额不足请充值</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>606</td>
<td>调用超限,请稍候再试</td>
</tr>
<tr>
<td>607</td>
<td>ip不在白名单</td>
</tr>
<tr>
<td>609</td>
<td>请求过于频繁,请稍候再试</td>
</tr>
<tr>
<td>610</td>
<td>请求超时</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>