ТомМедЦентр
Медицина и ветеринария
Россия, Санкт-Петербург
Корпоративный сайт
Android
Август 2025
Клиент обслуживает удалённые промышленные объекты (в т.ч. нефтедобывающие) и морские суда, где по закону и внутренним регламентам необходимо контролировать состав, сроки годности и статус медицинских аптечек и связанного оборудования. Ранее учёт вёлся в бумажных журналах: данные терялись, проверки занимали время, не было единого окна для аналитики и планирования пополнений. Это приводило к рискам простоев, штрафов и снижению безопасности персонала.
Нужно было с нуля заменить бумажный процесс на цифровую систему учёта и инспекций: мобильное приложение для сотрудников объектов/экипажей, веб-панель администратора для сотрудников клиента и надёжный бэкенд. Система должна работать в условиях нестабильной связи (офлайн/онлайн), обеспечивать прозрачный аудит (кто/когда проверил, что заменил), напоминать о скором истечении сроков годности, упрощать инвентаризацию и давать руководителям актуальные дашборды по всем площадкам и судам.
Мобильное приложение (Android, нативное на Kotlin/Jetpack Compose; онлайн и оффлайн-режимы с последующей синхронизацией) со следующим набором возможностей:
• Отображение состава аптечки (медицинские препараты, изделия, оборудование).
• Поиск по названию и симптомам.
• Учёт «пачек»/серий и сроков годности, напоминания о критичных позициях.
• Сканирование штрих- и DataMatrix-кодов (инвентаризация, списание, пополнение).
• Управление выдачей препаратов и медизделий с фиксацией операций.
• Учёт дат проверки/поверки оборудования и статусов («исправно/заменить/проверить»).
• Статистика заполнения аптечки и актуальности позиций.
• Генерация отчётов для закупки.
• Встроенные инструкции по оказанию первой помощи.
• Быстрые кнопки связи с контакт-центром и врачом.
• Создание и ведение дополнительных аптечек на объекте/судне.
Панель администратора (Web, Laravel):
• Централизованное управление всеми аптечками объектов/судов.
• Проверка статусов аптечек, пачек и оборудования.
• Формирование отчётов для закупки.
• Управление пользователями мобильного приложения и ролями доступа.
Бэкенд (Laravel)
• REST API для мобильного приложения.
• Надёжная синхронизация данных и обработка офлайн-конфликтов.
• Авторизация, аудит действий и масштабируемое хранение.
Что сделали
• Провели интервью с заказчиком и будущими пользователями: ответственными за медаптечки на объектах/судах, снабжением и ИТ.
• Изучили близкие аналоги (учёт аптечек, инвентаризация, offline-first решения), собрали best practices.
• Сформировали и согласовали детализированное ТЗ на мобильное приложение, панель администратора и бэкенд.
Ключевые решения, зафиксированные в ТЗ
• Роли и доступы: сотрудник объекта/член экипажа, ответственный медработник/супервайзер, администратор.
• Сценарии мобильного приложения:
— инвентаризация аптечки;
— просмотр состава (препараты, медизделия, оборудование);
— поиск по названию и симптомам;
— учёт «пачек»/серий и сроков годности, напоминания о критичных позициях;
— сканирование штрих- и DataMatrix-кодов;
— выдача/списание с фиксацией операций;
— контроль дат проверки/поверки оборудования и его статусов;
— статистика заполнения;
— генерация отчётов для закупки;
— инструкции по первой помощи и быстрые вызовы (контакт-центр/врач);
— создание дополнительных аптечек на объекте/судне.
• Сценарии админ-панели (Web): реестр объектов и судов, шаблоны составов аптечек, мониторинг статусов аптечек/пачек/оборудования, отчёты для закупок, управление пользователями/ролями, журнал действий.
• Модель данных: справочники препаратов и медизделий; партии/серии с датами годности; статусы позиций и оборудования; события выдачи/списания; геометка и время операции; файлы (фото).
• Отчёты: инвентаризация по объекту/судну, потребность в закупке, контроль сроков, активность пользователей.
• Нефункциональные требования
— Offline-first: все ключевые операции доступны без интернета; очередь синхронизации и механизм разрешения конфликтов при подключении.
— Безопасность и аудит: авторизация по ролям, журнал действий, защита персональных данных и медицинской информации.
— Производительность и UX: быстрый старт сканера, минимальный ввод вручную, стабильная работа на устройствах среднего класса.
— Масштабирование: рост количества объектов/судов и пользователей без деградации скорости.
Ограничения и риски
• Нестабильная связь на удалённых объектах и судах → обязательный офлайн-режим и надёжная синхронизация.
• Возможные ошибки ручного ввода → упор на сканирование кодов и готовые шаблоны составов.
Результат этапа
Полное ТЗ: цели, роли, пользовательские сценарии, бизнес-правила, модель данных, отчёты, требования к безопасности и производительности.
В Figma мы собрали low/medium-fi вайрфреймы для всех ключевых сценариев: выбор объекта/судна, работа с аптечками, сканирование штрих-/DataMatrix-кодов, поиск по названию и симптомам, учёт партий и сроков, выдача/списание, проверка оборудования, генерация отчётов и инструкции по первой помощи.
Проработали состояния (пустые, ошибки, офлайн, конфликт синхронизации), навигацию и приоритеты действий «в один тап».
На основе кликабельного прототипа провели быстрые прогоны с представителями заказчика, согласовали логику экранов и уточнили требования к офлайн-режиму и ролям доступа. Эти вайрфреймы стали основой UI-дизайна и спецификаций для разработки.
В Figma мы разработали полноценные макеты под Material 3 для Android: экраны, состояния, дизайн-систему и набор иллюстраций.
Что сделали
• Отрисовали 12 лекарственных форм с единым визуальным языком и пиктограммами: таблетка, капсула, ампула, флакон, контейнер, порошок, спрей, губка и другие.
• Подготовили карту участков тела (фронт/спина) для корректного общения с контакт-центром.
• Создали иллюстрации для раздела «Первая помощь»: пошаговые карточки (чек-листы) по основным ситуациям с наглядными сценами.
Ключевые решения дизайна
• Крупные интерактивные зоны, читаемая типографика, минимум ручного ввода; акцент на быстрые действия (Сканировать → Отметить → Сохранить).
• Цветовой код статусов (сроки годности, оборудование), видимые бейджи Offline/Sync и прозрачные ошибки/подтверждения.
• Компонентный UI-кит под Jetpack Compose: карточки позиций/пачек, таблицы, модальные листы, тосты, состояния пустоты/ошибок.
• Унификация карточек выдачи/списания: одна логика, разные визуальные подсказки для каждой лекарственной формы.
Иллюстрации и доступность
• Контраст и размеры элементов соответствуют требованиям доступности; тексты и иконки готовы к локализации.
Артефакты на выходе
Figma-файл с макетами экранов и состояний, UI-kit (компоненты, токены, иконки), библиотека 12 форм, карта тела, пакет иллюстраций «Первая помощь», спецификации для разработки и экспорт ассетов.
В Figma мы спроектировали админ-панель с упором на работу с большими таблицами: реестр аптечек, партии/сроки, оборудование, пользователи, журнал действий и отчёты.
Что сделали
• Единая дизайн-система (tokens, таблицы, фильтры, чипы статусов) под десктоп-шаблон 1440 px.
• Набор макетов: дашборд, справочники, карточки деталей, конструктор шаблонов аптечек, отчёты закупок, управление ролями, аудит.
• Визуальные подсказки: чипы статуса (зеленый/жёлтый/красный), бейджи «до X дней», прогресс-бар заполненности аптечки.
• Группировки и итоги (по объектам/судам): «всего к закупке», «просрочено», «на проверке».
Артефакты
• Figma-библиотека компонентов (таблица, тулбар, фильтр-сайдбар, карточка деталей, диалоги подтверждения, уведомления).
• Макеты ключевых окон и отчётов с примерами для разных ролей.
• Спецификации для разработки (состояния ячеек, правила обрезки/переноса текста, форматы дат/серий, маски).
Результат для пользователя
Частые операции выполняются в 1–3 клика, нужные данные находятся через быстрый поиск и пресеты фильтров; длинные списки не «тормозят» за счёт виртуализации и серверной обработки.
Мы превратили согласованные прототипы в работающий продукт: нативное Android-приложение для сотрудников и веб-панель администратора на базе Laravel. Сделали упор на скорость работы, понятные сценарии и безотказность в полевых условиях.
Мобильное приложение работает offline-first: инспекции проходят даже без сети — сотрудники просматривают состав аптечки, ищут позиции по названию и симптомам, сканируют штрих- и DataMatrix-коды, учитывают сроки годности, фиксируют выдачу/списание, проверяют оборудование, а при необходимости сразу открывают инструкции «Первая помощь». Как только связь появляется, данные автоматически синхронизируются, а история действий сохраняет прозрачный след «кто и когда сделал».
Панель администратора — единое «окно» управления всеми объектами и судами. Большие реестры работают быстро и понятно: фильтры, сохранённые представления, группировки по объектам, экспорт в PDF. В пару кликов формируются отчёты для закупки, видны просрочки и предкритичные позиции, настраиваются пользователи и роли доступа.
Сердце решения — монолит на Laravel, обеспечивающий стабильность, быстрые доработки и единый контур безопасности. Мы описали REST API в Swagger/OpenAPI, чтобы интеграторы и внутренние команды мгновенно подключались к сервису без лишних согласований: все эндпоинты, модели и правила в понятной, всегда актуальной документации. Ключевые события (сроки, низкие остатки, результаты проверок) сопровождаются уведомлениями, а журнал аудита фиксирует каждое изменение.
На выходе клиент получил готовые сборки приложения, развёрнутую админ-панель и надёжный серверный контур. Процессы ускорились, контроль стал прозрачным, а подготовка к закупке и проверкам — предсказуемой и управляемой.
Передали заказчику готовую систему: нативное Android-приложение, веб-админку и бэкенд на Laravel.
Бумажные журналы заменены цифровым учётом с офлайн-режимом и прозрачным аудитом действий.
Статусы аптечек и оборудования доступны в единой панели; отчёты для закупки формируются за пару кликов.
Настроены роли и доступы, уведомления и синхронизация; REST API описан в Swagger для быстрых интеграций.
Решение готово к тиражированию на новые объекты и суда.