所有文章 > API开发 > 深度解析:临床试验数据库CT.gov与API接口指南
深度解析:临床试验数据库CT.gov与API接口指南

深度解析:临床试验数据库CT.gov与API接口指南

在线临床试验数据库创建初衷旨在提高临床试验的透明度、确保临床试验质量及公众访问性;同时,它们也成为了连接患者、研究人员和医疗专业人士的重要桥梁,主要包括我们熟知的WHO国际临床试验注册平台(International Clinical Trials Registry Platform,ICTRP)、中国CDE药物临床试验登记与信息公示平台、中国临床试验注册中心(Chinese Clinical Trial Registry, ChiCTR)、美国NIH临床试验网(ClinicalTrials.gov,以下简称 CT.gov)、欧盟EMA临床试验数据库 (European Union Drug Regulating Authorities Clinical Trials Database,EudraCT)等。这些庞大而详尽的数据库为医学界提供了宝贵资源,广泛应用于洞察疾病治疗和临床研究进展促进学术交流与合作、以及制定临床研究与治疗建议等领域。本文旨在介绍其中创建时间最早(2000年)、信息量最全(50万+项目)、目前影响最大(全球临床试验)的 CT.gov 网站内容与结构,并重点讲解其提供的 API 数据接口。希望通过本文介绍,抛砖引玉,帮助广大临床试验爱好者,尤其是临床数据工作者利用好公开的、免费信息源,更好地服务于临床试验和相关研究工作。

Part 1: CT.gov 数据库介绍

关于 CT.gov
CT.gov 是一个由美国国家医学图书馆(National Library of Medicine,NLM)运营的网站,隶属于美国国立卫生研究院(National Institute of Health, NIH),于2000年开始向公众免费开放使用,是创建最早的在线临床试验数据库,旨在提高临床试验的透明度和公众的可访问性,收录包括全美和世界上其它200多个国家和地区开展的临床研究,目前已汇集了超过50万个研究项目信息。

CT.gov 数据库主要包括以下类型的研究:

  • 临床试验:又称为干预性研究,旨在评估新药物、生物制剂、治疗方法、医疗器械或设备或其他干预措施在人体中的安全性和有效性。临床试验通常又分为I、II、III、IV四期,每期有不同的研究目的和设计。
  • 观察性研究:属于非干预研究,研究人员仅通过观察和记录研究对象的行为、特征和结果来收集数据,而不施加任何试验性干预或治疗。这种研究方法在流行病学、社会科学、心理学等领域广泛应用,主要目的是描述现象,探索关联,或生成假设。即便有干预措施,也是参与者已将其用作常规医疗保健或日常生活的一部分。

注意:不是所有的临床试验或观察性研究都会收录在 CT.gov 数据库中。美国的法律、法规和政策要求申办方或研究者必须向 CT.gov 提交某些类型的临床试验;只有少数政策要求将观察性研究也列入该数据库。对于法律或政策未明确要求提交的临床研究,申办方或研究者可以自主选择是否将其提交至 CT.gov;但一旦选择将研究列入 CT.gov,则必须保持该项研究信息的及时更新并符合相关信息提交要求另外,本文延用 “临床试验数据库” 这一习惯表述来描述 CT.gov 数据库,尽管现在其适用范围较最初创立时要求更广,包括部分其它类型临床研究项目等。

关于 CT.gov 适应临床试验(Applicable Clinical Trial, ACT)

  • 根据美国 FDA 修正案第 801节条款(即FDAAA801),42 CFR 第 11 部分最终法案规则,如果临床试验或研究同时符合下列 4 项检查清单并且该项研究始于2017年1月18日及之后,则符合法案关于适应临床试验 ACT 的定义,相关试验信息必须在 CT.gov 进行提交。检查清单包括:
  1. 干预性研究
  2. 至少符合下面中任一项
    1. 至少有一个位于美国或其领土的临床试验机构参与
    2. 为美国 FDA 新药临床研究申请(Investigational New Drug Application, IND)或试验性医疗器械豁免(Investigational Device Exemption, IDE)研究
    3. 涉及在美国生产(药品、生物制品或医疗器械)并出口到另一国家或地区开展的研究
  3. 研究评估包括至少一种受美国FDA监管的药品、生物制品或医疗器械
  4. 除药品或生物制品临床 I 期试验或医疗器械可行性研究之外的研究

除上述法律明确规定必必须提交的临床试验之外,下面两类型临床研究也需要在 CT.gov 进行提交:

  • 受 NIH 资助的临床研究
  • 计划在国际医疗期刊上发表结果的临床研究 (国际医学期刊编辑委员要求, ICMJE)。

CT.gov 临床试验主要信息通常一项具体临床试验提交包括以下关键信息:研究基本信息(研究标题、分期、概要、编号、关键词等)、研究最新状态、研究开始和完成时间、研究目的、具体干预措施、参与条件(入排标准)、试验设计(研究类型)、研究结果、监管信息、申办方和研究者信息、研究地点、联系方式及其它与该项研究相关的论文或出版物等,上述信息有助于提高临床试验的透明度、减少或避免重复性研究。
随着时间的推移,法律、规章和政策的变化可能会导致具体的信息提交要求发生变化,但整体趋势是朝着更严格的方向演进,这包括了提交数据的内容、覆盖范围和时间节点等方面,这种趋势也反映了人们对临床试验信息准确性、完整性和及时性的日益关注。

与 CT.gov 信息提交要求变化的主要里程碑事件

注:NIH / NLM 不对提交的内容进行科学性审查,申办方和研究者应对所提交数据的安全性、科学性和准确性负责,并确保其研究符合所有相关法律法规。关于拓展性使用 (Expanded Access)CT.gov 数据库同时也提供了关于拓展性使用相关联系信息。拓展性使用,又可称为同情使用(Compassionate Use),是指在没有其他治疗选择、且疾病严重或危及生命时,允许未参加临床试验患者使用该研究药物或医疗器械等用于治疗,拓展性使用并非适用于所有正在进行的临床试验。CT.gov 提供了相关联系人,供患者必要时联系。FDA 也明确了拓展性使用的相关规定和要求(https://www.fda.gov/news-events/public-health-focus/expanded-access)。有关 CT.gov 网站数据库更多详情介绍,可参考官网(https://clinicaltrials.gov/about-site/about-ctg)查阅。

Part 2: 数据下载与 API 接口介绍

CT.gov 是一个开放且免费的在线临床试验数据库,公众可以轻松访问和利用其中的数据。目前,用户主要通过两种方式来下载和使用数据:手动下载和通过 API 自动下载
手动下载CT.gov 提供了灵活的手动下载功能,允许用户下载全部数据包或仅下载符合特定筛选条件的数据。支持的文件格式有Json、CSV、RIS、FHIR 等。建议用户尤其是统计编程人员或数据科学工作者,优先选择 JSON 格式,因为它支持下载所有包含在数据库中的字段信息,但后期也多需要一定的程序来处理。相对而言,CSV 格式最多只能下载30个预设字段信息,好处是不需要额外的编程技能即可方便快速使用。

API 接口自动下载CT.gov 还支持通过 API 接口进行程序化自动下载,这种方式更加适合需要定期更新数据或进行大规模数据分析的用户。API 提供的灵活访问确保用户能有效获取和整合所需数据。下面主要介绍如何通过其提供的 API 接口来获取相关数据信息,有关 API 的基本知识介绍,可参考前述文章探秘API:解锁统计编程新时代的钥匙。

  • API 主接口地址

CT.gov API 主要采用 GET 请求方式来为用户提供数据交换服务,其主接口地址为 https://clinicaltrials.gov/api/v2/,目前最新版本为 2.0.3, 可通过下面API 地址获取当前 API 最新版本信息:

https://clinicaltrials.gov/api/v2/version

通常,我们使用更多的是与研究项目相关的 API Endpoints, 主要包括下面 5个:

API Endpoint URL用途
/studies用来获取符合查询或过滤条件的单个或多个临床研究项目
/studies/{nctId}用来获取某一指定研究编号的临床项目信息
/studies/metadata用来返回数据库表元数据信息,如字段名称、标签、类型等
/studies/search-areas用来获取构建复杂查询的字段及其权重信息,详情请参见:https://clinicaltrials.gov/data-api/about-api/search-areas
/studies/enums获取数据库中所有枚举类型字段值列表,如研究状态 RecruitmentStatus 值列表,即下图。

获取 API 数据结构可用字段信息https://clinicaltrials.gov/api/v2/studies/metadata

另外,还有用来获取数据基本统计信息的3 个 API 接口,包括返回项目 Json 数据大小及其分布、字段值基本描述、列表或数组类型字段值长度描述及分布等。

比如运行 API( https://clinicaltrials.gov/api/v2/stats/field/sizes)将返回下述结果:

从中我们可以了解字段 Phase 中只包括有一个值的研究项目共计 368448 个,包括有两个值的项目有 21819 个,比如属于 Phase I / Phase II 联合设计的项目。

再通过下面的查询(为方便阅读,省略了前面 API 主路径 https://clinicaltrials.gov/api/v2/studies,下同)可以返回所有 size=2的项目信息, 此处用到了该 API 查询中的高级使用方法 Search Area:

?filter.advanced=AREA[Phase:size]2&countTotal=true

可参考官方 API 使用文档了解更多详情(https://clinicaltrials.gov/data-api/api)。

  • API 接口使用实例

上面对 CT.gov 常用 API 接口类型做了基本的描述,接下来,我们通过几个具体的查询实例来帮助大家更快地熟悉它们的主要用法。下面先以最常用的接口 /studies 为例。

  • 获取所有临床试验信息:

    方法:直接调用该 API (https://clinicaltrials.gov/api/v2/studies),不带查询或过滤条件参数。


上面是不带查询和过滤条件的返回结果,包括所有记录和字段数据,可以看到截止当前日期共有 509510 条记录(注:默认返回中不包括 totalCount 值,这里声明了参数 countTotal 为真以返回该数据)    

?countTotal=true

获取满足特定查询条件的临床试验信息:

比如,我们想知道罗氏开展的所有临床试验信息,可通过参数 query.lead 来指定主要申办方名称:

?countTotal=true&query.lead=Roche

如只想返回指定字段信息,可以通过参数 fields 来限定返回字段列表清单,比如 (点击阅读全文可快速体验该查询结果):

fields=NCTId,BriefTitle,Keyword,LeadSponsor,OverallStatus&countTotal=true&query.lead=Roche

分页查询:当 API 返回结果数超过 pageSize 设定(默认值为 10)时,会在返回结果中包括一个 nextPageToken 的参数值,供 API 获取下一页数据时参数传递时使用。

调用时将该值添加到参数 pageToken 即可返回下一页数据:

?pageToken=KV1-7ZuCkPYg&countTotal=true有关更多查询参数设置,可参考官方链接 API 介绍:https://clinicaltrials.gov/data-api/api

获取某一具体临床试验信息

 获取某一具体项目信息可以在 API 主路径后面直接添加临床试验项目编号即可,比如获取项目 NCT05013879 临床信息:

https://clinicaltrials.gov/api/v2/studies/NCT05013879

默认会返回该项目所有可用数据,包括方案(ProtocolSection)、结果(ResultsSection)、文档(DocumentSection)和衍生(DerivedSection)四大部分,每一部分又包括许多模块内容,信息量非常丰富。通常我们只需要返回指定字段信息,可参照上面示例,通过添加参数 fields 即可,比如,只返回项目编号、标题和关键词:

 /NCT05013879?fields=NCTId,BriefTitle,Keyword

API 二次封装

CT.gov API 提供了非常丰富的数据接口和参数供用户选择使用。在某些情况下,我们为方便调用和集成,也可以考虑对原生 API 进行二次封装,比如下图所示,只返回部分指定感兴趣内容,并取消了原 API 返回数据的多层级信息结构, 返回结果更加直观,一目了然。

结语

CT.gov 和其它同类型临床试验数据库一样,作为一个免费的公共资源,对于提高临床研究透明度,增强公众信任,避免重复研究,促进科学知识的传播和健康改善,发挥着越来越大的作用。本文通过对 CT.gov 临床试验数据库内容、结构及其 API 数据接口使用等进行了全面的描述,希望广大临床试验爱好者和相关研究人员,能够更高效的使用该类型数据库,更好的应用到我们具体的临床试验工作当中,特别是其提供的 API 接口,用户可以将这些数据自动化地、集成到企业自身的业务场景,服务于具体的业务逻辑,包括但不限于辅助临床试验设计、研究基地选择、受试者招募、洞察临床研究动态、竞争情报收集以及新药研发趋势分析等。我们也会在后续的文章中继续给大家分享如何基于在线临床试验数据库进行相关的临床试验洞察与决策分析。

文章转自微信公众号@西铁房

#你可能也喜欢这些API文章!