Pre-visit intake for multilingual clinics

Every word, understood.

Patients tell Fin what brings them in, by voice or text, in Thai, Italian or English. Fin listens and prepares the record while nurses, doctors and pharmacists decide. Every field points back to the patient's own words.

  • Synthetic data only
  • Thai, Italian, English
  • Every field cites the patient
  • Red flags are code
  • A clinician approves

Language picked

ภาษาไทย

Read aloud

How long have you had it?

Built with

  • AMD Developer Hackathon ACT III
  • Gemma
  • Next.js
  • Expo

Built for AMD Developer Hackathon ACT III · Track 2. Names only, no partnership implied. Gemma on AMD is the designed model target; the live label under the hood says what runs today.

Watch

MedX in 60 seconds

One synthetic visit, from the patient's phone to the pharmacy counter.

Synthetic cases only. Press play to watch with sound.

Full product walkthrough

A screen recording of one synthetic visit, through every role, with English narration and captions.

How it works

From the patient's words to a person's decision

Three steps for every visit. The last one is always a person.

  1. The patient speaks

    By voice or text, in Thai, Italian or English. Fin reads each question aloud, and the patient checks the transcript before sending.

  2. Rules first, then Fin prepares

    Red-flag rules run as code before any model. Then fields are extracted, and each one must quote the patient, checked by code.

  3. A person decides

    The nurse confirms triage, the doctor signs and orders, and pharmacists verify and dispense. Nothing is final until a clinician approves.

    A person decides

Features

One record, every role

Each card shows a real MedX screen from a synthetic case.

Patient

Voice intake in three languages

A voice agent reads each question aloud in Thai, Italian or English. The patient checks the transcript before it is sent, and a live status shows when a nurse has read it.

Patient app asking what brings you in today, with the transcript to check before sending
Before any model

Red flags are code

18 deterministic, guideline-sourced rules read the raw text before any model call. A hit stops the intake and interrupts the clinician screen. No model output can clear it.

Synthetic example · Thai
แน่นหน้าอก เหงื่อออกเยอะมากเลยค่ะ ร้าวไปที่แขนซ้ายด้วย เป็นมาประมาณครึ่งชั่วโมงแล้ว ผู้หญิงอายุ 58 แพ้ยาซัลฟา กินยาความดันทุกวัน

Rule hit: RF-CHEST-01Chest pain with sweating, radiation, breathlessness, nausea or near-faint

Escalated to a clinician with zero model calls

Nurse

A consult assistant that cites

Ambient listening with ask-next and rule-out prompts, and a live summary where every field links to the sentence the patient said.

Consult assistant live summary, each field marked as coming from the patient's words
Nurse

A triage suggestion the nurse confirms

Vitals give a NEWS2-based triage suggestion for adults. The nurse confirms it, or records another level with a note.

Suggested triage level with the NEWS2 reasons and the nurse's confirmation
Doctor

Considerations, then a signed note

Doctor-only considerations from a fixed curated list, labelled not a diagnosis, with guideline links. The draft note keeps its evidence, and the doctor signs it.

Signed visit note, read only, with the doctor's signature receipt and the presenting complaint from the patient's words
Doctor

Orders with deterministic checks

Allergy, interaction, duplicate, pregnancy and dose-range checks from a 59-drug rule set. A high alert needs a written reason.

Prescribing form with dose, route, frequency and duration, and the Check button
Pharmacist 1

Verify, or return with options

The first pharmacist verifies each prescription or returns it with a note and options for prescriber review. An option is never written into the order.

Return to prescriber form with options for prescriber review
Pharmacist 2

Dispense with a two-person check

A second pharmacist completes a six-item final check. The pharmacist who verified an order cannot dispense it.

The second pharmacist's six-item final check before dispensing
Patient

Called to the counter

When the medicines are ready, the patient's phone shows the counter and their code. The pharmacist records the collection.

Patient app showing pharmacy counter 2 and the visit timeline
Every action

Append-only audit log

Reviews, edits, orders, dispensing and pickup are recorded with who did what. Nothing is final until a clinician approves.

  1. Intake approved
  2. Vitals recorded
  3. Triage confirmed
  4. Note signed
  5. Order submitted
  6. Checked by pharmacist 1
  7. Dispensed by pharmacist 2
  8. Medicines collected
Event types from the synthetic golden case
Every case

Case trace

The executed graph of how a case was handled: rule checks, model calls, skipped steps and human decisions, with a deterministic replay check.

Case trace graph from the patient turn through rule checks and model calls to the order checks
Clinic manager

Operations at a glance

Queue by urgency, abstain rate, the pharmacy pipeline and an honest model label, refreshed every few seconds.

Ops pharmacy flow: orders to verify and to dispense, and patients called to the counter

Safety by design

Fin prepares. People decide.

MedX prepares the record and a clinician approves it. These rules hold in every build, and the tests fail if one breaks.

  • Red flags are code, not a model

    18 deterministic rules run on the raw text before any model call. An add-only model screen can raise a flag with a verified quote, never clear one.

  • No quote, no fact

    Every field must carry a quote from the patient's text, checked by code. Without one, the field shows Needs check and is never shown as fact.

  • Abstain, do not guess

    A provider error, a schema error or low confidence gives needs human review, never a guess.

  • People decide, on the record

    Triage is a suggestion the nurse confirms. The AI never proposes drugs or doses. High alerts need a written reason, and every action goes to an append-only audit log.

Why

Language gaps cause harm

Published research, not MedX results.

  • 49.1%

    of adverse events in limited-English patients involved physical harm, against 29.5% for English speakers, in six US hospitals.

    Divi et al., Int J Qual Health Care 2007(opens in a new tab)
  • 13 to 59%

    of patients had at least one unintended error in their admission medicine list, across six pharmacist-checked studies. Omission was the most common.

    Six studies, 2017 to 2026, in the MedX research notes

  • 49.2%

    of doctors' office day went to EHR and desk work, against 27.0% on direct face time with patients.

    Sinsky et al., Ann Intern Med 2016(opens in a new tab)

Phone and web

One record, two screens

The patient app runs on the phone; staff work on the web. Both read and write the same synthetic case.

  • The patient sees a live status: sent, reviewed, ready to collect.
  • Staff see the same case, with every field linked to the patient's words.
  • The patient app is a web build of the Expo app, so the demo needs no install.
  • Open the patient app
Scan to open the patient appPoint a phone camera at the code.https://medx.areazeroai.com/patient/

Under the hood

Honest by default

The model label is read live from the server. The chips describe how this build is made.

Model: Reading the live model label

Designed target: Gemma via the hackathon's AMD Token Factory, through an OpenAI-compatible API with JSON-schema output, a per-call timeout and one repair retry.

  • Next.js 15
  • Expo SDK 58
  • TypeScript, strict
  • Neon Postgres shared store on the public demo
  • 18 red-flag rules
  • 59 drugs, 18 interactions
  • Append-only audit log
  • Deterministic replay check

Limitations

What MedX does not do

  • Research prototype that supports clinicians. It does not diagnose, treat, prescribe or decide urgency.
  • Synthetic data only. Not clinically validated, not a medical device.
  • Red-flag rules miss paraphrases: keyword rules alone caught 7 of 10 emergencies on an 18-case synthetic holdout.
  • Considerations come from a fixed 12-presentation list, not a complete differential.
  • The NEWS2 suggestion is for adults, not pregnancy, and the nurse confirms it.
  • Prescribing checks use a small rule set (59 drugs, 18 interactions, adult dose ceilings for 31) and miss what it lacks.
  • Speech goes to the browser's or phone's cloud speech service. Redaction is imperfect, and reviewer identity is self-declared.
  • Measured on synthetic data only (small n, eval/REPORT.md): Gemma-4-31B-IT on AMD-hosted models missed the field-accuracy thresholds and is slow (extraction about 39 s per turn).
  • The public demo resets every day at 03:00 ICT: demo cases and their audit log are cleared.

Walk through one visit, end to end

Start as the patient, or step in as the nurse, the doctor or a pharmacist. Every case is synthetic.