返回顶部
c

caremax-ocrCareMax OCR

Upload medical reports and run OCR recognition via CareMax Health API. After upload succeeds, agents MUST immediately run OCR on the same session unless the user explicitly asked for upload-only. Session-based: upload creates a session, OCR processes all files, confirm saves all reports atomically. Resumes incomplete sessions. Trigger terms: upload report, scan report, OCR, recognize report, extract indicators, health report image, check-up photo, upload, scan, extract, resume upload, continue u

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
119
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

caremax-ocr

CareMax 上传与OCR

需要caremax-auth作为同级目录 (../caremax-auth/)。如果缺失,请告知用户先安装caremax-auth(例如 npx skills add KittenYang/caremax-skills)。

上传医疗报告文件(PDF、JPG、PNG、HEIC),并通过AI驱动的OCR提取结构化数据。

基于会话的工作流程:上传 → OCR → 审核 → 确认。所有操作均在单个会话中完成。

检查点与恢复:每个流程步骤都会将进度保存到数据库。如果OCR中途失败(LLM超时、工作进程崩溃、网络错误),重试时会自动从最后一个检查点恢复——不会丢失任何工作。

代理默认行为(必须遵守)

  1. 1. 上传和OCR是一个连续的工作流程。 当用户上传报告文件(或要求您上传/扫描/识别体检报告等)时,在$UPLOAD成功返回后,您必须在同一轮中使用返回的sessionid运行$OCRSTREAM id>。不要在仅执行upload.sh后就结束任务。
  2. 仅上传例外: 仅当用户明确要求只上传不识别时(例如只上传、不要识别、别跑OCR、只存文件),才跳过立即执行OCR。如果不确定,默认在上传后运行OCR。
  3. 进度: 将每行SSE数据实时流式传输给用户(normalize / ocr / structure / ...)。
  4. 在step=done之后: 始终继续执行步骤3(审核)。不要自动调用确认——等待用户批准后再执行步骤4。

前置条件 — 自动认证(必须遵守)

bash
APICALL=bash ../caremax-auth/scripts/api-call.sh
UPLOAD=bash ../caremax-auth/scripts/upload.sh
OCRSTREAM=bash ../caremax-auth/scripts/ocr-stream.sh

如果任何脚本返回nocredentials → 运行bash ../caremax-auth/scripts/auth-flow.sh [baseurl](从本技能的根目录执行,与caremax-auth/同级)。

步骤1:上传(创建会话)

bash
$UPLOAD /path/to/report1.jpg /path/to/report2.jpg /path/to/report.pdf

返回:
json
{
session_id: uuid-xxx,
member_id: uuid-yyy,
files: [
{ id: file-1, original_name: report1.jpg },
{ id: file-2, original_name: report2.jpg },
{ id: file-3, original_name: report.pdf }
]
}

保存session_id。

步骤2:带实时进度的OCR

bash
$OCRSTREAM

每行输出一个JSON:
json
{step:resume,progress:1,message:从检查点恢复(上次完成:ocr)...}
{step:normalize,progress:5,message:加载文件 1/3...}
{step:ocr,progress:30,message:OCR 第2/3页:report2.jpg}
{step:ocr_retry,progress:35,message:重试OCR 第1/1页:report1.jpg}
{step:structure,progress:62,message:检测报告分组...}
{step:structure,progress:75,message:结构化报告 2/2...}
{step:normalize_indicators,progress:88,message:标准化中...}
{step:done,progress:100,data:{session_id:...,reports:[...],resumed:true}}

在每行到达时向用户显示进度。

关键进度事件

步骤含义
resume流程正在从保存的检查点恢复(不是从头开始)
info
信息性消息(例如从哪个步骤恢复) | | normalize | 加载和预处理文件 | | ocr | 逐页OCR文本提取 | | ocr_retry | 仅重试之前失败的页面 | | structure | AI分析和分组报告 | | normalize_indicators | 标准化指标名称 | | done | 完成 — data字段包含完整结果 | | error | 流程失败 — 查看message了解详情 |

如果出现step=resume,告知用户:正在从上次的进度继续处理(不需要重新开始)

$OCRSTREAM的错误响应

代码含义操作
processinginprogress另一个OCR运行仍在进行中等待并重试,或轮询/status
ocrlimitexceeded
免费OCR配额已用尽 | 告知用户升级 | | (无代码) | 流程错误(LLM超时等) | 重试 — 将自动从检查点恢复 |

步骤2b:轮询状态(当SSE断开时)

如果SSE流断开(网络超时、终端关闭),使用状态端点检查进度:

bash
$APICALL GET /api/skill/sessions//status

返回:
json
{
session_id: uuid,
status: processing,
pipeline: {
completedStep: ocr,
pageCount: 5,
ocrCompleted: 4,
ocrFailed: 1,
reportCount: 0,
errors: [{step:ocr,pageIndex:2,message:PaddleOCR超时}]
},
error: null,
is_stale: false
}

字段说明:

  • - status = processing + isstale = false → OCR仍在正常运行
  • status = processing + isstale = true → 工作进程崩溃/超时,可以安全重试OCR
  • status = awaiting_confirm → OCR完成!获取会话详情以查看结果
  • status = uploading + 存在error → 上次OCR尝试失败,重试将从检查点恢复
  • pipeline.completedStep → 流程执行到的步骤(normalize → ocr → structure → done)
  • pipeline.ocrFailed → OCR失败的页数(下次尝试时将重试)

轮询工作流程:

  1. 1. 调用$OCRSTREAM → SSE中途断开
  2. 每5-10秒轮询GET /sessions//status
  3. 当status = awaitingconfirm → 使用GET /sessions/获取完整结果
  4. 如果status = uploading(失败)→ 使用$OCRSTREAM重试(自动恢复)
  5. 如果isstale = true → 使用$OCRSTREAM重试(从检查点自动恢复)

步骤3:审核结果(必须执行)

解析step=done的数据。显示格式化摘要。不要自动确认。

每个报告都有一个reportType字段:lab、genetic、imaging、pathology或other。

检验报告(reportType = lab)

显示指标表格:

📋 报告 1: [lab] 尿生化 (编号: 114431194)
日期: 2025-02-05 医生: 俞海瑾
指标: 12 个 (3 个异常)
┌──────────────────────┬────────┬──────────┬────────────┬──────┐
│ 指标 │ 结果 │ 单位 │ 参考范围 │ 异常 │
├──────────────────────┼────────┼──────────┼────────────┼──────┤
│ 24H尿钠 │ 130.0 │ mmol/24h │ 137-257 │ ⬇ │
└──────────────────────┴────────┴──────────┴────────────┴──────┘

非检验报告(reportType = genetic / imaging / 等)

显示摘要 + 章节:

📋 报告 1: [genetic] 基因检测报告
日期: 2025-09-12 检测机构: 南京申友医学检验所
摘要: 心血管18项基因检测...高血压、冠心病风险一般...
段落: 18 sections
[gene_variant] 高血压 — 风险: 正常
[gene_variant] 冠心病 — 风险: 一般
[medication] ACEI类降压药 — 正常代谢型
...

支持的文件类型

  • - 图片(JPG/PNG/HEIC):PaddleOCR → 结构化
  • PDF(任意大小):Azure Mistral Document AI 分页 → 结构化
- 大型PDF(例如23页基因报告、9.6MB)完全支持

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 caremax-ocr-1775942437 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 caremax-ocr-1775942437 技能

通过命令行安装

skillhub install caremax-ocr-1775942437

下载

⬇ 下载 caremax-ocr v1.0.0(免费)

文件大小: 4.99 KB | 发布时间: 2026-4-12 09:19

v1.0.0 最新 2026-4-12 09:19
Initial publish to ClawHub

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部