Очередь обработки
Очередь пакетов слева, проверка выбранного пакета на двух вкладках справа: «Пакет ввода» и «Проверка карты» (ADR-008).
1. Реализовано (упрощённый срез)
Мастер-деталь: список пакетов очереди слева, карточка выбранного справа (номер, состояние, время; удаление мягкое/жёсткое). Поиск по номеру/идентификаторам, относительное время, обновление, автоскролл к выбранному.
Карточка пакета — две вкладки проверки (ADR-008, горизонтальные): реализована только «Пакет ввода», «Проверка карты» — недоступна (заглушка). На «Пакете ввода» — сетка карточек кадров с крупным превью (портрет 3:4): клик по превью — просмотр (полноэкранный просмотрщик), кнопки «Обработать заново» (нормализация orthocover) и удаления кадра — пер-кадрово. Обработанный кадр помечается меткой «обработано» на превью.
Просмотрщик (переиспользуемый) — полноэкранный оверлей, инфо-панель сверху, перелистывание кадров; при наличии обработанной версии — переключатель «Оригинал ↔ Обработано».
Прочие действия по кадру (переназначить страницу, переснять) и вкладка «Проверка карты» — целевое видение (ниже), ещё не реализованы.
Контракты среза: очередь — Endpoint GetInputQueue, содержимое кадра (оригинал/обработанное) — Endpoint GetFrameContent, обработка — Endpoint NormalizePacket, удаление (мягкое/жёсткое) — Endpoint DeleteInputPacket. Сущность очереди — пакет ввода.
2. Раскладка
Мастер-деталь: слева очередь пакетов, справа обработка выбранного. Полностраничный список здесь не подходит — пакеты разбирают подряд, и вход в карточку не должен уводить с экрана очередь.
Панель очереди сворачивается, когда нужна вся ширина.
3. Очередь
Поиск по номеру пакета, шифру, инвентарному номеру и заглавию — по тому, что пользователь помнит о карте, а не только по служебному номеру.
Фильтр по состояниям пакета — множественный выбор с счётчиками, четыре значения (ADR-008 «Четыре состояния пакета и две вкладки проверки»): в очереди, проверка, завершён, ошибка. Переключатель «только мои» и отдельная ссылка сброса всех фильтров: принадлежность и сброс — разные понятия и не смешиваются в одном элементе.
Кнопка «Взять в работу» выдаёт первый свободный пакет, подходящий под настройки профиля, и показывает, какой именно будет взят.
Строка пакета: номер, время, опознанный вид ИК, состояние и уверенность распознавания числом. Пока обработка не прошла, уверенности нет — так и показывается, а не нулём.
Индикатор состояния отвечает на вопрос «чья очередь ходить»: работает автоматика, ждёт оператора либо завершено. Дублировать им название состояния незачем — оно выведено словами.
4. Две вкладки
Обработка пакета делится не на этапы с подтверждениями, а на два вопроса, и каждому отведена своя вкладка: «Пакет ввода» — верны ли исходные данные, «Проверка карты» — верно ли Сервис их прочитал. Переход между вкладками свободный, подтверждать нечего: прохождение пакета отражает его состояние, а не цепочка подтверждений.
4.1. Пакет ввода
Вкладка строится от опознанной формы, а не от списка кадров: перечислены страницы формы, напротив каждой — отнесённый к ней кадр либо возможность отснять недостающую. Так видно, чего не хватает, — по списку кадров этого не понять.
Вид ИК и форма показаны явно, с уверенностью определения. Если вид определён неверно, действие «Вид ИК не распознан» отклоняет его с возможностью указать верный; пакет уходит в очередь вместе с этим контекстом — указанный вид не теряется, — а пользователь берёт следующий.
Кадр открывается в полном размере: переключение «оригинал ↔ обработанное», смена страницы, переснять, повторить обработку, удалить. Кадры, не отнесённые ни к одной странице, — лишние: их удаление повторной обработки не требует.
Правка, меняющая исходные данные разбора, делает результаты распознавания недействительными — это показано, а на повторную обработку пакет уходит по команде пользователя, не сам.
4.2. Проверка карты
Поля сгруппированы по страницам и разделам формы, у каждого — уверенность. Рядом с исправленным значением видно, что прочла модель.
Обязательные поля помечены, а незаполненное среди них выделено так, чтобы его было видно, не открывая каждый раздел. Состав обязательных зависит от вида документа и берётся из настройки, а не зашит в экран.
Поле со справочным значением текстом не вводится. Отметке в клетке бланка отвечает выбор из набора допустимых значений; наборы переданы заказчиком (каталог справочников). Пользователь видит значение, хранится и выгружается код. Несколько отметок на бланке дают несколько выбранных значений, а отметка «Ничего» исключает остальные и исключается ими.
Если модель прочла то, чего в наборе нет, поле остаётся незаполненным, а прочитанное показано рядом: подставить нечего, а выбрать верное — работа пользователя. Так же выглядит расхождение бланка и справочника, когда клетка напечатана, а значения в наборе нет.
Повторяющаяся группа бланка показывается списком. Строка — эксперт, закладка биотеста, замер: отдельный документ информационной карты, а не набор полей с номерами. Строки добавляются и удаляются — бумага отводит под экспертов пять строк, но это свойство бланка, а не состава вида.
В строке видно только значение, уверенность передана его цветом; редактор ячейки открывается под таблицей. Числа уверенности в каждой ячейке и редакторы у всех ячеек сразу таблицу не читают.
Отдельным блоком над полями формы — реквизиты самой карты, которых на бланке нет: место хранения выбирается из справочника и по умолчанию берётся из учётной записи пользователя — у заказчика они связаны. В состав формы такое поле не входит и в разделах бланка не показывается: читать его неоткуда, уверенности у него нет.
Выбор поля показывает справа страницу-источник с подсвеченной областью. Изображение крупное, с прямоугольной лупой во всю ширину — иначе рукописный текст не разобрать. Вкладка открывается на первом поле бланка: пустой просмотрщик не объясняет, зачем он нужен.
Ниже — состав экспертов со сверкой по справочнику. Экземпляр фонда здесь не подбирается: привязка карты к экземпляру в состав Сервиса не входит.
Завершает работу действие «Создать ИК». Оно недоступно, пока не заполнены обязательные поля; состав кадров на это не влияет — не снятую страницу пользователь вправе внести руками. Рядом названы недостающие поля.
Этой же командой создаётся файл для загрузки в АБИС: отдельной кнопки выгрузки на экране нет и не нужно.
Рядом с ним — «Взять следующий», выход для того, кто карту сейчас не создаёт. Данных это действие не меняет: правки сохраняются по мере ввода, пакет остаётся за оператором, и он вернётся к нему через очередь. Отдельного «Сохранить» на экране нет и не нужно.
Сценарий целиком — сценарий «Проверка пакета».
5. Прототип
Структурные связи
Использует
- Документ Справочники заказчика
- Доменная сущность Пакет ввода
- API-контракт Endpoint: DeleteInputPacket
- API-контракт Endpoint: GetFrameContent
- API-контракт Endpoint: GetInputQueue
- API-контракт Endpoint: NormalizePacket
Используется
- Запрос на изменение CR 2026-08-25. Обязательные поля информационной карты
- Use Case Проверка пакета и создание ИК
Связанные артефакты
Документы
- Документ Справочники заказчика
- Доменная сущность Документ информационной карты
- Доменная сущность Пакет ввода
- ADR ADR-008. Четыре состояния пакета вместо пяти этапов
- API-контракт Endpoint: DeleteInputPacket
- API-контракт Endpoint: GetFrameContent
- API-контракт Endpoint: GetInputQueue
- API-контракт Endpoint: NormalizePacket
- Use Case Проверка пакета и создание ИК