EPIC型EHR MCP服务器
一个全面的电子健康记录(EHR)系统,实现了EPIC风格的工作流,支持WebSocket、JWT身份验证和完整的医疗数据管理。
 
🏥 概述
这是一个生产就绪的模型上下文协议(MCP)服务器,它模拟了一个类似于EPIC的完整EHR系统。它提供了20多种医疗保健工具,用于管理患者数据、预约、药物、实验室结果等。
非常适合:
- 医疗AI代理开发
- EHR集成测试
- 临床工作流程模拟
- 医学人工智能培训
- TYPE/HL7原型设计
- 医疗保健应用程序开发
✨ 特性
完整的EHR功能
- 患者管理 -人口统计、搜索、保险
- 临床文档 -病史、过敏史、SOAP记录、护理计划
- 药物管理 -处方、续药、当前药物
- 实验室和诊断 -实验室结果、订单、成像报告
- 生命体征 -记录和历史
- 预约 -日程安排、取消、状态跟踪
- 疫苗接种 -疫苗记录
- 提供商目录 -按专业搜索
- 账单和保险 -索赔、指控
安全特性
- 基于JWT令牌的身份验证 (行业标准)
- 访问令牌(24小时到期)和刷新令牌(30天到期)
- 令牌撤销(注销功能)
- 基于角色的访问控制(医生、护士、患者、管理员)
- 敏感操作的权限验证
- 使用HS256算法进行安全令牌签名
技术特性
- WebSocket+stdio传输
- 20+MCP工具
- 综合模拟数据
- 基于会话的身份验证
- EPIC式操作
- 生产就绪架构
🚀 快速开始
安装
# Clone repository
git clone https://github.com/YOUR_USERNAME/epic-ehr-mcp-server.git
cd epic-ehr-mcp-server
# Install dependencies
pip install -r requirements.txt运行服务器
# WebSocket mode (for remote connections)
python ehr_server.py --websocket
# Stdio mode (for local MCP clients like Kiro)
python ehr_server.py测试
# Run test client
python test_client.py📚 文档
- QUICKSTART.md -5分钟设置指南
- 认证.md -完整的JWT身份验证指南
- 部署.md -云部署选项(AWS、Azure、Railway)
- 简单_部署.md -无Docker的VPS部署
- JWT_FEATURES.md -JWT实施细节
🔐 认证
测试用户
| 用户名 | 密码 | 角色 | 描述 |
|---|---|---|---|
| 史密斯医生 | 医生123 | 医生 | 莎拉·史密斯医生(内科) |
| 护士 | 护士123 | 护士 | 护士约翰·琼斯 |
| patientt_doe | patient123 | patient | John doe(患者MRN001) |
| admin_user | admin123 | admin | 系统管理员 |
示例用法
import asyncio
import websockets
import json
async def example():
async with websockets.connect('ws://localhost:8766') as ws:
# Authenticate
auth_msg = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "authenticate",
"arguments": {
"username": "dr_smith",
"password": "doctor123"
}
}
}
await ws.send(json.dumps(auth_msg))
response = await ws.recv()
auth_data = json.loads(response)
# Extract access token
access_token = auth_data['result']['content'][0]['text']['access_token']
# Get patient data
patient_msg = {
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_patient",
"arguments": {
"access_token": access_token,
"mrn": "MRN001"
}
}
}
await ws.send(json.dumps(patient_msg))
response = await ws.recv()
print(response)
asyncio.run(example())🛠️ 可用工具
认证
authenticate-登录并获取JWT代币refresh_token-刷新过期的访问令牌logout-撤销访问令牌
患者管理
get_patient-获取患者的人口统计信息search_patients-寻找患者
病历
get_medical_history-获取病情和诊断get_allergies-引起患者过敏get_medications-获取当前药物prescribe_medication-开新药
实验室和诊断
get_lab_results-获取实验室测试结果order_lab_test-订购新的实验室测试get_imaging_reports-获取成像报告
生命体征
get_vital_signs-获取生命体征病史record_vital_signs-记录新的生命体征
预约
get_appointments-预约患者schedule_appointment-安排新的预约cancel_appointment-取消预约
临床文档
get_clinical_notes-获取临床记录create_clinical_note-创建新笔记
其他
get_immunizations-获取免疫史get_care_plan-获取患者护理计划search_providers-搜索医疗服务提供者get_billing_info-获取账单信息
🏗️ 建筑
Client (AI Agent, Web App, Mobile)
↓
WebSocket/Stdio Transport (JSON-RPC 2.0)
↓
JWT Authentication & Authorization
↓
MCP Server Core (Tool Registry)
↓
Business Logic Layer (20+ Tools)
↓
Data Layer (Mock Data / Database)📦 项目结构
epic-ehr-server/
├── ehr_server.py # Main MCP server
├── auth.py # JWT authentication
├── ehr_tools.py # Tool implementations
├── mock_data.py # Healthcare mock data
├── test_client.py # Test client
├── requirements.txt # Dependencies
├── README.md # This file
├── AUTHENTICATION.md # Auth guide
├── DEPLOYMENT.md # Deployment guide
├── SIMPLE_DEPLOYMENT.md # VPS deployment
├── QUICKSTART.md # Quick start
└── JWT_FEATURES.md # JWT details🚀 部署
快速部署(铁路)
- 推送到GitHub
- 将铁路连接到GitHub
- 铁路汽车部署
- 获取公共URL
VPS部署
看 简单_部署.md 获取分步指南。
云部署
看 部署.md AWS、Azure、谷歌云选项。
🔒 安全
- 基于JWT令牌的身份验证
- 基于角色的访问控制(RBAC)
- 令牌过期和刷新
- 安全密码散列(SHA-256)
- HTTPS/WSS支持
- 输入验证
- 权限检查
🧪 测试
# Run complete workflow test
python test_client.py
# Run appointment booking test
python appointment_booking_example.py
# Run persistence test
python test_persistence.py📊 模拟数据
服务器包括全面的模拟数据:
- 2名患者有完整的病历
- 病史、过敏史、药物
- 实验室结果、生命体征、免疫接种
- 预约、临床记录、护理计划
- 2名提供者(医生)
- 帐单记录
🤝 贡献
欢迎投稿!请随时提交拉取请求。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 内置于 MCP(模型上下文协议)
- 受EPIC EHR工作流程启发
- 使用PyJWT实现JWT
📞 支持
对于问题、疑问或贡献:
- 在GitHub上打开一个问题
- 检查仓库中的文档
- 查看示例文件
🗺️ 路线图
- \[\]数据库持久性(PostgreSQL)
- \[\]符合➤R4标准
- \[\]HL7 v2消息支持
- \[\]智能认证系统
- \[\]实时通知
- \[\]审核日志记录
- \[\]多租户支持
- \[\]GraphQL API
______________________________________________________________________
内置于❤️ 用于医疗AI开发
