Study Aims and Interpretation

A previous analysis suggested that in the US-FDA FAERS drug-related adverse event database, the number of cases for oral and injectable drugs decreased from year 2015 to year 2016 whereas the number of cases with inhalational and topical dugs slightly increased. In addition, the number of cases reported by physicians was found increasing. http://www.rpubs.com/vesicare/261737
Aims of this analysis were to describe drug names that were counterfieted or suspected counterfieted by country where incident was recorded. Results suggested that affected countries included not only USA but also those in Latin America, North Africa, Europe, Russia and Asia. Therefore, although this database would not have collected incidents worldwide, the US-FDA FAERS may serve as a useful tool to grasp a worldwide trend in the Substandard, Spurious, Falsely labelled, Falsified and Counterfeit (SSFFC) Medical Products.

Data Source

Files in the csv format were used. https://www.fda.gov/Drugs/GuidanceComplianceRegulatoryInformation/Surveillance/AdverseDrugEffects/ucm082193.htm

Read files and Collect Case-ID/caseid for Counterfeit Incident

setwd("/Volumes/LaCie/FAERS/")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
caseid_fake <- foreach(i = 1: length(directories), .combine = c) %dopar% {
  setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
  files <- grep("txt", dir(), value = T)
  files <- grep("^REAC", files, value = TRUE)
  data<-read.csv(files, header = TRUE, sep = "$")
  data[grep("counterfeit", data$pt, ignore.case = TRUE), "caseid"]
}
stopCluster(cl)

Collect Record of Counterfeit Incident with Drug Name of Primary Suspect and Route

setwd("/Volumes/LaCie/FAERS")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
drug <- foreach(i = 1: length(directories), .combine = rbind) %dopar% {
  setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
  files <- grep("txt", dir(), value = T)
  files <- grep("^DRUG", files, value = TRUE)
  data<-read.csv(files, header = TRUE, sep = "$")
  data[data$caseid %in% caseid_fake & data$role_cod == "PS",
       c("caseid", "drugname", "route")]
}
drug[]<-parLapply(cl, drug, as.character)
stopCluster(cl)

Collect Date/fda_dt, Type of Reporter/occp_cod and Country/occur_country of Incident from Demographic data

setwd("/Volumes/LaCie/FAERS")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
date <- foreach(i = 1: length(directories), .combine = rbind) %dopar% {
  setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
  files <- grep("txt", dir(), value = T)
  files <- grep("^DEMO", files, value = TRUE)
  data<-read.csv(files, header = TRUE, sep = "$")
  data[data$caseid %in% caseid_fake, c("caseid", "fda_dt", "occp_cod","occr_country")]
}
date[] <- parLapply(cl, date, as.character)
stopCluster(cl)

Merge the Record fo Counterfeit Incident and the Date in Demographic Data

data <- merge(drug, date, by="caseid")
data$drugname <- toupper(data$drugname) %>% str_extract('[A-Z]+')
data$route <- toupper(data$route)
data[] <- lapply(data, as.character)
data$route <- toupper(data$route) %>% str_replace_all("-", "") %>% str_extract("[A-Z]+")
data$route[is.na(data$route)] <- "UNKNOWN"
data$occp_cod[data$occp_cod ==""] <- "UNKNOWN"
data$occr_country[data$occr_country ==""] <- "UNKNOWN"

Results

Table 1. Drug Name reported by Physician

The table shows drug names that appeared thrice or more.

data %>% filter(occp_cod=="MD") %>% group_by(drugname, occr_country) %>% summarise(Number_Report = n()) %>% arrange(desc(Number_Report)) %>% filter(Number_Report >= 3) %>% kable(format="markdown")
drugname occr_country Number_Report
AVASTIN MX 37
HYDROCODONE US 18
OXYCONTIN US 17
VIAGRA US 9
PREMARIN US 8
COMBIGAN EG 7
ALPRAZOLAM US 6
AVASTIN US 5
AVASTIN IN 4
FENTANYL US 4
HALOPERIDOL CH 4
MIRAPEX KR 4
TYZINE RU 4
ZYPREXA BG 4
ACEON RU 3
CIALIS US 3
NEXAVAR RO 3
ONICIT MX 3

Table 2. Drug Name reported by Pharmacist

The table shows drug names that appeared twice or more.

data %>% filter(occp_cod=="PH") %>% group_by(drugname, occr_country) %>% summarise(Number_Report = n()) %>% arrange(desc(Number_Report)) %>% filter(Number_Report >= 2) %>% kable(format="markdown")
drugname occr_country Number_Report
ONICIT MX 7
VIAGRA US 6
INVEGA US 4
CIALIS US 3
ALPRAZOLAM US 2
CIALIS JP 2
CRESTOR US 2
HYDROCODONE US 2
JANUVIA US 2
OXYCODONE US 2
PROPECIA US 2

Table 3. Drug Name reported by Other Professional

The table shows drug names that occured twice or more.

data %>% filter(occp_cod=="OT") %>% group_by(drugname, occr_country) %>% summarise(Number_Report = n()) %>% arrange(desc(Number_Report)) %>% filter(Number_Report >= 2) %>% kable(format="markdown")
drugname occr_country Number_Report
OXYCONTIN US 6
ATRIPLA US 4
ONICIT MX 4
VIAGRA US 4
CYMBALTA US 2
ESTRING US 2
HERCEPTIN MX 2
PREMARIN US 2

Table 4. Drug Name reported by Consumer

The table shows drug names that appeared 10-times or more.

data %>% filter(occp_cod=="CN") %>% group_by(drugname, occr_country) %>% summarise(Number_Report = n()) %>% arrange(desc(Number_Report)) %>% filter(Number_Report >= 10) %>% kable(format="markdown")
drugname occr_country Number_Report
VIAGRA US 186
CIALIS US 127
DEPAKINE CN 34
CYMBALTA US 27
PLAVIX CN 24
HEPTODIN CN 20
PREMARIN US 18
GLUCOBAY CN 17
ALPRAZOLAM US 15
FENTANYL US 12
SERETIDE CN 12
CELEBREX US 11
PREMPRO US 10
SILDENAFIL US 10

Table 5. Drug Name reported by Unknown

The table shows drug names that appeared twice or more.

data %>% filter(occp_cod=="UNKNOWN") %>% group_by(drugname, occr_country) %>% summarise(Number_Report = n()) %>% arrange(desc(Number_Report)) %>% filter(Number_Report >= 2) %>% kable(format="markdown")
drugname occr_country Number_Report
ADDERALL UNKNOWN 5
AMPHETAMINE UNKNOWN 5
NOVOTHYROX NL 4
NOVOTHYROX RU 4
EUTHYROX UNKNOWN 3
NEXIUM US 3
CIALIS UNKNOWN 2
FASLODEX UNKNOWN 2
MEBENDAZOLE UNKNOWN 2
NORCO UNKNOWN 2
OXYCONTIN UNKNOWN 2