医疗票据 OCR 识别实战:自动识别医院发票 / 检测报告(完整接入指南)

0 阅读4分钟

医疗票据 OCR 识别实战:自动识别医院发票 / 检测报告(完整接入指南)

本文从真实医疗场景出发,讲清医疗票据 OCR 的核心难点,并给出可直接落地的 API 接入方案。

在很多系统中,有一类非常“刚需但难做”的能力:

👉 医疗票据识别(医院发票 / 检查报告 / 检测单)

典型应用场景:

  • 🏥 医疗报销系统
  • 🧾 保险理赔系统
  • 🏢 企业费用报销
  • 🤖 RPA 自动录入

但实际落地时你会发现:

❗ 医疗 OCR 比普通 OCR 难度高很多

这篇文章带你完整拆解。


一、医疗 OCR 能识别哪些内容?

以常见医疗票据为例,可以自动提取:

📄 医疗发票

  • 医院名称
  • 发票号码
  • 就诊日期
  • 总金额
  • 医保金额

image.png


🧪 检测报告 / 检验单

  • 患者姓名
  • 检测项目
  • 检测结果
  • 单位
  • 参考值范围

image.png


👉 这些数据可以直接用于:

  • 自动报销
  • 自动审核
  • 数据入库

二、医疗 OCR 为什么更难?

很多团队一开始用“通用 OCR”,结果效果很差,原因在这里👇


❗ 1:版式极其复杂

医疗单据通常:

  • 表格多
  • 字段不固定
  • 排版混乱

❗ 2:字体 & 打印质量不稳定

  • 手写 + 打印混合
  • 低清晰度扫描
  • 模糊 / 复印件

❗ 3:字段语义复杂

例如:

  • “参考值” vs “检测值”
  • 单位多样(mg/dL、mmol/L)

👉 需要结构化理解,而不仅是识别文字。


三、标准技术流程(工程落地)

上传图片 / PDF
   ↓
图像预处理(去噪 / 增强 / 矫正)
   ↓
OCR 文本检测 + 识别
   ↓
版面分析(表格 / 字段)
   ↓
结构化输出(JSON

👉 核心不是 OCR,而是:

“OCR + 结构化解析”


四、医疗 OCR API 接入实战


Step 1:准备输入

支持:

  • 手机拍照
  • PDF 文件
  • 扫描件

Step 2:调用医疗 OCR API

如果你在做系统集成,建议直接参考完整接口文档(多语言示例齐全),可以快速跑通。支持免费在线测试,可以先测试效果后,再接入API

👉 说明文档: market.shiliuai.com/medical-ocr

image.png


示例代码👇

image.png

# Python 示例
# API文档:https://market.shiliuai.com/doc/doc-extract

# -*- coding: utf-8 -*-
import requests
import base64
import json

# 请求接口
URL = "https://ocr-api.shiliuai.com/api/doc_extract/v1"

# 图片/pdf文件转base64
def get_base64(file_path):
    with open(file_path, "rb") as f:
        data = f.read()
    return base64.b64encode(data).decode("utf8")

def demo(appcode, file_path):
    # 请求头
    headers = {
        "Authorization": "APPCODE %s" % appcode,
        "Content-Type": "application/json"
    }

    # 请求体
    b64 = get_base64(file_path)
    data = {
        "file_base64": b64,
        "prompt": ""
    }

    # 请求
    response = requests.post(url=URL, headers=headers, json=data)
    content = json.loads(response.content)
    print(content)

if __name__ == "__main__":
    appcode = "你的APPCODE"
    file_path = "本地文件路径"
    demo(appcode, file_path)
// JS 示例
// API文档:https://market.shiliuai.com/doc/doc-extract
// 需 Node.js 18+(内置 fetch)
const fs = require('fs');

const apiUrl = 'https://ocr-api.shiliuai.com/api/doc_extract/v1';
const appcode = '你的APPCODE';
const filePath = '本地文件路径';

async function main() {
  const fileBase64 = fs.readFileSync(filePath).toString('base64');

  const res = await fetch(apiUrl, {
    method: 'POST',
    headers: {
      Authorization: 'APPCODE ' + appcode,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ file_base64: fileBase64, prompt: '' })
  });

  const text = await res.text();
  if (!res.ok) {
    console.error('Http code:', res.status, text);
    return;
  }
  console.log(JSON.stringify(JSON.parse(text), null, 2));
}

main().catch(console.error);

Step 3:解析结构化结果

示例返回:

成功示例:
{
    'code': 200,
    'msg': 'OK',
    'msg_cn': '成功',
    'success': True,
    'file_id': file id,
    'request_id': request id,
    'data': {
        "page_count": 5,        // int, 文件页面总数
        "process_pages": 5,     // int, 处理页面数
        "content": content      // 文档提取结果
    }
}
失败示例:
{
    'code': error code,
    'msg': error message,
    'msg_cn': 中文错误信息,
    'success': False,
    'file_id': file id,
    'request_id': request id,
    'data': {}
}

👉 可直接用于:

  • 数据入库
  • 报销审核
  • 风控判断

五、实战中的常见坑


❗ 坑 1:图片质量太差

问题:

  • 模糊
  • 低分辨率
  • 压缩严重

👉 建议结合图片增强能力(如超分辨率)一起使用。


❗ 坑 2:用通用 OCR + 正则解析

结果:

  • 维护成本极高
  • 容易出错

👉 建议直接使用结构化 OCR。


❗ 坑 3:不同医院格式差异大

  • A 医院 vs B 医院格式不同
  • 检测单模板不统一

👉 必须使用具备泛化能力的模型。


六、在线工具 vs API 接入


✅ 在线工具适合

  • 单张识别
  • 人工处理
  • 快速测试效果

如果你只是想验证效果,可以先在线跑一张:market.shiliuai.com/tools/medic…

👉 在线体验

image.png


✅ API 更适合

  • 报销系统
  • 保险系统
  • 企业 SaaS
  • 批量处理

七、一个更完整的方案

在真实项目中,医疗 OCR 通常不会单独使用,而是:

👉 组合方案

  • OCR(识别)
  • 图片增强(提高清晰度)
  • 抠图(去干扰背景)

👉 可以参考完整方案:《一站式 OCR + 图片处理技术方案》


八、最后

医疗 OCR 的价值在于:

  • 提高自动化程度
  • 降低人工成本
  • 提升数据准确率

如果你的系统涉及:

  • 医疗报销
  • 保险理赔
  • 企业费用管理

👉 这是一个非常值得投入的能力模块。