Inspiration
The idea came from people, not a hackathon prompt. Several of my close friends volunteer or work full time as EMTs, and I asked them directly what would actually make their job easier. Their answers all pointed to the same handful of pain points: paperwork that eats time they don't have, dosage math they have to get right under pressure, language barriers with patients who can't tell them what's wrong, and the constant risk of missing a drug interaction when seconds matter. I wanted to build something that came from real conversations with the people who would use it, not a guess at what EMS work looks like from the outside.
What it does
EMS Copilot is a mobile app built for EMTs in the field. It combines four things they need into one tool instead of four separate apps:
- Voice to PCR: an EMT narrates the call out loud, and the app turns that narration into a structured Patient Care Report, pulling out chief complaint, vitals, interventions, and medications automatically.
- Protocol and dosage assistant: a quick voice or text query returns the exact protocol and weight based dosage from a curated, agency approved reference, never a guess.
- Medical translator: common phrases get translated and spoken aloud, so a language barrier doesn't slow down care.
- Drug reference and interaction checker: every medication mentioned during a call gets checked against known contraindications, so a dangerous combination gets flagged before it becomes a mistake.
All four features share the same patient encounter, so a drug mentioned during documentation automatically gets checked for interactions rather than living in a separate tool an EMT would have to remember to open.
How we built it
The backend runs on AWS, built with the Serverless Application Model so the entire stack (API Gateway, Lambda, DynamoDB, Cognito, KMS, and CloudTrail) deploys from a single template. Voice narration is transcribed with Amazon Transcribe, then structured into a formal PCR using Amazon Bedrock. Amazon Translate and Polly handle the live translation feature, and Amazon Comprehend Medical helps normalize messy, voice transcribed drug names before they hit the reference database. The mobile app is built with Expo and React Native, which let us ship a real, testable app on both iOS and Android without needing a Mac or any native build tooling, since Expo Go runs the app instantly from a QR code.
Because this project touches patient information, we treated data protection as a first class requirement rather than an afterthought. Every table is encrypted at rest with a customer managed key, every API call requires an authenticated Cognito user, and every read or write to patient data is written to an append only audit log enforced at the IAM permission level, not just by convention.
Challenges we ran into
The biggest challenge was making sure the AI parts of the app stayed genuinely trustworthy rather than just impressive in a demo. It would have been easy to let a language model freely generate a dosage recommendation, but that is not something we were willing to ship, even as a prototype. Instead, the protocol assistant is retrieval based: the model can only summarize and match against a curated database, never invent a number on its own. That constraint took more design work than the flashier alternative, but it was the right tradeoff for anything touching patient safety.
Compliance was the other major challenge. HIPAA is not something a solo builder can fully achieve in a hackathon timeframe, so rather than overstating what we built, we focused on getting the architecture right: HIPAA eligible AWS services, encryption everywhere, authenticated access on every route, and an audit trail that cannot be altered after the fact. We were upfront about the difference between infrastructure that is eligible to hold protected health information and a fully compliant organization, and we ran our entire demo on synthetic data because of that distinction.
What we learned
Building this reinforced that the most valuable ideas usually come from asking the people who will actually use the tool, not from assuming what they need. It also taught us that responsible AI design often means deliberately restraining what the model is allowed to do. The most important decisions in this project were not about making the AI more capable, but about drawing clear boundaries around it so it could be trusted in a setting where a wrong answer has real consequences.
Log in or sign up for Devpost to join the conversation.