Медицинские компании, помимо приёма пациентов, должны качественно и безопасно хранить все данные, связанные с лечением, осмотрами и процедурами. От этого зависит не только имидж, но и лицензия организации.
В клиниках часто можно заметить упущения: база хранится в различных форматах у сотрудников разных отделов, синхронизации практически нет. В такой ситуации соблюдение всех правил хранения данных под угрозой.
В городе N ситуация вышла из-под контроля, и к Шерлоку дошла информация о потерянных пациентах.
Он посетил клинику, чтобы узнать детали. Первое, что бросилось в глаза - полный хаос:
маркетолог неверно настроила кампанию, в результате чего женщины вместе с мужчинами получили рассылку с акцией минус 20% на лечение простаты
менеджеры часто ошибаются, записывая пациентов не на то время
медицинские карты пациентов теряются и заводятся новые
доктора не могут найти результаты обследований
больничные листы заполняются с ошибками в указании диагнозов
Всё это возмутило невозмутимого сыщика, и он решил навести порядок.
Задача не из лёгких - распутать такой клубок, который запутывался не один год.
Для быстрого спасения всех пострадавших и поиска потерявшихся в базах пациентов Шерлок принял решение обратиться к супер-команде, которая не раз спасала из, казалось бы, безвыходных ситуаций - к Joy Dev.
Что нам стало известно от Шерлока
Компания - крупная частная клиника, оказывающая услуги по проведению исследований, лечению, терапии.
Запрос:
Систематизация данных о пациентах
Создание эффективной омниканальной связи с пациентами
Настройка точных и эффективных инструментов для таргетинга и продвижения
Объединение всех данных пациента в одном месте для лучшего взаимодействия
Возможность увеличивать функционал платформы по мере необходимости
Расследование
В первую очередь Шерлок провёл опрос всех подозреваемых: медиков, сотрудников колл-центра, менеджеров стойки ресепшн и маркетологов.
Он решил узнать, с какими проблемами сотрудники клиники чаще всего сталкиваются в работе и как это привело к такой ситуации.
Проанализировав и систематизировав полученную информацию, Шерлок вернулся к нам с такими проблемами:
1. Отсутствие единого профиля пациента
В имеющихся вариантах базы все данные пациентов вносились разными сотрудниками в зависимости от поставленной задачи. Поэтому сведения, указанные в профиле, отличаются. Так, в профиле одного пациента есть базовая информация, у другого - данные исследований, а у третьего - данные по больничным листам.
Также один и тот же пациент включен в несколько баз, в каждой из которых хранились разные данные, не объединённые в единый профиль.
Формирование полноценного единого профиля из существующих баз, актуализация и структуризация данных кажутся сотрудникам клиники невыполнимым заданием.
2. Низкий уровень персонализации
Рекламные кампании включают в себя акции на услуги, которые одним пациентам нужны, а другим противопоказаны. Поэтому правильно настроенные рассылки влияют не только на рост выручки, но и на имидж компании.
Кроме того, индивидуальных подход привлекает пациентов и делает их более лояльными. И наоборот: некорректная рассылка может привести к отказу от услуг клиники.
Настройка качественной маркетинговой кампании на данный момент является сложным процессом с выборкой контактов нужных пациентов из существующей базы.
Маркетологи вручную собирают данные, хотя данный процесс можно автоматизировать, сократив время и улучшив результат.
3. Трудности в организации омниканальных кампаний
Рассылка в компании запускалась по всем контактам, которые смогли извлечь маркетологи, сразу во все каналы: на почту, в мессенджеры, соцсети, посредством SMS.
Если бы каналы были интегрированы, единовременный запуск кампании был бы уместен, а в случае нашей клиники создавались ситуации, когда одному и тому же пациенту приходила реклама сразу во все каналы, и в результате пациент был раздражён навязчивостью такой рассылки и отписывался от новостей клиники.
При этом некоторые пациенты узнавали об акции уже тогда, когда она прошла.
4. Соответствие нормативным требованиям
Компании несут серьёзную ответственность за обработку и сохранность персональных данных. Нарушение правил грозит не только крупными штрафами, но и судебными разбирательствами с клиентами.
Хранить информацию в нескольких разрозненных базах — задача куда сложнее, чем управлять единой системой. Это не только усложняет контроль, но и значительно повышает риск утечек.
Наши решения
Мы взялись за задачу, имея большой опыт в создании CDP для медицинских компаний, поэтому сделали для клиники такую платформу, с которой удобно работать и которую в дальнейшем возможно расширить под новые потребности.
Итак, что мы сделали:
1. Применили модульный монолит. Это решение является оптимальным для поддержки подобного проекта и расширения его функционала в будущем, поскольку модули минимально зависимы друг от друга, что позволит дорабатывать их под новые задачи без нарушения логики системы.
2. Использовали архитектурный паттерн Domain-Driven Design (DDD).
Вместе с модульным монолитом, он составляет эффективную архитектуру проекта. Мы разделили его на следующие составляющие: домен, приложение, инфраструктуру и презентацию.
3. Использовали Command Query Responsibility Segregation (CQRS)
Он применяется, когда требуется частое обращение к веб-ресурсу, и один сервер не сможет обеспечить нужную нагрузку. Сохранение изменений с его помощью происходит пошагово, благодаря чему удобно отслеживается актуальное состояние системы. Его можно использовать в качестве журнала изменений за любой период с момента создания продукта.
4. Внедрили Event sourcing - архитектурный шаблон, оптимизирующий автономное чтение и запись.
5. Реализовали Dependency Injection и DI Container, чем сделали код менее связанным и упростили поддержку проекта внесение в него изменений.
Также внедрили следующие функции:
Усовершенствованный анализ отчётов с сегментацией и персонализацией.
Функционал для различных сценариев и доступную стоимость тестирования маркетинговых гипотез.
Интеграцию между платформой клиники и её партнёрами для увеличения общей базы контактов.
Обработку больших данных.
В результате мы создали систему, которая объединяет всё на одной платформе. Это позволяет выстраивать качественное омниканальное взаимодействие, ориентированное на потребности каждого пациента.
После проведённой нами аналитики Шерлок получил:
UX прототип — инструмент, демонстрирующий интерфейс продукта и его функционал до разработки.
Макеты экранов — визуализация планируемого приложения.
Техническое задание — документ, регламентирующий объём работ, оценку качества, тестирования и приёмки продукта.
Дизайн
Виды карточек
Функционально отличающиеся между собой:
“События” - заведены различные форматы (исследование, первичный, повторный приём и т.д), из которых можно выбрать нужный. Также тут указан статус пользователя (прошёл исследование, посетил доктора, на приёме).
«Обновления» - актуализируют информацию о пациентах. Возможна настройка параметров по нужным критериям.
Собранные данные позволяют менеджеру формировать сегменты для рассылки. Любой профиль можно перенести в архив или восстановить.
Графики
Визуализация маркетинговой кампании была реализована в виде графиков.
Это решение упростит маркетологам работу с изменениями показателей и контролем результатов.
На графиках отображаются:
кликабельность (CTR),
коэффициент конверсии в продажу (CTO),
коэффициент возврата пользователей (UTO),
доставляемость рассылок,
процент отказов,
количество ошибок, отписок и жалоб на спам и т.д.
Диаграммы
Количество открытых, закрытых писем, с переходами на указанные в рассылке ресурсы, изменение графика показов, динамику воронки конверсии мы отобразили в виде диаграммы: такое отображение интуитивно понятно и удобно.
Все метрики просматриваются по датам. Можно провести анализ любой метрики отдельно от остальных.
Благодаря этому рекламная стратегия может гибко перестраиваться, так как маркетологам легко определить тенденции и своевременно определить эффективность стратегии. С помощью диаграмм легко выявить самые успешные кампании и в дальнейшем брать их за основу.
3. UI и разработка
Мы реализовали 4 части системы работы с данными:
Профиль пациента
Список пациентов
Профиль сегмента
Список сегментов
Список пациентов
Все карточки пациентов собраны на одном экране общим списком.
Так поиск определённой карточки и ознакомление со всей картотекой, фильтрация по любому критерию происходит удобнее и быстрее.
В этом пространстве администратор создаёт, редактирует и архивирует профиль пациента. Здесь же создаётся сегмент и настраивается обновление данных в определённых сегментах.
Загрузка карточек пациентов
Мы автоматизировали импорт карточек пациентов.
Для того, чтобы минимизировать человеческий фактор и ускорить процесс, мы разработали шаблон для заполнения данных.
Если данные, указанные менеджером, невалидные, они не смогут быть сохранены.
Для того, чтобы импортировать карточку пациента, менеджеру нужно подготовить файл с идентификатором пациента и выгрузить его в сервис.
Таким же образом можно импортировать целый сегмент.
Архивирование
Этот процесс, как и редактирование, поддерживает массовую обработку данных.
Администратор выделяет карточки пациентов, которые длительное время не посещали клинику, нажимает кнопку «Архивировать» и добавляет комментарий. После этого проводится проверка выбранных карточек, и действие подтверждается.
Такой подход помогает поддерживать базу данных в актуальном состоянии и избегать перегрузки системы.
Обновления
Администратору доступна функция автоматического обновления данных в карточках пациентов. Так данные содержатся в актуальном состоянии, при этом ручная работа сокращается, а корректность рекламных кампаний возрастает.
С активированной подпиской администратору доступны подробные результаты сравнения данных: совпадения по соцсетям, почтам и телефонам, указанным в профиле пациента.
Для простоты использования мы вынесли обновления на отдельную вкладку.
Профиль пациента
Единый профиль, в котором собрана информация о пациенте - удобный инструмент, с помощью которого администратор владеет полной информацией о нём: от контактных данных до истории посещений докторов, поставленных диагнозов и рекомендаций по лечению.
Здесь отображаются дата регистрации и статус пациента (валидирован или архивирован).
Администратор выполняет ключевые действия в одном экране, без необходимости переключаться:
Создёт персонализированную рассылку;
Сегментирует пользователя, упростив таргетинг будущих кампаний;
Архивирует профиль, если он больше не актуален.
Это позволяет сократить процесс, ускорить коммуникацию и упростить таргетинг будущих кампаний.
Рассылки
Содержат данные маркетинговых кампаний и информацию о канале общения с пациентом. Анализируя собранное, маркетологи вносят изменения в следующие рассылки и повышают качество коммуникации.
Сегменты
Содержат сведения о количестве пациентов, отправленных рассылках, датах их создания и последнего обновления.
Данные представлены списком.
Администратору доступна загрузка, копирование и архивирование сегментов, редактирование параметров и создание новых рассылок.
В сегментах реализован фильтр по базе пациентов и партнёров, что упрощает поиск нужных карточек и гибкую настройку рекламных кампаний под нужную аудиторию и новые задачи.
Сегменты также архивируются и восстанавливаются.
Профиль сегмента
Благодаря автоматическому обновлению, пользователю доступна информация о дате последних изменений и актуализации сегментов.
Тут маркетолог добавляет или удаляет пациентов из сегмента, формируя корректную рассылку, а также редактирует её параметры и сравнивает охват.
Архив сегментов
По своим функциям не отличается от архива пациентов. Содержит в себе неактуальные сегменты. Но при необходимости их можно копировать, восстанавливать и возвращать в общий список.
Вызовы
Запутанная история
Когда компания работает сравнительно недавно и её база контактов невелика, навести порядок легко.
Нам же досталась задача со звёздочкой, так как база была очень разрозненной. У каждого отдельного фрагмента информации о пациенте отличий было больше, чем сходства.
Шерлок был прав, доверив это дело нам!
После того, как мы навели порядок в данных, создали единый профиль пациента и научили сотрудников пользоваться собранной специально для них платформой, вместе с радостью от создания качественного продукта мы почувствовали облегчение медиков, администраторов и маркетологов: дальше ведь работать им. И работать удобно, легко и продуктивно!
Результат
База данных сформирована в удобном формате
Платформа покрывает текущие задачи и рассчитана на расширение функционала
Создан единый цифровой профиль пациента с информацией, необходимой медикам, администраторам и маркетологам для эффективной работы
Настроен функционал для качественной омниканальной коммуникации
Интегрированы маркетинговые инструменты, позволяющие создавать кампании с аналитикой и дашбордом для принятия стратегических решений.
После внедрения в клинике нашей CDP пациенты стали чаще пользоваться услугами и специальными предложениями, а бизнес может планировать и прогнозировать рекламные кампании в цифрах.
Команда
4 аналитика
1 PM
2 разработчика
1 UX/UI дизайнер
Технологии
Язык: PHP 8.2
Архитектура: Clear, DDD
Фреймворк: Laravel 8.x
FanatPHP
Здравствуйте. Уберите пожалуйста хабы Администрирование баз данных и РНР. К разработке ваша креативная публикация не имеет никакого отношения. Ну и Хабр за компанию, поскольку он тут и вовсе ни к селу ни к городу.
Я понимаю, что новичку сложно поначалу сориентироваться в многобразии хабов, и ставятся первые попавшиеся. Но так вы вредите себе двояко: во-первых, вызываете негатив у читателей, которые видят в ленте неинтересную им публикацию. Во-вторых, вы теряете симпатии читателей, которым ваша публикация была бы интересна, но они её не видят. Посмотрите внимательно на свою статью. Подумайте, кому она была бы интересна (причём в идеале это лучше делать до написания, а не после). Потратьте время на просмотр списка хабов. Выберите подходящие. Статья явно ближе к потокам "Маркетинг", "Менеджмент" и "Я пиарюсь", чем к разработке.
Ну а если вдруг соберетесь написать действительно техническую статью с деталями реализации или с разбором пары подводных камней, встретившихся в процессе - тогда добро пожаловать в хабы потока "Разработка".
Сейчас же всё это жонглирование терминами - DDD, Event sourcing, CQRS - напоминает отчет для акционеров, а не техническую статью. Такую тут каждый читатель и сам напишет, в точности как в старом анекдоте
dkorkin Автор
Спасибо за комментарий, учту при дальнейших публикациях.