北京大學國際醫院患者服務:在 Agent 裏對接掛號與預約能力

前言

在醫療場景裏做自動化助手,常見做法是手寫 HTTP 客戶端、自己維護登錄態和驗證碼流程,再把這些邏輯塞進提示詞。步驟多、容易漏配置,也不利於在 Cursor、Claude Code 等環境裏複用。

下面介紹 SkillHub 上的社區 Skill「北京大學國際醫院患者服務」(座標 @user_36426f8f/pkuih-patient-service)。它把北京大學國際醫院相關患者服務能力封裝成 Node.js 模塊,並附帶 Agent 可讀的 SKILL.md 說明,便於在對話中按流程完成查科室、查排班、預約等操作。報告查詢與在線繳費在官方 Skill 文檔中標註爲「即將推出」,掛號相關能力是當前文檔裏寫清的主線。

這是什麼

一句話定位:面向北大國際醫院患者端的 Agent Skill,提供掛號預約相關 API 封裝與安全策略說明。

  • 發佈渠道:SkillHub,來源爲 community,分類 professional,當前列表版本 1.0.1(以 SkillHub 頁面爲準)。
  • 維護信息:Skill 包內文檔標註作者爲高坤,上游代碼倉庫爲 Gitee 上的 pkuih_service;SkillHub 發佈者爲 user_36426f8f。
  • 解決的問題:統一 API Key 配置、登錄與 Token 管理、掛號模塊調用方式,讓 Agent 按文檔執行而不是每次從零拼裝接口。

後端 API 基址在 Skill 配置中固定爲 https://server.pkucare.com。SkillHub 元數據標籤爲 requires_api_key=true,使用前必須配置 PKUIH_API_KEY。

核心功能

以下能力均來自 Skill 包內 SKILL.md 與模塊實現說明,按模塊劃分。

掛號服務

  1. 查詢科室列表(appointment.getDepartments,公開接口,可扁平化科室樹)。
  2. 查詢醫生排班(appointment.getDoctorSchedule(deptCode, startDate, endDate))。
  3. 預約掛號(appointment.book(doctor, slot, sequence))。
  4. 查詢預約記錄(appointment.getAppointments)。

輔助能力包括圖形驗證碼、短信驗證碼、登錄與登出(getCaptcha、sendSms、login、logout),以及 loginInteractive 交互式登錄(文檔中有說明)。

報告與繳費

SKILL.md 將檢驗/檢查報告查詢、待繳費與在線繳費標爲「即將推出」。包內已有 report、payment 模塊骨架與部分接口封裝,是否在生產環境可用應以醫院側開放範圍爲準,不宜在 Agent 流程裏默認依賴。

安全與狀態

機制 說明
Token 有效期 30 分鐘,過期需重新登錄
敏感操作 支付、取消等需重新驗證(文檔中的安全級別表)
狀態文件 /tmp/pkuih_state.json,登出或過期後清理
API Key 環境變量 PKUIH_API_KEY 或本地 .pkuih.config.json(勿提交版本庫)

短信驗證碼在文檔中註明 5 分鐘有效。

安裝與啓用

前置條件

  • Node.js:18.0 及以上(見 INSTALL.md)。
  • API Key:在微信「北京大學國際醫院」小程序申請,或按文檔聯繫醫院信息科;格式爲長字符串(文檔中有示例形態,勿在公開場合粘貼真實 Key)。

通過 SkillHub 安裝(推薦)

SkillHub 技能頁給出的安裝提示爲:參照 SkillHub 安裝說明,安裝座標 @user_36426f8f/pkuih-patient-service。

先確認本機已有 skillhub CLI,再安裝到當前 Agent 的 skills 目錄。未指定 --dir 時,默認會裝到 ./skills/,多數客戶端不會自動加載,需顯式指定路徑。

command -v skillhub && skillhub --version

skillhub install @user_36426f8f/pkuih-patient-service --dir ~/.cursor/skills/

常見 skills 目錄(摘自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或項目下 .agents/skills/

安裝完成後,按各客戶端要求刷新或重啓,使新 Skill 被索引。

配置 API Key

文檔強調將 Key 寫入 ~/.profile,以便非交互式 shell(含 Node 子進程)能讀到環境變量;僅寫在 ~/.bashrc 可能導致 process.env.PKUIH_API_KEY 爲空。

echo 'export PKUIH_API_KEY="你的 API Key"' >> ~/.profile
source ~/.profile
echo $PKUIH_API_KEY

在 Skill 目錄下可運行配置檢查:

cd ~/.cursor/skills/@user_36426f8f/pkuih-patient-service
node check-config.js

典型用法

下列示例來自 SKILL.md,路徑按「已進入 Skill 安裝目錄」編寫;模塊入口爲 index.js。

登錄流程:先取驗證碼,再發短信,最後用短信碼登錄。

const pkuih = require('./index.js');

const captcha = await pkuih.getCaptcha();
await pkuih.sendSms('手機號', captcha.captcha_key, captcha.captcha_code);
const user = await pkuih.login('手機號', '短信驗證碼');

查排班並預約:用 getDateRange 生成日期區間,按科室代碼查醫生,再選有餘量的號位調用 book。

const { startDate, endDate } = pkuih.getDateRange(7);
const doctors = await pkuih.appointment.getDoctorSchedule('005003', startDate, endDate);

const doctor = doctors.find(d => d.name.includes('目標醫生姓名'));
const slot = doctor.sch_list.find(s => s.ampm === 'a' && s.remain > 0);
const result = await pkuih.appointment.book(doctor, slot);

跨會話:文檔說明登錄態可持久化約 30 分鐘;新進程中 require 同一模塊可嘗試恢復狀態,超時後需重新登錄。

在 Agent 側,啓用該 Skill 後,可將用戶自然語言意圖(例如「查某科室下週排班」)映射爲上述 API 調用順序,並在預約、支付類操作前按 SKILL.md 要求做確認與重驗。

適用場景與注意

適合誰

  • 需要在開發環境或個人工作流中,把北大國際醫院掛號、查排班、查預約記錄接到 Agent 的開發者。
  • 已能取得合法 PKUIH_API_KEY、並接受社區 Skill 自行維護、與醫院官方渠道無直接背書關係的團隊。

限制與注意

  1. 合規與賬號:僅能操作本人賬號授權範圍內的數據;API Key 與 Token 屬敏感信息,不要寫入倉庫或日誌。
  2. 社區來源:SkillHub 標註 community,接口行爲、可用科室與號源以醫院實際服務爲準。
  3. 功能邊界:報告、繳費以文檔「即將推出」爲準,生產流程請以掛號能力爲主做驗證。
  4. 環境:Agent 執行 Node 腳本時須能讀到 PKUIH_API_KEY;沙箱或 CI 需單獨注入密鑰。
  5. 列表數據:SkillHub 頁面顯示評分 100000、下載約 1110 次、安裝 2 次(抓取時點數據,以後臺爲準)。

結尾

「北京大學國際醫院患者服務」把醫院患者端掛號相關調用、登錄態與安全策略收斂進一個可安裝的 Agent Skill,適合在已配置 API Key 的前提下,用 SkillHub 裝進 Cursor 等客戶端,再按 SKILL.md 驅動對話式預約流程。

  • SkillHub 技能頁:https://www.skillhub.cn/skills/user_36426f8f/pkuih-patient-service
  • 官方座標地址:https://api.skillhub.cn/user_36426f8f/pkuih-patient-service
  • 安裝說明:https://skillhub.cn/install/skillhub.md
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜