ACO Quality Data - Select RI & MA Organizations

The Centers for Medicare & Medicaid Services (CMS) Innovation Center site defines an Accountable Care Organzation (ACO) as:

ACOs are groups of doctors, hospitals, and other health care providers, who come together voluntarily to give coordinated high quality care to the Medicare patients they serve. Coordinated care helps ensure that patients, especially the chronically ill, get the right care at the right time, with the goal of avoiding unnecessary duplication of services and preventing medical errors. When an ACO succeeds in both delivering high-quality care and spending health care dollars more wisely, it will share in the savings it achieves for the Medicare program.

Quality data for five measures have been made available through the data.medicare.gov site. The description provided:

This downloadable file includes information regarding ACO performance rates for the four Diabetes Mellitus (DM) and one Coronary Artery Disease (CAD) measures now publicly reported on Physician Compare. Program year 2012 data are publicly available for the 146 Shared Savings Program (SSP) and Pioneer Program ACOs that participated via the web interface.

The five measures included are:

Hemoglobin A1c Control (HbA1c) (< 8 percent): Proportion of patients ages 18 to 75 years of age with diabetes mellitus who had HbA1c < 8.0 percent.

Blood Pressure (BP) < 140/90 Control: Percentage of patients ages 18 to 75 years of age with diabetes mellitus who had a blood pressure < 140/90 mmHg.

Tobacco Non Use: Percentage of patients with a diagnosis of diabetes who indicated they were tobacco non-users.

Aspirin Use: Percentage of patients ages 18 to 75 years of age with diabetes mellitus and ischemic vascular disease with documented daily aspirin use during the measurement year unless contraindicated. “NA” is listed for group practices when the data are suppressed due to small sample size.

Angiotensin-Converting Enzyme (ACE) Inhibitor or Angiotensin Receptor Blocker (ARB) Therapy for Patients with CAD and Diabetes and/or Left Ventricular Systolic Dysfunction (LVSD): Percentage of patients aged 18 years and older with a diagnosis of coronary artery disease seen within a 12 month period who also have diabetes OR a current or prior Left Ventricular Ejection Fraction (LVEF) < 40% who were prescribed ACE inhibitor or ARB therapy. “NA” is listed for group practices when the data are suppressed due to small sample size.

Using a list of ACOs by State I selected ten somewhat arbitrarily. Below is a plot showing how the ACOs compare for the publicly available measures:

plot of chunk unnamed-chunk-1

The blue dashed lines show the average score by measure for the 146 ACOs in the dataset. Reproducible R code:

Note: first step is go to the site and click Export then choose CSV as the download option, and save the .csv file in your working directory as aco.csv. I'm hoping to cut out this part of the instructions soon and connect directly through the API. Next:

# read data, skip header names (special characters like < are problematic)
aco <- read.csv("aco.csv", skip = 1, header = FALSE, stringsAsFactors = FALSE)

# add header names
names(aco) <- c("ACO.ID", "ACO.Name", "ACO.URL", "HbA1c", "Controlled.BP", "Tobacco.Non.Use", 
    "Aspirin.Use", "ACE.ARB.Therapy")

# calculate means for each measure for later use
m_means <- data.frame(variable = names(aco)[4:8], m.means = as.vector(colMeans(aco[, 
    4:8], na.rm = TRUE)))

# create list of selected ACOs
ri_ma <- c("Partners HealthCare ACO", "Mount Auburn Cambridge IPA", "Physicians of Cape Cod ACO, Inc.", 
    "Coastal Medical, Inc.", "Steward Health Care Network", "Atrius Health ACO", 
    "Harbor Medical Associates, PC", "Beth Israel Deaconess Care Organization", 
    "Circle Health Alliance, LLC", "Jordan Community ACO")

# filter dataset to select ACOs
library(dplyr)
aco <- arrange(filter(aco, ACO.Name %in% ri_ma), ACO.Name)

# melt data for plot
aco.f <- select(aco, ACO.Name, HbA1c, Controlled.BP, Tobacco.Non.Use, Aspirin.Use, 
    ACE.ARB.Therapy)
library(reshape2)
aco.f <- melt(aco.f, id = "ACO.Name")

# create plot
library(ggplot2)
library(scales)

ggplot(aco.f, aes(ACO.Name, value, group = ACO.Name)) + geom_point(size = 2.75) + 
    facet_grid(. ~ variable) + coord_flip() + geom_hline(data = m_means, aes(yintercept = m.means), 
    linetype = "dashed", colour = "blue") + theme(axis.title.y = element_blank(), 
    axis.title.x = element_blank()) + ggtitle("ACO Quality Data: Select MA & RI Organizations") + 
    scale_y_continuous(labels = percent)

Message @andylytics with any questions. Thank you for viewing.