Как мы интегрировали телефонию в МедПульс24

Предыстория

В сентябре 2018 г. из Клиники современной флебологии (г. Уфа) поступило предложение реализовать в медицинской информационной системе “МедПульс24” интеграцию с телефонией. В частности в клинике были заинтересованы в таких возможностях, как идентификация клиента по номеру телефона, статистика звонков, запись и прослушивание разговоров, возможность совершать звонки клиентам прямо из приложения. Они уже пользовались телефонией (есть свой небольшой колл-центр), но неудобство состояло в том, ведение базы клиентов и учет звонков велось в разных приложениях. Администратору нужно было выслушать клиента, уточнить его данные, затем записать его на прием в информационной системе. Да и статистику звонков было бы удобнее вести в одном приложении.

Так перед нами появилась задача интегрировать МИС «МедПульс24» с телефонией.

Подробнее о задачах

Нам нужно было решить следующие задачи:

  • При входящем звонке отображать в веб-интерфейсе приложения диалоговое окно «Входящий вызов» с информацией о вызывающем абоненте: номер телефона, ФИО, дату и время крайнего посещения (если клиент обращался ранее), а также наименование оказываемой услуги.
  • Реализовать возможность записи пациента на прием из диалогового окна «Входящий вызов».
  • Реализовать возможность переадресации звонка на другого оператора.
  • Добавить возможность совершать звонки клиентам из приложения.
  • Ведение журнала звонков.
  • Возможность записи и прослушивания разговоров с клиентами.
  • Интеграция с виртуальной АТС Mango Office (далее ВАТС, виртуальная АТС).

Реализация

Интеграция с ВАТС. Первое, с чего мы начали – это изучение API ВАТС предназначенного для интеграции с внешними информационными системами. Интеграция предполагает двусторонний обмен данными в формате json. Мы можем запрашивать у ВАТС необходимые нам данные (например, получение статистики, записи разговоров и т.д.), а также инициировать некоторые события (исходящие вызовы, отправка sms-сообщений). Дополнительно со стороны информационной системы нужно реализовать некий слушатель событий (веб-службу), необходимый для получения сообщений со стороны ВАТС (например, уведомление о вызове, уведомление о завершении вызова и т.д.).

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

Статистика звонковВ принципе, всю статистику звонков можно получить с сервера ВАТС, отправив соответствующий запрос через API. Но возвращаемые данные могут оказаться малоинформативными для конечного пользователя. Возвращаются номера телефонов вызывающего и вызываемого абонентов без их идентификации, время совершения телефонного звонка (начало и окончание разговора) а также некоторые идентификаторы звонка. Сопоставив эти идентификаторы и номера телефонов с информацией, которая хранится в базе данных клиники, можно точно идентифицировать вызывающего и вызываемого абонентов (клиента и оператора).

Изначально статистику звонков мы реализовали следующим образом: запрашивали её с сервера ВАТС, идентифицировали клиентов, дополняли статистику данными клиентов и операторов (ФИО) и выдавали в таком виде пользователю. Но позже задача заказчиком была расширена: появилась необходимость комментирования записей в журнале звонков, а также в выставлении статусов.  Например, если оператор ответил на пропущенный вызов, то нужно было зафиксировать это событие в журнале звонков. Вариант с запросом статистики с сервера ВАТС нам уже не подходил по той причине, что он не предполагал сохранения какой-либо информации. В итоге мы разработали собственный журнал звонков с возможностью сохранения комментариев оператором. В нем фиксируются все телефонные звонки, проходящие через колл-центр клиники. При этом мы оставили доступной возможность просмотра статистики звонков с сервера ВАТС.

Переадресация звонков. Наверное, единственное, что заставило нас задуматься – это переадресация звонков между операторами. В колл-центре может быть несколько операторов, у каждого свой телефон или гарнитура. Задача состояла в том, чтобы отобразить в приложении диалоговое окно «Входящий  вызов» только у того оператора, к которому реально пришел звонок. Для решения этой задачи необходимо  знать номер телефона, на который совершается звонок, идентифицировать оператора, который будет на него отвечать, а также рабочее место оператора. И в итоге сопоставить между собой все эти данные.

Тестирование интеграции с ВАТС.  Mango Telecom предоставляет бесплатный трехдневный тестовый  доступ к виртуальной АТС для тестирования интеграции с внешними информационными системами. При этом не нужно забывать про еще одно ограничение – 10-минутный лимит на разговоры в рамках тестирования. По истечении трех дней или при превышении лимита разговоров доступ к системе блокируется.  Этого периода, даже с учетом дополнительных ограничений нам вполне хватило для тестирования всех возможностей интеграции предоставляемых виртуальной АТС.

После первой демонстрации и обсуждения с пользователями реализованных возможностей интеграции нам поступили пожелания по доработке и добавлению нового функционала. В частности речь шла о добавлении возможности комментирования записей в журнале звонков, о котором мы уже упомянули выше. Но проблема заключалась в том, что предоставленный ранее трехдневный период  для тестирования интеграции  уже истёк. К счастью, у нас остались файлы логов со всеми ответами, которые приходили от сервера ВАТС во время тестирования интеграции. Изучив эти ответы, мы написали несложный эмулятор телефонных вызовов для возможности дальнейшего тестирования интеграции без доступа к серверу ВАТС.

Входящий вызов

Результаты

Все поставленные задачи по интеграции медицинской информационной системы «МедПульс24» с телефонией и виртуальной АТС Mango Office были успешно выполнены. В частности реализовано следующее:

  • Отслеживание входящих вызовов и других событий.
  • Идентификация клиента в системе по номеру телефона.
  • Отображение диалогового окна «Входящий вызов» у оператора, который принимает вызов. В окне выводится информация о вызывающем абоненте: номер телефона, ФИО, дата и время крайнего посещения (если клиент обращался ранее), а также наименование оказываемой ранее услуги.
  • Запись пациента на прием из окна «Входящий вызов». Если клиент был идентифицирован в системе, то не нужно повторно вводить его данные.
  • Переадресация входящих вызовов (автоматически или путем указания конкретного оператора)
  • Возможность совершения звонков клиентам (из расписания, карточки пациента и журнала звонков)
  • Просмотр журнала звонков с фильтрацией по типу звонка (входящий, исходящий, пропущенный, внутренний и т.д.), а также по ФИО и номеру телефона клиента.
  • Комментарии и выставление статусов записей в журнале звонков.
  • Прослушивание разговоров с клиентами.
  • Интеграция с виртуальной АТС Mango Office.

Какие преимущества даёт бизнесу информационная система, интегрированная с телефонией?

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