Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
ООО Крео-Софт
ПО для мониторинга состояния здоровья человека с использованием телекоммуникационных технологий
ООО Крео-Софт
#Разработка сайтов под ключ#Разработка программного обеспечения#Администрирование серверов

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

87 
ООО Крео-Софт Россия, Томск
Поделиться: 0 0 0
Клиент

Центр корпоративной медицины

Сфера

Медицина и ветеринария

Регион

Россия, Томск

Тип сайта

Порталы и сервисы

Сдано

Июль 2025

Задача

Заказчик инициировал разработку Автоматизированной системы предсменных осмотров (АС ПО) — программного обеспечения для специализированного медицинского устройства, выполняющего допуск работников к производственной смене на основании предсменного медицинского осмотра.

Цели клиента:

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

- Обеспечение соответствия требованиям по предварительным медосмотрам работников на промышленных объектах.

- Повышение удобства и эффективности медицинских осмотров за счёт автоматизации и унификации процессов.

- Импортозамещение и использование свободных технологий, разрешённых к применению на территории РФ.

Решение

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

Архитектура и технологии

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

Серверная часть системы реализована на Java 17 с использованием Spring Boot 3.5, что позволило опереться на надёжный и гибкий фреймворк с богатой экосистемой. Мы использовали Spring Data JPA и Hibernate как надёжный способ взаимодействия с базой данных, обеспечивающий декларативную работу с сущностями и избавляющий от избыточного SQL-кода. Миграции схемы базы данных автоматизированы через Liquibase, что дало нам прозрачность версионирования и контроль изменений, особенно важный при внедрении обновлений системы на разных версиях прибора.

Коммуникация между сервером и клиентом построена на REST API, а для обмена событиями в реальном времени — например, при отслеживании подключения датчиков, получения значений измерений или состояния узлов устройства — мы использовали WebSocket с протоколом STOMP. Это позволило отображать на фронтенде живое состояние аппаратных компонентов.

Для преобразования DTO и доменных моделей применён MapStruct, который автоматически генерирует необходимый маппинг, избавляя разработчиков от рутинного кода и повышая читаемость проекта. При работе с файлами и данными — например, при импорте CSV или определении типа загружаемых файлов — задействованы Apache Tika и OpenCSV. Это облегчает интеграцию с внешними системами и унифицирует обработку пользовательских данных. Для сбора и обработки информации о системе и USB-устройствах используются OSHI и usbdrivedetector: это помогает определять состояние внешнего окружения (например, доступность накопителя) и строить логику экспорта файлов и процесса диагностики датчиков.

На фронтенде мы использовали React с TypeScript и сборщиком Vite, что позволило добиться высокой скорости сборки и обновлений в процессе разработки. Архитектура FSD (Feature-Sliced Design) позволила организовать код по зонам ответственности, что особенно важно в проекте, где интерфейс разбит на множество отдельных экранов: от осмотра до администрирования. Для асинхронной работы с сервером и кэширования данных был выбран tanstack/react-query — он упростил реализацию загрузок и обновлений, обеспечив плавный пользовательский опыт даже при медленном соединении.

Состояние приложения локально управляется через Zustand — лёгкую, но мощную библиотеку, которая хорошо сочетается с архитектурой React и не перегружает приложение. Формы реализованы через react-hook-form в сочетании с Zod, что позволило нам строго валидировать вводимые данные и сразу выводить пользователю ошибки. Это особенно критично в медицинской системе, где важно не допустить ошибок при вводе показателей или анкетирования пациента.

Мы реализовали мультиязычную поддержку через i18next, а визуальное представление интерфейса — через MUI. Это позволило быстро построить адаптивные, доступные и привычные по дизайну формы и элементы. Кроме того, была внедрена видеофиксация осмотров через react-webcam и возможность печати результатов, что делает систему самодостаточной и закрывает все базовые процессы на одном устройстве.

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

Экраны и модули

Медицинский специалист получает интерфейс для запуска процедуры осмотра, в котором:

- Выполняется проверка подключённости и работоспособности всех компонентов устройства;

- Автоматически фиксируются показания с датчиков (ЧСС, давление, уровень алкоголя, освещённость и др.);

- Отображается ход процесса с возможностью вмешательства оператора при необходимости; 

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

Управление этапами осмотра

Гибкая настройка этапов осмотра — можно включать/отключать отдельные проверки по требованиям заказчика (использующего прибор).

Состояние узлов аппарата

Диагностический модуль позволяет:

- Мониторить состояние каждого узла: сенсоры, камеры, дисплеи, сеть и т.п.;

- Оповещать об ошибках или отключениях;

- Проводить диагностику и поверку устройства.

Администрирование пациентов и осмотров

Модули позволяют:

- Управлять профилями пациентов;

- Настраивать индивидуальные референсные значения (например, нормы давления);

- Просматривать историю осмотров, фото и видеофиксацию;

- Выполнять импорт/экспорт таблиц в браузер или внешние накопители (USB).

Результат

Система на данный момент продемонстрировала: 

- Высокую отзывчивость и стабильность работы;

- Интуитивно понятный интерфейс, адаптированный под фельдшеров;

- Удобную настройку компонентов устройства и этапов осмотра;

- Гибкий экспорт и управление данными.

Особенности проекта

- Разработка велась с нуля с учётом опыта прошлых прототипов (включая JavaFX-монолит);

- Использование только библиотек и технологий, разрешённых для регистрации ПО в реестре отечественного;

- Система ориентирована на удобство работы фельдшеров и минимизацию времени осмотра.


Стек технологий


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

Хотите заказать похожий проект?

ООО Крео-Софт с удовольствием обсудит вашу задачу

Оставить заявку