Разработка мобильного приложения для стоматологии
Стоматологии теряют до 30% пациентов из-за сложной записи и отсутствия напоминаний. Внедрение мобильного приложения решает эту проблему: онлайн-запись с синхронизацией МИС, push-уведомления за 24 и 2 часа, снижающие неявку на 40%. Согласно исследованию Journal of Medical Internet Research, такие напоминания сокращают число пропусков на 40% и экономят клиникам до 2 млн ₽ в год. Но разработка медицинского приложения — не просто очередной интерфейс: требуется обработка персональных данных (152-ФЗ), интеграция с DICOM-снимками и сертификация для App Store (Section 4.2/5.1). Наш опыт — 5+ лет, более 20 реализованных проектов для клиник разного масштаба.
Типичная ситуация: пациент звонит в клинику, администратор ищет свободное время, перезванивает. В итоге 30% не записываются. Приложение с онлайн-записью и синхронизацией МИС автоматизирует этот процесс — пациент выбирает врача и время, получает напоминания. Чтобы это работало корректно, необходима глубокая интеграция с МИС, обработка push-уведомлений (APNs/FCM) и настройка deep linking (Universal Links / App Links) для возврата в приложение.
Как решить проблему интеграции с МИС?
Интеграция с медицинской информационной системой (МИС) — ключевой этап. В российских клиниках популярны Dental4Windows, 1С:Стоматология, Medesk, CleverMed. У каждой МИС свой API или ограниченный набор методов. Если прямой интеграции нет, мы разрабатываем собственный слот-менеджер: администратор вручную выгружает расписание, а приложение парсит экспорт (CSV/XML) и синхронизируется через webhook. Для надёжности используем очередь задач (RabbitMQ) и фоновые задачи (WorkManager на Android, Background Tasks на iOS). Push-уведомления отправляются через Firebase Cloud Messaging (FCM) и Apple Push Notification service (APNs) с использованием дата-сообщений для приоритетной доставки.
Карта лечения и снимки
Интерактивная схема зубов (зубная формула ВОЗ 2-х значная или Виола) — реализуется через SVG на Canvas API или кастомный CustomPainter во Flutter. Прикрепление фотографий и рентгеновских снимков — файлы хранятся на сервере, в приложении — viewer с zoom (InteractiveViewer во Flutter, react-native-image-zoom-viewer в RN). Передача DICOM-снимков: если клиника использует цифровой рентген, рассматриваем лёгкий DICOM viewer или конвертацию в JPEG на сервере. Для экономии трафика и места сжимаем изображения (JPEG 80% качества) и кэшируем их локально.
Программа лояльности и бонусы
Бонусные баллы за визиты, реферальная программа — простая логика, но требует синхронизации с кассовой системой (например, АТОЛ). Мы реализуем REST API для начисления/списания баллов, а также интеграцию с push-уведомлениями для информирования о новых бонусах.
Flutter или React Native: как выбрать?
| Критерий | Flutter | React Native |
|---|---|---|
| Производительность анимаций | Отличная (SKIA) | Хорошая, но зависит от моста |
| Кастомные UI-компоненты | Легко (CustomPainter) | Сложнее (нативные модули) |
| Интеграция с нативными библиотеками | Через плагины | Прямой доступ к нативным API |
| Размер приложения | Больше (около 10 МБ) | Меньше (около 5 МБ) |
| Сообщество и вакансии | Активно растёт | Крупное, много специалистов |
Для стоматологии, где требуется кастомный UI (схема зубов, анимации), Flutter даёт преимущество в скорости разработки и производительности. Flutter превосходит React Native по производительности анимаций в 2 раза и сокращает время разработки на 20%. React Native подойдёт, если в клинике уже есть нативные модули или команда знакома с JavaScript. В наших проектах мы чаще используем Flutter, но выбор всегда заказчика.
Почему безопасность данных — приоритет?
Безопасность данных — особая категория персональных данных (152-ФЗ в России, GDPR в Европе). Минимальные требования: шифрование на уровне транспорта (TLS 1.2+), хранение на российских серверах (если проект под РФ), согласие на обработку при регистрации, возможность удаления аккаунта и данных. Мы также помогаем с сертификацией и документацией. Для Android настройка ProGuard / R8 критична — неправильная конфигурация вырезает классы, необходимые для Hilt DI или Room. На iOS используем App Store Review Guidelines Section 5.1 для обработки данных здоровья. При настройке ProGuard / R8 важно сохранить классы, используемые Hilt или Room. Добавьте в proguard-rules.pro строки:
-keep class * extends androidx.room.RoomDatabase -keep @dagger.hilt.* class * Иначе после shrink-режима приложение упадёт при запуске.
Этапы и сроки разработки
| Этап | Длительность | Результат |
|---|---|---|
| Аналитика и проектирование | 1–2 недели | Прототип, user flow, ТЗ |
| Разработка функционала | 4–6 недель | Рабочий прототип с онлайн-записью |
| Интеграция с МИС | 2–4 недели | Синхронизированные данные |
| Тестирование и отладка | 1–2 недели | QA, unit-тесты, UI-тесты |
| Публикация в сторах | 1–2 недели | Размещение в App Store и Google Play |
Базовое приложение с онлайн-записью — от 8 до 12 недель. Полноценный кабинет с картой лечения и снимками — от 4 до 6 месяцев. Стоимость рассчитывается индивидуально, но мы готовы оценить ваш проект за один день.
Что входит в работу?
- Документация: ТЗ, user flow, API-спецификация.
- Исходный код с комментариями и README.
- Обучение администраторов работе с панелью управления.
- Техническая поддержка в течение 3 месяцев после запуска.
- Помощь с публикацией в сторах и сертификацией.
Типичные ошибки и как их избежать
- Игнорирование требований App Store Review (Section 4.2 / 5.1): медицинские приложения требуют подтверждения от Apple. Мы заранее готовим документацию.
- Отсутствие offline-режима: пациенты могут не иметь интернета в клинике. Реализуем кэширование данных и фоновую синхронизацию.
- Неправильная настройка ProGuard / R8 на Android: вырезаются нужные классы для DI. Используем keep-правила и проверяем shrink-режим.
Получите консультацию — мы проанализируем ваши процессы и предложим оптимальное решение. Свяжитесь с нами для оценки проекта.







