← Все проекты

LabTracker

История анализов из разных стран в одном месте

2026lab.vibesoft.ru
75
Показателей
RU, UA, DE, EN
Языки бланков
0
Ошибок без проверки

Задача

История анализов рассыпана по странам и лабораториям. В одном бланке гемоглобин в граммах на литр, в другом — в граммах на децилитр; в одном показатель называется «Гемоглобин», в другом Hämoglobin, в третьем просто HGB. Границы нормы у каждой лаборатории свои, и сравнивать значения напрямую нельзя.

Врачу в новой стране приходится приносить стопку бумаг на языке, которого он не знает, а динамику показателя за десять лет никто не видит целиком.

Что сделали

Бланк загружается фотографией или PDF, показатели распознаются и приводятся к единому справочнику, а исходные значения, единицы и границы нормы сохраняются ровно такими, как напечатаны.

На графике полоса нормы рисуется отрезками — по референсу той лаборатории, где сдана каждая точка, со специальной пометкой при смене лаборатории. Так видно и динамику, и то, что значения из разных лабораторий не всегда сопоставимы.

Обработка целиком локальная: данные не уходят ни в какие внешние сервисы.

Человек, переехавший в другую страну, теряет не анализы, а их связность. Часть истории осталась в российской лаборатории, часть появляется в немецкой, названия показателей не совпадают, единицы измерения разные, а границы нормы отличаются даже между двумя лабораториями в одном городе.

LabTracker разбирает бланк, приводит показатели к единому справочнику на основе международных кодов LOINC и единиц UCUM и складывает всё в одну историю с графиками.

Что внутри

  • Разбор PDF по координатам слов: колонки, многострочные названия, качественные результаты, значения с операторами сравнения.
  • Справочник из 75 показателей с синонимами на четырёх языках. Немецкое GPT и русское АЛТ — один показатель; Harnstoff и Harnsäure — разные, хотя различаются одной буквой.
  • Пересчёт единиц, в том числе нелинейный для гликированного гемоглобина, который в Европе и России измеряют по-разному.
  • Экран подтверждения: каждое значение показывается рядом с местом, откуда оно взято на исходном бланке.

Почему разбор устроен строго

Перепутанная цифра в анализе — не косметический дефект. Поэтому значение попадает в историю, только если оно дословно присутствует в тексте бланка, имеет координаты в оригинале и правдоподобно для своего показателя. Границы нормы и пересчёт единиц считает код, а не языковая модель. На тестовом наборе бланков — ни одной ошибки, принятой без проверки.

Сервис не интерпретирует результаты и не заменяет врача: он показывает то, что написано в бланке, и справочные описания показателей, одинаковые для всех.

Стек

PythonFastAPIPostgreSQLPyMuPDFpdfplumberLOINCUCUM

Нужен похожий сервис?

Расскажите о задаче — оценю сроки и стоимость.