如需下载,请在电脑端打开本页操作。
README.md
机构伦理通讯录 Skill
Cursor Agent Skill,用于通过自然语言查询药物临床试验机构办与伦理委员会通讯录。
数据来源:公开整理的机构伦理通讯录(需登录相应平台抓取更新)。当前快照约 7700+ 条联系人记录。
GitHub 上仅存加密文件 data/contacts.csv.enc,无法用 Excel 或文本编辑器直接打开。查询时由脚本在内存中解密,不落盘明文。
能做什么
- 「中山大学附属第一医院伦理委员会电话是多少?」
- 「协和医院 GCP 联系人是谁?」
- 「连云港一院机构办邮箱」
- 支持医院简称、部分匹配;查无结果时给出相近医院名建议
不能做什么:不提供整表下载、明文 CSV 导出或批量 dump 全部联系人。
安装
本仓库即为 Skill 根目录(clone 后文件夹名建议为 clinical-site-contacts)。
方式一:全局 Skill(推荐)
git clone https://github.com/amon339/clinical-site-contacts.git ~/.cursor/skills/clinical-site-contacts
pip install -r ~/.cursor/skills/clinical-site-contacts/requirements.txt
Cursor 会自动发现 ~/.cursor/skills/ 下的 Skill。
方式二:仅当前项目
git clone https://github.com/amon339/clinical-site-contacts.git /tmp/clinical-site-contacts
mkdir -p .cursor/skills
cp -r /tmp/clinical-site-contacts .cursor/skills/clinical-site-contacts
pip install -r .cursor/skills/clinical-site-contacts/requirements.txt
确保 data/contacts.csv.enc 与 scripts/query_contacts.py 在同一 Skill 目录内。
使用
在 Cursor 中直接提问,例如:
中山一院伦理电话查一下华中科技大学协和医院的机构办联系人广东省人民医院伦理邮箱
Agent 会加载本 Skill 并调用查询脚本返回结果。
手动查询(终端)
# 在 Skill 根目录(或把路径换成你的安装位置)
python scripts/query_contacts.py --hospital "中山大学附属第一医院" --dept 伦理
python scripts/query_contacts.py --hospital "中山" --dept 机构 --limit 20
python scripts/query_contacts.py --suggest "中山一"
python scripts/query_contacts.py --hospital "仁济"
加密与密钥
| 机制 | 说明 |
|---|---|
| 算法 | Fernet 对称加密(cryptography 库) |
| 仓库文件 | 仅 data/contacts.csv.enc |
| 默认密钥 | 内置在 scripts/contact_crypto.py(clone 即可查询) |
| 环境变量 | CONTACTS_DECRYPT_KEY 可覆盖默认密钥 |
| 本地密钥文件 | scripts/.contact_key(可选,已被 .gitignore 忽略) |
安全说明:内置密钥用于防止「直接打开 GitHub 文件即见明文」,无法抵御有脚本访问权限的逆向。请勿将
.enc与自定义密钥一并公开到不可信环境。
更新通讯录数据
方式 A:爬虫(推荐)
- 安装依赖:
pip install selenium cryptography - 确保 Chrome 已登录相应平台(或使用
CHROME_PROFILE_DIR指定 Profile) - 运行爬虫:
python scripts/site_contacts_scraper.py
爬虫流程:抓取 → 临时写入 contacts.csv → 自动加密为 contacts.csv.enc → 删除明文。
环境变量(可选):
| 变量 | 说明 |
|---|---|
CHROME_PROFILE_DIR | Chrome 用户数据目录 |
CHROME_PROFILE_NAME | Profile 名称,默认 Default |
USE_CHROME_PROFILE | 设为 0 不使用已有 Profile |
SKIP_ENTER_TO_QUIT | 设为 1 爬取完自动关闭浏览器 |
CONTACTS_DECRYPT_KEY | 自定义加密密钥(须与查询端一致) |
方式 B:手动加密
维护者若有本地明文 CSV:
python scripts/encrypt_contacts.py \
--input path/to/contacts.csv \
--output data/contacts.csv.enc
默认会删除输入明文;本地调试可加 --keep-plain。
更新后仅提交 data/contacts.csv.enc。
目录结构
clinical-site-contacts/
├── SKILL.md # Agent 指令(触发词、查询流程、回复格式)
├── README.md # 本文件
├── LICENSE # MIT
├── requirements.txt # cryptography
├── data/
│ └── contacts.csv.enc # 加密通讯录(Git 跟踪)
└── scripts/
├── contact_crypto.py # 加解密模块
├── encrypt_contacts.py # 维护者加密工具
├── query_contacts.py # 查询脚本
└── .contact_key # 可选本地密钥(不提交)
数据字段
| 字段 | 说明 |
|---|---|
| 医院 | 医疗机构全称 |
| 联系人 | 姓名 |
| 部门 | 机构 或 伦理 |
| 职位 | 如机构办主任、伦理秘书 |
| 电话 | 可能有多个,以逗号/顿号分隔 |
| 邮箱 | 可能有多个 |
| 职责分工 | 具体负责事项 |
| 对外接待时间 | 办公/接待时段 |
| 办公室地址 | 办公地点 |
免责声明
- 数据为公开整理的机构伦理通讯录快照,不保证实时准确;重要事项请致电核实。
- 更新数据时请遵守相应平台的使用条款;本 Skill 仅供临床试验从业同仁便利查询。
- 通讯录含个人联系方式,请勿用于 spam 或无关营销。
License
MIT — 见 LICENSE
机构伦理通讯录
Skill
查询药物临床试验机构办与伦理委员会通讯录(医院、联系人、电话、邮箱、职责、接待时间、地址)。支持医院名模糊匹配、部门筛选(机构/伦理)、联系人检索。
提交人
风险等级
安全

有疑问、有建议、想分享自己的实践?欢迎加入我们的微信群交流
技能包文件清单


