Главное о кейсе
Приложение выполнено в срок в соответствии с требованиями технического задания. При разработке особое внимание уделялось функциональности и безопасности для пользователя. Сбой, отключение или поломка мобильного устройства не влияют на работу аппарата, поскольку телефон дублирует функции модуля дисплея, отвечающего за контроль над устройством.
=====
The application is made in accordance with the requirements of the technical specifications and highest medicine/healthcare government standards. During development, special attention is paid to functionality and security for the user. Failure, disconnection or breakdown of the mobile device does not affect the operation of the Renart-PD device, since the phone only duplicates the functions of the wired module, which is responsible for controlling the device permanently.
Бизнес-задача и ее решение
Требовалось создать приложение, которое будет принимать, обрабатывать и отправлять команды аппарату.
Сложность процесса разработки заключалась в том, что у нас на руках не было самого аппарата, его заменял Bluetooth Low Energy (BLE) модуль и программное обеспечение для отправки команд. Таким образом мы могли принимать и отправлять команды, оценивать корректность их выполнения.
Разработчики также реализовали сервис-заглушку, имитирующий работу искусственной почки, отправляющий и принимающий команды. В зависимости от конфигурации приложения при помощи паттерна DI подключался нужный модуль.
Для внутренней реализации приложения мы использовали BLE сервис, Command Service и Single Activity Application.
BLE сервис приложения реализует идиому RAII — resource acquisition is initialization. В момент инициализации команд сервис задействует нужные ресурсы, после чего сразу освобождает их.
За приём и отправку команд отвечает Command Service. На основе библиотеки RxJava, нами был создан оператор, принимающий массив байт каждой команды и хранящий их последовательность в буфере до тех пор, пока не будет составлена полная команда, которую в последующем обработает мобильное приложение.
Также в приложении реализован паттерн Single Activity Application, отвечающий за обработку команд, полученных в Command Service.
=====
It is required to create an application that will receive, process and send back commands to hardware.
We couldn’t get working device in hand so it has added complexity to the development process, so we had to replace actual device by the Bluetooth Low Energy (BLE) module and software for sending commands. Thus, we could receive/send commands and evaluate the correctness of their execution. The developers also implemented service that simulates the operation of an artificial kidney, sending and receiving commands. Depending on the application configuration, the desired module is connected using the DI pattern.
For the internal implementation of applications, we used the BLE service, Command Service and Single Activity Application.
The BLE application service implements the RAII idiom - resource acquisition is initialization. At the time of initialization, the Command service uses the necessary resources, and then immediately releases them.
Command Service is responsible for receiving and sending commands. Based on the RxJava library, we created an operator that takes an array of bytes of each command and stores their sequence in the buffer until a complete command is compiled, which the mobile application will process subsequently.
The application also implements the Single Activity Application pattern, which is responsible for processing commands received in the Command Service.
Прочая информация о кейсе
Приложение для управления мобильным аппаратом для диализа Renart-PD - искусственная почка, дублирующее функционал пульта управления аппарата. Позволяет запускать диализ, дезинфекцию и другие процессы.
Также приложение содержит инструкции, какие действия необходимо выполнить для подготовки аппарата к определённой процедуре.
=====
This mobile application for Renart-PD (which is actually is an artificial kidney) duplicates the functionality of the wired Control Unit remote control for this complex device. It allows you to start dialysis, disinfection and other processes using mobile phone.
The application also contains instructions that must be followed to prepare the device for a specific procedure so you can’t make mistake.
Скриншоты