关于 Medplum
Medplum 是面向医疗健康应用的开发平台,提供身份认证、基于 FHIR 的 API、临床数据存储和 SDK。它适用于需要合规数据处理的医疗应用开发者。项目还包含 Web 应用、Bot 服务端逻辑和 React UI 组件库。
主要功能
- 01基于 OAuth 与 SMART-on-FHIR 的身份认证
- 02基于 FHIR 的 API 收发与操作数据
- 03临床数据存储库(CDR)
- 04客户端 SDK 简化 API 调用
- 05服务端 Bot 运行应用逻辑
- 06React UI 组件库
适用场景
- 01开发需要用户登录与权限管理的医疗应用
- 02基于 FHIR 标准集成和管理医疗数据
- 03在无需自建服务器的情况下运行服务端逻辑
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.medplum.com/mcp/streamclaude mcp add --transport http medplum https://api.medplum.com/mcp/stream{"mcpServers":{"medplum":{"type":"http","url":"https://api.medplum.com/mcp/stream"}}}在 Cursor 中打开{"servers":{"medplum":{"type":"http","url":"https://api.medplum.com/mcp/stream"}}}在 VS Code 中打开{"mcpServers":{"medplum":{"type":"http","url":"https://api.medplum.com/mcp/stream"}}}{"mcpServers":{"medplum":{"serverUrl":"https://api.medplum.com/mcp/stream"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Medplum ·


Medplum 是一个开发者平台,可帮助快速、灵活地开发医疗健康应用。
- Medplum Auth - 端到端身份解决方案,使用 OAuth、OpenID 和 SMART-on-FHIR 实现轻松的用户身份验证、登录和权限管理。
- Medplum Clinical Data Repository (CDR) - 后端服务,在安全、合规且基于标准的存储库中托管您的医疗健康数据。
- Medplum API - 基于 FHIR 的 API,用于发送、接收和操作数据。
- Medplum SDK - 客户端库,可简化与 Medplum API 交互的流程。
- Medplum App - Web 应用,您可在其中查看数据并执行基本编辑任务。您也可以使用 Medplum App 管理基本工作流。
- Medplum Bots - 编写并运行服务端应用逻辑,无需自行搭建服务。
- UI Component Library - React 组件,旨在帮助您快速开发自定义医疗健康应用。
文档
贡献
我们由衷欢迎所有符合我们工程标准的贡献!
不过,本代码库并非典型的开源项目,因为它不是一个范围有限的库或软件包——而是我们的整个产品。我们的贡献文档提供了入门所需的全部信息。
基本规则
贡献和讨论指南
向本项目贡献内容即表示您接受开发者原创证书(DCO)。
Medplum 上的所有对话和社群都应遵守 GitHub 的社群指南 和可接受使用政策。我们希望议题和拉取请求中的讨论始终保持积极、高效且相互尊重。请记住:屏幕的另一端是真实的人!
报告错误或提出新功能建议
如果您在 Medplum 中发现技术错误,或对我们应该实现的功能有想法,议题跟踪器是与我们分享的最佳渠道。(点击此处创建新议题)
编写文档或博客内容
你是否通过 Medplum 学会了某种不太容易一开始就发现的用法?将新知识贡献给我们的文档,可以帮助有类似使用场景的其他人!
我们的文档托管在 medplum.com/docs,但内容由 docs package 中的 Markdown 文件构建而成。
对于较小的改动,你可以直接在网页浏览器中通过 GitHub.dev 编辑文件,无需克隆代码仓库。
修复错误或实现新功能
为了让新贡献者专注于我们愿意接纳的工作,代码贡献需要经过审批流程:在我们审核之前,你的 Pull Request 必须关联一个带有 open-to-community 标签的问题。这表示维护者已明确邀请社区协助处理该问题。你可以在 PR 描述中使用关闭关键词(例如 Fixes #123)或通过 GitHub 的 Development 面板将 PR 关联到问题。未关联 open-to-community 问题的 PR 会被自动关闭,但添加关联后可以重新打开。已有贡献者和 Medplum 团队成员不受此要求限制。
如果你发现了错误,请先查找已有的、带有 open-to-community 标签的问题,或者新建问题并请我们为其添加该标签,然后再开始修复。
如果你想实现新功能,请先新建问题,与我们讨论该功能可能的实现方式,并确认它符合我们对应用的路线图和规划。
如果你想参与贡献,但不确定如何开始,我们为适合新手的问题添加了 "good first issue" 标签。请查看所有 good first issue,挑选一个你感兴趣的问题!
准备好开始编写代码了吗? 按照本地环境设置说明操作,然后开始吧!有关此流程的更多详情,请参阅我们的完整贡献指南。
代码库
技术
了解基本规则后,来谈谈这个单体代码库的大致架构:
- 全栈 TypeScript:我们使用 Node.js 驱动服务端,使用 React 构建前端应用。你在此代码库中接触到的几乎所有代码都是 TypeScript。
以下是我们使用的主要技术:
- PostgreSQL:数据存储
- Redis:后台任务和缓存
- Express:API 服务端
- TypeScript:类型安全的 JavaScript
- React:React 前端应用
文件夹结构
medplum/
├── packages
│ ├── agent # On-premise agent
│ ├── app # Frontend web app
│ ├── bot-layer # AWS Lambda Layer for Bots
│ ├── cdk # AWS CDK infra as code
│ ├── cli # Command line interface
│ ├── core # Core shared library
│ ├── definitions # Data definitions
│ ├── docs # Documentation
│ ├── examples # Example code used in documentation
│ ├── fhir-router # FHIR URL router
│ ├── fhirtypes # FHIR TypeScript definitions
│ ├── generator # Code generator utilities
│ ├── graphiql # Preconfigured GraphiQL
│ ├── hl7 # HL7 client and server
│ ├── mock # Mock FHIR data for testing
│ ├── react # React component library
│ ├── react-hooks # React hooks library
│ └── server # Backend API server
└── scripts # Helper bash scripts
致谢
感谢 Chromatic 提供可视化测试平台,帮助我们审核 UI 改动并发现视觉回归问题。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。