Banner

OpenMRS 快速上手教程

2026-10-15

OpenMRS 上手建议先跑通一个可访问的实例,再理解"概念字典—就诊—观察值"这条数据主线,最后再碰模块和前端。

1. 先选一个运行方式

方式适合说明
OpenMRS 3 Reference Application + Docker想体验现代界面适合看 O3 前端、REST API、模块配置
OpenMRS Standalone想最快跑起来一体化包,适合教学、测试、本地试用
OpenMRS Core WAR + Tomcat想二次开发后端需要 Java、Maven、MySQL
OpenMRS SDK想做模块开发官方推荐的开发者工具链

如果只是第一次接触,优先用 Docker + Reference Application 或 Standalone。

2. 用 Docker 跑 OpenMRS 3

OpenMRS 3 的 Reference Application 通常由后端和前端共同组成,后端加载模块和元数据,前端通过 SPA 界面访问。

具体镜像、端口和 Compose 文件请以官方 O3 Docs 为准。一般步骤是:

git clone https://github.com/openmrs/openmrs-distro-referenceapplication.git
cd openmrs-distro-referenceapplication
docker compose up -d

启动后通常可以访问:

  • 后端:http://localhost:8080/openmrs
  • 前端:http://localhost:3000 或文档中指定的端口

默认账号常见为:

admin / Admin123

但不同版本可能不同,一定要看当前仓库的 README。

3. 用 Standalone 快速试用

如果不想折腾 Docker,可以下载 OpenMRS Standalone 包。它自带应用服务器、数据库和初始化数据,适合第一次体验。

启动后一般访问:

http://localhost:8080/openmrs

Standalone 版本通常偏旧,界面和功能不一定和 OpenMRS 3 一致,但用来理解患者、就诊、概念字典已经够用。

4. 登录后先做这几件事

进入系统后,按这个顺序熟悉:

  1. 注册患者:创建第一个患者档案。
  2. 开始一次就诊:理解 Visit 和 Encounter 的区别。
  3. 录入观察值:比如体温、血压、诊断。
  4. 查看患者主页:看就诊历史、诊断、医嘱。
  5. 进入管理后台:查看用户、角色、模块、全局属性。

这一步不需要急着改代码,先把临床数据流跑通。

5. 理解三个核心概念

OpenMRS 的数据模型和常见 HIS 不太一样,关键是这三个概念:

概念作用
Concept 概念字典定义所有临床术语,比如“体温”“疟疾检测”“阳性”
Encounter 就诊事件记录一次具体交互,比如挂号、问诊、发药
Obs 观察值记录具体数据,比如体温 37.5、诊断“疟疾”

可以这样理解:

患者 → 就诊 → 观察值
            ↑
        观察值引用概念字典

比如录入一次就诊时,系统不会直接存“体温=37.5”这种自由字段,而是通过 Concept 定义“体温”这个指标,再用 Obs 记录具体数值。

6. 尝试调用 REST API

OpenMRS 提供 REST API,可以用来对接前端、数据导出或科研系统。

常见接口示例:

# 查询患者
curl -u admin:Admin123 \
  "http://localhost:8080/openmrs/ws/rest/v1/patient?q=Alice"

# 查询概念
curl -u admin:Admin123 \
  "http://localhost:8080/openmrs/ws/rest/v1/concept?q=Temperature"

# 查询就诊
curl -u admin:Admin123 \
  "http://localhost:8080/openmrs/ws/rest/v1/encounter?patient=患者UUID"

如果用的是 OpenMRS 3,前端端口和 API 路径可能略有差异,以实际部署为准。

7. 了解模块和配置

OpenMRS 的功能主要通过模块扩展。O3 中常用 Initializer 模块,用 CSV、JSON、XML 文件加载概念、地点、表单、药品等元数据。

这样做的好处是:

  • 配置可版本化管理;
  • 多环境可复用;
  • 启动时自动加载;
  • 比纯后台手工配置更稳定。

8. 二次开发路线

如果你想继续深入,可以按这个顺序来:

  1. 先用 Docker 跑通 Reference Application。
  2. 再读 OpenMRS Core,理解 Patient、Encounter、Obs、Concept。
  3. 然后看 REST API,做数据读写。
  4. 接着看 Initializer,学习元数据配置。
  5. 最后再看 O3 前端模块 或传统模块开发。

9. 常见坑

  • 不要把 OpenMRS 直接当国内 HIS 用:医保、收费、电子病历评级流程需要大量定制。
  • 账号密码以官方文档为准:不同版本默认账号可能不同。
  • Standalone 和 O3 不是一回事:Standalone 更适合快速体验,O3 更适合现代部署。
  • 端口和镜像版本会变:不要死记命令,优先看当前仓库 README。
  • 概念字典是学习门槛:刚开始会觉得绕,但它是 OpenMRS 最核心的设计。

如果你愿意,我可以按你的目标继续细化:比如给你一份 macOS 上 Docker 跑 OpenMRS 3 的完整命令清单,或者整理一份 OpenMRS 数据模型速查表。

6