archive-hospital-mcp · v1.0.0 · 2026-07-29 · sha256 3fff345f28f5b45f
archive-hospital-mcp v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/3fff345f28f5b45f.
--- name: archive-hospital-mcp description: 面向医护/助理场景,提供当前登录医生名下的患者列表检索、患者详情/画像标签/备注/病史查询,以及有权限科室列表查询等能力。 version: 1.0.0 author: darcybfli --- # 腾医患者档案 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 患者的档案")除非用户明确要求对比