用途:通过 openFDA API 查询、搜索和下载药品、器械、食品、烟草、化妆品、动物与兽医产品、物质及透明度等监管数据。
主要能力:单一脚本 uv run scripts/openfda_query.py {search,count,download} --output <file> [options] 提供三种操作。search 在 28 个端点上检索并保存 JSON;count 统计匹配结果中某字段的唯一值,可用 --summary N 只取前 N 项;download 分页下载,--all_results 自动翻页,单次上限 25,000 条。分类包括 drug、device、food、tobacco、other、animalandveterinary、cosmetic、transparency,端点如 event、label、ndc、510k、pma、recall、substance、unii 等。
使用方式:所有子命令必须指定 --output 写文件,再用 jq 或代码读取。查询多词名称或分类词时在字段后加 .exact 获得精确匹配;含连字符的 NDC 必须用转义双引号包裹,否则连字符会被当作 NOT 运算符。drug/ndc 只含在售产品,查不到时可改用 drug/label 并加引号精确短语。MedDRA 反应术语的层级需借助生物医学本体服务(如 HP 或 NCIT)近似查询。
限制:无 API key 时每 IP 每分钟 240 次、每天 1,000 次;有 key 时每天 120,000 次,建议配置 FDA_API_KEY。使用前需确保 uv 可用、家目录存在 .env,并在工作区根目录创建 .licenses/openfda_database_LICENSE.txt 记录许可提示。脚本会自动限速,应始终通过封装脚本而非直接访问数据库。