91³Ô¹ÏÍø

Watch CBS News

Deptford High School soccer star shares journey of losing ability to walk to returning to the pitch

Deptford High School junior defender Onaliese Cosme has been in love with soccer since she was 4 years old. It's no surprise she made varsity as a freshman.

"I was really proud of myself, I was like, it's so cool," Cosme said. "My head was definitely held high."

Cosme finished her freshman season despite a nagging pain in her hips, a pain she could no longer ignore in the spring.

"I couldn't walk," Cosme said. "I couldn't even last a full day of school. I had to go on crutches for a while."

Desperate for answers, the medical merry-go-round began with doctors.

"'I don't think it's real.' That's basically what [doctors] told me and my mom," Cosme said. "I was really mad because it's not in my head, like I literally can't walk."

Answers finally came after an MRI that revealed hip dysplasia on both sides — the round-shaped thigh bone was unable to fit in the hip socket, causing severe pain. Left untreated, she would need a hip replacement in her 20s, have complications with future childbirth and no longer be able to play soccer.

"Never in a million years would I have thought, oh my god, I need hip surgery at 15," she said.

"Seeing what she was going through was hard because, as a parent, you want to protect them," Emily Wilson, Cosme's mother, said.

Cosme did four months of physical therapy that were unsuccessful before surgeons performed a periacetabular osteotomy on her right hip, breaking her pelvis in four places and inserting four screws.

"I just didn't think I'd ever play soccer again," Cosme said.

Eight months of recovery required Cosme to miss the first month of her sophomore year of school and the entire soccer season. She was unable to bear any weight for two months.

"I don't know who I am without soccer," Cosme said, "so when I couldn't play, I felt really defeated, and being isolated from my friends was really rough."

Cosme still couldn't stay away from the game, supporting her teammates by becoming the statistician and taking pictures from the sideline.

"I'm not going to say it was easy because I wanted to be on the field," Cosme said, "but they made me feel like I was still part of  the team."

"It was really nice to see her be out there as difficult as I imagine it had to have been for her," Dana Phillips, girls' head soccer coach at Deptford High School, said. "I started to see her smile and laugh with the other girls. We missed her."

After a summer ramp-up, Cosme made her return to the pitch in her junior year.

"They didn't know if she would be able to return to soccer. Oni always knew," Wilson said. "While her friends were having fun and enjoying their summer, she had a personal trainer. She was at this high school every day in the summer."

"Everyone was really excited for me to come back to the field," Cosme said, "and I was so thrilled. I never give up. I don't take anything for granted. I did at one point, I was like, 'I want to quit soccer.' And when I didn't have soccer, I was like, 'Oh my god, I want soccer.'"

Gratitude was the game-changer on and off the field for this South Jersey high school soccer star.

If you know of an athlete or coach that you want to see on Hometown Hustle, you can email Krystle Rich at hometownhustle@cbs.com.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });