Skip to main content

AHRQ Quality Indicators

Overview

Code on GitHub

The AHRQ Quality Indicators data mart implements measures maintained by the Agency for Healthcare Research and Quality. AHRQ describes the Quality Indicators as standardized, evidence-based measures that use administrative healthcare data to measure and track quality, outcomes, and potential access issues.

This package currently implements the Prevention Quality Indicators in Inpatient Settings (PQIs). PQIs identify hospital admissions for ambulatory care-sensitive conditions, which are conditions where timely, high-quality outpatient care may prevent hospitalization or reduce disease severity.

Install this standalone package alongside Core using the data mart installation guide.

Methodology

The PQI models run on top of the Core Data Model and use inpatient encounters, diagnoses, procedures, patient demographics, and member months to produce numerator, denominator, exclusion, and rate outputs. The implementation follows AHRQ's PQI measure concepts and value sets while expressing the logic in dbt models that run across Tuva-supported data warehouses.

AHRQ maintains the full Quality Indicators documentation, including PQI technical specifications and supporting resources.

The individual PQIs currently implemented are:

PQI NumberPQI NameDescription
01Diabetes Short-Term Complications Admission RateHospitalizations for a principal diagnosis of diabetes with short-term complications per 100,000 population, ages 18 years and older.
03Diabetes Long-Term Complications Admission RateHospitalizations for a principal diagnosis of diabetes with long-term complications per 100,000 population, ages 18 years and older.
05COPD or Asthma in Older AdultsHospitalizations with a principal diagnosis of chronic obstructive pulmonary disease or asthma per 100,000 population, ages 40 years and older.
07Hypertension Admission RateHospitalizations with a principal diagnosis of hypertension per 100,000 population, ages 18 years and older.
08Heart Failure Admission RateHospitalizations with a principal diagnosis of heart failure per 100,000 population, ages 18 years and older.
11Community Acquired Pneumonia Admission RateHospitalizations with a principal diagnosis of community-acquired bacterial pneumonia per 100,000 population, ages 18 years and older.
12Urinary Tract Infection Admission RateHospitalizations with a principal diagnosis of urinary tract infection per 100,000 population, ages 18 years and older.
14Uncontrolled Diabetes Admission RateHospitalizations for uncontrolled diabetes without short-term or long-term complications per 100,000 population, ages 18 years and older.
15Asthma in Younger Adults Admission RateHospitalizations for a principal diagnosis of asthma per 100,000 population, ages 18 to 39 years.
16Lower-Extremity Amputation Among Patients with Diabetes RateHospitalizations for diabetes and a lower-extremity amputation procedure, excluding toe amputations, per 100,000 population, ages 18 years and older.

Outputs

ModelDescription
ahrq_quality_indicators.pqi_summaryOne qualifying numerator encounter per PQI and data source, with supporting encounter context.
ahrq_quality_indicators.pqi_ratePQI numerator, denominator, and rate output by year and data source.
ahrq_quality_indicators.pqi_num_longLong-format numerator records by PQI.
ahrq_quality_indicators.pqi_denom_longLong-format denominator records by PQI.
ahrq_quality_indicators.pqi_exclusion_longLong-format exclusion records by PQI.

Example SQL

PQI Encounters by Measure
select
data_source
, pqi_number
, pqi_name
, count(*) as pqi_encounters
from ahrq_quality_indicators.pqi_summary
group by
data_source
, pqi_number
, pqi_name
order by pqi_encounters desc;
PQI Rates
select
data_source
, year_number
, pqi_number
, num_count
, denom_count
, rate_per_100_thousand
from ahrq_quality_indicators.pqi_rate
order by
data_source
, year_number
, pqi_number;
Calculate Rates from Numerator and Denominator Tables
with numerator as (
select
data_source
, year_number
, pqi_number
, count(encounter_id) as numerator_count
from ahrq_quality_indicators.pqi_num_long
group by
data_source
, year_number
, pqi_number
)

, denominator as (
select
data_source
, year_number
, pqi_number
, count(person_id) as denominator_count
from ahrq_quality_indicators.pqi_denom_long
group by
data_source
, year_number
, pqi_number
)

select
denominator.data_source
, denominator.year_number
, denominator.pqi_number
, denominator.denominator_count
, coalesce(numerator.numerator_count, 0) as numerator_count
, 100000.0 * coalesce(numerator.numerator_count, 0)
/ nullif(denominator.denominator_count, 0) as rate_per_100000
from denominator
left join numerator
on denominator.data_source = numerator.data_source
and denominator.year_number = numerator.year_number
and denominator.pqi_number = numerator.pqi_number
order by
denominator.data_source
, denominator.year_number
, denominator.pqi_number;