报告单OCR

通过接口调用提交OCR识别任务,并通过接口查询任务完成状态。

  • 可识别内容:化验单、体检报告
  • 页面布局:SINGLE DOUBLE TABLE
  • 任务状态:CREATED PROCESSING DONE ERROR

创建任务

POST /tasks/?
  • format: full(详细信息),不传该参数则返回简单信息

请求数据包

{
    "task_id": "some_uuid",              // 任务id
    "img_url": "azure_blob_share_url",   // 图片分享链接
    "layout": "SINGLE|DOUBLE|TABLE",     // (可选) 表示报告单页面布局类型
    "callback_url": null                 // (可选) 任务完成后回调(例如:任务完成通知)
}

补充说明:

  1. task_id需要调用放根据自己的业务规则生成全局唯一的uuid,建议使用图片文件的hash;
  2. img_url需要get请求能直接打开,不需要额外设置HTTP头中的字段。推荐使用 Azure Blob Stroage 的分享临时签名(SAS);
  3. callback_url需要get请求能直接打开;

测试用img_url:

页面布局 样例
单列报告单 (SINGLE) Single24.jpg
双列报告单 (DOUBLE) Double01.jpg
表格报告单 (TABLE) Table04.jpg

成功返回 HTTP 200

返回简化后的信息(result结果只有检查项的名字和值)

{
    "task_id": "some_uuid",              // 和提交的值相同
    "img_url": "azure_blob_share_url",   // 和提交的值相同
    "callback_url": "callback_url",      // 和提交的值相同
    "layout": "SINGLE|DOUBLE|TABLE",     // 和提交的值相同
    "datetime": "ISOString",             // 任务创建的时刻
    "status": "CREATED",                 // 任务已创建,尚未开始处理
    "error": "",                         // 新创建的任务暂无错误
    "result": {}                         // 新创建的任务暂无结果
}

返回详细信息

{
    "task_id": "some_uuid",              // 和提交的值相同
    "img_url": "azure_blob_share_url",   // 和提交的值相同
    "callback_url": "callback_url",      // 和提交的值相同
    "layout": "SINGLE|DOUBLE|TABLE",     // 和提交的值相同
    "datetime": "ISOString",             // 任务创建的时刻
    "status": "CREATED",                 // 任务已创建,尚未开始处理
    "error": "",                         // 新创建的任务暂无错误
    "result": {}                         // 新创建的任务暂无结果
}

失败返回 HTTP 400

{"detail": "失败原因,例如:missing key img_url"}

查询任务

GET /tasks/<task_id>?
  • format: full(详细信息),不传该参数则返回简单信息

成功返回 HTTP 200

图像成功识别,以及因为图像质量不达要求的返回都是HTTP 200。质量不达标的图片识别结果通过 status=ERRORerror 字段来标识。

图像质量合格

{
    // 简化后的结构
    "task_id": "task_id",           // 任务id,从消息内容中得到
    "img_url": "img_url",           // 图片分享链接,从消息内容中得到
    "callback_url": "callback_url", // 任务完成后回调(例如:任务完成通知)
    "layout": "layout_type",        // 表示报告单页面布局类型
    "datetime": "ISOString",        // 任务创建的时刻
    "status": "DONE",               // 任务处理状态
    "error": "",                    // ocr错误信息,无错误时为""
    "result": {                     // 任务处理结果,"status" 值不为 DONE 时,"result" 为空字典{}
        "WBC": 6.1                  // 指标英文标准名:指标数值
        "other samples......"
    }
}

format=full 后返回的详细信息

{
    "task_id": "task_id",           // 任务id,从消息内容中得到
    "img_url": "img_url",           // 图片分享链接,从消息内容中得到
    "callback_url": "callback_url", // 任务完成后回调(例如:任务完成通知)
    "layout": "layout_type",        // 表示报告单页面布局类型
    "datetime": "ISOString",        // 任务创建的时刻
    "status": "DONE",               // 任务处理状态
    "error": "",                    // ocr错误信息,无错误时为""
    "result": {                     // 任务处理结果,"status" 值不为 DONE 时,"result" 为 空字典{}
        "WBC": [                    // 同一张体检报告可能有多行被检出同属于该指标项
            {
                "sim": 1,           // 相似度
                "idx": 1,           // 指标名称在 coords 中的位置
                "value": 6.1,       // 指标数值
                "idx_of_value": 2,  // 指标数值在 line 中的位置(第几个 block)
                "coords": [         // "coords" 是与指标名同一行的所有数据 block 的坐标列表
                    [101, 873, 438, 965], [942, 869, 1048, 928], [1341, 853, 1433, 910]
                ] 

            },
            {
                "sim": 0.9, 
                "idx": 0, 
                "idx_of_value": 2,  
                "value": null,
                "coords": [[101, 873, 438, 965], [942, 869, 1048, 928], [1341, 853, 1433, 910]]
            }
        ],
        "other samples......"
    }
}

图像质量不合格

  • IMAGE_PIXEL_ERROR: 图像分辨率低
  • IMAGE_SIZE_ERROR: 图像文件体积太小
  • IMAGE_DEFINITION_ERROR: 图像清晰度低 返回格式如下:
{
    "status": "ERROR",              // 任务处理状态:CREATED|PROCESSING|DONE|ERROR
    "error": "image_error_message", // 错误消息
    "result": {}                    // 出错时无结果,为{}
    // 其余字段与图像正确识别时返回一致...
}
附注:不同模式下图像质量要求
  • "SINGLE": 图像分辨率大于 30PPI,图像文件大于50kb
  • "DOUBLE": 图像分辨率大于 50PPI,图像文件大于60kb
  • "TABLE": 图像分辨率大于 60PPI,图像文件大于60kb
  • "DEFAULT": 图像分辨率大于 50PPI,图像文件大于60kb

"error": "image_error_message"中会返回关于图像阈值的详细信息,如与文档冲突,以error message为准

失败返回 HTTP 404

{"detail": "task not exists"}

results matching ""

    No results matching ""