Introduction

In this section we will: * identify which Hysterectomy procedures were excluded and why * identify which different Hysterectomy Repair subgroups were created and why

If you have questions or concerns about this data please contact Alexander Nielson ()

Load Libraries

Load Libraries

library(data.table)
library(tidyverse)
## Warning: replacing previous import 'vctrs::data_frame' by 'tibble::data_frame'
## when loading 'dplyr'
library(stringi)
library(ggridges)
library(broom)
library(disk.frame)
library(RecordLinkage)
library(googlesheets4)
library(bigrquery)
library(DBI)
devtools::install_github("utah-osa/hcctools2", upgrade="never" )
library(hcctools2)

Establish color palettes

cust_color_pal1 <- c(
        "Anesthesia" = "#f3476f",
        "Facility" = "#e86a33",
        "Medicine Proc" = "#e0a426",
        "Pathology" = "#77bf45",
        "Radiology" = "#617ff7",
        "Surgery" = "#a974ee"
    )

cust_color_pal2 <- c(
        "TRUE" = "#617ff7",
        "FALSE" = "#e0a426"
    )

cust_color_pal3 <- c(
        "above avg" = "#f3476f",
        "avg" = "#77bf45",
        "below avg" = "#a974ee"
    )



  fac_ref_regex <- "(UTAH)|(IHC)|(HOSP)|(HOSPITAL)|(CLINIC)|(ANESTH)|(SCOPY)|(SURG)|(LLC)|(ASSOC)|(MEDIC)|(CENTER)|(ASSOCIATES)|(U OF U)|(HEALTH)|(OLOGY)|(OSCOPY)|(FAMILY)|(VAMC)|(SLC)|(SALT LAKE)|(CITY)|(PROVO)|(OGDEN)|(ENDO )|( VALLEY)|( REGIONAL)|( CTR)|(GRANITE)|( INSTITUTE)|(INSTACARE)|(WASATCH)|(COUNTY)|(PEDIATRIC)|(CORP)|(CENTRAL)|(URGENT)|(CARE)|(UNIV)|(ODYSSEY)|(MOUNTAINSTAR)|( ORTHOPEDIC)|(INSTITUT)|(PARTNERSHIP)|(PHYSICIAN)|(CASTLEVIEW)|(CONSULTING)|(MAGEMENT)|(PRACTICE)|(EMERGENCY)|(SPECIALISTS)|(DIVISION)|(GUT WHISPERER)|(INTERMOUNTAIN)|(OBGYN)"

Connect to GCP database

bigrquery::bq_auth(path = 'D:/gcp_keys/healthcare-compare-prod-95b3b7349c32.json')

# set my project ID and dataset name
project_id <- 'healthcare-compare-prod'
dataset_name <- 'healthcare_compare'

con <- dbConnect(
  bigrquery::bigquery(),
  project = project_id,
  dataset = dataset_name,
  billing = project_id
)

Get NPI table

query <-  paste0("SELECT npi, clean_name, osa_group, osa_class, osa_specialization
                 FROM `healthcare-compare-prod.healthcare_compare.npi_full`")

#bq_project_query(billing, query) # uncomment to determine billing price for above query.

npi_full <- dbGetQuery(con, query) %>%
  data.table()

get a subset of the NPI providers based upon taxonomy groups

gs4_auth(email="alexnielson@utah.gov")
surgery <- read_sheet("https://docs.google.com/spreadsheets/d/1GY8lKwUJuPHtpUl4EOw9eriLUDG9KkNWrMbaSnA5hOU/edit#gid=0",
                    sheet="major_surgery") %>% as.data.table
## Reading from "Doctor Types to Keep"
## Range "'major_surgery'"
surgery <-  surgery[is.na(Remove) ] %>% .[["NUCC Classification"]]
  npi_prov_pair <-  npi_full[osa_class %in% surgery] %>%
    .[,.(npi=npi,
         clean_name = clean_name
         )
      ]

Load Data

bun_proc <-  disk.frame("full_apcd.df")
hyst <- bun_proc[surg_bun_t_hysterectomy==T & cnt >2 & faci_bun_sum_med > 500]
hyst <-  hyst[,`:=`(
  surg_sp_name_clean = surg_sp_npi %>% map_chr(get_npi_standard_name),
  surg_bp_name_clean = surg_bp_npi %>% map_chr(get_npi_standard_name),
  
  medi_sp_name_clean = medi_sp_npi %>% map_chr(get_npi_standard_name),
  medi_bp_name_clean = medi_bp_npi %>% map_chr(get_npi_standard_name),
  
  radi_sp_name_clean = radi_sp_npi %>% map_chr(get_npi_standard_name),
  radi_bp_name_clean = radi_bp_npi %>% map_chr(get_npi_standard_name),
  
  path_sp_name_clean = path_sp_npi %>% map_chr(get_npi_standard_name),
  path_bp_name_clean = path_bp_npi %>% map_chr(get_npi_standard_name),
  
  anes_sp_name_clean = anes_sp_npi %>% map_chr(get_npi_standard_name),
  anes_bp_name_clean = anes_bp_npi %>% map_chr(get_npi_standard_name),
  
  faci_sp_name_clean = faci_sp_npi %>% map_chr(get_npi_standard_name),
  faci_bp_name_clean = faci_bp_npi %>% map_chr(get_npi_standard_name)
  )]
hyst %>% saveRDS(paste0("hysterectomy", Sys.Date(),".RDS"))
hyst %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 219 x 2
##    name                correlation
##    <chr>                     <dbl>
##  1 duration_max              0.528
##  2 anes_bun_t_upper          0.443
##  3 medi_bun_t_wound          0.432
##  4 medi_bun_t_cathet         0.430
##  5 surg_bun_t_colon          0.428
##  6 faci_bun_t_critical       0.411
##  7 surg_bun_t_rectal         0.401
##  8 anes_bun_t_cs             0.394
##  9 surg_bun_t_removal        0.376
## 10 duration_mean             0.374
## # ... with 209 more rows
hyst %>% plot_price_vs_duration() %>% print()

hyst %>% get_tag_density_information("anes_bun_t_upper") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ anes_bun_t_upper"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 9530
## $dist_plots

## 
## $stat_tables

hyst <- hyst[anes_bun_t_upper==F]
hyst %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 215 x 2
##    name                correlation
##    <chr>                     <dbl>
##  1 anes_bun_t_cs             0.465
##  2 duration_max              0.430
##  3 anes_bun_t_deliver        0.401
##  4 anes_bun_t_liver          0.401
##  5 medi_bun_t_cathet         0.392
##  6 surg_bun_t_delivery       0.388
##  7 surg_bun_t_liver          0.388
##  8 surg_bun_t_cesarean       0.34 
##  9 medi_bun_t_inject         0.332
## 10 medi_bun_t_sodium         0.330
## # ... with 205 more rows
hyst <- hyst[duration_mean<3]
hyst %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 213 x 2
##    name                correlation
##    <chr>                     <dbl>
##  1 duration_max              0.486
##  2 anes_bun_t_cs             0.475
##  3 anes_bun_t_deliver        0.410
##  4 anes_bun_t_liver          0.410
##  5 medi_bun_t_cathet         0.401
##  6 surg_bun_t_delivery       0.396
##  7 surg_bun_t_liver          0.396
##  8 surg_bun_t_cesarean       0.347
##  9 duration_mean             0.346
## 10 anes_bun_t_bladder        0.334
## # ... with 203 more rows
hyst %>% get_tag_density_information("anes_bun_t_deliver") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ anes_bun_t_deliver"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 4760
## $dist_plots

## 
## $stat_tables

hyst <- hyst[anes_bun_t_deliver==F]
hyst %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 200 x 2
##    name               correlation
##    <chr>                    <dbl>
##  1 duration_max             0.456
##  2 anes_bun_t_bladder       0.374
##  3 anes_bun_t_removal       0.374
##  4 surg_bun_t_removal       0.362
##  5 duration_mean            0.354
##  6 surg_bun_t_remov         0.328
##  7 surg_bun_t_colon         0.324
##  8 medi_bun_t_inject        0.322
##  9 medi_bun_t_sodium        0.321
## 10 medi_bun_t_cathet        0.319
## # ... with 190 more rows
hyst %>% get_tag_density_information("anes_bun_t_bladder") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ anes_bun_t_bladder"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 1410
## $dist_plots

## 
## $stat_tables

hyst <- hyst[anes_bun_t_bladder==F]
hyst %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 191 x 2
##    name                 correlation
##    <chr>                      <dbl>
##  1 duration_max               0.405
##  2 surg_bun_t_colon           0.351
##  3 duration_mean              0.341
##  4 medi_bun_t_inject          0.320
##  5 medi_bun_t_sodium          0.319
##  6 surg_bun_t_dilat           0.317
##  7 surg_bun_t_dilation        0.317
##  8 anes_bun_t_cs              0.317
##  9 faci_bun_t_discharge       0.317
## 10 surg_bun_t_vag             0.281
## # ... with 181 more rows

hyst_vag

hyst_vag <- hyst[surg_bun_t_vag == T]
hyst_vag %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst_vag %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 153 x 2
##    name                       correlation
##    <chr>                            <dbl>
##  1 surg_bun_t_coloproctostomy       0.337
##  2 duration_max                     0.328
##  3 medi_bun_t_inject                0.314
##  4 medi_bun_t_sodium                0.312
##  5 surg_bun_t_defect                0.311
##  6 surg_bun_t_bladder               0.280
##  7 surg_bun_t_repair                0.280
##  8 duration_mean                    0.279
##  9 path_bun_t_complete              0.222
## 10 path_bun_t_without_scope         0.218
## # ... with 143 more rows
hyst_vag[surg_bun_t_coloproctostomy==T] %>% nrow()
## [1] 1
hyst_vag[surg_bun_t_bladder==T] %>% nrow()
## [1] 24
hyst_vag <- hyst_vag[surg_bun_t_coloproctostomy==F & surg_bun_t_bladder==F]
hyst_vag %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst_vag %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 145 x 2
##    name                     correlation
##    <chr>                          <dbl>
##  1 duration_max                   0.391
##  2 duration_mean                  0.354
##  3 path_bun_t_without_scope       0.283
##  4 anes_bun_t_hysterectomy        0.268
##  5 anes_bun_t_vag                 0.268
##  6 medi_bun_t_sodium              0.257
##  7 medi_bun_t_inject              0.253
##  8 anes_bun_t_anes                0.229
##  9 anes_bun_t_anesth              0.229
## 10 surg_bun_t_total               0.219
## # ... with 135 more rows
hyst_vag %>% get_tag_density_information("path_bun_t_without_scope") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ path_bun_t_without_scope"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 1320
## $dist_plots

## 
## $stat_tables

hyst_vag <- hyst_vag[path_bun_t_without_scope==F]
hyst_vag %>% get_tag_density_information("anes_bun_t_hysterectomy") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ anes_bun_t_hysterectomy"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 1430
## $dist_plots

## 
## $stat_tables

hyst_vag_btbv4 <- hyst_vag %>% btbv4()
hyst_vag_bq <- hyst_vag_btbv4[,
                     primary_doctor := pmap(.l=list(doctor_npi1=doctor_npi_str1,
                                  doctor_npi2=doctor_npi_str2,
                                  class_reqs="Obstetrics & Gynecology"
                                  ),
                                                .f=calculate_primary_doctor) %>% as.character()
                     ] %>% 
  #Filter out any procedures where our doctors fail both criteria. 
  .[!(primary_doctor %in% c("BOTH_DOC_FAIL_CRIT", "TWO_FIT_ALL_SPECS"))] %>% 
  .[,primary_doctor_npi := fifelse(primary_doctor==doctor_str1,
                                   doctor_npi_str1,
                                   doctor_npi_str2)] %>% 
  .[,`:=`(
    procedure_type=4,
    procedure_modifier = "Vaginal Hysterectomy"
  )]
## [1] "multiple meet class req"
## [1] "TRAVIS JOHN BILANZICH" "DAREN OWEN GATHERUM"  
## [1] "multiple meet class req"
## [1] "RUSSELL A SMITH"      "ROBERT WENDALL LATER"
## [1] "multiple meet class req"
## [1] "GARY K FOWERS"   "DAVID A KIRKMAN"
## [1] "multiple meet class req"
## [1] "CHRISTIAN D FROERER" "JEFFREY H BARTON"   
## [1] "multiple meet class req"
## [1] "CRAIG L HURST" "KAREN  BOHEEN"
## [1] "multiple meet class req"
## [1] "RUSSELL A SMITH"     "ALICIA TABISH JONES"
## [1] "multiple meet class req"
## [1] "ROBERT  MERRILL"    "SUPHITHAYA  ANDERS"
## [1] "multiple meet class req"
## [1] "SPENCER N COLBY"     "AMANDA M. CLEVELAND"
## [1] "multiple meet class req"
## [1] "EDWIN RAY ENGLAND"   "TRICIA ANNE TWELVES"
## [1] "multiple meet class req"
## [1] "CLAYTON SCOTT SYNDERGAARD" "BEN DOUGLAS WILLIAMS"     
## [1] "multiple meet class req"
## [1] "TANDY GARTH OLSEN" "ERICA LYNN SMITH" 
## [1] "multiple meet class req"
## [1] "JEFF DAVID NANCE"  "STEVEN GREG NANCE"
## [1] "multiple meet class req"
## [1] "SPENCER N COLBY" "SCOTT F EPSTEIN"
## [1] "multiple meet class req"
## [1] "GEORGE C GOURLEY" "WAYNE R YOUNG"   
## [1] "multiple meet class req"
## [1] "ALTON D BURGETT"  "MATTHEW S WILSON"
## [1] "multiple meet class req"
## [1] "ANDREA JULIET HEBERT" "AMELIA  PARRETT"     
## [1] "multiple meet class req"
## [1] "WESLEY BOYD DAVIS" "JULIA  JOHANSSON" 
## [1] "multiple meet class req"
## [1] "JAMES P LAMOREAUX" "RYAN C. OLLERTON" 
## [1] "multiple meet class req"
## [1] "BEN DOUGLAS WILLIAMS" "JOHN D NOLTE"        
## [1] "multiple meet class req"
## [1] "ROBERT  MERRILL"      "JEFFREY DENNIS QUINN"
## [1] "multiple meet class req"
## [1] "JANE C BOWMAN"      "SUPHITHAYA  ANDERS"
## [1] "multiple meet class req"
## [1] "STEPHANIE DIANE HENDERSON" "BARBARA  HURST"           
## [1] "multiple meet class req"
## [1] "MICHAEL LAMAR TWEDE" "LAYNE A SMITH"      
## [1] "multiple meet class req"
## [1] "SCOTT E HANSEN"    "KATHLEEN M LANGER"
## [1] "multiple meet class req"
## [1] "BARRY A NOORDA"       "ANNE SADLER BLACKETT"
## [1] "multiple meet class req"
## [1] "DANIEL FRED KAELBERER"  "SPENCER EDMOND PIERSON"
## [1] "multiple meet class req"
## [1] "BROOKE LANE HANSEN" "LUCINDA J ROBINSON"
## [1] "multiple meet class req"
## [1] "DARREN  HOUSEL" "DAVID  BIERER" 
## [1] "multiple meet class req"
## [1] "GAYLE M STEWART" "STEPHEN D LASH" 
## [1] "multiple meet class req"
## [1] "CRAIG L HURST" "KAREN  BOHEEN"
## [1] "multiple meet class req"
## [1] "EVAN  JONES"      "RYAN C. OLLERTON"
## [1] "multiple meet class req"
## [1] "SARA ELIZABETH WOOD" "AUDREY A JIRICKO"   
## [1] "multiple meet class req"
## [1] "CHAD JEREMY CLARK" "JEANNE M FALK"    
## [1] "multiple meet class req"
## [1] "RYAN NELSON JONES" "ANDREW  THOMAS"
hyst_vag_bq <- hyst_vag_bq[,.(
primary_doctor,
primary_doctor_npi,
most_important_fac  ,
most_important_fac_npi, 
procedure_type,
procedure_modifier,
tp_med_med,
tp_med_surg,
tp_med_medi,
tp_med_path,
tp_med_radi,
tp_med_anes,
tp_med_faci,
ingest_date = Sys.Date()
)]
bq_table_upload(x=procedure_table, values= hyst_vag_bq, create_disposition='CREATE_IF_NEEDED', write_disposition='WRITE_APPEND')

hyst_total

hyst_total <- hyst[surg_bun_t_total == T]
hyst_total %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst_total %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 128 x 2
##    name                  correlation
##    <chr>                       <dbl>
##  1 surg_bun_t_colon            0.456
##  2 surg_bun_t_art              0.400
##  3 surg_bun_t_part             0.400
##  4 surg_bun_t_partial          0.400
##  5 surg_bun_t_removal          0.381
##  6 surg_bun_t_remov            0.345
##  7 path_bun_t_tumor            0.321
##  8 surg_bun_t_laparoscop       0.317
##  9 surg_bun_t_renal            0.316
## 10 surg_bun_t_lap              0.292
## # ... with 118 more rows
hyst_total %>% get_tag_density_information("path_bun_t_tumor") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ path_bun_t_tumor"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 5180
## $dist_plots

## 
## $stat_tables

hyst_total <- hyst_total[surg_bun_t_colon==F & surg_bun_t_partial==F & path_bun_t_tumor==F & surg_bun_t_renal==F ]
hyst_total %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst_total %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 122 x 2
##    name                   correlation
##    <chr>                        <dbl>
##  1 surg_bun_t_complex           0.209
##  2 medi_bun_t_cathet            0.209
##  3 surg_bun_t_remove            0.207
##  4 surg_bun_t_wound             0.202
##  5 surg_bun_t_lap               0.200
##  6 path_bun_t_immuno            0.194
##  7 path_bun_t_immunohisto       0.194
##  8 surg_bun_t_laparoscop        0.193
##  9 surg_bun_t_tags              0.193
## 10 surg_bun_t_drain             0.190
## # ... with 112 more rows
# hyst_total %>% get_tag_density_information("surg_bun_t_complex") %>% print()
hyst_total %>% get_tag_density_information("surg_bun_t_remove") %>% print()
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
## [1] "tp_med ~ surg_bun_t_remove"
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Picking joint bandwidth of 2480
## $dist_plots

## 
## $stat_tables

hyst_total <- hyst_total[surg_bun_t_remove==F & surg_bun_t_complex==F & surg_bun_t_drain==F & surg_bun_t_skin==F ]
hyst_total %>% plot_med_density() %>% print()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

hyst_total %>% get_tag_cor() %>% print()
## Warning in stats::cor(cor_data): the standard deviation is zero
## # A tibble: 111 x 2
##    name                    correlation
##    <chr>                         <dbl>
##  1 path_bun_t_patho              0.162
##  2 path_bun_t_pathologist        0.162
##  3 path_bun_t_tissue             0.162
##  4 surg_bun_t_repair             0.160
##  5 path_bun_t_immuno             0.14 
##  6 path_bun_t_immunohisto        0.14 
##  7 surg_bun_t_defect             0.137
##  8 medi_bun_t_iiv                0.131
##  9 medi_bun_t_immun              0.131
## 10 medi_bun_t_immunization       0.131
## # ... with 101 more rows
hyst_total_btbv4 <- hyst_total %>% btbv4()
hyst_total_bq <- hyst_total_btbv4[,
                     primary_doctor := pmap(.l=list(doctor_npi1=doctor_npi_str1,
                                  doctor_npi2=doctor_npi_str2,
                                  class_reqs="Obstetrics & Gynecology"
                                  ),
                                                .f=calculate_primary_doctor) %>% as.character()
                     ] %>% 
  #Filter out any procedures where our doctors fail both criteria. 
  .[!(primary_doctor %in% c("BOTH_DOC_FAIL_CRIT", "TWO_FIT_ALL_SPECS"))] %>% 
  .[,primary_doctor_npi := fifelse(primary_doctor==doctor_str1,
                                   doctor_npi_str1,
                                   doctor_npi_str2)] %>% 
  .[,`:=`(
    procedure_type=4,
    procedure_modifier = "Total Hysterectomy"
  )]
## [1] "multiple meet class req"
## [1] "BEN DOUGLAS WILLIAMS" "JOHN D NOLTE"        
## [1] "multiple meet class req"
## [1] "E BRETT HORSLEY"   "TANDY GARTH OLSEN"
## [1] "multiple meet class req"
## [1] "CLAYTON SCOTT SYNDERGAARD" "BEN DOUGLAS WILLIAMS"     
## [1] "multiple meet class req"
## [1] "ALAN T RAPPLEYE" "BRYANT J BROWN" 
## [1] "multiple meet class req"
## [1] "DAVID B YOUNG"   "DOUGLAS A ALLEN"
## [1] "multiple meet class req"
## [1] "JOHN DOUGLAS MCCARTER" "KORY A. HARWARD"      
## [1] "multiple meet class req"
## [1] "GEORGE C GOURLEY"         "DAVID HARRISON BROADBENT"
## [1] "multiple meet class req"
## [1] "ALICIA TABISH JONES"  "ROBERT WENDALL LATER"
## [1] "multiple meet class req"
## [1] "TRAVIS JOHN BILANZICH" "DAREN OWEN GATHERUM"  
## [1] "multiple meet class req"
## [1] "TANDY GARTH OLSEN" "ERICA LYNN SMITH" 
## [1] "multiple meet class req"
## [1] "REED J SKINNER"     "JOHN DAVID LARAWAY"
## [1] "multiple meet class req"
## [1] "JOHN DOUGLAS MCCARTER" "KORY A. HARWARD"      
## [1] "multiple meet class req"
## [1] "JENNIFER LYNN PARKER" "BRITNEY B BUNOT"     
## [1] "multiple meet class req"
## [1] "RUSSELL A SMITH"      "ROBERT WENDALL LATER"
## [1] "multiple meet class req"
## [1] "ROBERT  MERRILL"      "JEFFREY DENNIS QUINN"
## [1] "multiple meet class req"
## [1] "CLAYTON SCOTT SYNDERGAARD" "JOHN D NOLTE"             
## [1] "multiple meet class req"
## [1] "SPENCER P. BARNEY" "JESSICA RAE HUNN" 
## [1] "multiple meet class req"
## [1] "CRAIG D ASTLE" "BRADY  BENHAM"
## [1] "multiple meet class req"
## [1] "TIFFANY KRISTEN WEBER" "PEGGY A. NORTON"      
## [1] "multiple meet class req"
## [1] "MICHAEL LAMAR TWEDE" "LAYNE A SMITH"      
## [1] "multiple meet class req"
## [1] "JEFF DAVID NANCE"  "STEVEN GREG NANCE"
## [1] "multiple meet class req"
## [1] "BRYAN SETH PALMER" "STEVEN M BEVERLY" 
## [1] "multiple meet class req"
## [1] "COBY THOMAS BROWN" "JEFFREY G ROGERS" 
## [1] "multiple meet class req"
## [1] "SHANNON L TILLY"    "BROOKE LANE HANSEN"
## [1] "multiple meet class req"
## [1] "JASON KEITH MORRIS" "JOHN DAVID LARAWAY"
## [1] "multiple meet class req"
## [1] "SUPHITHAYA  ANDERS"   "JEFFREY DENNIS QUINN"
## [1] "multiple meet class req"
## [1] "DARREN  HOUSEL" "DAVID  BIERER" 
## [1] "multiple meet class req"
## [1] "WESLEY BOYD DAVIS" "JULIA  JOHANSSON" 
## [1] "multiple meet class req"
## [1] "DAVID E LUDLOW"     "JOHN DAVID LARAWAY"
## [1] "multiple meet class req"
## [1] "JANE C BOWMAN"      "SUPHITHAYA  ANDERS"
## [1] "multiple meet class req"
## [1] "JEFF DAVID NANCE"  "STEVEN GREG NANCE"
## [1] "multiple meet class req"
## [1] "RYAN NELSON JONES" "ANDREW  THOMAS"
hyst_total_bq <- hyst_total_bq[,.(
primary_doctor,
primary_doctor_npi,
most_important_fac  ,
most_important_fac_npi, 
procedure_type,
procedure_modifier,
tp_med_med,
tp_med_surg,
tp_med_medi,
tp_med_path,
tp_med_radi,
tp_med_anes,
tp_med_faci,
ingest_date = Sys.Date()
)]
bq_table_upload(x=procedure_table, values= hyst_total_bq, create_disposition='CREATE_IF_NEEDED', write_disposition='WRITE_APPEND')