logo

Внутреннее ПО для лабораторного анализа данных

Спроектировали и внедрили десктоп-приложение для лаборатории контроля качества пищевых продуктов.
2 (18).png
1 (20).png
ИндустрияПищевая промышленность
Тип бизнесаB2B
РегионРоссия
ИндустрияПищевая промышленность
Тип бизнесаB2B
РегионРоссия

Клиент

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

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

Вызовы

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

Также важно было связать обработку данных с реальными рабочими процессами лаборатории, а не переносить в интерфейс приложения абстрактную модель анализа.
close-up-scientist-holding-petri-dish (1) (1).jpg

Удобство интерфейса

Алгоритмы обработки спектров нужно подружить с интерфейсом приложения – понятный запуск, привычная для работников лаборатории логика действий и наглядный результат.

1 (20).png

Работа с сериями измерений

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

Как это выглядело на практике:

С чего мы начали

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

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

Первый рабочий экран

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

Интерфейс выполнили на английском языке – в соответствии с привычной для лаборатории средой работы с измерительным оборудованием и аналитическими инструментами.

Работа с сериями данных

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

Библиотека образцов

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

Готовность к повседневной работе

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

Как мы встроили математику

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

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

Основная инженерная сложность

Основная инженерная сложность – определить четкие точки, в которых система считает данные и фиксирует результат.

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

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

Технологии

technology
Бэкенд

.Net

technology
Бэкенд

C#

technology
Фронтенд

WPF

technology
Математика и расчеты

Matlab

Результат

Мы создали решение для локальной лабораторной среды. Поскольку десктоп-приложение не предполагало внешних пользователей, в приоритете были корректность, воспроизводимость результатов и удобство ежедневной работы, а не его внешний вид.

Лаборатория получила удобный инструмент для повседневной работы со спектроскопическими данными и анализа образцов – от загрузки измерений до фиксации результатов. Работа с сериями данных стала проще: специалисты обрабатывают партии измерений, сравнивают образцы и используют библиотеку эталонных данных без ручной подготовки и лишних шагов.

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

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

на 40%

меньше времени уходит на обработку серий измерений.

grade

Напишите нам

/ 5000

Что происходит дальше:

  • Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.

  • Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.

  • Договариваемся с вами о следующей встрече, чтобы согласовать предложение.

  • Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.