Заявки на реактивы и материалы

Спроектировать и разработать модуль лабораторной системы для создания заявок на закупку

17 лабораторий ФГБУ «НЦЭСМП» Минздрава России ежедневно проводят экспертизу лекарственных средств. Для проведения экспертизы закупают реактивы, материалы, реагенты. В модуле ЛИМС «Заявки на реактивы и материалы» сотрудник лаборатории управляет заявкой на закупку: создаёт и редактирует, отслеживает, подтверждает и отклоняет. Модуль тесно связан с остальными частями системы: стандартными операционными процедурами, оборудованием, единицами измерения, инвентаризацией и др.

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

Заявки и товары

Один сценарий — один режим

Каждой роли свой набор операций

Сотрудник отслеживает движение заявки и товаров

Чтобы добавить товар в заявку, достаточно ввести название или каталожный номер — информация заполнится:

Каталог товаров обновляется без участия пользователя и всегда актуален.

Расширенный поиск:

Не нужно знать о полях в базе данных, чтобы найти заявку. Основной поиск поймёт человеческие запросы, которыми пользуются чаще всего — название товара и дата создания.

2016
Аналитик, разработчик, руководитель проекта: Слава Мокеров
Разработчик: Владимир Данилюк

Процесс

Пишем сценарии для четырёх ролей:

Показываем

Получаем от заказчика комментарий о том, что перед начальником лаборатории есть дополнительный согласующий. Дописываем.

Рисуем алгоритм согласования заявок.

Проектируем интерфейс. Ограничение: должен использовать стандартные компоненты Старлимса и быть похожим на остальные модули.

Вводим глоссарий для именования переменных и полей базы, пишем правила поведения итерфейса для разных ролей.

Проектируем БД.

Чтобы формировать заявку на закупку, надо знать каталожный номер. Выясняем, что в системе нет информации о товарах и номерах, а нужны хотя бы товары Сигмы-Алдрич (Sigma-Aldrich).

Начинаем разработку.

Описываем возможные выходы для заполнения товаров:

Параллельно спрашиваем у Сигмы-Алдрич о полноценной интеграции или хотя бы электронном прайс-листе. Получаем ответ: актуальные каталоги появятся после завершения процесса поглощения Мерком (Merck). Похоже, это надолго.

Для товаров создаём отдельную базу, модуль в Старлимсе и пишем парсер каталога магазина Сигмы-Алдрич. Юридическое ограничение: использовать только VBA.

Пользуемся стандартным парсером MSXML2.XMLHTTP и выгружаем в базу через ADODB.Connection. Запускаем, собираем, проверяем — не сходится. Товары выводятся постранично. В браузере одно, в базе другое. И в разных браузерах по-разному. Выясняем, что проблема в стандартном user-agent, которым пользуется MSXML2.XMLHTTP — не запускается код, который обновляет содержимое выдачи. А код запускается только со старым IE. Меняем, запускаем, проверяем — сходится.

Отчеты могут принести больше пользы, предлагаем их изменить.

Для тестирования «умного» поиска создаём 10 тысяч заявок с 50 товарами в каждой — примерно 3 года работы лабораторий. Тестируем «умный» поиск — очень медленно. Оптимизируем запросы к базе — медленно. Ещё оптимизируем — недостаточно быстро.
Выясняем как и что чаще всего ищут пользователи. Ограничиваем одним годом — около 3 тысяч заявок — и поиском только по товару и дате создания — 90% запросов.
Тестируем — находит мгновенно.
Переносим остальные критерии в расширенный поиск.

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