Оглавление

Уведомления о событиях

В этой статье мы рассмотрим раздел «Уведомления о событиях» в системе, для чего он нужен и как с его помощью вы можете интегрировать клинику с внешними сервисами.

Когда в МИС происходит важное событие (например, создание визита или регистрация пациента), эта информация может автоматически отправляться во внешний сервис в виде webhook-запроса. Это позволяет:

  • Сократить ручной труд. Например, данные о новом пациенте или визите не нужно вручную переносить в CRM
  • Поддерживать синхронность между системами. Все связанные платформы получают актуальные данные в режиме реального времени
  • Автоматизировать внутренние процессы. Например, по событию «готовность лабораторных анализов» можно запускать автоматическую отправку уведомлений пациенту или врачу
  • Повысить скорость обработки данных. Вся цепочка действий запускается мгновенно, без задержек

 


Основные элементы

Кнопка «Новое уведомление»
Позволяет добавить новое уведомление. При нажатии откроется форма:

  • Событие —  тип события (например, «Создание визита»)
  • Адрес обращения (куда отправлять уведомление) — внешний URL, куда будут отправляться данные при наступлении события
  • Название уведомления 

Все блоки обязательны для заполнения.

Таблица уведомлений
Отображает список всех активных уведомлений. Таблица содержит следующие столбцы:

  • # — порядковый номер
  • Название — название уведомления
  • Событие — событие в системе, при котором будет срабатывать уведомление
  • Адрес обращения — URL, на который будет отправлен webhook
  • Добавлено — дата добавления уведомления
  • 🗑️ — кнопка удаления уведомления

Когда в системе происходит событие, вызывается метод, который:

  • получает тип события и его параметры (например, id пациента)
  • проверяет, есть ли подходящее уведомление в настройках
  • формирует данные и ставит задачу в очередь на отправку webhook-запроса

В разных частях системы добавлены вызовы этого метода, например:

  • Создание пациента — в Patient::afterSave() (с проверкой, что это не обновление)
  • Создание визита — в Appointment::createAppointment() (в конце метода)
  • Отмена визита — в Appointment::setStatus() (в блоке обработки отмены)

Какие данные отправляются

В webhook передаются следующие поля:

{
  "event": "create_patient",
  "date": "2025-06-23T12:00:00+03:00",
  "data": { /* структура аналогична ответу метода API */ }
}

 

  • event — код события
  • date — точное время события
  • data — результат вызова соответствующего API-метода
    — для пациента — getPatient
    — для визита — getAppointments

Таким образом, вы получаете полную и актуальную информацию в структурированном виде.

Статья была полезна?