С введением системы мониторинга движения лекарственных препаратов (МДЛП) у всех участников цепочки поставок фармацевтической продукции возросли операционные расходы, связанные с обязательным сканированием каждой единицы товара на каждом этапе движения от производителя или импортёра до конечного потребителя, а также со строгим ведением отчётности с передачей информации в МДЛП. Увеличились время перевозки, приёмки и отправки препаратов, расходы на оплату труда сотрудников, занимающихся отчётностью.
Наш заказчик — дистрибьютор лекарственных препаратов — хотел решить следующие задачи:
-
Упростить работу с МДЛП (интерфейс МДЛП нельзя назвать дружественным для пользователя, т.к. значительная часть функционала вынесена в API и совсем не представлена в UI).
-
Автоматизировать приёмку товаров.
-
Дать возможность нескольким сотрудникам компании работать с МДЛП (базово все операции с МДЛП могут осуществляться только из-под одной УКЭП).
-
Обеспечить удобную интеграцию с 1С.
Наша команда разработала для заказчика утилитное веб-приложение, которое представляет собой рабочее пространство для всей организации и позволяет работать с МДЛП нескольким разным сотрудникам с разграничением прав по доступным действиям и местам деятельности (склады, аптеки, т.д.), а также отслеживать и записывать действия пользователей в системе. При этом подтвердить и завершить то или иное действие с МДЛП согласно законодательству может только обладатель УКЭП.
Приложение упрощает работу с документами и позволяет:
-
работать с накладными по поступлению лекарственных препаратов, реализации, выбытию, учёт остатков;
-
делить документы по типам на поступление, реализацию, выбытие (в связи с повреждением или истечением срока годности), остатки.
-
группировать и фильтровать документы по критериям, оставлять комментарии для коллег.
Кроме того, разработанная система позволяет «провалиться» в документ и посмотреть его «карточку» с основной информацией, списками лекарственных препаратов, историей изменений и обсуждений.
Также с помощью приложения удалось автоматизировать приёмку товаров. Основные преимущества:
-
Ускоренное сканирование: система позволяет одной кнопкой принять накладную по товарам без фактической проверки каждой первичной и вторичной упаковки товаров, то есть не сканировать каждый коробок в паллете, а отсканировать только паллет.
-
Пользователь может работать одновременно с несколькими накладными, а система будет ему подсказывать, к какой накладной относится тот или иной сканируемый товар.
-
Упрощённая проверка ожидаемого количества указанных товаров в накладной и фактического наличия: сравниваются лекарственные препараты, которые были в накладной и те, которые фактически отсканированы. Затем автоматически формируется подробный отчёт.
Кроме того, система содержит справочники с автоматической ежедневной синхронизацией:
-
Всех контрагентов, зарегистрированных в МДЛП
-
Реестр лекарственных препаратов
Интеграция с 1С на данном этапе развития системы осуществляется с помощью XML-файлов, но в планах есть разработка API интеграции.
Система может быть полезна не только фармдистрибьюторам, как наш заказчик, но и аптекам, медицинским учреждениям и кабинетам.
Результат
Благодаря приложению заказчику удалось сократить операционные расходы: уменьшить трудозатраты, которые уходят на приёмку и отправку препаратов со склада, а также уменьшить время, которое лекарства проводят на складе.
Технологии
Наша команда – архитектор, 5 разработчиков, 1 тестировщик — разработала сервис, который связывается с МДЛП по REST API, настроила ELK стек, написала скрипты миграции Liquibase, работали с БД PostgreSQL. Также команда подключила двухфакторную авторизацию пользователей, настроила Spring Security как ресурс сервера с IdP Keycloak. TLS соединения настраивались через КриптоПро JCP по ГОСТ. Всю систему покрыли unit-тестами, а документировали код с помощью Javadoc и Swagger.
Писали систему на языках программирования Java, TypeScript и JavaScript с использованием библиотеки ReactJS. В качестве веб-сервера использовали nginx.