AI Translation of Radiology Reports with Doctor Review
An LLM drafts the report translation in 8 languages, the radiologist reviews it, and only then do customers and patients see it.
AI Report Translation delivers doctor-verified radiology reports in the customer's language, in the cabinet, as PDF and by email.
Partner's Profile
Background
The client is a teleradiology platform in Ukraine for remote reading of CT, MRI, X-ray and mammography. Its radiologists write reports in Ukrainian on studies sent by clinics and patients. Some customers and patients read other languages: foreign clinics, patients living abroad, people asking for a second opinion. Yet the system issued every report only in its original language.
Objective
Let the customer set report languages in the order from the start and deliver a translation that a doctor has verified, in the cabinet, as PDF and by email. A machine translation of a medical document must never reach a customer unreviewed, and a translation must never outlive a change to the original report. New languages had to be added without code changes.
Solution
We added report translation into the languages specified in the order, with 8 languages at launch: English, Polish, Czech, German, Spanish, Romanian, Georgian and French. Languages live in the database, so new ones are added without code changes. Each customer organization has default languages that apply automatically to every new order, whether it comes from the web cabinet or through the API that clinics' medical information systems use. Documents uploaded by patients are auto-translated into Ukrainian for the doctor.
Translation runs as a background task through an OpenAI model with structured output against a fixed schema. The prompt is stored in the database and can be edited without a deploy. It requires the model to keep medical terminology, document structure and HTML markup; never change numbers, measurements or dates; and add, remove or interpret nothing. This is the kind of constrained LLM use we build in AI software development.
The central design decision is human-in-the-loop. The model output is only a draft. In the report editor the radiologist gets a Translations tab with the original and the translation side by side, edits the draft and publishes it. A consistency guard keeps this honest: every translation stores a hash of the source text, and if the doctor edits the original, all its translations are marked outdated and disappear from the customer's cabinet and the patient's links. About 50 dedicated automated tests cover the feature. Translations move through clear statuses:
- draft: generated by the model, visible only to the doctor
- published: reviewed by the doctor, visible to the customer with its own PDF; the patient gets email links that expire
- outdated: the original changed, so the translation is hidden until it is reviewed again
Technologies
Backend
Python, Django 5.2, DRF, Celery, PostgreSQL, Redis
AI / ML
OpenAI API (structured outputs), prompts stored in the database
Frontend
React, TypeScript
Infrastructure
PDF generation, AWS S3
Projects
AI Intake Agent for a Teleradiology Patient Service
A multilingual AI agent that consults patients 24/7, collects structured requests and hands each one to a manager for confirmation.
LLM Matching of Veterinary Drugs to the State Registry
A data pipeline and API that join ~3,200 online catalog pages with the state registry into one structured veterinary drug reference.
Remote Patient Monitoring App
for remote medical diagnostics and health monitoring.
AI Translation of Radiology Reports with Doctor Review
An LLM drafts the report translation in 8 languages, the radiologist reviews it, and only then do customers and patients see it.
Referral and Payout Portal for a Teleradiology Platform
Doctors and medical reps refer patients by promo code, link or QR, and every reward is backed by money the platform actually received.
e-Prescribing App
for easy medical prescription issues and management.
Need a project estimate?
Drop us a line, and we provide you with a qualified consultation.