Author

Vagish Hemmige

The code in this script classifies centers based on whether they had performed HIV D-/R+ and HIV D+/R+ transplants in the 2013-2017 and 2018-2022 periods.

Source code

The full R script is available at:

This R script file is itself reliant on the following helper files:

Initialize lists

This portion of the code initializes lists to classify transplant centers by activity status and HIV transplant volume for each organ and year of interest. These classifications are used downstream for geographic access analyses, state-level summaries, and figure generation.

For example, the nested list HOPE_center_volumes can be used to identify the number of HIV D+/R+ transplants performed at each transplant center for each organ and each time period.

HOPE_center_volume[["kidney]][["2017"]] will yield a data frame of HOPE kidney volumes for centers that performed at least one HOPE adult transplant in the 2013-2017 time period.

Key lists created:

  • Active_tx_centers: any adult transplant in the year defined by the inner list
  • HIV_center_volumes: any HIV R+ transplant in the five-year period
  • HOPE_center_volumes: any HIV D+/R+ transplant in the five-year period
  • State_level_transplant_volumes: HIV R+ volumes by state
  • Transplant_centers_active: similar to the first list active_tx_centers but with different variable composition
Click to show/hide R Code
for (organ_loop in organ_list)
{
  
  for (year_loop in year_list)
    
    
  {
    
    Active_tx_centers[[organ_loop]][[year_loop]]<-tx[[organ_loop]]%>%
      filter(REC_AGE_IN_MONTHS_AT_TX>=216)%>% #Adult recipient
      mutate(year_transplant=year(REC_TX_DT))%>%
      filter(year_transplant==as.numeric(year_loop))%>%
      group_by(REC_CTR_CD)%>%
      count()%>%
      pull(REC_CTR_CD)
    
    #Calculate center level volumes for pts with HIV in five-year period ending in year for active centers
    HIV_center_volumes[[organ_loop]][[year_loop]]<-tx[[organ_loop]]%>%
      filter(REC_HIV_STAT=="P")%>%
      filter(REC_AGE_IN_MONTHS_AT_TX>=216)%>% #Adult recipient
      mutate(year_transplant=year(REC_TX_DT))%>%
      filter(year_transplant>=(as.numeric(year_loop)-4) & year_transplant<=as.numeric(year_loop))%>%
      group_by(REC_CTR_CD)%>%
      count()%>%
      filter(REC_CTR_CD %in% Active_tx_centers[[organ_loop]][[year_loop]])
    
    
    #Identify HOPE centers in years of interest
    HOPE_center_volumes[[organ_loop]][[year_loop]]<-tx[[organ_loop]]%>%
      filter(REC_HIV_STAT=="P")%>%
      filter(REC_AGE_IN_MONTHS_AT_TX>=216)%>%
      mutate(year_transplant=year(REC_TX_DT ))%>%
      filter(year_transplant>=(as.numeric(year_loop)-4) & year_transplant<=as.numeric(year_loop))%>%
      left_join(donor_deceased)%>%
      filter(DON_HIV_NAT %in% c("P", "P: Positive")| 
               DON_ANTI_HIV %in% c("P", "P: Positive"))%>%
      group_by(REC_CTR_CD   )%>%
      count()
    
    #Convert to state transplant volumes for recipients with HIV
    State_level_transplant_volumes[[organ_loop]][[year_loop]]<-HIV_center_volumes[[organ_loop]][[year_loop]]%>%
      mutate(state_code = substr(REC_CTR_CD, 1, 2))%>%
      group_by(state_code)%>%
      summarize(total_HIV_transplants=sum(n, na.rm = TRUE))
    
    #Create DFs for active centers in years of interest
    Transplant_centers_active[[organ_loop]][[year_loop]]<-Transplant_centers_all[[organ_loop]]%>%
      filter(OTCCode %in% Active_tx_centers[[organ_loop]][[year_loop]])
    
  }
}