Inspiration

For cancer patients, finding the right treatment quickly is of utmost importance. However, traditional options like chemotherapy, radiotherapy, or surgery may not work for some, leaving them desperate to find another treatment plan. For these patients, clinical trials are the next best alternative, because they offer access to cutting-edge treatments that aren't yet widely available. Finding a trial that actually fits their diagnosis information and location, however, is an incredibly difficult and time-consuming process. Most patients don't know where to start, the medical language is dense and hard to understand, and there is no easy way to know which trials they qualify for without spending hours cross-referencing their pathology report against eligibility criteria written for clinicians, not patients.

What it does

NeuroNavigator takes a patient's profile, including their age, tumor type, tumor grade, molecular markers, treatment history, and location, and matches them against active brain cancer trials from ClinicalTrials.gov. Trials are ranked by both eligibility fit and proximity, so patients aren't just finding relevant trials, they're finding ones they can actually get to. It's especially valuable for patients who are out of traditional treatment options or those who want to explore alternatives to chemotherapy and radiation.

How we built it

We built the frontend with React and Vite, creating a clean multi-step form where patients enter details from their pathology report. The backend runs on FastAPI, which queries the ClinicalTrials.gov API and passes the results along with the patient's location to OpenAI to rank and explain each match. We used structured JSON outputs from the AI to ensure data fed cleanly and consistently back into our UI.

Challenges we ran into

The biggest challenge was getting the AI to return consistently structured responses that our backend could reliably parse and display. Clinical trial data from ClinicalTrials.gov is messy and inconsistent, so normalizing it before passing it to the model required significant preprocessing. We went through many iterations of prompt engineering before the outputs were stable and trustworthy enough for a medical context. We also had to engineer around OpenAI rate limits by splitting trials into parallel batches with exponential backoff, while keeping total response time fast enough to be usable.

Accomplishments that we're proud of

We are proud to have built something that a real patient could use. A detailed profile goes into our app, and ranked, plain-language trial matches come out. We are also proud that our matching is highly personalized, focusing on factors like age range, tumor grade, IDH/MGMT status, prior treatments, and location rather than a one-size-fits-all diagnosis type. Most importantly, this is something that could genuinely matter to someone who has run out of options and is unsure about their future.

What we learned

We learned that the hardest part of building for healthcare isn't the technology itself, but rather deeply understanding the medical context well enough to build something that actually helps users. For example, we were originally going to build an app that can help users diagnose what type of brain tumor they have based on MRI scans. However, we quickly realized that idea would not work, because MRIs only show shape and structure, but tumor diagnosis requires cellular and molecular information. Ultimately, we joined IrvineHacks unsure of where to start, and left knowing we built a tool that could help someone with one of the most difficult and important decisions of their life.

What's next for NeuroNavigator

We want to expand beyond brain cancer to support all types of cancers, and eventually other diseases in which post-biopsy data can be used for trial matching. We're also planning a mode for physicians that includes more technical details, so that they can use our tool alongside their patients during consultations. Long-term, we'd love to integrate NeuroNavigator with hospital systems so trial matching can happen automatically the moment a diagnosis is confirmed.

Built With

Share this project:

Updates