FHIR医疗数据服务器

Veradigm FHIR MCP 2.0服务器为AI语音代理提供对FHIR API资源的只读访问,支持患者验证、预约管理、药物信息查询和临床数据检索等功能。

  • by moatit
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 moatit/veradigm-ai-mcp

使用说明

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 install

2.配置环境

cp .env.example .env
# Edit .env with your Veradigm credentials

3.本地运行

# Development
npm run dev

# Production
npm run build
npm start

4.使用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设置

  1. 注册应用:注册地址: Veradigm开发者门户
  2. 获取凭据:获取客户端ID和密码
  3. 配置作用域:确保 system/*.read 范围已授予
  4. 测试访问:使用提供的邮差收藏进行测试

可用工具

患者手术

  • 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'
  }
});

语音代理用例

  1. 呼叫应答:验证呼叫者身份并适当路由
  2. 预约确认:检查并确认即将到来的预约
  3. 药物咨询:提供药物信息和补充状态
  4. 提供商查找:查找并提供提供商联系信息
  5. 临床背景:了解患者病情以获得更好的帮助

API 文档

请参阅 docs/ 综合文档目录:

HTML文档(推荐)

打开 docs/index.html 在浏览器中查看带有图表的交互式文档:

Markdown文档

测试

邮差收藏

导入提供的Postman集合以进行全面的API测试:

# Import collection
postman/Veradigm_FHIR_Collection.json

# Import environments  
postman/environments/Sandbox.json
postman/environments/Production.json

MCP检查员

在本地测试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许可证-有关详细信息,请参阅许可证文件。