1. 任务背景

  从上世纪70年代以MYCIN为代表的医学自然语言处理探索开始,临床决策支持系统的落地便依赖于临床知识工程与软件技术的深度融合。Newton等人从时间动态视角进一步揭示并丰富了这一“交叉机制”的内涵:临床医生对CDSS的接受与使用并非一次性事件,而是一个随系统使用阶段不断演变的过程,并强调,必须让临床医生在系统实施后尽早并持续参与,以及时发现和解决不同阶段涌现的障碍。可见,真正具有代表性和生命力的CDSS,不仅需要在研发阶段实现医工协同,更要求将临床一线的深度参与贯穿于设计、部署、动态评估和长期优化的全生命周期——唯有如此,算法和系统才能真正嵌入临床实践,实现可持续的应用与推广。由此而衍生的数据治理以及科研服务,为医学科技的发展提供了动力。然而,临床决策支持系统不能够由临床医生独立完成,在临床医生提供临床知识,企业提供IT开发能力的“医工交叉”的场景下,知识产权的归属的问题,大大阻碍了临床医生参与到临床决策支持系统的研发的积极性。

  随着通用大模型的兴起,人人都是数字化创新者的背景下,我们看到了通过自动编码技术来破局的可能性。目前,在通用领域,大语言模型的自动写代码的能力,已经获得程序员的广泛认可,并以广泛应用。在2025 ICPC竞赛中,OpenAI成为唯一一个拿下满分的团队。在医疗领域,MedAgentGym就是一个基于开源小模型(small language model,SLM),在医学自动写代码的主题进行了优化,性能达到了辅助编程的能力水平,可以依赖大语言模型来开发临床决策支持/科研的和核心算法。

  在AI的加持下,当验证的算法从实验室进入医院信息系统,会遇到异构性系统的问题。要发挥这些算法的最大效能,要与不同的系统之间适配,在开发阶段按照标准进行开发是最优解决方案,构建坚实的数据底座。有研究人员发现,大语言模型具备生成符合标准的HL7 FHIR的能力,这大大降低了实现标准的技术成本。FHIR-GPT这样的能力,使得不同健康医疗单位信息系统之间就可以通过AI Agent 进行信息的互联互通,可以互相在对方医院“沙盒”中运行自己的代码。

  在沙盒中运行代码是为了规避系统运行风险,但随之而来的核心问题依然亟待回答:生成的代码是否符合国际互通标准?其安全性与可解释性如何有效管理与审计?当AI系统为科研服务生成数据时,如何在确保数据质量、代表性并避免隐含偏见的前提下,进一步支撑临床决策?

  回顾我们去年的评测,参与者仅需生成基于规则的算法,但准确率仅维持在40%左右——这恰恰反映出纯规则系统在覆盖医学逻辑多样性与处理自然语言需求时的天然局限。也正因如此,今年我们计划引入小型语言模型(SLM),希望借助其对自然语言意图的理解能力与少样本学习优势,将规则生成的准确率提升至更高水平。然而,SLM在带来性能增益的同时,也引入了幻觉输出、可解释性下降、输出稳定性波动等新挑战。

  本次评测任务是CHIP2025-CP03的升级测评,本年度提供了一共17个类别共48条临床试验入组/出组问题,难度各异。每一个问题会提供问题和问题的FHIR FSH定义,参赛团队据此生成并按照FHIR 消息Bundle的标准递交NLP代码。我们将重点评估大语言模型指引小语言模型在这此任务上的均质性等指标,为后期科研,产品研发以及政策决策等提供数据和理论依据。

2. 任务数据集

2.1 临床试验纳排条件

  来源:中国临床试验注册中心的注册试验。结构:17类别,共48条纳排条件,51位患者(50个案报道)。

类别数量类别数量
肿瘤状态(Neoplasm Status)2护理(Nursing)2
酒精摄入(Alcohol Consumer)1器官与组织状态(Organ or Tissue Statu)3
知情同意(Consent)1风险评估1
设备(Device)1体征1
诊断(Diagnostic)6吸烟状态3
疾病(Disease)2症状4
就诊(Encounter)1治疗或手术7
实验室检查(Laboratory Examinations)6多类别(Multiple)1
非肿瘤疾病分期(None-Neoplasm Stage)1//

2.2 数据字段说明

  数据集中各列的含义如下:

字段说明
index表示数据集中每个纳排条件文本的原始索引。
json存储为JSON格式的纳排条件数据,在这里仅需要使用其中的中文文本。
id纳排条件的原始索引。
label纳排条件文本的分类信息。
question纳排条件文本。
deepquery_id关联到查询系统的唯一ID。
FHIR_FSH包含FHIR标准中的FSH(FHIR Shorthand)代码,用于定义临床问题。
NLP_CODE这列是需要参赛团队生成的自然语言处理的代码,用于解析原始数据生成对应FHIR Profile的FHIR resources。
FHIR_SERVICE_CODE这列是调用FHIR service API查询符合标准的患者。
positive_doc_patient_index匹配到的患者ID。

2.3 纳排条件文本的FSH定义

  不是所有纳排条件文本都有FSH定义(FHIR 扩展)。如果没有,就是用FHIR core标准可以回答,如果有就是需要扩展才能回答。在项目release之初,我们会release所有问题的FSH定义。局限于发布的样本数量,并不是每一个FSH对应的问题,有阳性结果。

  FHIR profile的定义和构建是一个动态地不断调整的过程。因此,在问题所对应FSH定义在最终评测阶段的最终版本为依据。

2.4 医疗文档

  我们从中华案例成果数据库(https://cmcr.yiigle.com/)采集的个案报道作为患者数据源。通过人工标注,将原文切分成不同主题。最终的输入主题的列表(模拟电子病历数据)。每一个主题有如下信息:其中只有end_datetime是可选的。这些数据作为候选患者列表,共计51条。

  下面是某个患者数据中,主诉主题的一个样例:

{
  "end_datetime": "",
  "text": "在例行体检中发现肝脏存在包块。",
  "timestamp": "2023-09-08T23:02",
  "topic": "主诉"
}

  数据按照纳排条件进行拆分,共分为训练集、测试集A榜、测试集B榜3个数据集,分别包含16个纳排条件。患者数据均为51个。

3. 任务要求

3.1 FHIR Bundle生成

  输入:测评组织者给出的临床纳排条件文本,及其FHIR FSH的定义。

  输出:一个Python代码,代码中必须有以下的类,以及初始函数和解析函数(具体可参照训练数据,经过BASE64压缩)。

class FHIRResourceBundleGenerator:
    def __init__(self, fhir_api_base: str):
        ……

    def parse_clinical_text_to_fhir_bundle(
        self,
        patient_id: str,
        case_reports: List[Dict[str, str]],
        ai_algorithm_type: str = "nlp"
    ) -> Dict[str, Any]:

注意:

  1. Option1:传统NLP方法(python code)。
  2. Optinon2:传统NLP algorithms/大模型生成的FHIR FHIR Bundle in JSON。
  3. JSON Representation of Resources链接:https://hl7.org/fhir/json.html#cardinality
  4. 参赛者需要解析临床文本并生成FHIR Bundle。
  5. 格式不符合要求,判定任务失败。程序可运行,25%分数。
  6. 将算法以FHIR Bundle的形式打包,然后上传。(注:算法代码要用BASE64压缩)
  7. 文件样式请参见:message_bundle_sampling_3.json。

3.2 算法准确性评估

  主办方会按照3个步骤进行评价:1)运行NLP算法代码;2)运行FHIR service API来查询数据库;3)针对查询的结果,依据金标准,判定结果。

3.3 输入输出样例

  文末的附录提供了临床问题,FHIR FSH定义,NLP算法代码以及FHIR service的查询代码的样例。

4. 获奖队伍材料提交

  排名前三的队伍还需提交以下材料:

  1. 相关代码及说明。
  2. 方法描述文档。
  3. 如果方法使用了额外公开的数据资源,要求说明并提供资源文件或地址,包括但不限于代码、工具和数据。要求所使用的资源是公开可获取的。

  获奖选手需要将以上材料发送至组织者邮箱,邮件的标题为:“CHIP2026-医学NLP代码自动生成测评-参赛队伍名称”。代码及文档需打包成一个文件(zip,rar等均可),作为邮件附件传送,要求提交所有的程序代码及相关的配置说明。

  说明:若没有提交上述材料,将视为自动放弃参与评奖。评奖资格将会自动顺延至排名紧随其后的队伍。要求提交所有的程序代码及相关的配置说明,程序应当可以运行,可以供组织者验证,若排行榜上的结果无法复现,将取消比赛资格。

5. 评分指标

  如前文所述,本评测采用F1值作为评测指标。每一个问题单独计算得分,最后所有问题得分取平均值,作为最终评测排名得分。

$$\mathrm{Precision} = \frac{\text{系统查询到的正确的患者数量}}{\text{系统给出的所有的患者数量}} \times 100\%$$ $$\mathrm{Recall} = \frac{\text{系统查询到的正确的患者数量}}{\text{金标准每一问题所有患者数量}} \times 100\%$$ $$F_1 = \frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}} \times 100\%$$
模块指标
NLP算法代码/FHIR Bundle可成功运行
结果的F1值查询响应准确性

  假设有一个团队,递交了55个问题的代码,其中有50条成功运行(假设每一个的F1值为0.6。最终得分为:

$$\mathrm{Score} = \frac{50 \times 0.6}{55} = 0.5455 \quad \text{(小数点后4位)}$$

6. 约束与支持

  HL7 FHIR 版本:V R4.0,参考链接:https://hl7.org/fhir/R4/consent.html

代码限制:

  • 基于传统的NLP算法(Python代码)。
  • 基于大语言模型。(FHIR Bundle)
  • 对以下资源的拒绝Post,Put,Delete方法的操作:Patient。

工程风险提示:依赖包冲突可能导致部署失败(纳入评分考量)。

7. 结果提交

  比赛设立A榜阶段与B榜阶段两个赛段,具体安排如下:

  A榜阶段(开发阶段):参赛队伍在成功报名后,可通过天池平台下载训练数据和A榜测试数据集(开发集)文件,在本地进行模型调试与训练,并在线提交评测结果。A榜阶段成绩仅用于模型开发调优,不计入比赛最终成绩。且A榜测试集答案不公开,不用于B榜阶段模型训练。

  B榜阶段(最终评测):B榜阶段将开放B榜测试数据集(测试集)供下载,参赛队伍需根据该数据集生成预测结果并提交至天池平台,各队伍在B榜阶段的历史最优成绩作为最终排名与奖项评定的依据。

  参赛者要把问题转化成代码,然后按照HL7 FHIR Bundle(message)的格式组装成JSON文件上传到测评网站。

  C榜阶段(临床评测):C榜是我们一个全新的榜单,作为“临床实战能力”的额外评价维度,是一个探索榜单,本期不参与最终排名。C榜由临床机构测评组成员在测评小组的指导下,平行准备真实医院病历数据以及测评标准,数据分布与A/B榜数据无任何认为关联,但是病历的数量和纳排条件的数量,原则上与B榜对齐。评测小组会将在B榜阶段沉淀的各个团队的最优算法,以docker容器的方式下沉到临床机构,由组织测评的临床机构测评组成员独立完成测评。

8. 参赛规则

  1. 每名选手只能注册一个账号,一旦发现选手注册多个账号进行提交,将取消所有账号的参赛资格。
  2. 允许使用外部资源,包括但不限于代码、工具和数据,要求所使用的资源是公开可获取的。
  3. 获奖选手最终需要提交可运行的代码和方法描述文档,若排行榜上的结果无法复现,将取消参赛资格。
  4. 获奖选手需要自行注册参加CHIP会议,在会议上进行口头汇报,撰写技术论文,否则取消参赛成绩。
  5. 欢迎国内外在校生及企业人员参加,个人必须依托单位报名参赛,比赛组织方成员不可参赛。
  6. 组队人数限制1-5人。
  7. 每日提交结果次数为3次。
  8. 该任务数据仅用于本次评测,如需用于其他目的,请与任务组织者联系。

9. 报名方式

  本次评测任务依托阿里云天池平台展开,天池链接:https://tianchi.aliyun.com/competition/entrance/532480

  请加入以下钉钉群,进行任务相关事宜讨论(钉钉群号:154880001500)。

钉钉群二维码

图 1:钉钉群

10. 日程安排

报名参赛开始即日起-10月7日
训练数据发布时间9月7日
A榜测试数据发布时间9月7日
A榜测试结果提交截止时间10月7日
B榜测试数据发布时间10月8日
B榜测试结果提交截止时间10月12日
C榜测试结果会议期间公布
评测论文提交截止时间10月20日
会议日期(评测报告及颁奖)10月30日-11月1日

11. 评测任务组织者

米 岚 北京大学肿瘤医院
陶 亮 上海商学院
宗 辉 陆军军医大学第一附属医院
文 栋 上海皓元医药股份有限公司
黄 祥 锦欣生殖
汤步洲 哈尔滨工业大学(深圳)/鹏城实验室
李作峰 慧聚智真(上海)信息技术咨询有限公司
张晓艳 同济大学