Inspiration
I'm from Chilliwack, BC. Nearly 900,000 British Columbians, don't have a family doctor. When they get sick, they face a question that shouldn't be this hard: do I go to the ER, find a walk-in clinic, call 811, or just wait it out? Making the wrong call means hours in a waiting room for something that could have been handled over the phone — or worse, staying home when they actually needed care.
I built this because it's a problem I see firsthand, in my own community.
What it does
BC Healthcare Navigator is an A2A healthcare agent that helps unattached BC patients — those without a family doctor — find the right care based on their actual medical history.
A patient says: "I've had a fever and sore throat for a week, I'm in Chilliwack, and I don't have a doctor. What should I do?"
The agent:
- Reads their FHIR health record to understand their conditions and medications
- Triages their symptoms to the right level of care — 911, ER, urgent care, telehealth, or 811
- Finds the nearest urgent care centre with current wait times
- Checks which BC programs they qualify for — PharmaCare, Health Connect Registry, Fraser Health Virtual Care
- Guides them through registering for a family doctor in BC
How I built it
- Google ADK — agent framework
- A2A Protocol v1 — agent-to-agent communication standard
- FHIR R4 — reads real patient health records via Prompt Opinion
- ChromaDB + RAG — vector database of BC-specific health knowledge including UPCC locations, PharmaCare coverage, and provincial programs
- Claude (Anthropic) — reasoning and natural language generation
- Prompt Opinion — multi-agent healthcare platform
- Google Cloud Run — permanent production deployment
The agent receives patient context from Prompt Opinion via A2A metadata, extracts FHIR credentials, queries the patient's real health record, searches the BC knowledge base using RAG, and returns a personalized care recommendation — all in a single conversation turn.
Challenges I ran into
- Google Gemini free tier quota ran out mid-development — had to switch to Claude and debug live on Cloud Run
- A2A v1 spec is so new the Python SDK hadn't caught up — required compatibility shims to bridge the gap
- ChromaDB on Cloud Run wasn't in the base dependencies — discovered this through live deployment logs and hot-fixed mid-sprint
- FHIR patient context wasn't being passed correctly until we traced the full metadata pipeline through the middleware layer
- Windows + Git Bash environment caused unexpected issues with virtual environments and PATH configuration
Accomplishments that I am proud of
- Built a fully deployed, production A2A agent in under a week from zero knowledge of the A2A protocol
- RAG pipeline working end-to-end — the agent retrieves real BC clinic data from a vector database, not hallucinated answers
- The agent gives clinically appropriate responses — recommending telehealth for non-urgent symptoms, escalating to 911 for emergencies
- Permanent Cloud Run deployment that works 24/7 without a laptop running
- Built something that solves a real problem in my own community
What I learned
- How the A2A v1 protocol works — agent cards, supported interfaces, FHIR credential injection via message metadata
- How FHIR R4 structures real patient health data and how agents can query it securely
- How to build a RAG pipeline from scratch using ChromaDB and sentence embeddings
- How to deploy to Google Cloud Run and debug production issues using live logs
- That the hardest part of healthcare AI isn't the code — it's understanding the clinical context well enough to build something a real patient can trust
What's next for BC Healthcare Navigator Agent
- Live wait times via Medimap API for real-time clinic data
- Multilingual support — BC has large Punjabi, Mandarin, and Tagalog-speaking populations who are underserved by English-only tools
- Proactive risk escalation — automatically flag high-risk combinations like immunocompromised patients with fever or cardiac history with chest pain
- Fraser Health API integration for real-time UPCC open/closed status
- "What to tell the doctor" summary — generate a one-page patient summary from FHIR data to bring to any walk-in visit
Log in or sign up for Devpost to join the conversation.