医疗发票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>