Skip to content

openFDA: 'openFDA' API #714

@simpar1471

Description

@simpar1471

Submitting Author Name: Simon Parker
Submitting Author Github Handle: @simpar1471
Repository: https://www.github.com/simpar1471/openFDA
Version submitted: 0.1.0.9000
Submission type: Standard
Editor: @maelle
Reviewers: @tanho63, @nrennie

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: openFDA
Title: 'openFDA' API
Version: 0.1.0.9000
Authors@R: 
    person("Simon", "Parker", , "[email protected]",
           role = c("aut", "cre", "cph"),
           comment = c(ORCID = "0009-0003-8214-4496"))
Description: The 'openFDA' API facilitates access to U.S. Food and Drug 
    Administration (FDA) data on drugs, devices, foodstuffs, tobacco, and more.
    This package makes the API easily accessible with 'httr2', returning
    objects which the user can convert to JSON data and parse. Kass-Hout TA, Xu
    Z, Mohebbi M et al. (2016) <doi:10.1093/jamia/ocv153>.
License: GPL (>= 3)
URL: https://github.com/simpar1471/openFDA,
    https://simpar1471.github.io/openFDA/
BugReports: https://github.com/simpar1471/openFDA/issues
Depends:
    R (>= 4.1.0)
Imports:
    cli,
    httr2,
    checkmate,
    purrr,
    rlang,
    vctrs
Config/Needs/website: rmarkdown
Suggests: 
    knitr,
    rmarkdown,
    testthat (>= 3.0.0),
    stringr
Config/testthat/edition: 3
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
VignetteBuilder: knitr

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

openFDA retrieves data from the elastic-search based openFDA API, using httr2. The package can be used to query the API on different fields, and successful queries return httr2 response objects with JSON data that R users can manipulate further.

  • Who is the target audience and what are scientific applications of this package?

The package is intended for anyone wanting to use the openFDA API through R. These include researchers focused on pharmacovigilance (e.g. with the device adverse event endpoints) or veterinary researchers (e.g. with the animal product adverse event endpoints) - really, any user interested in accessing FDA data.

There are other packages. These include the rOpenHealth/openfda package, in which queries are built up in an httr2-like manner. It automatically converts the response data to data frames, but this package returns the underlying httr2 response object, which users can then choose how to parse themselves. Their package does not have a CI suite, nor a documentation website. There is also ck2136/FDAopenR, which has a test suite with 100% coverage and a now-defunct link to Travis CI. It takes an object-oriented approach which I haven't quite wrapped my head around from looking at the README.

Personally, I prefer 'one function, more parameters' approach in my package - but to each their own. I also believe that this package has a wider and more useful array of error handlers, which point the user to commonly encountered problems with the openFDA API itself. This package is also cleared by the relatively more stringent pkgcheck() checks.

This package is also already on CRAN. I know the guide for authors specifies you'd rather not have it this way round, but I didn't intend to submit the package for review when I first made it.

Not applicable

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

Not applicable

  • Explain reasons for any pkgcheck items which your package is unable to pass.

Everything passes on CI. My functions get_api_key() and set_api_key() are not unique to this package, but I think the names are appropriate to the actions these functions perform.

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions