archive-hospital-mcp · v2.0.0 · 2026-10-04 · sha256 f294e3e81ad46974
archive-hospital-mcp v2.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/f294e3e81ad46974.
---
name: archive-hospital-mcp
description: 全周期智能管理平台(archive_hospital_server)只读 Connector。围绕当前登录医生的患者档案提供跨域查询能力,覆盖患者/标签画像/生活方式/随访/用药/消息沟通/报告指标/模板管理等业务域,把机构端数据取回供 WorkBuddy 做后续分析。所有查询都在当前登录医生的权限范围内执行;数据只读,仅限对话内分析,禁止下载导出。
version: 2.0.0
author: darcybfli
---
# 全周期智能管理平台 Skill(只读)
本 Connector 连接**全周期智能管理平台**(archive_hospital_server),面向医护/助理场景。所有工具都在**当前登录医生**的权限范围内执行——你只能看到该医生名下的患者及相关业务数据。
> ⚠️ 当前会话为**只读**(read-only):所有已注册工具都是查询类,**没有任何写/更新/删除能力**。用户若要求新建/修改/删除档案数据(含用药计划),请直接告诉用户"当前 Connector 为只读模式,无法执行写操作,请到医生端应用中操作",**不要**尝试用查询工具"曲线救国"。
> ⚠️ 本 skill 正文**不**逐个展开工具的完整参数——工具数量与形态会随业务演进变化,具体清单以运行时 `tools/list` 为准,工具描述里已经写清楚了参数与返回。正文只讲**通用姿势**:怎么发现工具、怎么组合调用、怎么处理返回、怎么规避坑。文末**附录**提供当前已知工具的静态快照,供快速定位参考。
## 职责边界(先想清楚再动手)
本 skill 的职责是**帮 WorkBuddy 把机构端数据取回来**:发现工具 → 组合调用 → 处理返回 → 规避坑。数据取回之后的分析,由 WorkBuddy 自身的通用能力承担,**不在本 skill 职责内**——不要在本 skill 里写死任何"分析配方"或"输出格式规范"。
## 数据合规与使用边界(强制,P0)
患者数据属于**个人健康信息(PHI)**,敏感且涉及数据较多,使用必须遵循「合规、最小范围、保护数据」原则。
### 只能用于数据分析,禁止下载 / 导出(强制)
- **禁止**把患者数据写成任何文件——包括 xlsx / csv / pdf / docx / json / md 等,**也禁止通过 WorkBuddy 生成文件交付**。用户要求"导出到桌面 / 生成表格文件 / 下载"时,一律拒绝并说明"患者数据只支持在对话内分析,不支持下载或导出"。
- **禁止**复制大段原始数据到对话外、发送到其他服务、或粘贴到其他应用。
- 数据只用于**本次问询的分析**,不落盘、不外传。
### 输出必须附数据合规提醒(强制)
每次输出涉及患者数据时,**末尾都附上固定的数据合规提醒**——面向用户,提醒其注意数据合规与隐私保护,格式统一:
> 🔒 数据合规提醒:以上内容涉及患者个人健康信息,请严格遵守数据保护要求,仅在授权范围内使用,勿对外泄露。
### 展示脱敏
- 展示手机号 / 身份证号 / 住院号时,**默认脱敏**(如手机号显示为 `138****1234`),除非用户明确要求看完整值。
### 不做医学判断
- 不要基于患者档案/备注/用药/画像给出**诊断建议**——你的职责是帮医生找信息、取数据,医学判断由医生做。
## 工具组织方式
所有工具都是**语义化"胖"工具**——一个工具对应一个业务查询动作,内部可能编排多个后端接口,返回统一的结构化结果:
```jsonc
{
"summary": "面向 AI 的一句话摘要",
"entities": { /* 结构化数据,形态因工具而异 */ },
"ids": { /* 便于下一步引用的 id 集合 */ },
"nextActions": [ "推荐的后续工具名" ]
}
```
### 命名规律(**用来快速定位工具**)
工具名一律 `snake_case`,动词前缀直接暗示了它的语义:
| 前缀 | 含义 | 典型输入 | 典型输出 |
|---|---|---|---|
| `list_*` | 分页/批量查询 | 关键词、时间窗、筛选条件、分页参数 | 列表 + 分页元信息(`totalCount` / `hasMore` 等) |
| `get_*` | 单对象详情 / 某维度信息 | 目标 id(`patientId` / `followUpId` / `reportId` / `templateId` / 用药计划 id …) | 结构化详情 |
所有工具都是 **read**。看到工具描述里没有 `⚠️` / `❌` 前缀标记,就是纯查询。
### 业务域(**判断该找哪个前缀 + 关键词**)
下表是**当前已知业务域的快照,仅供参考**——用于帮 AI 快速定位"该去哪个域找工具"。真实业务域以运行时 `tools/list` 为准;**遇到表外的新域 / 新工具,按同样的命名规律 + 通用调用姿势处理即可,无需等本 skill 更新**。
| 业务域 | 关键词 | 典型问题 |
|---|---|---|
| **患者管理** | patient / group / remark | 找病人、看基础信息、备注、分组 |
| **标签画像 & 病史** | tag(system/custom)/ portrait / history / indicators | 患者身上有哪些标签、健康画像、既往病史、健康指标 |
| **生活方式** | diet / sport(records / statistics) | 饮食/运动明细与统计 |
| **随访管理** | followUp / joinRequest / autoImport / questionnaire | 随访项目、随访对象、时间轴、加入申请、患者答卷 |
| **消息沟通** | chat(session/messages)/ mass | 查看消息记录、消息列表、群聊详情 |
| **报告指标** | report / indicator | 检查报告列表与详情、指标类型、指标趋势 |
| **模板管理** | plan / questionnaire / msg template / template categories | 诊后计划模板、问卷模板、消息模板、模板分类 |
| **用药管理** | medication / drug(plan / records / checkIn) | 患者在吃什么药、用药计划怎么设置的、有没有按时吃、打卡依从性如何 |
### 跨域 id 的机制与示例
**机制**:同一个对象(患者 / 随访 / 报告 / 用药计划等)在不同业务域里共用同一个主 id——拿到一个 id,同域和跨域的多个 `get_*` 都能复用,这是跨域联查的基础。
**示例**(仅说明机制,**非权威清单**,具体字段名以运行时 `tools/list` 的 `inputSchema` 为准,不要硬编):患者用 `patientId`、分组用 `groupId`、随访用 `followUpId`、模板用 `templateId`、用药计划用其自身 id……
**发现工具的正确姿势**:调 `tools/list` 拿到清单 → 按前缀 + 业务域关键词过滤 → 读工具的 `description` 与 `inputSchema` 决定用哪个。**不要凭记忆硬编工具名**,工具会随业务演进增删。
## 通用调用姿势
### 姿势 1:用户报名字/关键词 → 先列表后详情
绝对高频场景。任何 `get_*_detail` / `get_*_basic_info` / `get_*_info` 类的详情工具都需要 id,**先用对应域的 `list_*` 工具搜出候选**:
1. `list_*`,把用户给的姓名/关键词/时间窗塞进参数
2. 从返回的 `entities` 或 `ids` 里挑目标对象
3. 再调 `get_*` 拿详情
**多个候选时不要自作主张选一个**——把候选(姓名 + 手机号后 4 位 + 科室/分组,或该业务域的区分字段)展示给用户,让用户确认。
### 姿势 2:同一对象的多维信息 → **并行**
针对同一个 `patientId`(或其他主 id),多个 `get_*` 工具是**互相独立**的,**在同一轮里并行调用**,不要串行等。
典型:用户问"某某患者的完整情况" → 并行拉基础信息、备注、画像、病史、最近饮食/运动统计、随访状态、用药计划与打卡统计、报告等。
胖工具内部可能已经把常联查的数据一次给全,**先看第一个工具 `entities` 里到底有什么**,再决定是否需要补拉,别重复拉同一份数据。
### 姿势 3:跨域联查靠共享 id
同一个 `patientId` 在患者、标签、生活方式、随访、用药、报告等多个域里都通用;`followUpId` 可以关联到时间轴、答卷、患者列表、统计等;用药计划的 id 可以关联到用药记录与打卡数据。拿到一个 id 后,同域和跨域的多个 `get_*` 都可以直接复用。
### 姿势 4:nextActions 是导航提示,不是必选
`nextActions` 是工具建议的下一步——如果你或用户接下来的意图就是这些动作,直接用;如果意图不匹配,忽略即可。
## 分页
- 用户说"最近的"/"前几条":用工具的默认页码/页大小(一般 `currentPage=0, pageSize=20`)
- 用户说"全部":先看第一页返回里的 `totalCount` / `hasMore` 之类字段,估算页数再决定是否翻页;**不要盲目一次性拉几百条**
- `entities` 里的列表可能被截断,但总数字段是真实总数——需要更多细节再翻页
## 时间参数
- 涉及时间窗的 `list_*`(饮食/运动/报告/随访/用药记录/打卡/消息等),优先用工具 `inputSchema` 里定义的时间字段(通常是 ISO8601 或 `YYYY-MM-DD`),不要瞎传格式
- 用户说"最近一周""上个月"这类相对时间,**基于当前会话时间换算成绝对日期**再传入
## 错误处理
工具返回的文本如果带 `[XXX]` 前缀,代表结构化错误,**按前缀决定动作**:
| 前缀 | 含义 | 处理 |
|---|---|---|
| `[MISSING_AUTHORIZATION]` | 没带 Bearer token | 提示用户在客户端侧完成全周期智能管理平台账号授权 |
| `[INVALID_TOKEN]` | token 无效 / 过期 / 权限不足 | 提示用户重新授权;**不要重试** |
| `[BIZ_ERROR:*]` | 后端业务报错(HTTP ≥ 400) | 把后端 `message` 原样告知用户,不要瞎猜原因 |
| `[NETWORK_ERROR]` | 网络异常 / 超时 | 可以再试一次;连续失败要提示用户 |
| 其他 | 未分类异常 | 展示原文并让用户联系维护方 |
**遇到 `[INVALID_TOKEN]` 不要重复调用**——token 状态由外层客户端管,你重试也是同样结果,只会打扰用户。
## 不要做的事
- **不要**尝试执行写操作(新增/修改/删除/发送/审批等,含设置或调整用药计划)——当前 Connector 就是只读,用户提出这类需求直接告知在应用中操作
- **不要**下载 / 导出患者数据(写文件、发外、生成文件交付等)——见「数据合规与使用边界」
- **不要**凭记忆硬编工具名,每次会话都用 `tools/list` 校对;工具会增删
- **不要**在没有 id 的情况下瞎猜一个 id 去调详情类工具,先用 `list_*` 搜
- **不要**在错误未消除时重复调用(尤其 `[INVALID_TOKEN]` / `[BIZ_ERROR]`),既浪费配额也解决不了问题
- **不要**跨对象拼接信息("A 患者的备注 + B 患者的档案"),除非用户明确要求对比
- **不要**把不同域的 id 张冠李戴(`followUpId` 传给患者详情、`reportId` 传给随访详情、用药计划 id 传给随访/报告类工具等)
---
## 附录:工具清单快照(v2.0.0)
> 本附录是**静态快照**,仅供快速定位参考,不替代运行时发现。工具会随业务演进增删,**一切以 `tools/list` 实际返回为准**;遇到附录之外的工具,按正文「命名规律 + 业务域」定位,读工具 `description` 与 `inputSchema` 使用。
### 源码已确认的工具(6 个)
| 工具名 | 业务域 | 关键参数 | 说明 |
|---|---|---|---|
| `query_patient_list` | 患者管理 | `keyword`(姓名/手机号/病历号模糊搜索)、`page`(页码,从 0 起)、`pageSize`(1~100,默认 20)、`favorite`(0 全部 / 1 只看收藏) | 查询当前登录医生名下的患者列表,返回 `total` / `list` 等 |
| `query_patient_info` | 患者管理 | `patientId` | 患者详细档案(基础信息、联系方式等) |
| `get_patient_disease_info` | 标签画像 & 病史 | `patientId` | 既往病史 / 现病史 |
| `get_patient_remarks` | 患者管理 | `patientId` | 患者备注 |
| `get_patient_portrait_tag` | 标签画像 & 病史 | `patientId` | 画像标签(系统标签 / 自定义标签) |
| `get_perm_department_list` | 患者管理 | 无入参 | 当前登录医生有权限访问的科室列表 |
**用法要点**:
- 所有 `patientId` 都来自 `query_patient_list` 返回的 `list[].patientId`,**不要凭空构造**
- 针对同一患者的多个 `get_*` 工具互相独立,可**并行调用**
- 患者域之外的业务域(生活方式 / 随访管理 / 消息沟通 / 报告指标 / 模板管理 / 用药管理)工具未包含在本快照内,以运行时 `tools/list` 实际返回为准,按正文「业务域表格关键词 + `list_*` / `get_*` 前缀」定位使用