Health officials confirm measles case in central Iowa
REDUCTIONS OVER TIME. WELL, IT’S SUMMERTIME, BUT IT’S AUGUST. THAT MEANS KIDS ACROSS IOWA ARE GETTING READY TO GO BACK TO SCHOOL LATER THIS MONTH. MEANWHILE, PUBLIC HEALTH OFFICIALS ARE URGING FAMILIES TO DOUBLE CHECK VACCINATION RECORDS. AND THIS COMES AS MEASLES IS MAKING A RESURGENCE IN IOWA AND ACROSS THE COUNTRY. KCCI AMANDA ROOKER JOINS US WITH WHAT PARENTS NEED TO KNOW. WELL, KAYLA AND NICOLE, A CASE OF MEASLES REPORTED EARLIER THIS YEAR IN IOWA WAS THE FIRST IN THE STATE SINCE 2019, AND NOW THERE ARE MORE, WITH EIGHT CONFIRMED CASES AND MORE THAN 1000 NATIONWIDE. DOCTORS SAY IT’S A GOOD TIME FOR FAMILIES TO TAKE A CLOSER LOOK AT THEIR KIDS VACCINATION RECORDS TO MAKE SURE THEY’RE READY FOR SCHOOL. BACK TO SCHOOL SEASON COMES WITH NEW SUPPLIES, NEW ROUTINES, AND THIS YEAR, A NEW HEALTH WARNING. MEASLES IS INCREDIBLY CONTAGIOUS. IT SPREADS THROUGH THE AIR AND IT SPREADS REALLY EFFECTIVELY THROUGH THE AIR. WHILE STILL RARE. DOCTOR JONATHAN CROSBY SAYS THERE’S A HIGHER RISK OF CATCHING MEASLES THIS SCHOOL YEAR. SYMPTOMS THAT PARENTS SHOULD LOOK OUT FOR COUGH, SORE THROAT WITH THOSE SPOTS, AND THEN A HIGH FEVER. AND THEN THE RASH. THAT’S PRETTY CONCERNING. THE VIRUS CAN SPREAD FROM COUGHS, SNEEZES, EVEN JUST BREATHING NEAR SOMEONE INFECTED. IT JUST RUNS THROUGH POPULATIONS LIKE WILDFIRE. IF THAT POPULATION ISN’T VACCINATED. THAT’S WHY PUBLIC HEALTH OFFICIALS WANT PARENTS TO CHECK THEIR KIDS VACCINATION RECORDS BEFORE HEADING BACK TO SCHOOL. AND WE KNOW THAT JUST A QUICK VACCINE APPOINTMENT NOW CAN REALLY PREVENT MISSED SCHOOL DAYS AND BIGGER HEALTH ISSUES LATER ON. ANDY OLSON WITH THE POLK COUNTY HEALTH DEPARTMENT SAYS IF THERE’S AN OUTBREAK, ANY UNVACCINATED STUDENT THAT’S EXPOSED WILL HAVE TO STAY HOME FOR THREE WEEKS. THAT’S A STATE HEALTH RULE. SHE ALSO SAYS THE COUNTY HAS GIVEN SCHOOL NURSES AND CHILD CARE PROVIDERS GUIDANCE ON HOW TO PREPARE, AND THAT INCLUDES INFORMATION ABOUT HOW TO RESPOND TO A SUSPECTED CASE, HOW TO IDENTIFY SYMPTOMS, AND WHAT TO DO IF A CHILD IS EXPOSED OR BECOMES ILL. OLSON SAYS VACCINES ARE THE BEST DEFENSE AGAINST MEASLES. DOCTORS SAY KIDS CAN GET THEIR FIRST DOSE ONCE THEY TURN ONE, AND THE SECOND BOOSTER BETWEEN AGES THREE AND FIVE BEING FULLY VACCINATED OFFERS 97% PROTECTION AGAINST GETTING MEASLES, SO PARENTS SHOULD FEEL CONFIDENT IF THEIR KID IS FULLY VACCINATED THAT THEY WILL BE WELL PROTECTED FROM MEASLES. NOW, IF YOU DON’T KNOW WHETHER YOUR CHILD IS VACCINATED, HEALTH EXPERTS SAY CHECK WITH YOUR PROVIDER OR YOU CAN CALL YOUR LOCAL HEALTH DEPARTMENT IN POLK COUNTY. FAMILIES WITHOUT A PROVIDER CAN
Updated: 2:03 PM CDT Jul 8, 2026
Editorial Standards ⓘ
Health officials confirm measles case in central Iowa
Updated: 2:03 PM CDT Jul 8, 2026
Editorial Standards ⓘ
Iowa health officials have confirmed the state’s first case of measles in 2026.Video above: How parents can protect their kids from measlesThe Iowa Department of Health and Human Services (HHS) confirmed a case in a vaccinated adult who lives in central Iowa. The Polk County Health Department has since confirmed the case is in a Polk County resident who recently traveled internationally.”Public health officials are actively investigating the case and have identified several locations where members of the public may have been exposed while the individual was contagious,” the health department announced. “We are asking anyone who was at those locations during the identified times to review the guidance and follow the recommended next steps.”The Polk County Health Department provided the following locations where the individual traveled:Dollar General1428 E Ovid Ave, Des Moines, IA 50316Wednesday, July 1st, 7:30 p.m. – 9:45 p.m.Family Dollar1251 University Ave, Des Moines, IA 50314Wednesday, July 1st 8 p.m. – 10:30 p.m.MercyOne Des Moines Pediatrics Urgent Care330 Laurel St Suite 2100, Des Moines, IA 50314Thursday, July 2nd, 3 p.m. – 5:30 p.m.MercyOne Des Moines Imaging (Outpatient Radiology)1111 6th Ave, Des Moines, IA 50314Thursday, July 2nd, 3:45 p.m. – 6:45 p.m.Iglesia De Dios Pentecostal Church3848 14th St, Des Moines, IA 50313Thursday, July 2nd, 7:30 p.m. – 11:30 p.m.Casa De Restauracion821 Seneca St, Webster City, IA 50595Friday, July 3rd, 4:30 p.m. – 2 a.m.Kwik Star505 Fair Meadow Dr, Webster City, IA 50595Friday, July 3rd, 7:30 p.m. – 9:30 p.m.Under Armour Factory House771 Bass Pro Dr NW Suite 225, Altoona, IA 50009Saturday, July 4th, 5 a.m. – noonIglesia De Dios Pentecostal Church3848 14th St, Des Moines, IA 50313Saturday, July 4th, 7:30 p.m. – 11:30 p.m.Iowa Clinic Urgent Care – West Des Moines5950 University Ave, West Des Moines, IA 50266Sunday, July 5th, 9:30 a.m. – 3 p.m.Iowa saw nine measles cases in 2025.» Subscribe to KCCI’s YouTube page» Download the free KCCI app to get updates on the go: Apple | Google Play
DES MOINES, Iowa —
Iowa health officials have confirmed the state’s first case of measles in 2026
Video above:How parents can protect their kids from measles
The Iowa Department of Health and Human Services (HHS) confirmed a case in a vaccinated adult who lives in central Iowa. The Polk County Health Department has since confirmed the case is in a Polk County resident who recently traveled internationally
“Public health officials are actively investigating the case and have identified several locations where members of the public may have been exposed while the individual was contagious,” the health department announced. “We are asking anyone who was at those locations during the identified times to review the guidance and follow the recommended next steps.”
The Polk County Health Department provided the following locations where the individual traveled:
- 1428 E Ovid Ave, Des Moines, IA 50316
- Wednesday, July 1st, 7:30 p.m. – 9:45 p.m.
Family Dollar
- 1251 University Ave, Des Moines, IA 50314
- Wednesday, July 1st 8 p.m. – 10:30 p.m.
MercyOne Des Moines Pediatrics Urgent Care
- 330 Laurel St Suite 2100, Des Moines, IA 50314
- Thursday, July 2nd, 3 p.m. – 5:30 p.m.
MercyOne Des Moines Imaging (Outpatient Radiology)
- 1111 6th Ave, Des Moines, IA 50314
- Thursday, July 2nd, 3:45 p.m. – 6:45 p.m.
Iglesia De Dios Pentecostal Church
- 3848 14th St, Des Moines, IA 50313
- Thursday, July 2nd, 7:30 p.m. – 11:30 p.m.
Casa De Restauracion
- 821 Seneca St, Webster City, IA 50595
- Friday, July 3rd, 4:30 p.m. – 2 a.m.
Kwik Star
- 505 Fair Meadow Dr, Webster City, IA 50595
- Friday, July 3rd, 7:30 p.m. – 9:30 p.m.
Under Armour Factory House
- 771 Bass Pro Dr NW Suite 225, Altoona, IA 50009
- Saturday, July 4th, 5 a.m. – noon
Iglesia De Dios Pentecostal Church
- 3848 14th St, Des Moines, IA 50313
- Saturday, July 4th, 7:30 p.m. – 11:30 p.m.
Iowa Clinic Urgent Care – West Des Moines
- 5950 University Ave, West Des Moines, IA 50266
- Sunday, July 5th, 9:30 a.m. – 3 p.m.
Iowa saw nine measles cases in 2025
»Subscribe to KCCI’s YouTube page
» Download the free KCCI app to get updates on the go:Apple | Google Play
Weather Information
‘
+ ‘
‘;
var gptLayer = window.gptLayer;
if (gptLayer && typeof gptLayer.insertAds === ‘function’) {
var slotsBefore = gptLayer.adSlots ? gptLayer.adSlots.length : 0;
gptLayer.insertAds();
if ((gptLayer.adSlots ? gptLayer.adSlots.length : 0) > slotsBefore) {
if (typeof gptLayer.callAdSlots === ‘function’) {
gptLayer.callAdSlots(‘imm’);
}
}
}
}
}
function closeRadarOverlay(containerId) {
var overlay = document.getElementById(containerId + ‘-radar-overlay’);
if (!overlay) return;
overlay.classList.remove(‘is-open’);
overlay.setAttribute(‘aria-hidden’, ‘true’);
document.body.classList.remove(‘weather-radar-overlay-active’);
var adSlot = overlay.querySelector(‘.weather-radar-overlay__ad-slot’);
if (adSlot) {
adSlot.innerHTML = ”;
}
}
function trackRadarOverlayInteraction(containerId) {
var now = Date.now();
var key = ‘radar_overlay_last_interaction_’ + containerId;
if (!window[key] || now – window[key] > 10000) {
window[key] = now;
dispatchWeatherGA4Event(‘radar_overlayinteraction’, ‘interaction’, containerId);
}
}
function isMobileOrTabletViewport(breakpoint = 980) {
const w = window.innerWidth || document.documentElement.clientWidth || 0;
return w < breakpoint;
}
function removeUnusedWeatherModule() {
const desktopClass = ‘sidelist-weather’;
const mobileClass = ‘mobile-weather’;
if (isMobileOrTabletViewport()) {
console.log(‘[WEATHER-BOX] Mobile/tablet viewport detected, removing desktop weather module if it exists’);
const desktopModule = document.querySelector(‘.’ + desktopClass);
if (desktopModule) {
console.log(‘[WEATHER-BOX] Removing desktop weather module’);
desktopModule.remove();
}
} else {
console.log(‘[WEATHER-BOX] Desktop viewport detected, removing mobile weather module if it exists’);
const mobileModule = document.querySelector(‘.’ + mobileClass);
if (mobileModule) {
console.log(‘[WEATHER-BOX] Removing mobile weather module’);
mobileModule.remove();
}
}
}
document.addEventListener(‘DOMContentLoaded’, function() {
removeUnusedWeatherModule();
function generateForecastItem(data) {
var ariaLabel = data.timeLabel + ‘, ‘ + data.primaryTemp + ‘ degrees, ‘ +
data.secondaryInfo + ‘ percent chance of precipitation’;
return `
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=’ + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(‘data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);
container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className = ‘weather-watch-header has-alerts’;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, ‘/alerts’);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, ‘/alerts’);”);
}
} else {
weatherWatchHeader.className = ‘weather-watch-header’;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className = ‘weather-grid–current-icon weather-current-icon icon icon-weather-‘ + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
updateWeatherBackground(weatherData.current.icon_name);
}
}
function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage = ‘url(‘ + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html = ”;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i < maxHours; i++) {
var hour = weatherData.hourly[i];
html += generateForecastItem({
timeLabel: hour.hour_display,
iconName: hour.icon_name,
primaryTemp: hour.temp_f,
secondaryInfo: hour.precip_chance + ‘%’
});
}
hourlyContainer.innerHTML = html;
}
}
if (weatherData.daily) {
var dailyContainer = container.querySelector(‘.weather-daily-forecast’);
if (dailyContainer) {
var html = ”;
var maxDays = Math.min(visibleItems, weatherData.daily.length);
for (var i = 0; i < maxDays; i++) {
var day = weatherData.daily[i];
var dayName = getShortDayName(day.day);
html += generateForecastItem({
timeLabel: dayName,
iconName: day.icon_name,
primaryTemp: day.high_f,
secondaryInfo: day.precip_chance + ‘%’
});
}
dailyContainer.innerHTML = html;
}
}
}
function getShortDayName(dayName) {
switch (dayName) {
case ‘Today’:
return ‘Today’;
case ‘Tomorrow’:
return ‘Tmrw’;
case ‘Sunday’:
return ‘Sun’;
case ‘Monday’:
return ‘Mon’;
case ‘Tuesday’:
return ‘Tue’;
case ‘Wednesday’:
return ‘Wed’;
case ‘Thursday’:
return ‘Thu’;
case ‘Friday’:
return ‘Fri’;
case ‘Saturday’:
return ‘Sat’;
default:
return dayName;
}
}
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
var isActive = tab.classList.contains(‘open’);
tab.setAttribute(‘tabindex’, ‘0’); // Both tabs focusable for VoiceOver
tab.setAttribute(‘role’, ‘tab’);
tab.setAttribute(‘aria-selected’, isActive);
tab.addEventListener(‘keydown’, function(e) {
var tabs = Array.from(container.querySelectorAll(‘[data-tab-id]’));
var currentIndex = tabs.indexOf(this);
switch(e.key) {
case ‘ArrowLeft’:
e.preventDefault();
var prevIndex = currentIndex > 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex < tabs.length – 1 ? currentIndex + 1 : 0;
tabs[nextIndex].focus();
break;
case ‘Enter’:
case ‘ ‘:
e.preventDefault();
var tabId = this.getAttribute(‘data-tab-id’);
switchWeatherTab(tabId, this);
if (tabId === ‘hourly’) {
dispatchWeatherGA4Event(‘click_hourly’, ‘click’, containerId);
} else if (tabId === ‘daily’) {
dispatchWeatherGA4Event(‘click_daily’, ‘click’, containerId);
}
break;
}
});
tab.onclick = function() {
var tabId = this.getAttribute(‘data-tab-id’);
switchWeatherTab(tabId, this);
if (tabId === ‘hourly’) {
dispatchWeatherGA4Event(‘click_hourly’, ‘click’, containerId);
} else if (tabId === ‘daily’) {
dispatchWeatherGA4Event(‘click_daily’, ‘click’, containerId);
}
return false;
};
});
loadWeatherData();
window.addEventListener(‘pageshow’, function(event) {
if (event.persisted) {
// Fix for weather radar iframe appearing gray after browser back/forward navigation
// When user navigates back, the page loads from browser cache but the iframe
// content doesn’t restore properly, showing a gray screen instead of the radar map
// This forces a fresh reload of the iframe by adding a timestamp parameter
setTimeout(function() {
refreshWeatherIframe(containerId);
}, 300);
}
});
}
document.querySelectorAll(‘.weather-sidebar’).forEach(function(weatherBox) {
initializeWeatherBox(weatherBox);
});
});
![]()

Make KCCI a preferred source on Google


