Veradigm QUICMCP 2.0服务器
模型上下文协议(MCP)2.0服务器,为AI语音代理集成提供对Veradigm FHIR API资源的只读访问。
概述
此MCP服务器公开了20多个作为AI语音代理工具的HttpClient只读操作,实现了:
- 患者验证:搜索和验证患者身份
- 预约管理:查询约会和日程安排
- 药物信息:访问药物请求和补充状态
- 提供商目录:搜索医疗服务提供者和地点
- 临床数据:检索条件、过敏、观察结果和程序
特性
- 🔐 OAuth 2.0身份验证:具有令牌缓存的客户端凭据流
- 🏥 符合MultiPR4标准:完全支持GetIRelease 4标准
- 🚀 高性能:针对AI语音代理响应时间进行了优化
- 🐳 容器化:Docker支持多阶段构建
- 📊 综合录井:详细的错误处理和审计跟踪
- 🔄 环境支持:沙盒和生产配置
快速开始
先决条件
- Node.js 18+
- Docker(可选)
- 具有FHIR API访问权限的Veradigm开发人员帐户
1.克隆和安装
git clone https://github.com/moatit/veradigm-ai-mcp.git
cd veradigm-ai-mcp
npm install2.配置环境
cp .env.example .env
# Edit .env with your Veradigm credentials3.本地运行
# Development
npm run dev
# Production
npm run build
npm start4.使用Docker运行
# Build and run
docker-compose up --build
# Or build manually
docker build -t veradigm-fhir-mcp-server .
docker run -p 3000:3000 veradigm-fhir-mcp-server配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
NODE_ENV | 环境(沙箱/生产) | sandbox |
CLIENT_ID | OAuth 2.0客户端ID | 必填 |
CLIENT_SECRET | OAuth 2.0客户端密码 | 必填 |
FHIR_BASE_URL_SANDBOX | 沙盒Contoso端点 | Veradigm沙盒 |
FHIR_BASE_URL_PRODUCTION | 生产QUIC端点 | 产品所需 |
TOKEN_CACHE_TTL | 令牌缓存TTL(秒) | 3600 |
CACHE_ENABLED | 启用令牌缓存 | true |
Veradigm设置
- 注册应用:注册地址: Veradigm开发者门户
- 获取凭据:获取客户端ID和密码
- 配置作用域:确保
system/*.read范围已授予 - 测试访问:使用提供的邮差收藏进行测试
可用工具
患者手术
search_patient-按姓名、出生日期、电话、MRN搜索患者get_patient_details-获取详细的患者信息verify_patient_identity-通过匹配评分验证患者身份
预约操作
get_upcoming_appointments-预约患者get_appointment_details-获取具体预约信息check_appointment_status-检查预约状态find_patient_next_appointment-查找下一个预约get_appointments_by_date_range-获取日期范围内的约会
药物操作
get_patient_medications-获取有效的患者药物get_medication_requests-获取药物请求check_refill_status-检查加注资格(只读)get_medication_statements-获取用药史
提供商运营
search_providers-搜索医疗服务提供者get_provider_details-获取提供商信息search_locations-搜索医疗机构get_location_details-获取位置信息
临床运营
get_patient_conditions-获取患者病情/诊断get_allergies-引起患者过敏get_recent_observations-获取生命体征和实验室结果get_patient_procedures-获取患者程序get_patient_coverage-购买保险
与AI语音代理集成
RetellAI集成
// Example tool call
const result = await mcpClient.callTool({
name: 'verify_patient_identity',
arguments: {
firstName: 'John',
lastName: 'Doe',
birthDate: '1990-01-01',
phone: '555-123-4567'
}
});语音代理用例
- 呼叫应答:验证呼叫者身份并适当路由
- 预约确认:检查并确认即将到来的预约
- 药物咨询:提供药物信息和补充状态
- 提供商查找:查找并提供提供商联系信息
- 临床背景:了解患者病情以获得更好的帮助
API 文档
请参阅 docs/ 综合文档目录:
HTML文档(推荐)
打开 docs/index.html 在浏览器中查看带有图表的交互式文档:
- 文档主页 -主要文件中心
- 系统架构 -架构图和数据流
- 后端文档 -服务、工具和实用程序
- api参考 -完整的API文件
- MCP工具参考 -所有21个带参数的MCP工具
- 部署指南 -Docker和云部署
- 集成指南 -RetellAI集成
Markdown文档
测试
邮差收藏
导入提供的Postman集合以进行全面的API测试:
# Import collection
postman/Veradigm_FHIR_Collection.json
# Import environments
postman/environments/Sandbox.json
postman/environments/Production.jsonMCP检查员
在本地测试MCP服务器:
# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector
# Run inspector
mcp-inspector发展
项目结构
src/
├── index.ts # MCP server entry point
├── config/
│ ├── environment.ts # Environment configuration
│ └── fhir-endpoints.ts # FHIR endpoint definitions
├── services/
│ ├── auth.service.ts # OAuth 2.0 authentication
│ ├── fhir.service.ts # FHIR API client
│ └── cache.service.ts # Token caching
├── tools/
│ ├── patient.tools.ts # Patient operations
│ ├── appointment.tools.ts # Appointment operations
│ ├── medication.tools.ts # Medication operations
│ ├── provider.tools.ts # Provider operations
│ └── clinical.tools.ts # Clinical operations
└── utils/
├── fhir-parser.ts # FHIR response parsing
└── error-handler.ts # Error handling脚本
npm run build # Build TypeScript
npm run start # Start production server
npm run dev # Start development server
npm run test # Run tests
npm run lint # Run ESLint第二阶段路线图
写入操作的未来增强功能:
- 预约安排/重新安排
- 处方补充请求提交
- 患者沟通偏好
- 同意管理
- 高级身份验证(QUIC上的SMART)
安全与合规
- HIPAA合规性:具有审核日志记录的只读访问
- OAuth 2.0:使用令牌缓存进行安全身份验证
- 速率限制:内置请求限制
- 错误处理:全面的错误管理
- 日志记录:合规性的详细审计跟踪
支持
- 文档:参见
docs/目录 - 问题:通过GitHub报告问题
- Veradigm支持: 开发人员门户
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
