Public health

Early warning that starts in the consultation room

ScribeMDPro's Early Warning module watches the symptom patterns already recorded in everyday care — fever, watery diarrhoea, rash with fever, unexplained bleeding — and flags unusual rises for human review. It sees the earliest signal of a cluster, days to weeks before a case-based report, without ever holding a patient's name.

Why it exists

Outbreaks announce themselves in clinics before they reach surveillance forms. A rise in watery diarrhoea across three settlements, or unexplained bleeding with fever, is visible in the day's consultations long before it is visible anywhere else — if the patterns are counted, compared and reviewed.

Detect the pattern, not the diagnosis

Early warning is syndromic: it counts 10 symptom-pattern buckets — febrile illness, acute watery and bloody diarrhoea, respiratory infection, prolonged cough, rash with fever, jaundice, unexplained bleeding, acute neurological illness and maternal emergencies — rather than waiting for laboratory confirmation that may never come.

Compare against a real baseline

Each syndrome is scored against a rolling 14-day baseline over 7-, 14-, 30- and 90-day windows. A cluster only surfaces when recent counts are at least double the baseline and at least three signals strong — and every score shows its own evidence: the observed count, the baseline, and the reasons it scored that way.

Escalate to a human, never to a system

When a pattern crosses the threshold, the module raises a review prompt inside the clinic's own workspace. A qualified clinician decides what it means and what, if anything, to do. The software never declares an outbreak and never reports to any authority on its own.

How signals are de-identified

De-identification is not a setting on this module — it is the data format. A signal physically contains only the fields below, so there is nothing sensitive to leak.

Syndrome bucket
One of 10 broad symptom categories, such as 'acute watery diarrhoea' or 'rash with fever'. Never a disease name and never a diagnosis.
Age band
One of four coarse bands: under 5, 5–14, 15–49, 50+. Never a date of birth or an age in years.
Coarse area
A settlement or ward label used for geographic comparison — never a street address, GPS coordinate or facility room.
Day
Calendar-day precision only, used for the rolling baseline. No timestamps of the visit.
Source
Whether the signal came from a clinic consultation, a community health worker visit or a reviewed WhatsApp voice note.
Never stored

No names, no phone numbers, no note text, no free-text descriptions of the encounter, no diagnoses and no images. The consultation note itself stays in the clinician's records; only the five de-identified fields above ever enter the surveillance store.

Stored on the clinic's own devices

Signals are held in an encrypted store on the clinic's device and work fully offline. Nothing is transmitted automatically — today signals stay on the devices that recorded them, and clinic-wide sharing is planned as a future step once the supporting infrastructure is in place.

Planned — not yet active
No audio, no archives

Where a voice note is the starting point — for example a community health worker's WhatsApp audio — the recording and its transcript are processed in memory, interpreted by the language engines, and discarded. Only the syndrome candidates survive into the human review queue.

How the engine works

Four deterministic steps, run on the device. Every number a reviewer sees is calculated from stored signals — nothing is estimated, simulated or filled in when data is missing.

1. Capture

A consultation becomes a signal

After a consultation is documented, the note's symptom descriptions are matched against the 10 syndrome buckets. A signal is only created once a clinician confirms the classification — low-confidence matches are flagged for review first.

2. Baseline

The area's own normal

Each syndrome in each area builds a rolling 14-day baseline from its own history. Until enough days have been reported, the baseline is shown as an honest gap rather than a flat invented line.

3. Deviation

Explainable scoring, 0–100

When recent counts exceed the baseline, a weighted score combines the size of the deviation, the volume, how concentrated the signals are in one area, and the syndrome's public-health consequence. Each contributing reason is displayed next to the score.

4. Human review

A prompt, not a verdict

Crossing the threshold raises a review prompt with the evidence attached. The clinician can investigate, record an outcome, or dismiss it — and data-quality labels state plainly when reporting is too sparse to trust.

Public-health use

The module is built for the settings where formal surveillance is slowest to arrive: rural and peri-urban clinics, NGO programmes and district health teams.

Rural and peri-urban clinics

A clinic that documents care offline still accumulates a syndromic picture of its catchment — and sees a rising pattern in its own waiting room before anyone else does.

NGO and CHW programmes

Community health worker visits feed the same de-identified buckets, so a programme covering many settlements can compare activity across wards without collecting a single patient identifier.

Public health teams

Geographic intelligence compares wards and districts, and every exportable figure is a de-identified count — suitable for sharing onward only when the clinic itself decides to.

WhatsApp voice-note intake

Voice notes sent to a clinic's WhatsApp number are signature-verified, transcribed in memory, interpreted by the language engines and placed in a review queue. A clinician confirms the age band and area before anything becomes a signal.

In beta

What Early Warning will never do

Safety limits stated plainly, because surveillance software earns trust by what it refuses to do.

No diagnoses
Syndrome buckets describe symptom patterns. A qualified clinician makes every diagnosis; the engine never names a disease.
No automatic reporting
Nothing is transmitted to any authority, ever, without an explicit decision by the clinic.
No patient identifiers
The signal format contains no field that could identify a patient — so a leak of the surveillance store cannot expose one.
No invented trends
When reporting is too sparse, the engine displays 'not enough data' instead of a reassuring green light, and weak data cannot escalate past 'under review'.
No silent escalation
Every cluster is a review prompt with its evidence attached. A human confirms or dismisses it.

Frequently asked questions

What is syndromic early warning?
Watching the pattern of symptoms recorded in everyday consultations instead of waiting for confirmed lab diagnoses. Counts of symptom-pattern buckets are compared against a rolling 14-day baseline by area and age band, and abnormal rises raise a review prompt for a clinician — the software never declares an outbreak.
What patient information does Early Warning store?
Five de-identified fields only: syndrome bucket, coarse age band, coarse area, calendar day and source. No names, phone numbers, note text or diagnoses are stored or transmitted through this path.
Does ScribeMDPro report outbreaks to health authorities?
No. The module raises a review prompt inside the clinic's own workspace. Any decision to share information with a public health authority is made and executed by the clinic itself.
What happens when there is not enough data?
The engine says so. Sparse reporting shows 'not enough data to assess' rather than a green light, weak data can never escalate past 'under review', and every figure carries its own evidence — the observed count, the baseline, and the scoring reasons.

See it in the product

Early Warning is part of the Global Health Copilot, which also provides cultural medical translation, offline WHO-aligned triage support, NHIS-aware billing extraction and community health worker playbooks — read about the full copilot. Already have an account? open your Global Health workspace.

Reclaim your evenings. Start documenting with ScribeMDPro.

Free to start. No credit card, no install, no audio ever stored.