Кейс 05 / Разработка и DevOps

Медицинский SaaS для стоматологических клиник

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

Система объединяет расписание, карточку пациента, документы, расчеты и работу нескольких врачей. Медицинские, маркетинговые и финансовые данные разделены с учетом ролей сотрудников.

  • Medical SaaS
  • CRM
  • Защита данных

С чего начали

  • Разобрали работу клиники по ролям и оставили каждой роли только необходимые данные и действия.
  • Отделили медицинскую информацию от маркетинговых коммуникаций и финансовых отчетов.
  • Исключили чувствительные поля из технических событий, отправляемых в Sentry.
  • Связали хранение, выгрузку, удаление и восстановление данных с утвержденной политикой клиники.

Что сделала команда

  • Разработали общее расписание врачей, кабинетов и оборудования.
  • Создали карточку пациента с планом лечения, визитами, исследованиями и историей изменений.
  • Настроили шаблоны согласий, договоров, планов лечения и печатных форм.
  • Добавили напоминания и подтверждение записи без медицинских подробностей в сообщении.
  • Реализовали расчеты, задолженности, скидки, закрытие смены и отчеты.
  • Подготовили контролируемый импорт и аудит просмотра и изменения чувствительных данных.

Как проверили результат

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

Что получил заказчик

  • SaaS-модули и миграции
  • Схема ролей и модель угроз
  • Шаблоны документов и инструкция импорта
  • Журнал аудита и тесты критических сценариев
  • План восстановления

Технологии и инструменты

  • ASP.NET Core
  • React
  • TypeScript
  • PostgreSQL
  • Redis
  • S3-совместимое хранилище
  • OAuth 2.0
  • Sentry

Следующий шаг

Обсудим задачу с похожими ограничениями

Пришлите короткое описание. Предложим формат первого этапа, критерии приемки и подходящий состав команды.