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

Мобильное приложение для медицинского осмотра

66 
Софториум Россия, Кемерово
Поделиться: 0 0 0
Клиент

Квазар

Сфера

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

Регион

Россия, Москва

Сдано

Февраль 2022

Задача

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

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

Решение

При ре­али­зации при­ложе­ния были ис­поль­зо­ваны BLE (Bluetooth Low Energy) и gRPC. В качестве SDK был выбран Kotlin Multiplatform, ис­поль­зу­емый для кросс­плат­формен­ной раз­ра­бот­ки.

gRPC поз­во­ля­ет пе­реда­вать данные между при­ложе­нием и сервером наиболее оп­ти­маль­ным образом в бинарном виде, ми­ними­зируя трафик, что повышает от­зывчи­вость при­ложе­ния и улучшает впе­чат­ле­ние поль­зо­вате­ля.

Бес­про­вод­ная тех­но­логия Bluetooth Low Energy ис­поль­зо­вана для передачи данных между тер­ми­налом и при­ложе­нием. Эта тех­но­логия сложна для ин­тегра­ции из-за проблем с ус­та­нов­кой связи между ус­трой­ства­ми.

1Слож­ности и их пре­одо­ление

Практика показала, что стан­дар­тное API BLE на Android с не­кото­рыми ус­трой­ства­ми не работает, могут не ус­та­нав­ли­вать­ся связь и по­яв­лять­ся ошибки типа 101, 133. Иногда данные под­клю­чения могут сох­ра­нять­ся в кеше ус­трой­ства, что также может при­водить к не­вер­но­му по­веде­нию. Сбросить кеш блютуза просто так нельзя, так как в API Android нет дос­тупной функции. Для решения этой задачи была ис­поль­зо­вана биб­ли­оте­ка RxAndroidBle.

Для пре­одо­ления проблемы со­еди­нения с ус­трой­ства­ми в при­ложе­ние были до­бав­ле­ны нес­коль­ко попыток пов­торно­го ска­ниро­вания с тай­ма­ута­ми.

 

Результат

Мы приняли участие в разработке клиентской части мобильного приложения для медицинских осмотров, которое выступает в роли посредника между терминалом (комплексом оборудования для измерения температуры, давления, пульса и алкоголя) и сервером. Приложение берёт на себя ключевые функции терминала — авторизацию, отображение результатов, сбор подписи — и обладает преимуществом в виде удобного обновления через магазины приложений. Технически проект реализован с использованием Kotlin Multiplatform для кроссплатформенности, gRPC для эффективной бинарной передачи данных с сервером и BLE для связи с терминалом. Несмотря на сложности интеграции BLE на Android — включая ошибки соединения, кеширование параметров и отсутствие стандартных средств сброса кеша — нам удалось обеспечить стабильную работу за счёт внедрения библиотеки RxAndroidBle и механизма повторных попыток подключения с таймаутами. В результате создано отзывчивое, надёжное и легко поддерживаемое решение, улучшающее пользовательский опыт и оптимизирующее процесс медицинского осмотра.


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

  • Kotlin Kotlin Язык программирования

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

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

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

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