В нашей практике это первый опыт создания системы мониторинга медицинского оборудования, но с технической точки зрения не было чего-либо нового. Ключевые сложности спрятаны внутрь оборудования, наша цель - обмен данным с "внешним миром": протокол передачи данных, приложения, сервисы (в этот раз у нас не было задачи разрабатывать физические устройства и интерфейсы связи, только программное обеспечение).
Тем не менее, с учетом большого количества данных - как медицинских, так и сервисных, и высоких требований информационной безопасности, производительности и масштабируемости, проект получился довольно серьезным. Чистая разработка ПО заняла около 4-5 месяцев, а с учетом подготовки Технического задания, согласований и изменений, проект растянулся на год с небольшим.
В процессе обсуждения и подготовки Технического задания был выработан основной подход к реализации через микросервисы.
Общий цикл работ был разбит на 3 этапа.
На первом этапе мы провели разработку архитектуры системы, структуры веб-приложений и сервисов. Далее, совместно со специалистами Заказчика, создали протокол информационного взаимодействия аппарата ИВЛ и центрального сервера. Следом - построение каркаса бэкенд-сервисов медицинских и служебных данных и репозитория. Финальной частью первого этапа стала разработка временного хранилища (кэша) медицинских данных и долговременного хранилища служебных данных и реестров и документирование системы.
Второй этап - разработка веб-приложений "Телематика", "Реестры" , развертывание на собственном сервере, обеспечение доступа по API ( для взаимодействия с симулятором мед. аппарата) и веб-интерфейс.
Третий, заключительный этап, включал в себя:
- Доработку системы с учетом обнаруженных недостатков и неточностей.
-
Полное покрытие системы тестами согласно требованиям — модульное (юнит-) и интеграционное тестирование программных компонентов.
-
Нагрузочное тестирование системы.
-
Исполняемые программные компоненты для развертывания на центральном сервере заказчика.
-
Разработка рекомендаций по развертыванию и обслуживанию системы
-
Консультирование заказчика по вопросам развертывания системы и первичной эксплуатации системы
Ряд параметров, в первую очередь мониторинга, был добавлен в процессе разработки. Кроме того, система предусматривает добавление других параметров в большом количестве (сотни штук).
Коротко о примененных инструментах:
Для реализации бэкенда (веб-сервера, сервера приложения, RESTful веб-сервисов и пр.) использован фреймворк
Ruby on Rails. В качестве СУБД хранилищ и репозиториев -
PostgreSQL. Фронтенд веб-приложений -
HTML, CSS, JavaScript. Быстрое хранилище данных типа «ключ‑значение» в памяти -
Redis.
Обработчик фоновых задач
Sidekiq. Документация кода оформлена в соответствии с
YARD. Девелопмент-окружение -
Docker.
Заказать разработку программного обеспечения, цифровых сервисов для бизнеса и производства, системную интеграцию:
+7(343)270-21-00,
info@artmatica.ru