Этап 4:(часть 5/10)
«выявление дублей аптек по координатам»
О клиенте
Клиент  входит в число ведущих российских фармпроизводителей. Численность сотрудников компании насчитывает около 1400 человек. Ежегодно завод выпускает более 20 млн упаковок лекарственных препаратов, востребованных в медицине критических состояний, неврологии, педиатрии, онкологии, лечении инфекционных заболеваний.

С самого момента основания перед компанией стояло множество задач и одна из них — доказать на своем примере, что отечественная фармацевтическая продукция может быть высочайшего качества и что она ни в чем не уступает иностранным аналогам.

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

Базовые механизмы работы с дублями у всех CRM систем заточены именно под название и поэтому недейственны

Задача
Выявить и исключить дубли аптек
Решение

После доработки системы и интеграции с геокодером, перешли от дублей по названиям к дублям по координатам

Адреса всех аптек обработали через геокодер, исправили опечатки в адресах и получили их координаты

Разработали модуль сравнения GPS координат – математическая задача. В системной настройке задается расстояние в метрах. Если между аптеками такое расстояние или меньше – они признаются дублем

Доработали базовый модуль работы с дублями.
Координатор проверяет все дубли, которая выдает система и может как объединить записи, так и признать их разными аптеками (например — две аптеки в одном доме) и далее исключить их из проверки на дубли
Проверка на дубли для одной записи работала следующим образом: при создании новой аптеки ее адрес отправлялся в геокодер. При необходимости адрес исправлялся и подставлялись его GPS координаты.

Затем они сравнивались с координатами в базе и если находился дубль — система предлагала его проверить. При этом возможность сохранить запись, игнорируя дубль, могла включаться или выключаться администратором системы

При проверке всей системы на дубли сравнивались все записи и выводились те, расстояние между которым меньше порогового значения. Такой поиск позволял, например, находить аптеки, у которых сменилось название, но адрес остался тот же