用途
fda-database 技能用于通过 openFDA 开放 API 访问美国 FDA 的公开监管数据集。openFDA 是 FDA 提供的开放 API 计划,旨在让公众查询药品、医疗器械、食品、动物/兽医产品以及物质等数据。该技能以 Python 标准化接口封装这些查询能力,适合需要获取 FDA 监管数据的开发与研究场景。
主要能力
该技能覆盖以下数据类别:
- 药品(Drugs):6 个端点,涵盖不良事件报告、产品标签(处方信息、警告、适应症)、NDC 目录、执法报告(召回)、Drugs@FDA 历史审批数据(自 1939 年起)、药品短缺。
- 医疗器械(Devices):9 个端点,涵盖不良事件(故障、伤害、死亡)、510(k) 许可、器械分类与风险等级、执法报告、召回详情、PMA 上市前批准、注册与列名、UDI 唯一器械标识、COVID-19 血清学检测性能数据。
- 食品(Foods):2 个端点,涵盖食品/膳食补充剂/化妆品不良事件、食品召回执法报告。
- 动物与兽医(Animal & Veterinary):动物药品不良事件端点,可按物种、品种和产品查询。
- 物质与其他(Substances & Other):物质数据端点,提供 UNII、CAS 号、化学结构及物质关系;以及历史遗留的 NSDE 数据。
使用方式
基本设置
from scripts.fda_query import FDAQuery
# 初始化(API 密钥可选但推荐)
fda = FDAQuery(api_key="YOUR_API_KEY")
# 查询药品不良事件
events = fda.query_drug_events("aspirin", limit=100)
# 获取药品标签
label = fda.query_drug_label("Lipitor", brand=True)
# 搜索器械召回
recalls = fda.query("device", "enforcement",
search="classification:Class+I",
limit=50)
API 密钥设置
API 无需密钥即可使用,但注册后可获得更高配额:
- 无密钥:240 次请求/分钟,1000 次/天
- 有密钥:240 次请求/分钟,120000 次/天
注册地址:https://open.fda.gov/apis/authentication/
设置为环境变量:
export FDA_API_KEY="your_key_here"
运行示例
python scripts/fda_examples.py
示例演示内容包括:药品安全概况、器械监测、食品召回监控、物质查询、药品对比分析、兽药分析。
常见查询模式
技能文档提供了多种查询模式:
- 安全概况分析:组合多个数据源生成完整安全概况,包括总不良事件数、最常见反应、严重事件、近期召回。
- 时间趋势分析:使用日期范围分析随时间变化的趋势。
- 对比分析:并排比较多个产品的安全概况。
- 跨数据库查询:跨多个端点关联数据。
结果处理
所有 API 响应遵循统一结构:
{
"meta": {
"disclaimer": "...",
"results": {
"skip": 0,
"limit": 100,
"total": 15234
}
},
"results": []
}
技能建议始终处理潜在错误,并对大型结果集使用分页(自动分页 query_all 或手动分页)。
最佳实践
- 使用具体字段搜索,避免过度宽泛的通配符。
- 注意速率限制(FDAQuery 类自动处理限流)。
- 缓存频繁访问的数据(FDAQuery 内置缓存,默认启用)。
- 计数/聚合时使用
.exact后缀进行精确匹配。 - 验证输入数据,清理搜索词。
适用场景
- 药物研究:安全性概况、不良事件、标签、审批、短缺
- 医疗器械监测:不良事件、召回、510(k) 许可、PMA 批准
- 食品安全:召回、过敏原追踪、不良事件、膳食补充剂
- 兽医医学:按物种和品种的动物药品不良事件
- 化学/物质数据:UNII 查询、CAS 号映射、分子结构
- 监管分析:审批路径、执法行动、合规追踪
- 药物警戒:上市后监测、安全信号检测
- 科学研究:药物相互作用、比较安全性、流行病学研究
限制
- 需要 Python 环境运行脚本。
- API 有速率限制,无密钥时每日配额较低。
- 并非所有记录都包含所有字段,需检查字段是否存在。
- 查询语法需遵循 openFDA 规范,错误语法会导致查询失败。
- 具体收费、价格信息暂未提供。
附加资源
- openFDA 主页:https://open.fda.gov/
- API 文档:https://open.fda.gov/apis/
- 交互式 API 浏览器:https://open.fda.gov/apis/try-the-api/
- GitHub 仓库:https://github.com/FDA/openfda
- 服务条款:https://open.fda.gov/terms/
- 支持邮箱:open-fda@fda.hhs.gov