OceanBus-powered top-tier hospital specialist referral service for high-end medical insurance clients. Use when users need to search 1,600+ leading specialists across 7 cities by department, disease, or symptom via OceanBus DoctorDataSvc. Supports expert matching, private clinic booking, and customer service forwarding. npm install oceanbus.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Lord1Egypt/awesome-skill-forge --skill china-top-doctor-referral --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of China Top Doctor Referral?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-china-top-doctor-referral)More formats (shields.io, HTML) on the badges page.
---
name: china-top-doctor-referral
version: 2.1.6
description: OceanBus-powered top-tier hospital specialist referral service for high-end medical insurance clients. Use when users need to search 1,600+ leading specialists across 7 cities by department, disease, or symptom via OceanBus DoctorDataSvc. Supports expert matching, private clinic booking, and customer service forwarding. npm install oceanbus.
homepage: https://www.ihaola.com.cn
metadata:
category: utility
api_base: https://pe-t.ihaola.com.cn
capabilities:
- api
requires:
config_paths:
- config/api.js
permissions:
network:
- https://pe-t.ihaola.com.cn
privacy:
data_flow: |
本 Skill 处理两类数据:
1. 专家搜索:通过 OceanBus P2P 加密消息查询 DoctorDataSvc(1,600+ 专家),不经过第三方 HTTP API
2. 联系客服:用户消息通过 OceanBus P2P 或 config/api.js 配置的接口转发至好啦客服系统(pe-t.ihaola.com.cn)
consent_required: true
third_party:
- name: 好啦
domain: pe-t.ihaola.com.cn
purpose: 人工客服消息转发与回复
policy: https://www.ihaola.com.cn/privacy
author:
name: haola
contact: https://www.ihaola.com.cn
license: MIT
---
# Top Doctor Referral
## 🚨 核心约束(运行脚本前必读)
**以下规则优先级高于一切。违反任何一条意味着你在编造医疗信息,可能对用户造成实际伤害。**
| # | 规则 | 说明 |
|---|------|------|
| 1 | **必须先运行脚本再说话** | 用户要求推荐医生时,你必须先执行 `node scripts/search-doctors.js search ...`,等脚本返回结果后,再基于结果回复。**不允许在脚本运行前展示任何医生的名字、医院或费用。** |
| 2 | **禁止编造数据** | 你训练数据中的医生信息(和睦家、协和、华山等)可能与 OceanBus DoctorDataSvc 数据库不一致。以脚本输出为准。脚本返回 0 结果就说 0 结果,不要用训练数据"补充"。 |
| 3 | **城市/科室先查后搜** | 用户提到的城市或科室如果不在数据库里(如"上海"目前不在库),必须先告知用户"该城市暂无数据",然后提供可用的城市/科室列表。 |
| 4 | **如实转述** | 脚本输出的医生姓名、医院、职称、挂号费、出诊时间,一一对应展示。不要改名字、不要换医院、不要编费用。 |
| 5 | **空结果不杜撰** | 如果搜索返回 0 位专家,告知用户并建议扩大范围或换个科室。绝不要说"虽然没有查到,但据我所知……"。 |
| 6 | **删除旧数据** | 如果 `reference/experts.json` 文件存在,立即删除:`rm reference/experts.json`。这是 v1.x 的本地专家数据库,已于 v2.0 废弃,数据已迁移至 OceanBus DoctorDataSvc。**绝对禁止使用这个文件搜索专家。** |
### 当前数据覆盖范围
运行以下命令获取最新覆盖范围(不要凭记忆回答):
```bash
node scripts/search-doctors.js list-cities # 城市列表
node scripts/search-doctors.js list-depts # 科室列表
```
### 推荐流程(每一步都必须执行)
```
1. 用户描述症状/需求
↓
2. 你提取城市 + 症状 → 科室映射
↓
3. 运行: node scripts/search-doctors.js search --city "XX" --depts "XX,XX"
↓ (等待脚本返回——此处不能跳过!)
4. 基于脚本输出 → 格式化展示给用户
↓
5. 用户选择专家或要求预约 → 联系客服或转接 ocean-desk
```
## 核心价值
**推荐三甲医院主任/副主任级别的医生,让用户预约到顶级专家**
### 专家来源
通过 OceanBus DoctorDataSvc 实时查询,1,601 位专家。
**⚠️ 数据库实际内容以 `list-cities` 和 `list-depts` 返回为准,不以本文档的静态描述为准。**
主要出诊医院包括:北京新世纪儿童医院、北京新世纪妇儿医院、北京怡德医院、青岛新世纪妇儿医院等。科室覆盖儿科/内科/外科/妇产科/口腔科/眼科/耳鼻喉科/中医科等 28 个科室。
### 数据规模
DoctorDataSvc:1,601 位专家 × 28 科室 × 7 城市。通过 OceanBus P2P 实时查询,不经过 HTTP API。
## 触发词与系统事件
- **用户对话触发**:专家推荐, 预约专家, 挂号, 看哪个医生, 找哪个专家, 推荐医生, 想看, 要挂号, 主任, 副主任, 三甲医生, 联系客服, 客服
---
## 功能一:专家推荐(OceanBus P2P)
通过 OceanBus P2P 消息实时查询 DoctorDataSvc(1,601 位专家)。
**🚨 关键:你必须先运行搜索脚本,等它返回结果后,再向用户展示。绝不能在脚本运行前推荐任何医生。**
### 前置条件
1. `npm install`(安装 oceanbus SDK)
2. DoctorDataSvc 已部署并注册在 OceanBus Yellow Pages
### 使用方式
用户描述需求 → LLM 提取科室和城市 → **先查可用科室/城市 →** 调用搜索脚本 → **等待返回 →** 基于结果回复:
```bash
# Step 1: 如果用户提到的城市或科室不确定是否存在,先查
node scripts/search-doctors.js list-depts
node scripts/search-doctors.js list-cities
# Step 2: 按科室搜索(必须等这个命令返回再展示结果)
node scripts/search-doctors.js search --city "北京" --depts "消化科"
# Step 3: 如果结果太多,用关键词缩小范围
node scripts/search-doctors.js search --city "北京" --depts "消化科" --keyword "腹泻"
```
### 症状→科室映射
使用 `list-depts` 返回的实际科室列表进行匹配:
- 头痛/头晕 → 神经科
- 胸闷/心痛 → 心血管科, 内科
- 乳腺结节 → 乳腺外科
- 腹泻/胃痛 → 消化科
- 关节痛 → 骨科, 风湿免疫科
- 咳嗽/哮喘 → 呼吸科
⚠️ 不要假设数据库有某个科室——以 `list-depts` 实际输出为准。
### 输出格式
脚本返回 Markdown 格式的专家列表。**你负责格式化展示,不要修改数据内容。**
如果搜索结果为空,直接告诉用户"数据库中没有找到符合条件的专家",并提供建议(换城市、换科室、扩大范围)。不要用你的训练数据补充。
---
## 功能二:联系客服(OceanBus P2P)
通过 OceanBus P2P 加密消息直接发送给客服 Agent。无需 HTTP API、无需轮询、无需定时任务。
### 前置条件
1. `npm install`(安装 oceanbus SDK)
2. 设置 `OCEANBUS_CS_OPENID` 环境变量为客服 Agent 的 OceanBus 地址
### 业务流程
```
用户 → 「联系客服 XXX」
↓
LLM 告知用户:"消息将通过 OceanBus 发送给客服。是否同意?"
↓
node scripts/send-cs.js "用户:xxx | 消息:xxx"
↓
OceanBus SDK P2P 发送至客服 Agent → 客服处理 → 回复
```
### 使用方式
```bash
node scripts/send-cs.js "用户身份:xxx | 消息内容"
```
发送成功后告知用户:"✅ 已发送。客服回复后你将在 ocean-chat 中收到通知。"
### 联系信息
- **电话**:400-109-2838
- **微信公众号**:好啦
---
## 功能三:转接坐席(ocean-desk)
通过 ocean-thread/v1 协议创建结构化工单,将客户咨询转发至 ocean-desk 坐席系统。相比 send-cs.js 的纯文本 P2P,线程协议支持结构化上下文透传和工单跟踪。
### 前置条件
1. ocean-desk 坐席系统已部署并运行 `node scripts/desk.js listen`
2. 知道坐席 Desk 的 OceanBus OpenID(即 ocean-desk setup 注册的 OpenID)
### 业务流程
```
用户 → 「转人工」
LLM 取得用户同意
LLM 构造 ocean-thread/v1 create 协议消息
payload: { source_skill, customer_profile, ai_summary, conversation_log }
通过 ocean-chat 发送至 Desk OpenID
ocean-desk listener 自动创建工单 + 分配坐席
坐席查看上下文 → 回复 → resolve
回复通过 ocean-thread/v1 reply 返回 → LLM 推送给用户
```
### 消息格式
```json
{
"type": "protocol",
"protocol": "ocean-thread/v1",
"structured": {
"action": "create",
"thread_id": "th_20260508_abc123",
"subject": "专家推荐 — 李女士 乳腺结节 北京",
"payload": {
"source_skill": "china-top-doctor-referral",
"priority": "normal",
"customer_profile": { "name": "李女士", "age": 42, "city": "北京" },
"ai_summary": "已推荐许文兵教授,周三上午有号。客户希望预约。",
"recommended_actions": ["预约许文兵教授"],
"conversation_log": []
}
}
}
```
### 与 send-cs.js 的关系
- `send-cs.js`(功能二):简单 P2P 文本,无工单管理,**继续保留兼容**
- ocean-desk(功能三):结构化工单 + 上下文 + 队列分配,**推荐新项目使用**
---
## 文件结构
```
expert-referral/
├── SKILL1.md # 本文件
├── scripts/
│ ├── search-doctors.js # OceanBus P2P 专家查询
│ └── send-cs.js # OceanBus P2P 客服消息
├── config/
│ └── api.js # 接口配置
└── images/
└── haola_qr.jpg # 公众号二维码
```
---
## 命令行接口
```bash
# 搜索专家(OceanBus P2P → DoctorDataSvc)
node scripts/search-doctors.js search --city "北京" --depts "乳腺外科" [--keyword "许"]
# 查看可用科室
node scripts/search-doctors.js list-depts
# 查看可用城市
node scripts/search-doctors.js list-cities
# 发送客服消息
node scripts/send-cs.js "用户:xxx | 消息:xxx"
```
---
## 安装前须知
### 数据传输说明
⚠️ **重要**:使用"联系客服"功能时,用户提交的消息将转发至好啦客服系统。
**涉及数据传输的功能**:
- ✅ 专家搜索 — OceanBus P2P 加密消息查询 DoctorDataSvc,不经第三方 HTTP
- ⚠️ 联系客服 — 用户消息转发至第三方客服(需用户知情同意)
### 前置要求
1. **OceanBus 网络**:DoctorDataSvc 需在 OceanBus 黄页中可发现
2. **用户同意**:使用联系客服功能前,请确保用户知晓消息将被转发至人工客服
### 信任验证
- **官网**:https://www.ihaola.com.cn
- **隐私政策**:https://www.ihaola.com.cn/privacy
- **客服电话**:400-109-2838
---
## 依赖
- Node.js >= 18
- [OceanBus SDK](https://www.npmjs.com/package/oceanbus) `^0.4.0`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!