医院里最让人头疼的,不是医生不够多,而是病历“看不懂”——内科医生写的记录,外科医生得猜;市医院的数据,省医院读不了;而做科研的医生想要分析一万份病历,光是整理格式就要花掉半年时间。这就好比每个科室都有自己的档案柜,每台机器都有自己的插头,每个仪器都有自己的说明书。 电子病历(EHR/EMR)技术,就是要给这些“各说各话”的医疗数据建一座统一的“文档管理大厅”。HL7 FHIR 是这座大厅里的一种标准化“档案盒”——规定了文件夹怎么贴标签、资料怎么分类摆;OMOP CDM 则是一套“数据统计表”——把不同医院的病历数据转成同一套列头,让研究者能用同一种工具做分析。前者解决“怎么存、怎么传”,后者解决“怎么用、怎么比”。 对 AI 从业者来说,理解 EHR 结构是打开医疗 AI 大门的第一把钥匙。没有规范的数据底座,再强的模型也只是在垃圾堆里淘金。
理解电子病历的 FHIR 与 OMOP 双轨结构,是医疗 AI 工程化落地的必修课。掌握这套体系,你将能打通“临床数据 → 结构化处理 → 模型训练 → 产品上线”的全链路,让 AI 真正在医院里跑起来。
可视化演示
展示HL7 FHIR资源关系网络、FHIR与OMOP CDM表结构映射、以及从源数据到标准化模型的ETL流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
FHIR资源网络 Patient连接4类资源 Resource.ref RESTful API实现互操作
病历基础概念
想象你是一个小镇的档案管理员。过去十年,镇上的医院用纸质病历,每个医生有自己的记法:张医生喜欢画图,李医生习惯写缩写,儿科甚至用贴纸记录疫苗接种。你最大的噩梦,是某天一位病人从别的镇转来,你翻开新病历,完全看不懂对方在说什么——这就是“互操作”问题。
电子病历就是把纸质档案搬到电脑里,但“搬到电脑里”还远远不够。EMR(Electronic Medical Record,电子医疗记录)是单个医院内部的数字化病历,解决的是“本院医生能看清楚”的问题;而 EHR(Electronic Health Record,电子健康档案)则强调跨机构共享,让病人在 A 院做的检查,B 院也能调阅。两者关系就像“科室内部日志”与“全镇共享健康档案”。
对 AI 而言,病历必须是结构化数据——也就是每个字段有明确含义、有统一编码。自由文本如“患者血糖偏高”是无法直接喂给模型的;结构化后变成“血糖=7.2mmol/L(空腹),异常”,模型才能计算。HL7、FHIR、OMOP 等标准,都是为了解决结构化与互操作这两个核心问题而生的。
1. EHR 与 EMR:EHR 强调跨机构共享的健康档案,EMR 是医院内部的电子医疗记录,二者常常被混用
2. 结构化数据:将自由文本转为带语义标签的字段,是 AI 分析的前提
3. 互操作级别:从语法互操作(格式一致)到语义互操作(含义一致)是分层递进的
回到档案室的比喻:你买了一批一模一样的档案盒(EMR 标准化),又跟邻镇约定了相同的标签规则(EHR 共享),最后还约定每个标签的含义(语义互操作)——这样你才能真正看懂其他镇的档案,也才能让电脑帮你统计全镇的健康趋势。
HL7 FHIR 概览
假设你终于说服全镇医生使用统一的电子病历系统,但新问题来了:药房系统要读处方、检验科系统要读化验单、保险系统要读诊断记录。每家系统都有自己的数据库结构,数据交换变成了一场“翻译官”的噩梦——这就是为什么需要 HL7 FHIR。
HL7 是医疗信息交换标准的国际组织,从早期的 HL7 v2(基于管道字符的文本协议)进化到 v3(基于 XML 但过于复杂而少有落地),最终在 2014 年推出了 FHIR(Fast Healthcare Interoperability Resources,快速医疗互操作资源)。FHIR 的核心革命在于:它把 RESTful API 的思想引入医疗领域,让电子病历系统像互联网应用一样通过 HTTP 请求交换数据。
FHIR 的基本单元叫“资源”(Resource),比如 Patient(患者)、Observation(检查结果)、MedicationRequest(用药医嘱)。每种资源有固定的 JSON/XML 结构,像一份份填写好的标准表格。系统间交换数据,就是把这些资源通过 GET、POST、PUT 等 HTTP 操作传来传去——这跟手机 App 调后端接口是完全一样的模式。
档案室的比喻在这里有了新角色:FHIR 相当于全镇统一了档案的“快递协议”——每个档案盒都有标准编号(资源 ID),有标准尺寸(资源结构),有统一的寄送方式(REST API)。档案室之间传档案,不再需要人工抄写,而是像寄快递一样扫码、打包、发货,全程可追踪。
- RESTful API用 HTTP 动词(GET/POST/PUT/DELETE)操作资源,与 Web 应用同构
- 资源模型每种资源由数据结构 + 约束规则组成,类似数据库的表结构
- JSON 序列化资源可序列化为 JSON 格式,方便解析与存储
FHIR 资源详解
一个 FHIR 资源内部长什么样?我们以 Patient 资源为例拆开来看。在档案室的比喻里,Patient 资源就是每个人的“主档案袋”,上面贴满了标准标签:姓名、出生日期、性别、联系方式——每个标签在 FHIR 里叫“元素”(Element),而这些元素的值都有明确的类型约束,比如出生日期必须是 date 类型,性别必须来自枚举值表。
更妙的是资源的“引用”机制。Patient 资源上会记录“就诊历史”指向一组 Encounter(就诊)资源,而 Encounter 资源又指向 Observation(检查)资源——就像主档案袋里有一根根红色引线,连到不同颜色的子档案袋。这种通过逻辑引用(Reference)而非物理嵌的方式组织数据,让数据既可拆开独立传输,又能按需组装成完整画像。
FHIR 还允许通过“扩展”(Extension)机制添加标准之外的自定义字段——就像档案袋上可以贴便利贴,但便利贴必须按照规范格式写,不能随手涂鸦。当一次操作需要同时更新多个资源时,用 Bundle 把多个资源打包成一个事务包一次提交,保证所有操作要么全部成功、要么全部失败,这在“转诊转科”这类需要同时更新多张表的工作流里特别有用。
回到档案室:以前你想了解一个病人的完整情况,要翻遍整个档案室;现在有了 FHIR 的红色引线,你可以沿着 Patient → Encounter → Observation 的链条迅速调齐所有相关档案,还能用 Bundle 把“一次门诊”的所有新增记录打包存档,保证这批档案“要么全进库,要么全不进”。
- 资源结构资源由元数据(id、meta)、数据元素(字段)、扩展三部分组成
- 引用关系资源通过 Reference 指向其他资源,形成图状关联
- 事务一致性Bundle 事务确保多资源更新原子性
OMOP CDM 设计
FHIR 解决了“怎么传”,但科研还要解决“怎么比”。假设你收集了全国 100 家医院的 FHIR 数据,却发现:有的医院诊断用 ICD-10,有的用 SNOMED-CT;有的记录“高血压”为疾病,有的记录为症状;有的用“mg/dL“有的用”mmol/L“作血糖单位——这时你需要一个统一的”分析型数据模型”,这就是 OMOP CDM。
OHDSI 组织(Observational Health Data Sciences and Informatics)推出的 OMOP CDM(Observational Medical Outcomes Partnership Common Data Model)是一套专门为观察性研究设计的关系型数据库模型。它把医疗数据按“人物(Person)”为中心组织成事实表,比如 condition_occurrence(疾病发生)、drug_exposure(药物暴露)、visit_occurrence(就诊事件)等,每张表都是行事件模型——每一行代表一次具体事件,而不是一条汇总记录。
OMOP 的灵魂是“标准化概念”(Standardized Concepts)。每个概念有唯一的概念 ID(如“高血压”对应概念 ID 320128),并挂载在概念层级里(比如“继发性高血压”是“高血压”的子概念)。这样,100 家医院的“高血压”病例,无论源系统用什么编码,映射到 OMOP 后都指向同一个概念 ID——这正是跨院大规模分析的基石。分析者只需写一行 SQL 就能统计所有医院的高血压患病率。
档案室的数据统计问题,在 OMOP 里变成了标准化的“统计台账”:不管原始档案是什么语言、什么格式,映射之后都落到统一模板里。研究者不再需要理解 100 种病历写法,只需要理解 OMOP 的 30 张表,就能写出通用的分析 SQL——这就像用统一的 Excel 表格统计 100 个班级的成绩,大家填同一个模板,汇总只需一个公式。
- 人物维度表person 表存患者基本属性,作为所有事实表的外键锚点
- 事件事实表每种临床事件一张表,采用行事件模型
- 概念标准化本地编码通过映射表转为标准概念 ID
术语映射与 ETL
有了 FHIR 和 OMOP 这两个“目标格式”,下一步就是把医院真实数据转过去。这个过程的核心是 ETL(Extract-Transform-Load,抽取-转换-加载),而 ETL 中最难的不是技术,而是“翻译”——术语映射。
假设某医院系统里诊断编码用的是 ICD-10,其中 “E11.9“ 表示”2 型糖尿病不伴并发症“。而 OMOP 标准概念里,SNOMED-CT 的 ”44054006“ 表示”Type 2 diabetes mellitus“。怎么让两者对应?答案是用”术语映射表“(Concept Map)。OHDSI 提供了工具 Athena,可以下载标准概念表和映射关系包,其中包含源编码到标准概念 ID 的映射规则。有些映射是一对一的,有些是”一对多”的——一个粗粒度源编码可能要拆成多个标准概念,反之亦然。
ETL 的标准流程一般包括五步,我们用“档案翻译厂”来比喻:第一步“抽档”(Extract)——从源库拉出原始数据;第二步“翻标”(Transform)——对每条记录做术语映射和单位换算;第三步“质检”(Validate)——检查必填字段是否缺失、概念 ID 是否合法;第四步“归档”(Load)——写入目标 CDM 表;第五步“复盘”(Audit)——统计映射覆盖率与质量指标。真实工程中,映射覆盖率 90% 已经很优秀,剩余 10% 需要人工审核或建立局部映射。
档案翻译厂的核心竞争力不是翻译速度,而是“翻译质量”。一个编码映射错了,会导致后续所有统计结果跑偏——就像把“高血压”错翻成“低血压”,整个镇的慢性病统计全部作废。所以 ETL 过程的最后一步永远是质量复查,这跟档案室里的“双人核对”制度如出一辙。
- 抽取从源库(通常为 EHR 的 FHIR API 或直接数据库)读取原始记录
- 转换映射本地编码 → 标准概念 ID,附加单位统一与字段重命名
- 加载与验证写入 OMOP 表并执行质量规则检查
数据治理与 AI 落地
最后一道大题:数据终于规范化了,接下来怎么给 AI 用?现实中医疗 AI 项目 80% 的时间都花在数据治理上,而非模型调参。
去标识化(De-identification)是第一道红线。HIPAA 规定 18 类标识符必须去除或加密,包括姓名、身份证号、电话号码、甚至精确到日的出生日期。在 FHIR 资源里,Patient.name 和 Patient.identifier 是需要重点处理的字段;在 OMOP 流程里,person 表的 person_id 需替换为随机生成的不可逆 ID。做联邦学习时,数据不出院,模型参数加密传输,则是另一层更严格的治理手段。
数据质量评估需要贯穿 ETL 全流程。常见维度包括完整性(必填字段缺失率)、一致性(同一患者年龄与出生日期是否矛盾)、时效性(数据是否过期)。在 OMOP 中,每个表都有主键约束和外键约束,违反约束的行必须被记录并修正。实践中通常建立“数据质量仪表盘”,每批数据入库后自动生成质量报告。
当数据底座就绪后,AI 落地路径变得清晰:从 OMOP 表提取特征 → 存入特征库(Feature Store)→ 训练模型 → 以 FHIR 资源形式输出预测结果接入临床系统。整个过程像流水线工厂:OMOP 是“原料仓库”,特征库是“精加工车间”,FHIR 是“包装出货区”——每个环节都有明确接口,缺一不可。
回到档案室的收尾场景:你终于可以用统计台账(OMOP)驱动“健康数据分析部”(AI 团队)挖掘全镇的健康规律,再把分析结果用标准档案盒(FHIR)送回临床科室。整个过程有规则、有质检、有追溯——这就是数据治理的意义,也是医疗 AI 从“实验室玩具”变成“临床工具”的关键一步。
- 去标识化规则去除 18 类标识符,保留供研究的非敏感字段
- 数据质量维度完整性、一致性、时效性、准确性四个维度综合评分
- 部署链路OMOP 特征 → 特征库 → 训练 → FHIR 预测输出
AI 应用场景
场景一:慢病风险预测模型的跨院训练
阶段:数据准备与特征工程
解决的问题:单一医院慢病样本量不足,模型泛化能力差;而不同医院的病历结构和诊断编码不统一,直接拼接数据会导致特征语义错乱。通过 OMOP CDM 将 5 家医院的 EHR 数据统一为同一套标准化概念,AI 团队可直接在统一的表结构上提取特征、训练模型。
具体案例:某医疗 AI 公司为区域卫生平台构建“2 型糖尿病并发症风险模型”。他们先将 5 家医院的源数据通过 ETL 流程映射至 OMOP 标准表,再使用标准化概念 ID 筛选糖尿病患者队列,最终在 12 万人的队列上训练出预测模型,AUC 达 0.86。整个数据准备周期从预期的 6 个月缩短至 6 周。
场景二:FHIR 驱动的临床决策支持系统集成
阶段:模型推理与系统集成
解决的问题:模型预测结果如何无缝融入医生日常工作流?传统做法是让医生跳出 HIS 系统打开另一个 Web 应用,这大大降低了使用率。利用 FHIR 标准,将模型输出的风险评分封装为 Observation 资源,直接写入医院的 FHIR 服务器,医生在原有 EHR 界面即可看到风险评估结果。
具体案例:某三甲医院部署“脓毒症早期预警系统”。每小时从 FHIR API 拉取患者的生命体征和化验结果,模型推理后生成风险评分,再以 FHIR Observation 资源写回系统,在医生工作台自动弹窗预警。由于全程使用 FHIR 标准接口,与院内系统的对接仅耗时 2 周。
场景三:真实世界证据研究(RWE)数据底座
阶段:分析数据集构建
解决的问题:药企上市后需要开展真实世界研究,评估药物在广泛人群中的安全性与有效性。传统人工病历审查费时费力且样本量有限。通过 OMOP CDM 建设统一的 RWD 数据底座,研究团队可编写标准 SQL 快速query出目标人群和临床事件。
具体案例:某药企与三家医院合作,将 10 年历史 EHR 数据转换为 OMOP 格式,构建包含 80 万患者的 RWD 数据库。针对某降糖药的心血管安全性研究,从数据准备到论文投稿仅用时 3 个月,而传统方法通常需要 12 个月以上。
Python 演示
# -*- coding: utf-8 -*-"""FHIR 资源解析与 OMOP 概念映射演示"""import jsonfrom datetime import datetime FHIR_PATIENT = { "resourceType": "Patient", "id": "pat-001", "identifier": [{"system": "http://hospital.org/mrn", "value": "MRN-88321"}], "name": [{"family": "Zhang", "given": ["Wei"]}], "birthDate": "1985-04-12", "gender": "male"} CONCEPT_MAP = { "E11.9": 44054006, # ICD-10 -> SNOMED CT "I10": 320128, "J45": 195967001} class OMOPMapper: def __init__(self, mapping): self.mapping = mapping self.concept_map = mapping def map_code(self, source_code): if source_code in self.concept_map: return self.concept_map[source_code] return 0 # unmapped, 0 = no matching concept def parse_fhir_patient(resource): if resource["resourceType"] != "Patient": raise ValueError("Not a Patient resource") birth_year = int(resource["birthDate"][:4]) age = datetime.now().year - birth_year return { "person_id": hash(resource["id"]) % 100000, "gender": resource["gender"], "age": age } def transform_condition(local_code, mapper): concept_id = mapper.map_code(local_code) if concept_id == 0: raise ValueError(f"Unmappable code: {local_code}") return {"condition_concept_id": concept_id, "source_code": local_code} if __name__ == "__main__": demo_mapper = OMOPMapper(CONCEPT_MAP) pt = parse_fhir_patient(FHIR_PATIENT) print("OMOP person:", pt) cond = transform_condition("E11.9", demo_mapper) print("Mapped condition:", cond) unknown = transform_condition("Z99.9", demo_mapper) print("Unknown code:", unknown)
FHIR_PATIENT = {...}硬编码一条 FHIR Patient 资源 JSON,模拟医院系统通过 FHIR API 返回的数据CONCEPT_MAP = {...}定义 ICD-10 本地编码到 SNOMED-CT 标准概念 ID 的映射表,实际工程中从 Athena 下载class OMOPMapper:封装了术语映射逻辑,map_code方法负责编码翻译,未命中返回 0 表示“无法映射”parse_fhir_patient(resource)从 FHIR 资源中提取 person_id、gender、age,用于写入 OMOP person 表hash(resource["id"]) % 100000用哈希生成不可逆伪 ID,模拟去标识化,防止真实 MRN 泄露transform_condition(local_code, mapper)将单条诊断编码映射为 OMOP 标准概念,并抛出异常提示未映射编码if __name__ == "__main__":程序入口,依次执行解析与映射,演示一条真实数据的完整流转
常见误区
误区“EHR 和 EMR 不就是一回事吗?都是电子病历,叫法不同而已,项目里用哪个都行。”
正解两者定位有本质差异。EMR 是医院内部的数字化医疗记录,服务于单院区的临床流程;EHR 强调跨机构共享和个人健康全周期记录,包含来自多源系统的汇总信息。用档案室的比喻:EMR 是“科室自己的柜子”,EHR 是“全镇共享的健康档案”。做数据集成时,明确目标数据在哪个层级,直接决定了接口设计和数据模型选型。
为何常见:中文语境下“电子病历”这个译名同时对应两个英文缩写,日常交流中混用频繁,缺乏概念辨析的语境。
误区“我们公司要建 EHR 系统,直接用 FHIR 做数据库存储就行了吧?”
正解FHIR 是交换标准(Interoperability Standard),不是数据库系统。它定义了资源的数据结构和 RESTful API 交互方式,但底层存储方式完全由实现者决定——你可以用 PostgreSQL、MongoDB,甚至文件系统存储 FHIR 资源。理解为“档案盒的规格说明”比“档案柜本身”更准确。实际工程中,FHIR Server 通常只是数据交换层,底层分析仍依赖专用的数据仓库。
为何常见:FHIR 的 JSON 结构看起来像文档数据库的 record,加上很多实现提供 "FHIR Storage" 命名,容易让人误以为是存储引擎。
误区“把数据按 OMOP 的表结构导进去就完成了,之后直接写 SQL 分析就行。”
正解OMOP 的价值 80% 在“映射质量”而非“表结构”。两张表的列名一样,但一行的概念 ID 映射错了,分析结果就全错了。此外,OMOP 还要求遵守关于人物一生事件的相关性约束(如同一患者在时间轴上逻辑连贯)、域映射的语义准确性等。建表是骨架,映射与治理才是血肉。
为何常见:初学者看到 OMOP 文档里以表结构为主,容易误以为“表结构对齐=数据对齐”。实际完成映射需要较多临床知识。
误区“FHIR 已经是国际标准了,数据分析直接对 FHIR 数据做就行,没必要转 OMOP。”
正解FHIR 和 OMOP 解决的是不同环节的问题:FHIR 解决临床数据交换,面向“点对点实时获取单患者数据”;OMOP 解决研究分析的数据整合,面向“大规模人群的统计计算”。生产系统中两者常常共存——FHIR 做业务接口,数据下沉到 OMOP 做分析。选型取决于你是做“挂号缴费”这类事务,还是“10 万人糖尿病患病率统计”这类分析。
为何常见:FHIR 知名度高、社区活跃,容易给人“标准统一天下”的错觉;但忽视了事务型与分析型工作负载的本质差异。
误区“把姓名和身份证号删掉就完成了脱敏,数据可以放心拿出去做模型训练了。”
正解简单的字段删除≠去标识化。研究已证明,仅通过出生日期、性别、邮政编码三项,就能重识别出 63%-87% 的个体。正规的去标识化流程包括泛化(如年龄模糊化为年龄段)、扰动(如微移日期)、抑制(删除罕见组合记录)等多重手段,并在发布前做重识别风险评估。实际项目中必须接受“完全匿名不可能,控制重识别风险在可接受范围内”的理念。
为何常见:HIPAA 的 18 类标识符清单简洁明了,容易让人产生“删掉这些字段就合规”的错觉;重识别攻击的文献传播度远低于安全指南。
面试题
Q1. EMR 与 EHR 的核心区别是什么?
- A.EMR 服务于单院区内部流程,EHR 支持跨机构共享← 正确答案
- B.EMR 只能存文本,EHR 可以存影像数据
- C.EMR 是免费软件,EHR 是商业软件
- D.EMR 只用于门诊,EHR 只用于住院
答案:A。EMR 是医院内部的电子医疗记录,侧重单一机构;EHR 是电子健康档案,强调患者全生命周期数据的跨机构共享。档案室比喻中,EMR 是科室内部日志,EHR 是全镇共享的健康档案。
Q2. FHIR 中“资源”(Resource)是什么?
- A.存储数据的物理磁盘分区
- B.医疗信息交换的基本数据单元← 正确答案
- C.一种 SQL 数据库的表名
- D.医院的硬件服务器设备
答案:B。FHIR 中的资源(如 Patient、Observation、Encounter)是标准化的数据结构,通过 RESTful API 进行交换,类似标准档案盒。它不是存储介质、数据库表或硬件设备。
Q3. FHIR Bundle 的主要作用是什么?
- A.提高单个资源的查询速度
- B.将多个资源打包为一次性事务提交← 正确答案
- C.替代所有 REST API 操作
- D.对资源进行加密存储
答案:B。Bundle 将多个资源组合为事务包整体提交,保证 all-or-nothing 的原子性。适用于转诊等需同时更新多资源的场景。它不替代 REST 操作,也不负责加密。
Q4. OMOP CDM 采用哪种数据模型组织方式?
- A.文档型模型,每患者一条 JSON 记录
- B.行事件模型,每行代表一次临床事件← 正确答案
- C.图模型,节点边描述关系
- D.键值存储,以患者 ID 为键
答案:B。OMOP 采用关系型行事件模型,condition_occurrence、drug_exposure 等事实表中每一行是一条具体事件记录,配合标准化概念 ID 实现跨院统计分析。
Q5. OMOP 标准化概念 ID 解决了哪些问题?
- A.不同医院诊断编码不统一← 正确答案
- B.药品剂量单位不一致← 正确答案
- C.数据存储磁盘空间不足
- D.跨院统计分析可比性差← 正确答案
答案:ABD。标准化概念 ID 将不同源系统的编码映射为统一标识,解决“同一疾病不同编码”“不同计量单位”“跨院对比困难”等问题。它不直接解决存储空间问题。
Q6. 在 ETL 流程中,术语映射的核心目标是什么?
- A.将源编码翻译为标准概念 ID← 正确答案
- B.压缩数据体积以节省存储
- C.加快数据库查询响应速度
- D.加密敏感字段防止泄露
答案:A。
Q7. 去标识化处理中,仅删除姓名和身份证号可能存在的风险是什么?
- A.通过出生日期+性别+邮编重新识别个体← 正确答案
- B.数据完全不可用于任何研究
- C.罕见组合记录的个体仍可能被定位← 正确答案
- D.数据无法通过 HIPAA 合规审查
答案:AC。研究证明出生日期+性别+邮编三项组合可重识别 63%-87% 个体,罕见组合的字段值本身就是“指纹”;仅删除几种直接 ID 字段不足以通过严格合规审查。
Q8. FHIR 与 OMOP 的关系是什么?
- A.FHIR 是分析模型,OMOP 是交换标准
- B.FHIR 是交换标准,OMOP 是分析模型← 正确答案
- C.两者功能一致,可互相替代
- D.OMOP 是 FHIR 的旧版本
答案:B。FHIR 定位为临床数据交换标准,解决互操作问题;OMOP 定位为观察性研究分析模型,解决数据分析问题。两者共存互补,不是替代关系。
Q9. OMOP 中概念 ID 为 0 的含义是什么?
- A.该编码映射到多个标准概念
- B.源编码在标准概念表中不存在对应项← 正确答案
- C.源编码已过期需更新
- D.该编码属于受保护的特殊概念
答案:B。概念 ID=0 表示 "No matching concept",即源编码经映射后在标准概念集中找不到对应项,是 ETL 质量报告中必须重点关注的部分,通常触发人工审核流程。
Q10. 医疗 AI 部署链路中 FHIR 和 OMOP 分别在哪一环节发挥作用?
- A.OMOP 用于特征提取与队列分析← 正确答案
- B.FHIR 用于模型推理结果回传临床系统← 正确答案
- C.FHIR 用于训练模型参数调优
- D.OMOP 用于患者数据跨院汇聚← 正确答案
答案:ABD。典型链路中,OMOP 在数据汇聚与特征提取阶段将多院数据标准化为统一分析格式;FHIR 在输出端将预测结果封装为资源接入临床工作流。模型调优本身与两者无直接关联。