对接案例 / 检查检验对接

检查检验对接

第三方检查检验系统接收 ABC 的送检信息并回传结果,也可以由第三方系统开单,再由机构在 ABC 完成检查检验并通过平台同步结果。

业务背景

机构在 ABC 开出检查检验项目后,需要把患者和送检项目信息交给合作的检查检验系统,由第三方完成检查检验,再把结果回传 ABC,供机构查看。ABC 承载机构侧的开单、收费和检查检验单,第三方负责自己的检查检验业务和结果处理。

前三种方式适用于 ABC 开单、第三方出结果,区别是通过事件、扫码还是定时查询获取送检信息。第四种方式适用于第三方系统开单、ABC 出结果。各方应按实际业务选择对应流程;以下图中的接口路径省略公共前缀 /api/v2/open-agency,点击节点可查看完整接口。

ABC 开单后何时进入检查检验流程取决于机构的执行规则:允许开单后执行时,可在开单后进入;要求收费后执行时,先完成收费。

方式一:订阅送检事件

第三方订阅事件 601 创建检验单。ABC 创建检查检验单后推送送检信息,第三方完成检查检验并回传结果。事件已包含单据详情,可以从中取得患者、项目和结果项信息。

第三方检查检验系统ABC机构员工查看事件 601 创建检验单详情,eventData 字段:id、orderNo事件 601 创建检验单eventData:id · orderNo开立检查检验项目按机构规则决定是否先收费创建检查检验单接收送检信息从事件中取得单据详情完成检查检验在第三方系统处理查看接口:PUT /examination/examination-sheet-detail/{id}按单据 ID 回传结果PUT /examination/examination-sheet-detail/{id}保存检查检验结果
  1. 机构员工开立检查检验项目按机构规则决定是否先收费
  2. ABC创建检查检验单随后推送事件 601 创建检验单eventData:id · orderNo
  3. 第三方检查检验系统接收送检信息从事件中取得单据详情
  4. 第三方检查检验系统完成检查检验在第三方系统处理
  5. 第三方检查检验系统按单据 ID 回传结果PUT /examination/examination-sheet-detail/{id}
  6. ABC保存检查检验结果结束
接口调用事件推送点击节点或事件编号查看详情

事件中的 eventData.id 是检查检验单 ID,用于按 ID 保存结果;eventData.orderNo 是检验单号(条形码)。最外层的 id 是事件消息 ID,不能作为检查检验单 ID。也可以使用 根据检验单号修改检验单信息 回传结果,两种回传方式按已有的单据标识选择。

需要同步退费或后续修改时,可分别订阅 602 检验单退费 和 604 检验单更新,按检查检验单 ID 关联原单据。回调接收要求见 订阅与接收指南。

方式二:扫描条码接单

机构员工在 ABC 打印检验条码。第三方扫描条码取得 orderNo,查询送检信息,完成检查检验后回传结果。

第三方检查检验系统ABC机构员工开立检查检验项目按机构规则决定是否先收费打印检验条码在 ABC 操作扫描条码取得检验单号 orderNo查看接口:GET /examination/by-order-no/{orderNo}/{type}按条码查询单据GET /examination/by-order-no/{orderNo}/{type}完成检查检验在第三方系统处理查看接口:PUT /examination/by-order-no/{orderNo}/{type}按检验单号回传结果PUT /examination/by-order-no/{orderNo}/{type}保存检查检验结果
  1. 机构员工开立检查检验项目按机构规则决定是否先收费
  2. 机构员工打印检验条码在 ABC 操作
  3. 第三方检查检验系统扫描条码取得检验单号 orderNo
  4. 第三方检查检验系统按条码查询单据GET /examination/by-order-no/{orderNo}/{type}
  5. 第三方检查检验系统完成检查检验在第三方系统处理
  6. 第三方检查检验系统按检验单号回传结果PUT /examination/by-order-no/{orderNo}/{type}
  7. ABC保存检查检验结果结束
接口调用事件推送点击节点或事件编号查看详情

按条码查询和回传使用同一个 orderNo,并指定 type 区分检验或检查。扫码得到的是检验单号,不能直接作为按 ID 查询或保存接口中的 id。

方式三:定时查询接单

第三方按时间定期查询检查检验单列表,根据每张单据的 id 获取详情,完成检查检验后回传结果。

第三方检查检验系统ABC机构员工开立检查检验项目按机构规则决定是否先收费创建检查检验单查看接口:GET /examination/all/query-by-date定时查询单据列表GET /examination/all/query-by-date查看接口:GET /examination/examination-sheet-detail/{id}逐单查询详情GET /examination/examination-sheet-detail/{id}完成检查检验在第三方系统处理查看接口:PUT /examination/examination-sheet-detail/{id}按单据 ID 回传结果PUT /examination/examination-sheet-detail/{id}保存检查检验结果
  1. 机构员工开立检查检验项目按机构规则决定是否先收费
  2. ABC创建检查检验单
  3. 第三方检查检验系统定时查询单据列表GET /examination/all/query-by-date
  4. 第三方检查检验系统逐单查询详情GET /examination/examination-sheet-detail/{id}
  5. 第三方检查检验系统完成检查检验在第三方系统处理
  6. 第三方检查检验系统按单据 ID 回传结果PUT /examination/examination-sheet-detail/{id}
  7. ABC保存检查检验结果结束
接口调用事件推送点击节点或事件编号查看详情

查询时明确时间范围、日期类型和分页参数。当前接口返回范围包含各状态的检查检验单,第三方需按实际状态选择要处理的单据;具体查询条件见 按时间查询检查检验单。

已有 orderNo 时,也可以按条码查询详情、按检验单号回传结果,见上方“扫描条码接单”流程。

方式四:第三方开单,ABC 出结果

第三方开单系统调用创建接口,把检查检验项目交给 ABC。机构在 ABC 完成检查检验并出具报告,再通过更新事件向第三方开单系统同步结果。

第三方开单系统ABC机构员工查看事件 604 检验单更新详情,eventData 字段:id、orderNo事件 604 检验单更新eventData:id · orderNo查看接口:POST /examination,返回 data.examinationSheets创建检查检验单POST /examination返回 data.examinationSheets保存单据对应关系关联外部单据与返回的每张检验单完成检查检验并出报告在 ABC 操作更新检查检验结果接收并同步结果按 eventData.id 匹配外部单据
  1. 第三方开单系统创建检查检验单POST /examination返回 data.examinationSheets
  2. 第三方开单系统保存单据对应关系关联外部单据与返回的每张检验单
  3. 机构员工完成检查检验并出报告在 ABC 操作
  4. ABC更新检查检验结果随后推送事件 604 检验单更新eventData:id · orderNo
  5. 第三方开单系统接收并同步结果按 eventData.id 匹配外部单据结束
接口调用事件推送点击节点或事件编号查看详情

创建接口返回 data.examinationSheets 列表,需保存每项的 id、orderNo 与外部单据的对应关系。收到事件 604 后,按 eventData.id 匹配,并从 eventData 读取该次更新的结果与报告。

604 是检验单更新通知,不是“最终报告完成”专用事件;同一张单据可多次更新。eventData.status 表示当前单据状态,eventData.results 和 eventData.reportUrl 分别是结果项和报告地址,不能仅凭收到 604 就认定最终报告已出具。

也可以使用返回的 id 调用 查询检查检验单详情 获取结果。项目应先完成对码,创建时按接口要求传入 ABC 的 productId。

常见问题

ABC 检验项目如何与第三方项目对码?

对接前,在 ABC 的“管理 → 诊疗项目 → 检验 → 项目详情”中,将“检验编码”维护为外部机构的项目编码。组合项和单项分别维护,读取时对应不同字段。

组合项:从送检信息的 products[i].productId 取得商品 ID,调用 获取商品详情,返回的 shortId 对应组合项的检验编码。合并模式下可能包含多个项目,应逐项读取 products。

单项:调用 查询检查检验单详情,其中 results[i].itemCode 对应检验单项的检验编码。组合项编码与单项编码分别用于匹配各自层级的项目。

通用商品映射说明见 商品映射。

多个检验项目如何共用一个条码和一份报告?

多个检验项目只采集一管血,需要共用一个条码、出一份报告时,先在 ABC 配置采样组合并规则:

  1. 进入“管理 → 检验设置 → 规则设置”,将项目合并规则切换为“按照采样组合并”。
  2. 进入“采样组设置”,维护采样组信息。
  3. 在“诊疗项目 → 检验 → 项目详情”中,为需要合并的项目选择相同的“采样组”。
  4. 在项目详情中,为这些项目设置相同的“送检机构”(界面字段为“检验机构”)。

连锁机构的“采样组”在总部维护,“送检机构”在下属机构维护。这里的“送检机构”指接收样本的外部检验机构。

ABC 开放平台 · 诊所管家

如有疑问,请扫码加入企业微信群咨询。

企业微信群二维码
没有匹配结果

诊所管家