README
🚀 临床病历记录MCP服务器(代号:Ratchet)
此项目为使用Claude进行临床病历记录的MCP服务器,可让Claude直接将患者就诊信息记录到电子病历中,减轻居家护理护士的行政负担。
🚀 快速开始
从npm安装(推荐)
npx mcp-ratchet-clinical-charting
从源代码安装
git clone https://github.com/m2ai-mcp-servers/mcp-ratchet-clinical-charting.git
cd mcp-ratchet-clinical-charting
npm install
npm run build
npm run dev # 开发模式
npm test # 运行测试
✨ 主要特性
- 支持Claude直接将患者就诊信息记录到电子病历中,减轻居家护理护士的行政负担。
- 目前支持模拟模式,可用于开发和测试,未来将集成生产环境的电子病历系统。
- 提供了多个工具,如搜索患者、创建就诊记录、获取患者就诊历史等。
📦 安装指南
从npm安装(推荐)
npx mcp-ratchet-clinical-charting
从源代码安装
git clone https://github.com/m2ai-mcp-servers/mcp-ratchet-clinical-charting.git
cd mcp-ratchet-clinical-charting
npm install
npm run build
npm run dev # 开发模式
npm test # 运行测试
💻 使用示例
基础用法
在Claude中使用示例:
"Search for patient Eleanor Thompson"
→ 返回患者PT - 10001的人口统计信息和状态
"Create a visit note for PT-10001 with blood pressure 120/80"
→ 创建并存储包含生命体征的就诊记录
"Get visit history for PT-10001"
→ 返回之前的就诊记录列表
📚 详细文档
状态信息
| 组件 | 状态 | |-----------|--------| | MCP服务器 | ✅ 正常运行(模拟模式) | | 单元测试 | ✅ 20/20通过 | | Claude桌面版 | ✅ 可进行测试 | | PointCare API | ⏳ 等待API文档 |
当前模式:模拟模式 - 使用逼真的测试数据进行开发和测试。
模拟模式
当未配置POINTCARE_API_URL时,Ratchet默认以模拟模式运行。模拟模式具有以下特点:
- 使用5个虚构的测试患者。
- 将就诊记录存储在内存中。
- 返回逼真的响应。
- 非常适合开发和Claude桌面版测试。
可用工具
| 工具 | 描述 | 模拟模式 |
|------|-------------|-----------|
| search_patient | 按姓名、ID或电话查找患者 | ✅ 可用 |
| create_visit_note | 记录患者就诊时的生命体征 | ✅ 可用 |
| get_patient_history | 获取患者的就诊历史 | ✅ 可用 |
Claude桌面版集成
配置Claude桌面版
将以下内容添加到Claude桌面版配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ratchet": {
"command": "npx",
"args": ["-y", "mcp-ratchet-clinical-charting"]
}
}
}
生产模式下与电子病历系统集成的配置:
{
"mcpServers": {
"ratchet": {
"command": "npx",
"args": ["-y", "mcp-ratchet-clinical-charting"],
"env": {
"POINTCARE_API_URL": "https://api.pointcare.com",
"POINTCARE_API_KEY": "your-api-key"
}
}
}
}
步骤3:重启Claude桌面版
重启Claude桌面版以加载新的MCP服务器。
步骤4:验证
在Claude桌面版中,你应该能看到:
search_patient工具可用create_visit_note工具可用get_patient_history工具可用
可以尝试输入:"Search for patient Eleanor"
测试患者(模拟模式)
| ID | 姓名 | 状态 | 主要诊断 | |----|------|--------|-------------------| | PT - 10001 | Eleanor Thompson | 活跃 | 2型糖尿病、充血性心力衰竭 | | PT - 10002 | Robert Martinez | 活跃 | 慢性阻塞性肺疾病、术后 | | PT - 10003 | Margaret Wilson | 活跃 | 帕金森病 | | PT - 10004 | James Thompson | 活跃 | 中风后康复 | | PT - 10005 | Dorothy Anderson | 已出院 | 髋关节置换 |
起源故事
Ratchet源于M2AI NurseCall的n8n工作流,该工作流旨在帮助居家护理护士进行就诊记录:
当前流程(M2AI NurseCall):
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Twilio │───>│ n8n │───>│ VAPI │───>│ Email │
│ SMS │ │ Workflow│ │ Call │ │ Summary │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
问题:就诊记录通过电子邮件发送,但仍需手动输入到PointCare电子病历系统中。
Ratchet的解决方案:
未来流程(使用Ratchet):
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌───────────┐
│ Twilio │───>│ n8n │───>│ Ratchet │───>│ PointCare │
│ SMS │ │ Workflow│ │ MCP │ │ EMR │
└─────────┘ └─────────┘ └──────────┘ └───────────┘
配置信息
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| POINTCARE_API_URL | 否* | PointCare API的基础URL |
| POINTCARE_API_KEY | 否* | API密钥或令牌 |
| RATCHET_MOCK_MODE | 否 | 强制使用模拟模式(true/false) |
| LOG_LEVEL | 否 | 日志级别(debug/info/warn/error) |
*生产环境使用时必需。未设置时激活模拟模式。
项目结构
ratchet/
├── src/
│ ├── index.ts # MCP服务器入口点
│ ├── config.ts # 配置管理
│ ├── tools/ # 工具实现
│ │ ├── search-patient.ts
│ │ ├── create-visit-note.ts
│ │ └── get-patient-history.ts
│ ├── services/ # 业务逻辑
│ │ ├── patient-service.ts
│ │ └── mock-data.ts
│ ├── types/ # TypeScript类型
│ └── utils/ # 日志记录器、错误处理
├── tests/
│ └── patient-service.test.ts
├── dist/ # 编译输出
├── prds/
│ └── RATCHET-PRD.yaml
├── docs/
│ └── API_REQUIREMENTS.md
├── package.json
├── tsconfig.json
└── jest.config.js
开发
# 以监听模式运行
npm run dev
# 运行测试
npm test
# 运行测试并生成覆盖率报告
npm test -- --coverage
# 代码检查
npm run lint
下一步计划
- 获取PointCare API文档 - 查看
docs/API_REQUIREMENTS.md - 完成产品需求文档(PRD) - 使用真实的API细节填充工具规范
- 实现真实的API调用 - 替换模拟响应
- 集成测试 - 使用PointCare沙箱进行测试
相关项目
- GRIMLOCK - 自主MCP服务器工厂
- ratchet-demo-emr - 用于测试的演示电子病历React应用
📄 许可证
本项目采用MIT许可证。
使用GRIMLOCK - 自主MCP服务器工厂构建
微信扫一扫