前言¶
在醫療場景裏做自動化助手,常見做法是手寫 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 與模塊實現說明,按模塊劃分。
掛號服務¶
- 查詢科室列表(
appointment.getDepartments,公開接口,可扁平化科室樹)。 - 查詢醫生排班(
appointment.getDoctorSchedule(deptCode, startDate, endDate))。 - 預約掛號(
appointment.book(doctor, slot, sequence))。 - 查詢預約記錄(
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 自行維護、與醫院官方渠道無直接背書關係的團隊。
限制與注意
- 合規與賬號:僅能操作本人賬號授權範圍內的數據;API Key 與 Token 屬敏感信息,不要寫入倉庫或日誌。
- 社區來源:SkillHub 標註
community,接口行爲、可用科室與號源以醫院實際服務爲準。 - 功能邊界:報告、繳費以文檔「即將推出」爲準,生產流程請以掛號能力爲主做驗證。
- 環境:Agent 執行 Node 腳本時須能讀到
PKUIH_API_KEY;沙箱或 CI 需單獨注入密鑰。 - 列表數據: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