用途:按用户定义的模式(schema)从临床笔记中抽取结构化字段,每个非空值附带原文片段(span)引用,每个缺失项显式记录为 null,并标注存在性、时间性与经历者等断言维度。
主要能力:流程分四步。一、定义模式:将用户请求转为字段集合,每个字段为 {desc, finding?, check?},desc 用笔记自身术语描述查找目标,finding: true 表示需分类断言,check 定义校验方式(terminology、range、date、pattern、enum 等),抽取前需与用户确认。二、抽取:将笔记(粘贴文本、文件路径、目录、PDF、FHIR 连接器、数据库查询)解析为纯文本,每条笔记以 {id, text} 调用工作流 workflows/extract-batch.js,每条笔记由无工具的隔离 worker 按 references/rules.md 处理,返回模式约束的记录。三、校验:在调用会话中确定性执行,对每个非空字段确认 span 在源文本中逐字出现并附 span_verified,再按 check.kind 分派校验(terminology 去重后经连接器查询并附 code/code_status/display;range 附 range_flag;date 附 date_ok;pattern/enum 附 check_ok)。四、报告:按(笔记, 字段)输出行,含 note_id、field、value、presence/temporality/experiencer、span、check,并给出完成摘要。
使用方式:工作流输入为 notes 数组、schema 与 rules;因笔记文本内联于参数,单次调用上限约数十条笔记。更大语料可运行 bun <skill dir>/scripts/batch.ts <notes-dir> <schema.json> records.jsonl,再回到第三步校验。可选导出 FHIR:经历者非患者映射 FamilyMemberHistory.condition,presence 映射 verificationStatus,temporality 映射 clinicalStatus,value 与术语校验结果映射 Condition.code,span 与 location 映射 Condition.note 或溯源扩展;此为对已校验记录的确定性转换,无模型调用。
适用场景:护理缺口推理、不良事件检测、试验资格筛选、预授权证据整理、登记册摘要等抽取原语。
限制:worker 无工具,仅返回所读内容,所有校验在第三步进行;模式中 check.via 所需的连接器缺失不阻断抽取,但相应字段保持未校验并在报告中点名;抽取记录含源笔记中的 PHI,默认写入 ~/.claude/data/healthcare/clinical-note-extract/<run-id>/,属本地工作状态,未经用户明确指示不得复制到共享盘或外部系统,用毕可删除。新增 check 类型需在第三步增加分支,上游不变。