# Archive Hospital MCP

> Archive Hospital Mcp

- Skill: `infometa/archive-hospital-mcp` (Agent Skill)
- Install (CLI): `npx skillmds@latest add infometa/archive-hospital-mcp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/infometa/archive-hospital-mcp/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: infometa (https://skillmd.com/u/infometa)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/infometa/archive-hospital-mcp

---


# 腾医患者档案 Skill

本 Connector 连接全周期智能管理平台（archive_hospital_server），面向医护/助理场景，提供**患者档案查询**能力。所有工具都在**当前登录医生**的权限范围内执行——你只能看到该医生名下的患者。

## 你能帮用户做什么

- **找人**：按姓名 / 手机号 / 病历号 / 是否收藏，翻页查询当前医生名下的患者列表
- **看档案**：根据患者 ID 查看患者详情（基础档案、联系方式等）
- **看标签**：根据患者 ID 查看患者画像标签（系统标签 + 医生自定义标签）
- **看备注**：根据患者 ID 查看医生对该患者的备注
- **看病史**：根据患者 ID 查看患者病史信息（既往病史 / 现病史等）
- **看科室**：查询当前医生有权限访问的科室列表

## 可用工具

### 1. `query_patient_list` — 查询患者列表

按分页 / 关键词 / 收藏过滤，返回当前医生名下的患者列表。

| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
| `keyword` | string | `""` | 模糊搜索：姓名 / 手机号 / 病历号 |
| `favorite` | `0`\|`1` | `0` | `1` 只看已收藏，`0` 全部 |
| `page` | int | `0` | 页码，**从 0 开始** |
| `pageSize` | int | `20` | 每页条数，最大 100 |

**返回结构关注点**：`total`（总数）、`list[]`（每条含 `patientId`、`name`、`phone` 等）。后续查详情/标签/备注/病史**必须**用 `list[i].patientId`。

### 2. `query_patient_info` — 查询患者详情

按 `patientId` 拿单个患者的详细档案。

| 参数 | 类型 | 说明 |
|---|---|---|
| `patientId` | string | 必填，取自 `query_patient_list` 返回的 `list[i].patientId` |

### 3. `get_patient_portrait_tag` — 查询患者画像标签

按 `patientId` 拿患者的画像标签集合（系统标签 / 自定义标签）。

| 参数 | 类型 | 说明 |
|---|---|---|
| `patientId` | string | 必填，取自 `query_patient_list` 返回的 `list[i].patientId` |

### 4. `get_patient_remarks` — 查询患者备注

按 `patientId` 拿医生对该患者的备注信息。

| 参数 | 类型 | 说明 |
|---|---|---|
| `patientId` | string | 必填，取自 `query_patient_list` 返回的 `list[i].patientId` |

### 5. `get_patient_disease_info` — 查询患者病史

按 `patientId` 拿患者的病史信息（既往病史 / 现病史等）。

| 参数 | 类型 | 说明 |
|---|---|---|
| `patientId` | string | 必填，取自 `query_patient_list` 返回的 `list[i].patientId` |

### 6. `get_perm_department_list` — 查询科室列表

查询当前登录医生有权限访问的科室列表。**无业务入参**。返回结构里通常包含科室 id / 名称等，可用于后续按科室维度进一步筛选或展示。

## 推荐调用姿势

**用户说患者名字，而不是 ID**——这是常见情况。你要**先列表、后详情**：

1. 调 `query_patient_list`，`keyword` 传用户提到的姓名/手机号/病历号
2. 从 `list[]` 里找到目标患者，拿到 `patientId`
3. 再调 `query_patient_info` / `get_patient_portrait_tag` / `get_patient_remarks` / `get_patient_disease_info`

如果 `list[]` 里有**多个同名患者**，不要自作主张选一个——把候选列表（姓名 + 手机号后 4 位 / 病历号）展示给用户，请用户确认后再进详情。

如果用户想同时看**详情 / 标签 / 备注 / 病史**中的多个，这些 tool 都只依赖 `patientId`，可以**并行调用**，不要串行等。

`get_perm_department_list` 独立于患者维度，用户想"看看我管哪些科室"、或需要按科室做二次筛选时再调；不需要在每次查患者前预热调用。

## 分页与批量

- 用户说"最近的"、"前几条"，用默认 `page=0, pageSize=20` 即可
- 用户说"全部"，先看第一页的 `total`，估算页数再决定要不要继续翻页；不要盲目一次性拉几百条
- 单页上限是 100，超过要翻页

## 错误处理

工具返回的文本里如果带 `[XXX]` 前缀，代表结构化错误：

| 前缀 | 含义 | 你该怎么办 |
|---|---|---|
| `[MISSING_AUTHORIZATION]` | 没带 Bearer token | 提示用户在 WorkBuddy 侧完成腾医账号授权 |
| `[INVALID_TOKEN]` | token 无效 / 过期 / 权限不足 | 提示用户重新授权；不要重试 |
| `[BIZ_ERROR]` | 后端业务报错（HTTP ≥ 400） | 把后端 message 展示给用户，不要瞎猜 |
| `[NETWORK_ERROR]` | 网络异常 / 超时 | 可以稍等再试一次；连续失败要提示用户 |

**遇到 `[INVALID_TOKEN]` 不要重复调用**——token 状态由 WorkBuddy 客户端管，你重试也是同样结果，会打扰用户。

## 隐私与合规

- 患者数据涉及**个人健康信息（PHI）**，属于敏感数据
- 展示患者手机号 / 身份证号 / 病历号时，**默认脱敏**（如手机号显示为 `138****1234`），除非用户明确要求看完整值
- 不要主动把患者数据写入外部文件、发送到其他服务、或用于与本次问询无关的目的
- 不要基于患者标签/档案/病史给出诊断建议——你的职责是**帮医生找信息**，诊断由医生做

## 不要做的事

- 不要在没有 `patientId` 的情况下瞎猜一个 ID 去调详情/标签/备注/病史
- 不要在错误未消除时继续重试消耗后端配额
- 不要跨患者拼接信息（"A 患者的标签 + B 患者的档案"）除非用户明确要求对比

