Work 02 · Medical center

“Electronic Nurse”

Doctors look at patients, not keyboards. AI listens to the appointment and drafts the medical records itself — the doctor only reviews them.

1 screeninstead of 3–7 pages of patient history
Pilot completed
  • C# / .NET 10
  • WPF
  • ASP.NET Core
  • SignalR
  • Python
  • GigaAM
  • LLM
  • Firebird
Why

The director and the chief physician wanted to free doctors from typing in the clinic's medical system — especially those who type slowly and struggle with the software. Appointments dragged on, and attention drifted from the patient to the screen.

What I built

The doctor picks a patient and presses “Record appointment”, then “Stop” at the end. From there the system works on its own, and the doctor gets a ready draft to review, edit and save.

Step 01

Recording

The doctor's app records the appointment and uploads the audio to the server. The doctor sees processing progress in real time.

Step 02

Speech recognition

A separate Python worker normalizes the audio, cuts out silence, splits the recording into chunks and transcribes them with GigaAM. A local language model then fixes the text and separates the doctor's lines from the patient's.

Step 03

Medical history

All of the patient's past visits to doctors of different specialties are condensed to 1–2 lines per visit: complaints, diagnoses, prescriptions. Doctors used to read 3–7 pages.

Step 04

Lab trends

5–15 pages of lab results over 5–8 years become charts sorted by importance: rises, drops, spikes and normalization are visible at a glance.

Step 05

Documentation

A multi-step language-model pipeline fills in the visit template, picks out the diagnoses the doctor made and offers suggestions: possible diagnoses, treatment options and prescriptions. The doctor always makes the decision.

Step 06

Saving

Once the doctor approves, the visit is written to the clinic's medical system.

The hard parts

01

The pipeline is configurable without a programmer: step order, prompts, models. Every model response is validated against a JSON schema. If something doesn't match, the visit is flagged “needs review” and never goes into the record.

02

Medical data never lands in logs in full, and every visit can be traced end to end by a correlation ID.

03

No lost edits

The draft version is checked on save, so two people can't overwrite each other's changes.

Stack
  • C# / .NET 10the doctor's WPF app, an ASP.NET Core server, SignalR for real-time status.
  • Pythonspeech recognition: FFmpeg, silence detection, GigaAM.
  • Language modelslocal, through my own LLA Control gateway (work 05). The provider and model for each step are set in the pipeline settings.
  • Firebirdjob queue and visit drafts.
Result
1 screeninstead of 3–7 pages of patient history

Pilot: three clinical cases reviewed in depth. Based on the doctor's feedback I refined the pipeline and calibrated it against reference reviews prepared by the same doctor. The system works and passed the pilot.

It hasn't gone into everyday use yet, and the reason is straightforward. Appointment recordings are medical data and can't be sent to the cloud, so the models have to run inside the clinic. Serving every doctor would take additional servers, and they turned out to be too expensive.

Video
“Electronic Nurse” A pilot where AI listens to the appointment and prepares the records — and an honest look at why it didn't go live.