Ссылка скопирована

Рекомендации партнерам для работы с API

Содержание


Концепция API МедФлекс

API МедФлекс стремится быть как можно более простым, имея на своей стороне минимально необходимую бизнес-логику в целях эффективной, своевременной и стабильной передачи информации между участниками интеграции.

Наиболее частые кейсы

Отправка сообщений с учетом часового пояса пациента.

Партнеру рекомендуется учитывать часовой пояс ЛПУ для отправки уведомлений. Для этого вам стоит обратить внимание на поле lpu_id. Воспользовавшись этим полем вы можете легко запросить у нас информацию, этой клиники используя хук /catalog/lpu.

Используя поле lpu_id, вы сможете получить данные town_id

Пример ответа:

lpu_id_swagger

После чего вам остается лишь забрать данные из нашего справочника городов /catalog/town/, и используя любую подходящую вам библиотеку, определить часовой пояс ЛПУ

Пример ответа:

town_swagger

Отправка сообщений с учетом даты приема.

Партнеру рекомендуется учитывать статус и дату приема. В некоторых случаях МедФлекс передает данные по уже завершенным приемам.
Для обработки записи обратите внимание на хук /direct_appointment/history/

Этот хук, возвращает историю записей, в нем можно найти полную информацию о приёме. В том числе дату и время начала и конца приема
Пример ответа:

history_swagger

Отправка сообщений в рабочее время и не отправка сообщений в ночной время, если этого не требует бизнес-логика.

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

Пример ответа:

time_start_swagger

Отправка сообщений с учетом продолжительности приема.

Партнеру рекомендуется учитывать продолжительность приема, а также корректно отрабатывать данные, когда продолжительность приема не соответствует реальной (в силу особенностей процессов клиники).
Например продолжительность приема может быть указана 1 минута, но фактическая продолжительность другая.
Собрать данные вы сможете используя хук /direct_appointment/history/

Отправка сообщений с учетом статусов приема вычисляемых Медфлекс.


Для упрощения работы со статусами, Медфлекс отображает вычисляемые статусы на своей стороне.

Если сервису необходимо учитывать статусы из МИС, то эта информация содержится в полях status и original_status.

  • Поле status отвечает за состояние записи, которое мы валидируем на нашей стороне
  • Поле original_status - это то какая информация хранится в МИС клиники, в которой сделана запись. Для того чтобы воспользоваться этой информацией, вам достаточно, сделать небольшую доработку на своей стороне, для обработки данного поля

Пример ответа:

status_swagger

Повторная отправка сообщений о создании/изменении приёма при отсутствии ответа

Если МедФлекс не получает ответ на отправленный запрос (например, уведомление о создании/изменении приёма), запрос будет отправлен снова. При этом, на стороне партнёра фактически изначальный запрос может быть успешно обработан, но ответ не будет отдан в пределах таймаутов. Это может привести к повторным отправкам сообщений пациентам о создании/изменении приёма.

Чтобы этого избежать, рекомендуется для метода POST ​/appointments​/webhooks​ использовать ключ идемпотентности в виде HTTP-заголовка Idempotency-Key, который содержит в себе UUID запроса. Таким образом, можно настроить обработку запросов, чтобы учитывать этот ключ - если ранее был успешно получен и обработан запрос с Idempotency-Key, то повторные запросы с этим же Idempotency-Key необходимо игнорировать, не дублируя сообщения пациенту

Обработка кодов ответа API МедФлекс

Важно! Уважаемые Партнеры, при разработке интеграции, пожалуйста, учитывайте, что API регулярно обновляется и дополняется новыми видами ошибок. Поэтому рекомендуем добавить дополнительные универсальные обработчики ошибок с кодом 4XX.