ADR-002. Идентичность пакета и имена файлов изображений
Когда у собираемых материалов появляется идентичность и как именуются файлы изображений.
1. Контекст
Пока оператор собирает кадры, у будущей карты нет ни номера, ни признаков, по которым её можно было бы назвать. Соблазн присвоить «номер карты» заранее приводит к выдумыванию сущности: номер ИК, если он вообще есть на бумажной форме, — это распознанный атрибут, он появляется позже.
Аналогично с именами файлов: у кадра, снятого камерой, исходного имени не существует.
2. Решение
Идентичность появляется в момент постановки пакета в очередь. Тогда же сервер присваивает номер вида
П-ГГГГММДД-NNN — сквозная нумерация в пределах дня.
Имя файла — метаданные, а не идентификатор. Кадр опознаётся своим порядком в пакете. Различаются:
- исходное имя — сохраняется только для файлов с диска и по ссылке; у кадров с камеры его нет, вместо него фиксируется время съёмки;
- ключ хранения — назначает сервер при постановке пакета в очередь по схеме
<номер пакета>/<NN>.<расширение>.
В ключе нет ни вида изображения, ни страницы формы: страницу определяет обработка, и она же меняется при переназначении. Ключ, зависящий от страницы, пришлось бы переименовывать при каждой правке разметки — а ссылки на файл к тому времени уже разошлись.
3. Обоснование
Ключ не завязывается на инвентарный номер документа, хотя соблазн есть: на момент съёмки идентификатора может не быть — оператор вправе оставить поля пустыми, и значения извлекаются при распознавании. Иначе файл пришлось бы переименовывать задним числом, когда ссылки на него уже разошлись. Инвентарный номер живёт в метаданных и индексе — поиск по нему это не ломает.
4. Следствия
- Интерфейс ввода не показывает «номер карты» до постановки в очередь; вместо него — счётчик сданных за смену.
- Порядковый номер
NNв ключе отражает порядок кадра в пакете и стабилен после создания пакета. - Соответствие кадра странице формы хранится в самом кадре, а не в имени файла: переназначение страницы файлов не трогает.
Структурные связи
Используется
- Запрос на изменение CR 2026-08-14. Ввод без плана ввода
- API-контракт Endpoint: GetFrameContent
- Handler Handler: ForceDeleteInputPacket (жёсткое)
- Handler Handler: NormalizePacket
- Handler Handler: SubmitInputPacket