AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Anpheros 症状引擎:方法论

任何语言的自由文本症状如何转化为 WHO ICD-10 和 ICD-11 概念:AI 规范化器,存在性和经历者检测,WHO 检查的词汇表,评估结果,相似病例匹配和限制。

Anpheros 症状引擎将用户用自己的话和语言描述感受的内容,转化为国际临床概念:稳定的 Anpheros 标识符、WHO ICD-10 代码、WHO ICD-11 代码和身体系统,以及症状是存在、已解决、假设还是关于他人的信息。它在 Anpheros Daily 背后运行,将结果作为 HL7 FHIR R4 Observations 发布在 Anpheros Platform 上,并通过 REST 和 FHIR API 将相同的术语暴露给任何应用程序。 本页将介绍其工作原理、检查方式、测量内容以及局限性。

概览

Concepts 274 (197 症状, 77 发现), 标识符 SYM-0001…, 永不重复
Classifications WHO ICD-10 (2019 版) 和 WHO ICD-11 MMS (2025-01), 包含每个映射的等效性
Body systems 13, 取自 ICD-11 第 21 章块 (神经、消化、呼吸、皮肤…)
Languages 20 种语言的名称;以个人母语提供的自由文本
Warning signs 32, 针对 14 个概念, 直接引用自 CDC 和 NIDDK
Normalizer evaluation 5 种语言 (罗马尼亚语、英语、西班牙语、德语、法语): 主要代码 97.5–100 %, 存在性和主题 92.5–98 %, 否定症状报告为存在 0 % (所有语言)
Clinical review 尚无: 每次响应时 clinical_review: false
Standards HL7 FHIR R4 (CodeSystem, ValueSet, ConceptMap, Observation), ICD-10, ICD-11, LOINC 用于实验室结果

1. 管道

一个症状会经历四个步骤。用户的文本永远不会被更改;每一步都会在其旁边添加数据。

  1. 捕获 (Capture)。 原始录入会以其书写时的状态存储,包含记录的时间、手机时区、语言,以及可选的强度(1-10)、发病时间和结束时间。下游任何操作都不会重写它。
  2. 标准化 (Normalization) (AI)。 一个大型语言模型(Google Gemini on Vertex AI)会读取文本,并为它提到的每个症状返回:一个主要的 ICD-10 代码、可选的次要代码、一个简短标签,以及两个属性:断言 (assertion)(存在、缺失、已解决、假设、不确定)和 主体 (subject)(本人或他人)。该模型只能从 Anpheros 词汇表中选择代码;任何其他答案、遗漏的条目或无效的主要代码都算作一次失败的尝试,绝不会被视为“未知症状”。
  3. 概念映射 (Concept mapping) (确定性)。 ICD-10 代码会被映射到 Anpheros 概念,并从中映射到 ICD-11 和身体系统。此步骤使用固定的表格,而非 AI,因此相同的代码始终会产生相同的概念。
  4. 发布 (Publication)。 只有 存在 (present) 且 关于本人 (about the person) 的症状,在标准化成功后,才会成为本人记录中的 FHIR Observations。如果后续的编辑或重新标准化改变了这一点,该 Observation 将被撤回;版本历史会保留。

2. 存在、时间与经历者

临床文本经常提及患者没有的症状。临床自然语言处理称之为否定、时态和经历者检测(NegEx 和 ConText 方法家族)。引擎通过模型的 assertion 和 subject 属性处理这三个相同的问题:

书写内容 Assertion / subject 是否被发布为患者的症状?
"I've had a headache since Tuesday" present / self yes
"my head doesn't hurt any more" resolved / self no
"I might get a fever tomorrow" hypothetical / self no
"my mother has a cough" present / other no

亲属的抱怨永远不会自动转化为家族史。

3. 词汇表及其检查方式

词汇表涵盖 ICD-10 第十八章(R00–R94,自 2026.10.3 版本起,还包括其非残余子类别,如 R06.0 呼吸困难),以及在 WHO 将症状归类到其他章节时,使用 WHO 代码:便秘 K59.0,耳鸣 H93.1,复视 H53.2,视物模糊 H53.8,瘙痒 L29.9,关节痛 M25.5,背痛 M54,睡眠问题 G47。

4. 评估

该正常化器在 100 个合成案例的固定数据集上进行评估,这些案例使用罗马尼亚语(大多数当前用户使用的语言)编写,每个案例都附带预期的主要代码、断言和主题。其中 32 个案例故意不出现:被否定、已解决、假设、不确定或关于另一个人。使用当前提示(版本 3,2026 年 10 月 15 日)的结果如下:

指标 结果 目标
主要代码正确 100 % ≥ 85 %
断言和主题均正确 98 % —
否定症状报告为存在 0 % ≤ 3 %

两个错误是行政条目(“周二与心脏病专家预约”、“我想减掉 5 公斤”),被归类为假设而非存在;两者都不是症状。该测试集未经临床医生审查,因此分数仅供参考。

其他语言(2026 年 10 月 16 日)。 涵盖所有类别的 40 个案例被翻译成英语、西班牙语、德语和法语,并附有相同的预期答案;非正式案例以每种语言自己的非正式风格重写。模型指令保持不变。

语言 案例 主要代码 存在和主题 否定报告为存在
罗马尼亚语 100 100 % 98 % 0 %
英语 40 100 % 97.5 % 0 %
西班牙语 40 97.5 % 92.5 % 0 %
德语 40 100 % 97.5 % 0 %
法语 40 100 % 95 % 0 %

大多数剩余错误是相同的行政条目(“周二的心脏病专家预约”、“体检,一切正常”)或在两种不存在状态之间进行选择(“今天没有发烧”被视为已解决而非不存在);其中没有一个发布了症状。唯一的编码差异是西班牙语的“escalofríos y malestar”(发冷和不适),被编码为不适 (R53),发冷 (R68) 作为次要代码,而不是反之。

显示给人们的名称遵循其语言:应用程序以用户的语言(首先是俗名)显示概念名称,并以应用程序的 20 种语言显示存在说明(“已解决”、“其他人”)。

生产环境(2026 年 10 月 16 日),在词汇表与 WHO 检查后,所有存储的症状都进行了重新规范化。在真实用户的记录上:所有症状都已规范化,0 个存在症状仍标记为“不清楚”,0 个不存在的症状被发布为患者本人(已发布的 Observations 的独立审计)。

5. 相似病例(开发中)

下一个组件通过症状和异常实验室结果来比较个体,以在获得明确同意的情况下,推荐报告非常相似的个体。

此功能不建议诊断或疾病。

6. 应用程序如何使用它

7. 限制

相关

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy