调研探索
通过 ClinicalTrials.gov APIv2…
需要检索、统计或获取 ClinicalTrials.gov 上临床试验信息时,用封装脚本按条件查询、按 NCT ID 取详情、统计数量或做患者匹配。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
通过 ClinicalTrials.go通用
解决思路
- 先阅读 uv 技能并按其 Setup 说明安装 uv,确保 uv 在 PATH 中可用。
- 若工作区根目录不存在 .licenses/clinical_trials_database_LICENSE.txt,先显著提醒用户查看 https://clinicaltrials.gov/ 的条款,然后创建该文件记录通知文本与时间戳。
- 始终使用提供的封装脚本 scripts/clinical_trials_api.py 查询数据库,不要直接访问数据库,脚本会自动遵守速率限制。
- 始终使用 --fields 参数限制返回字段,避免试验 JSON 记录过大;可参考 references/studies_schema.md 确定字段路径,写入文件后只读取所需字段。
- 先用 --count-total 检查结果总量,再决定是否拉取全部记录。
- 对大量结果使用 --limit 配合 --page-token 分页迭代;page-token 必须从上一次响应的 nextPageToken 原样复制,不要自行构造。
- 信任搜索过滤器,除非被明确要求核实详细入组标准,否则不要手动重新过滤结果。
- 若使用了本技能,确保在输出中提及这一点。
- 搜索研究:运行 uv run scripts/clinical_trials_api.py search,可用 --condition、--intervention、--status、--phase、--age-group、--study-type、--sponsor、--has-results、--sort、--fields、--limit、--count-total、--page-token、--advanced、--output 等参数,所有标志可选且以 AND 组合。
- --condition 指定疾病或病症(如 "cystic fibrosis");--intervention 指定药物、器械或治疗名称(如 "pembrolizumab")。
- --status 过滤招募状态,取值:RECRUITING、COMPLETED、NOT_YET_RECRUITING、ACTIVE_NOT_RECRUITING、ENROLLING_BY_INVITATION、TERMINATED、SUSPENDED、WITHDRAWN。
- --phase 过滤试验分期,取值:PHASE1、PHASE2、PHASE3、PHASE4、EARLY_PHASE1、NA。
- --age-group 过滤患者年龄组,取值:CHILD(0–17)、ADULT(18–64)、OLDER_ADULT(65+)。
- --study-type 过滤研究类型,取值:INTERVENTIONAL、OBSERVATIONAL、EXPANDED_ACCESS。
- --sponsor 指定牵头申办方或机构名称(如 "National Cancer Institute")。
- --has-results 为布尔标志(无需值),存在时筛选在 ClinicalTrials.gov 上有结果的研究。
- --sort 指定排序,格式为 FieldName:asc 或 FieldName:desc,常用字段:LastUpdatePostDate、EnrollmentCount、StudyFirstPostDate、StartDate。
- --limit 指定每次请求返回的最大研究数(1–1000,默认 10);--count-total 为布尔标志,存在时响应包含 totalCount 字段。
- --advanced 传入原始 Essie 过滤表达式以支持专用标志之外的复杂查询(如 "AREA[LocationCountry]United States"),与其他标志以 AND 组合,语法见 references/clinical_trials_api.md。
- --output 为必填,指定 JSON 响应写入的文件路径。
- 按 NCT ID 获取研究详情:运行 uv run scripts/clinical_trials_api.py get-study <nct_id> [--fields "<fields>"] --output /tmp/study.json;省略 --fields 时返回默认字段集 NCTId,BriefTitle,OverallStatus,Phase,BriefSummary,ConditionsModule,ArmsInterventionsModule,EligibilityModule。
- 获取入组/排除标准:运行 uv run scripts/clinical_trials_api.py get-eligibility <nct_id> --output /tmp/eligibility.json,返回标题与完整 eligibility 模块(入组/排除标准、年龄范围、性别)。
- 统计匹配研究数量:运行 uv run scripts/clinical_trials_api.py count --condition "<disease>" [--status "<status>"] [--phase "<phase>"] ... --output /tmp/count.json,接受与 search 相同的过滤标志,仅返回总数。
- 按地点/地理搜索:在 search 中使用 --advanced 配合 AREA[LocationCountry] 或 AREA[LocationCity] 限制地理范围,例如 --advanced "AREA[LocationCity]New York"。
- 按申办方/机构搜索:在 search 中使用 --sponsor 查找特定机构或公司开展的试验。
- 组合多条件搜索:在单次查询中叠加 condition、intervention、status、phase、geography、sponsor 等标志(以 AND 组合)。
- 分页:当结果超过 --limit 时,响应包含 nextPageToken,用 --page-token 传入以获取下一页。
- 高级查询:使用 --advanced 传入 Essie 表达式,支持 AREA[Field]Value 定位字段(如 AREA[LocationCountry]United States、AREA[Phase]PHASE3)、AND/OR/NOT 布尔运算符、RANGE[min, max] 数值/日期范围(如 RANGE[500, MAX]),语法与可用字段见 references/clinical_trials_api.md。
- 原始 API 查询(逃生舱):运行 uv run scripts/clinical_trials_api.py raw-query --endpoint <path> --params '<json_dict>' --output /tmp/raw_result.json,用于专用标志未覆盖的端点或参数组合。
- 参考文档:API 参数、枚举值与 Essie 语法见 references/clinical_trials_api.md;JSON 字段路径与 --fields 配方见 references/studies_schema.md。
适用边界 · 注意事项
- 未安装 uv 或无法将其加入 PATH 时不可用。
- 未先查看并记录 ClinicalTrials.gov 条款通知时不应使用。
- 不要直接访问数据库或自行构造 page-token,应始终通过封装脚本并原样复制 nextPageToken。