Inspiration

Healthcare systems lose billions annually to preventable gaps in care — missed vaccines, unmonitored chronic diseases, overdue screenings. Clinicians are overwhelmed and don't have time to manually audit every patient's record. I wanted to build an agent that does this automatically, in real-time, using open standards.

What it does

Care Gap Agent connects to a patient's FHIR R4 record and runs a full preventive care assessment across four domains:

  • Diabetes — checks HbA1c recency and control (ADA Standards of Care 2024)
  • Hypertension — checks BP monitoring and control (JNC 8 Guidelines)
  • Vaccinations — checks influenza and pneumococcal vaccine status (CDC ACIP)
  • Cancer Screening — checks mammogram and colonoscopy based on age/gender (USPSTF 2024)

It returns a prioritized, structured list of gaps with severity, recommended actions, and guideline citations — ready for any downstream agent to act on.

How we built it

  • Google ADK (TypeScript) for the agent runtime
  • A2A protocol for interoperable agent communication
  • FHIR R4 for patient data access (conditions, observations, immunizations, procedures)
  • Prompt Opinion as the multi-agent workspace
  • Built on the official po-adk-typescript starter repo, extending the healthcare agent with a custom rule engine in healthcare_agent/tools/careGaps.ts
  • Deployed locally and exposed via ngrok, connected to Prompt Opinion as an external A2A agent

Challenges we ran into

  • FHIR data is inconsistently structured across servers — we had to handle both SNOMED codes and text matching for condition detection
  • The A2A message schema required a messageId field not shown in some examples
  • Mapping LOINC codes for HbA1c and blood pressure components required careful handling of nested component arrays

Accomplishments that we're proud of

  • Built a fully functional external A2A agent from scratch in one session
  • Real FHIR R4 integration tested against the SMART Health IT public sandbox
  • Clinically accurate rule engine — correctly skips rules that don't apply to the patient's age, gender, and conditions
  • Successfully published to the Prompt Opinion Marketplace

What we learned

  • How FHIR credentials flow through A2A message metadata into session state
  • How to design agent tools that are composable and callable independently or as a full assessment
  • The importance of graceful degradation when FHIR data is unavailable

What's next for Care Gap Agent

  • Add SDOH (Social Determinants of Health) gap detection from Z-codes
  • Deploy to Google Cloud Run for permanent availability
  • Add LDL/statin gap for cardiovascular risk
  • Support population-level gap reporting across patient cohorts ```

Built With

Share this project:

Updates