本项目聚焦于医疗健康领域,借助 SMART on FHIR 标准和 Model Context Protocol (MCP) 构建工具集,助力用户以多样化方式访问和处理电子健康记录(EHR)数据。
本项目提供两种操作模式,以下为您详细介绍。
此模式适用于开发环境,支持借助命令行工具启动服务,并与 ehr - sim 模拟器进行交互。
创建数据库:
# 示例:将数据保存到 data/my_record.sqlite 文件中
bun run src/cli.ts --create-db --db ./data/my_record.sqlite
打开浏览器,依照提示连接到 ehr - sim 模拟器。
启动 MCP 服务:
# 示例:使用已创建的数据库文件启动服务
bun run src/cli.ts --db ./data/my_record.sqlite
配置文件:需提供一个品牌配置文件(例如 config.epicsandbox.json),其中包含以下信息:
url:指定品牌的定义文件路径(如 static/brands/epic - sandbox.json)。tags:用于分类和过滤的品牌标签数组(例如 [ "epic", "sandbox" ])。vendorConfig:包含 SMART on FHIR 客户端详细信息(如 clientId, scopes)。客户端配置:
{
"mcpServers": {
"local - ehr": {
"name": "本地 EHR 搜索",
"command": "bun", // 或 bun 的绝对路径
"args": [
"/home/user/projects/smart - mcp/src/cli.ts", // cli.ts 的绝对路径
"--db",
"/home/user/projects/smart - mcp/data/my_record.sqlite" // 数据库文件的绝对路径
]
}
}
}
该模式提供持久化的网络服务,支持多个客户端连接,使用服务器发送事件(SSE)进行通信。
ClientFullEHR 数据存储于内存或持久化会话中。⚠️ 重要提示
- 目前 OAuth 2.1 客户端支持有限,仅适用于专门的开发或调试工具。
- 此模式仍处于实验阶段。