We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible helper functions to augment National Drug Code information from open_payments() results:
open_payments()
# Example NDC codes ndcs <- c( "0002-1433-80", "0173-0869-06", "0003-0894-31", "50242-828-02", "61874-115-31", "0023-6501-10", "0169-4132-12", "0003-0893-21", "12496-0300-1", "64597-301-60", "0310-1730-30", "0310-6205-30", "0310-4616-12", "65649-303-02", "72618-3000-2", "66220-729-30", "12496-0100-1", "65757-300-01", "59467-679-01", "0002-1436-11", "0002-1506-80", "78206-145-01", "55513-112-01", "59148-018-71", "59148-037-13", "55513-100-01", "50419-540-01") # MedlinePlus medline <- function(ndc) { http <- "https://connect.medlineplus.gov/service?" code <- paste0("mainSearchCriteria.v.c=", ndc) sys <- "mainSearchCriteria.v.cs=2.16.840.1.113883.6.69" fmt <- "knowledgeResponseType=application/json" url <- paste0(http, code, "&", sys, "&", fmt) resp <- httr2::request(url) |> httr2::req_perform() res <- httr2::resp_body_json(resp, check_type = FALSE, simplifyVector = TRUE) if (isTRUE(vctrs::vec_is_empty(res$feed$entry))) { cli_args <- dplyr::tribble( ~x, ~y, "NDC", ndc) |> tidyr::unnest(cols = c(y)) provider:::format_cli(cli_args) return(invisible(NULL)) } results <- res$feed$entry |> tidyr::unnest(c(title, summary), names_sep = ".") |> dplyr::select(subject = title._value, summary = summary._value) |> dplyr::mutate(ndc = ndc, .before = 1) |> dplyr::mutate(summary = stringr::str_squish(summary)) return(results) } # Retrieve NDC data from MedlinePlus medline_results <- ndcs |> purrr::map(\(x) medline(ndc = x)) |> purrr::list_rbind() #> ✖ No results for NDC = 78206-145-01 #> # A tibble: 36 × 3 #> ndc subject summary #> <chr> <chr> <chr> #> 1 0002-1433-80 Dulaglutide Injection "Dulaglutide inject… #> 2 0002-1433-80 Diabetes Medicines "<h3>What is diabet… #> 3 0173-0869-06 Umeclidinium and Vilanterol Oral Inhalation "The combination of… #> 4 0003-0894-31 Apixaban "Apixaban is used h… #> 5 0003-0894-31 Blood Thinners "<h3>What are blood… #> 6 50242-828-02 Baloxavir Marboxil "Baloxavir marboxil… #> 7 61874-115-31 Cariprazine "Cariprazine is use… #> 8 0023-6501-10 Ubrogepant "Ubrogepant is used… #> 9 0023-6501-10 Pain Relievers "<p>Pain relievers … #> 10 0169-4132-12 Semaglutide Injection "Semaglutide inject… #> # ℹ 26 more rows # Retrieve NDC data from RxNorm rxnorm <- function(ndc) { rxcui <- rxnorm::from_ndc(ndc) ndc_status <- rxnorm::get_ndc_status(ndc) brand_name <- rxnorm::get_bn(rxcui) atc <- rxnorm::get_atc(rxcui) atc_first <- rxnorm::get_atc(rxcui, "first") atc_second <- rxnorm::get_atc(rxcui, "second") atc_third <- rxnorm::get_atc(rxcui, "third") atc_fourth <- rxnorm::get_atc(rxcui, "fourth") dplyr::tibble(ndc = ndc, status = ndc_status, rxcui = rxcui, brand_name = brand_name, atc = atc, atc_first = atc_first, atc_second = atc_second, atc_third = atc_third, atc_fourth = atc_fourth) } rxnorm("0002-1433-80") #> # A tibble: 1 × 9 #> ndc status rxcui brand_name atc atc_first atc_second atc_third atc_fourth #> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 0002-… ACTIVE 1551… TRULICITY A10BJ alimenta… drugs use… blood gl… glucagon-… rxnorm_results <- ndcs |> purrr::map(\(x) rxnorm(ndc = x)) |> purrr::list_rbind() #> # A tibble: 27 × 9 #> ndc status rxcui brand_name atc atc_first atc_second atc_third atc_fourth #> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 0002… ACTIVE 1551… TRULICITY A10BJ alimenta… drugs use… blood gl… glucagon-… #> 2 0173… ACTIVE 1487… ANORO R03AL respirat… drugs for… adrenerg… adrenergi… #> 3 0003… ACTIVE 1364… ELIQUIS B01AF blood an… antithrom… antithro… direct fa… #> 4 5024… ACTIVE 2100… XOFLUZA 4… J05AX antiinfe… antiviral… direct a… other ant… #> 5 6187… ACTIVE 1667… VRAYLAR N05AX nervous … psycholep… antipsyc… other ant… #> 6 0023… ACTIVE 2268… UBRELVY N02CD nervous … analgesics antimigr… calcitoni… #> 7 0169… ACTIVE 1991… OZEMPIC A10BJ alimenta… drugs use… blood gl… glucagon-… #> 8 0003… ACTIVE 1364… ELIQUIS B01AF blood an… antithrom… antithro… direct fa… #> 9 1249… ACTIVE 1996… SUBLOCADE N07BC nervous … other ner… drugs us… drugs use… #> 10 6459… ACTIVE 1040… NUEDEXTA N07XX nervous … other ner… other ne… other ner… #> # ℹ 17 more rows
Created on 2023-10-12 with reprex v2.0.2
The text was updated successfully, but these errors were encountered:
ndc_lookup() implementation #19
db20f88
Initial functionality implemented
Sorry, something went wrong.
andrewallenbruce
No branches or pull requests
Possible helper functions to augment National Drug Code information from
open_payments()
results:Created on 2023-10-12 with reprex v2.0.2
The text was updated successfully, but these errors were encountered: