Если при синхронизации виджет нашел контакт в amoCRM с нужным Порядковым номером пациента в IDENT, при этом номер телефона совпадает с одним из номеров телефонов в IDENT, то происходит обновление данных в amoCRM из МИС IDENT. Если номер телефона не совпадает с номером телефона в IDENT, то виджет добавляет новый номер телефона и также обновляет данные. Возможно, пациент сменил номер телефона, либо у него два номера, поэтому мы добавляем новый номер, а не заменяем старый. Если номер телефона в карточке Контакта отсутствует, то виджет заносит номер телефона и производит синхронизацию данных.
В случае если при синхронизации виджет нашел несколько контактов в amoCRM с нужным Порядковым номером пациента в IDENT, то это указывает на ошибку в работе БД IDENT. Такого быть не должно, так как порядковый номер пациента в IDENT заполняется только через API, у сотрудников нет возможности менять его или удалять в amoCRM.
Если во время синхронизации виджет не нашел контакт в amoCRM с нужным порядковым номером, то начинается проверка по второстепенному идентификатору - номеру телефона пациента. Когда был найден один контакт с телефоном, совпадающим с номером телефона в IDENT, то виджет проверяет поле “Порядковый номер пациента в IDENT” и если оно пустое, то добавляет этот порядковый номер в карточку Контакта в amoCRM и обновляет остальные данные из IDENT.
Если поле “Порядковый номер пациента в IDENT” не пустое, то виджет создает новый контакт в amoCRM, сохраняет в него номер телефона и порядковый номер пациента в IDENT, а затем проводит всю остальную синхронизацию данных из IDENT в amoCRM. Почему может возникать такая ситуация? В МИС IDENT есть пациенты с одинаковыми номерами телефонов, часто женщина записывает на прием мужа, детей, родителей и тд. Получается, что номер телефона одинаковый, при этом пациенты разные. Поэтому номер телефона при синхронизации не является уникальным идентификатором пациента.
Если во время синхронизации контакт с номером телефона не был найден, то виджет также создает новый контакт в amoCRM, сохраняет в него номер телефона и порядковый номер пациента в IDENT, а затем проводит всю остальную синхронизацию данных из МИС IDENT в amoCRM.
Может произойти еще одна ситуация, когда во время синхронизации виджет находит несколько контактов с телефоном, совпадающим с номером телефона в IDENT. Тогда у первого найденного контакта происходит проверка поля “Порядковый номер пациента в IDENT” и если оно пустое, то виджет добавляет этот порядковый номер в карточку контакта в amoCRM и обновляет остальные данные. Если поле “Порядковый номер пациента в IDENT” заполнено, то виджет проверяет у следующего найденного контакта поле “Порядковый номер пациента в IDENT” и таким образом ищет контакт без порядкового номера, чтобы внести в него нужную информацию и обновить данные.
Данный алгоритм позволяет не допустить создание дублей в amoCRM, сделать клиентские базы МИС IDENT и amoCRM максимально сопоставимыми, чтобы данные в них были синхронизированы корректно.