Second part of the video which we were not able to merge is here: https://youtu.be/ttbcl0C5T48 Inspiration A doctor has an unusual case. They need to find out what the diagnosis may be. They still need to ask whoever is in the hallway. If nobody nearby has seen it, the question dies there. Impiricus already reaches healthcare professionals with clinical updates. They have a network of 1M+ HCPs. Why don't we tap into the market, use the connection of HCPs and integrate into the app. That's how we came up with the idea for DocCare.

DocCare does whatever is necessary for the HCPs, they want to find a drug based on salts, use our search Drug feature, they want to find what's new in the world of Healthcare, use the what's new page, however the primary focus stays at the patients. Impiricus masters E-Prescribe. We master everything around it. An HCP can refer a patient to another HCP in case of a specialist and easily send the patient data by creating a pdf.

The picture we kept coming back to was a primary-care visit that does not fit a textbook. Three symptoms, an age band, a trigger, a slow onset. The useful question is not "what does the internet say." It is "who else has sat with this, what did they call it, and what did they prescribe." That became peer case exchange: a de-identified case, matched against other clinicians' cases, ranked by how close the match is.

From there the rest of the clinic fell out of the same idea. A formulary change should land on the patients it actually affects. A referral should carry the history with it, including to a specialist who has never opened Impiricus. A new drug should come with evidence, side effects, and a button that asks which of your patients it is for.

What we learned Clinical similarity is a weighting problem before it is a language-model problem. Two charts can share a word and still be different diseases, and two charts can use different words for the same illness. We learned to score the parts a clinician would actually compare, then let a model explain the ranking only after the order is already defensible.

We need to be very careful of HIPAA compliance. Whenever we were matching patients or sending data to gemini, we had to make sure to remove 18 specific direct and indirect identifiers from the data, including: Patient name, address (anything smaller than a state), and contact details.
All dates directly related to the individual (birth date, admission/discharge dates, date of death) except the year.
Social Security, medical record, account, and health plan numbers.
Biometric data, photos, and any unique identifying codes or characteristics.
Note: The sender must also have no actual knowledge that the remaining information could be used, alone or in combination with other data, to re-identify the patient.

How we built it The app is a React Native client on Expo, talking to a FastAPI service backed by SQL and Gemini AI. The demo clinic is synthetic: doctors, patients, visits, labs, prescriptions, follow-ups, and chats, so we could exercise real flows without real patient data.

Finding Peers first creates a duplicate database with anonymized data. It then uses Gemini API with RAG to find similar matches based on features like Symptoms, Relevant Medical History, family medical history, details about each symptom, alcohol, smoking, immunocompromised or immunocompetent, lab results, medicines you take right now, pregnancy etc.

A new drug or a notification uses a second score, because the question is "who on my panel does this touch," and the age band can be a range. Inside the band the age term is 1. Outside it, distance $d$ in years falls off over a 25-year window:

Everything is done with extreme care. Providing a referral for example has different workflows. You can find a HCP by searching for a HCP or by searching for a patient and finding the relevant HCP. You would then send an email to the patient providing them the referral doctor's details. Only after the patient clicks Yes I would go to this doctor, please send my data, is all the data from the patient sent to the referred doctor. Making it so that we both get the benefits of in app network while still taking care of the patient's privacy and data.

The notifications feed can show a list of notifications sent to the user using Pulse and Spark which can then be used to find the relevant patients and send them the relevant details via email.

Around that matcher we built the rest of the workflow in the phone UI: a patient chart, an inbox where each notice can open a thread or jump to the patients it fits, a directory of clinicians you can message or refer, and a handoff packet. The packet is a small PDF we assemble ourselves and an email to the patient and the receiving clinician, so the history moves even when the other doctor is outside the app.

Lastly, the HCP can schedule routine follow-ups with the patient with a description of what the follow up should look like, which provides the patient with a websocket that contacts them with ElevenLabs's phone agent. This allows ElevenLabs's agent to ask questions about the follow-up, receive answers, and provide the summary of the conversation directly to the doctor.

Challenges The hardest constraint was data. We did not have a corpus large enough to embed every chart and trust nearest neighbors, so we made the score explicit and kept the model in the explanation layer. That choice showed up immediately in testing. Early weights promoted the wrong specialty, and a keyword rule treated the letters in "check" as a creatine-kinase hit and suggested rheumatology. We moved those matches onto word boundaries and let case evidence outrank a specialty label.

One huge challenge was figuring out how ElevenLabs would send the data back to the doctor. This wasted hours of work exploring their documentation.

Another big problem was figuring out how referrals would work without violating piracy. This took many brainstorming hours.

Built With

Share this project:

Updates

Submission history