Alternate Text

HAPI FHIR

数据分析 后台管理 医疗健康
技术栈: Java HTML JavaScript CSS

HAPI FHIR - 面向HL7 FHIR客户端与服务端的Java应用程序接口

2026-10-15 9 微信:tianz003

HAPI FHIR 是 Java 生态中最主流的 HL7 FHIR 实现,既是 FHIR 客户端/服务器开发库,也常被直接用作开源 FHIR 服务器底座。

项目简介

HAPI FHIR 全称 HAPI FHIR - Java API for HL7 FHIR Clients and Servers,由 Smile CDR 团队维护,采用 Apache License 2.0 开源。 它不是传统意义上的电子病历系统,而是把 HL7 FHIR 标准“落地成 Java 代码”的基础设施,用来构建、解析、验证、存储和交换医疗数据。

核心能力

模块作用
FHIR 模型提供 Patient、Encounter、Observation、MedicationRequest 等资源对象模型
解析器支持 JSON / XML 序列化与反序列化
验证器校验资源是否符合 FHIR 版本或 Profile 规范
客户端以 RESTful 方式访问其他 FHIR 服务器
JPA Server提供带数据库持久化的 FHIR 服务器实现
拦截器在请求处理链路中插入日志、审计、权限控制等逻辑
多版本支持覆盖 DSTU2、STU3、R4、R5 等 FHIR 版本


技术栈

  • 语言:Java(当前较新版本通常需要 JDK 17+)
  • 构建:Maven
  • 框架:Spring Boot(JPA Server 示例中常见)
  • 数据库:PostgreSQL、SQL Server、Oracle 等;MySQL 在部分版本中支持有限
  • 协议:HL7 FHIR R2/R3/R4/R5
  • 部署:Docker、Docker Compose、Java 应用服务器

典型使用场景

  • 医院/区域平台接入 FHIR 接口:把 HIS、LIS、PACS 数据转成 FHIR 资源。
  • 患者门户/移动健康 App:通过 FHIR API 获取个人健康记录。
  • 科研与数据中台:用 FHIR 统一临床数据模型,再做脱敏、导出和分析。
  • 系统互操作测试:用验证器检查资源是否符合标准或实施指南。
  • 二次开发底座:在 JPA Server 上扩展自定义 Profile、术语、订阅和审计。

优势

  • 开源免费,社区活跃,文档和示例较多。
  • Java 生态成熟,适合医院信息化、集成平台和后端服务开发。
  • 同时支持客户端、服务器、验证、持久化,接近“FHIR 瑞士军刀”。
  • 可作为官方 HL7 FHIR 验证器和 IG Publisher 的核心依赖之一。
  • 提供 Docker 快速启动方式,便于本地测试。

局限

  • 大规模并发下性能压力较明显,通常需要加缓存、索引和异步日志。
  • 中文术语、医保、电子病历评级等本地化需要额外适配。
  • 生产环境要重点处理权限、审计、PHI 保护和数据备份。
  • 数据库兼容性需要按版本确认,不能默认所有数据库都完全支持。

快速体验

最简单的方式是用官方示例仓库跑 JPA Server:

git clone https://github.com/hapifhir/hapi-fhir-jpaserver-starter.git
cd hapi-fhir-jpaserver-starter
docker compose up -d

启动后通常访问:

http://localhost:8080/fhir

如果直接用 Maven 跑:

mvn clean install
mvn jetty:run

具体端口、数据库配置和 JDK 版本以当前仓库 README 为准。