SuperAPI AI 工具集

clinicaltrials-database

数据与分析

查看项目

更新于 10-15 10:54

技能介绍

用途

ClinicalTrials.gov 是由美国国家医学图书馆维护的全球临床试验注册库。本技能用于通过 ClinicalTrials.gov API v2 检索试验、获取详细研究信息、按多种条件过滤并导出数据以供分析。

适用场景包括:患者匹配(为特定疾病或人群寻找正在招募的试验)、研究分析(分析临床试验趋势、结果或研究设计)、药物/干预措施研究、地理检索、申办方/机构追踪、数据导出、试验监测、入组资格筛查。

主要能力

  1. 按疾病/状况检索:使用 query.cond 参数查找研究特定医学状况或疾病的试验。
  2. 按干预措施/药物检索:使用 query.intr 参数查找测试特定干预措施、药物、器械或操作的试验。
  3. 地理检索:使用 query.locn 参数查找特定地点的试验。
  4. 按申办方/机构检索:使用 query.spons 参数查找特定组织开展的试验。
  5. 按研究状态过滤:使用 filter.overallStatus 参数,有效值包括 RECRUITING、NOT_YET_RECRUITING、ENROLLING_BY_INVITATION、ACTIVE_NOT_RECRUITING、SUSPENDED、TERMINATED、COMPLETED、WITHDRAWN。
  6. 获取详细研究信息:包括入组资格标准、结果、联系人与地点等。
  7. 分页与批量数据获取:支持自动分页或手动分页控制。
  8. 数据导出为 CSV:便于在电子表格或数据分析工具中处理。
  9. 提取并汇总研究信息:快速生成试验概览。
  10. 组合查询策略:组合多个过滤条件进行定向检索。

使用方式

基础检索可通过辅助脚本执行:

cd scientific-databases/clinicaltrials-database/scripts python3 query_clinicaltrials.py

也可直接使用 Python 的 requests 库调用 API:

import requests

url = "https://clinicaltrials.gov/api/v2/studies" params = { "query.cond": "breast cancer", "filter.overallStatus": "RECRUITING", "pageSize": 10 }

response = requests.get(url, params=params) data = response.json()

print(f"Found {data['totalCount']} trials")

按 NCT ID 获取特定试验详情:

import requests

nct_id = "NCT04852770" url = f"https://clinicaltrials.gov/api/v2/studies/{nct_id}"

response = requests.get(url) study = response.json()

title = study['protocolSection']['identificationModule']['briefTitle'] status = study['protocolSection']['statusModule']['overallStatus']

脚本提供以下辅助函数:search_studies()(带多种过滤条件检索试验)、get_study_details()(获取特定试验完整信息)、search_with_all_results()(自动分页获取全部结果)、extract_study_summary()(提取关键信息用于快速概览)。

技术规格

  • 基础 URL:https://clinicaltrials.gov/api/v2
  • 认证:无需认证(公开 API)
  • 速率限制:约每分钟 50 次请求(按 IP)
  • 响应格式:JSON(默认)、CSV
  • 最大分页大小:每次请求 1000 项研究
  • 日期格式:ISO 8601
  • 文本格式:富文本字段使用 CommonMark Markdown
  • API 版本:2.0(2024 年 3 月发布)
  • API 规范:OpenAPI 3.0

限制与注意事项

速率限制管理:批量获取数据时建议使用最大分页大小(1000)以减少请求次数,对速率限制错误(429 状态)实施指数退避,大规模数据收集时在请求之间添加延迟。

数据结构导航:API 响应为嵌套结构,常用信息路径包括 NCT ID(study['protocolSection']['identificationModule']['nctId'])、标题(study['protocolSection']['identificationModule']['briefTitle'])、状态(study['protocolSection']['statusModule']['overallStatus'])、阶段(study['protocolSection']['designModule']['phases'])、入组资格(study['protocolSection']['eligibilityModule'])、地点(study['protocolSection']['contactsLocationsModule']['locations'])、干预措施(study['protocolSection']['armsInterventionsModule']['interventions'])。

错误处理:应对网络请求实施错误处理,包括 HTTP 错误、请求失败与 JSON 解码错误。

缺失数据处理:并非所有试验都有完整信息,访问字段前应检查其是否存在,可使用 .get() 进行安全导航。

CSV 格式说明:请求 CSV 格式时返回的是字符串而非 JSON 字典。

参考文档:references/api_reference.md 提供完整端点规范、所有查询参数与有效值、响应数据结构与模块、常见用例代码示例、错误处理与最佳实践、数据标准等详细 API 文档。