Illustration

AI Report Translation delivers doctor-verified radiology reports in the customer's language, in the cabinet, as PDF and by email.

8 report languages, more added without code
100% of translations reviewed by a radiologist before release
0 outdated translations visible after the original changes
Project
Project

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

Languages Set in the Order

The customer picks report languages when ordering, and each organization's default languages apply automatically to every new order, from the web cabinet or through the API used by clinics' medical information systems. New languages are added in the database, without code changes.

Side-by-Side Review for the Radiologist

A Translations tab in the report editor shows the original and the machine draft side by side. The radiologist edits the draft and publishes it; until then the customer and the patient see nothing.

Constrained LLM Prompt

Translation runs as a background task with structured output against a fixed schema. The prompt, stored in the database, requires keeping terminology, structure and HTML markup, never changing numbers, measurements or dates, and adding or interpreting nothing.

Source Hash Consistency Guard

Every translation stores a hash of the source text. When the doctor edits the original, all translations turn outdated and disappear from the customer's cabinet and the patient's links until they are 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

Project

Projects

AI AgentLLM

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.

83% of dialogs end with a request and summary
50% of conversations happen outside work hours
21% click-through to the order page, up from 10%

LLMData Pipeline

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.

99.8% of product records imported
887 products linked to the state registry
829 matches with confidence of 0.9 or higher

MedicalHealth monitoring

Remote Patient Monitoring App

for remote medical diagnostics and health monitoring.

$50K raised investment
MVP was launched in 3 months

AILLM

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.

8 report languages, more added without code
100% of translations reviewed by a radiologist before release
0 outdated translations visible after the original changes

HealthcareSaaS

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.

10 days to build the partner module
5 reward tiers with per-partner overrides
3 ways to refer a patient: code, link or QR

eHealthDigital Workspaces

e-Prescribing App

for easy medical prescription issues and management.

300 e-prescriptions are issued daily
-86% reducing recipe errors

Need a project estimate?

Drop us a line, and we provide you with a qualified consultation.

x

Partnership That Works for You

Your Trusted Agency for Digital Transformation and Custom Software Innovation.

Start typing to search...