НМИЦ здоровья детей

OCR — проверка лабораторных анализов

Проверка…

Проект представляет собой веб-приложение для обработки и проверки результатов лабораторных анализов пациентов. Его основная задача — помочь сотрудникам быстрее переводить медицинские документы из PDF, изображений и архивов в структурированные данные, пригодные для проверки, хранения и последующего экспорта. Система особенно полезна в сценариях, где по пациенту накапливается большое количество разнородных лабораторных бланков. Вместо ручного переноса каждого показателя приложение формирует рабочую очередь распознавания и дает специалисту удобный интерфейс для сверки найденных значений с оригиналом документа.

ocr.nmiczd.ru/

Назначение проекта

Проект представляет собой веб-приложение для обработки и проверки результатов лабораторных анализов пациентов. Его основная задача — помочь сотрудникам быстрее переводить медицинские документы из PDF, изображений и архивов в структурированные данные, пригодные для проверки, хранения и последующего экспорта. Система особенно полезна в сценариях, где по пациенту накапливается большое количество разнородных лабораторных бланков. Вместо ручного переноса каждого показателя приложение формирует рабочую очередь распознавания и дает специалисту удобный интерфейс для сверки найденных значений с оригиналом документа.

Архитектура

Приложение построено как full-stack система: backend реализован на Python с FastAPI и SQLAlchemy, frontend — на React и TypeScript. Для хранения рабочих данных используется SQLite, а загруженные документы, результаты обработки и экспортируемые файлы хранятся в общей серверной директории приложения. Обработка документов вынесена в отдельный фоновый worker с настраиваемой параллельностью. Это позволяет не блокировать интерфейс пользователя при загрузке большого числа файлов и постепенно обрабатывать очередь документов. Для production-развертывания используется схема релизов с systemd-сервисами, nginx, резервным копированием данных и отдельным изолированным контуром для OCR-версии приложения. OCR-пайплайн объединяет извлечение текста из PDF, распознавание изображений, работу с Yandex Vision/Yandex GPT при наличии настроек, а также собственные эвристические алгоритмы разбора лабораторных таблиц. Для проверки результатов используется PDF/Image viewer с масштабированием, подсветкой найденных значений и fallback-рендерингом сложных PDF-страниц.

Функциональные возможности

Система поддерживает ведение пациентов, заболеваний, пользователей и прав доступа. Для разных заболеваний можно настраивать наборы анализов, что делает приложение применимым не только для одного направления, а для нескольких медицинских программ и клинических сценариев. Пользователь может загрузить один документ, группу документов или архив. После обработки приложение выделяет найденные показатели, показывает исходный документ рядом с карточками распознанных значений и позволяет подтвердить, исправить, отклонить или вручную добавить данные. Для документов без автоматически найденных данных предусмотрен ручной сценарий проверки, чтобы важная информация не терялась. Отдельное внимание уделено безопасности распознавания: система не только ищет числа, но и проверяет контекст, колонки таблиц, референсные пределы, единицы измерения и расположение значения на странице. Это снижает риск переноса справочных значений или служебных строк вместо результата пациента. Для администраторов предусмотрены настройки Yandex-ключей, управление пользователями, заболеваниями и доступами. Подтвержденные данные можно экспортировать обратно в Excel-формат, совместимый с исходной рабочей таблицей.

Итоговый результат работы

На выходе приложение формирует проверенную базу лабораторных показателей по пациентам и заболеваниям. Каждый показатель проходит через этап распознавания и человеко-ориентированной проверки, а итоговые подтвержденные значения могут использоваться в таблицах, отчетах и последующей аналитике. Практически это превращает набор разрозненных сканов и PDF-файлов в управляемый поток данных: документ загружается, распознается, попадает в очередь проверки, сверяется с оригиналом и после подтверждения становится частью общей структуры наблюдения пациента.

Практическая польза

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

Сильные стороны проекта

Сильная сторона проекта — сочетание автоматизации и обязательной проверки человеком. Приложение не пытается полностью заменить эксперта, а дает ему удобное рабочее место, где автоматическое распознавание ускоряет процесс, а интерфейс сверки сохраняет контроль качества. Также стоит отметить продуманную архитектуру обработки документов: фоновые задачи, отдельный worker, устойчивость к сложным PDF, визуальная подсветка значений, ручное заполнение спорных документов и экспорт результата делают систему практичной для реального рабочего процесса медицинской организации. Проект уже ориентирован на развитие: в нем есть роли пользователей, multi-disease модель, настройки внешних OCR/AI-сервисов, регрессионные тесты для критичных сценариев распознавания и безопасная схема production-деплоя.

Краткий итог

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