ADR-003. Статус пакета как производная от подтверждённых этапов
Как моделируется прохождение пакета по этапам проверки и что происходит при отзыве подтверждения.
1. Решение
Пакет проходит этапы плана обработки: предобработка (автоматически) → проверка файлов → проверка полей → проверка экземпляров → проверка экспертизы.
Статус пакета — производная: он равен ближайшему неподтверждённому этапу. Отдельного поля «статус», которое можно рассинхронизировать с фактическим прогрессом, не заводится.
Отзыв подтверждения каскадно сбрасывает все последующие этапы.
2. Обоснование
Каскад — не перестраховка. Поля проверяются на основании отобранных файлов, экземпляр подбирается по проверенным полям, состав экспертизы — по ним же. Если разрешить отозвать проверку файлов, оставив подтверждённой проверку полей, система будет утверждать, что данные проверены, хотя проверены они были по другому набору изображений.
Вычисляемый статус закрывает второй класс ошибок: невозможна ситуация «статус говорит одно, подтверждения показывают другое».
3. Следствия
- Фильтр очереди по этапам строится на том же вычислении, что и отображение статуса.
- Вкладка этапа, следующего за неподтверждённым, недоступна.
- Пакет открывается на первом этапе, требующем действий пользователя.