using Ban.Sdaid.Notation.Documents;
namespace Ban.Sdaid.Icd.Epics.PacketProcessing
{
/// <summary>Эпик «Обработка пакета» — от постановки в очередь до создания электронной ИК.</summary>
public class EPIC_PacketProcessing : IEpicDocument
{
public static string _refName = "эпик «Обработка пакетов»";
public string Name => "Обработка пакета";
public string Description =>
@"Пакет проходит автоматическую обработку с определением вида ИК и извлечением значений, затем проверку пользователем на двух вкладках, завершающуюся созданием электронной информационной карты.";
public string Version => "0.2";
public string Status => "draft";
public string[] Comments => new string[0];
public static string S1_Goal = """
## Цель
Превратить набор изображений в проверенную электронную информационную карту.
Оператор должен видеть, чему верить, а что проверять: для этого служат уверенность распознавания и
привязка каждого значения к фрагменту изображения.
""";
public static string S2_Actors = """
## Акторы
| Актор | Роль в эпике |
|---|---|
| Сервис | предобработка, распознавание, извлечение атрибутов, оценка уверенности |
| Хранитель | сверяет исходные данные и разбор, правит значения, сверяет состав экспертов, создаёт ИК |
""";
public static string S3_Scope = """
## Границы
**Входит:** очередь пакетов и её фильтры по состояниям, назначение пакета пользователю,
определение вида ИК и формы, распределение кадров по страницам, проверка на двух вкладках,
отклонение вида с возвратом в очередь, создание электронной ИК.
**Не входит:** сбор материалов (эпик ввода), реестр готовых карт и выгрузка в АБИС.
Требования: «Распознавание текста», «Сегментация и извлечение атрибутов», «Оценка достоверности распознавания»,
«Верификация и корректировка данных», «Формирование электронной информационной карты», «Очередь обработки пакетов».
""";
public static string S4_AcceptanceCriteria = """
## Критерии приёмки
1. Очередь фильтруется по четырём состояниям пакета: в очереди, проверка, завершён, ошибка.
2. Поиск в очереди работает по номеру пакета, шифру, инвентарному номеру и заглавию.
3. Опознанный вид ИК и форма показаны явно; видно, сколько кадров отнесено к страницам
формы и сколько осталось лишними.
4. Кадр открывается в полном размере с лупой и переключателем «оригинал / обработанное».
5. Соответствие кадра странице формы можно изменить; изменение делает результаты
распознавания недействительными, и это показано.
6. Пакет возвращается в очередь только по команде пользователя, но не сам.
7. Уверенность распознавания показана по пакету и по каждому полю; до обработки её нет,
и это показано явно, а не нулём.
8. Выбор поля показывает страницу-источник с подсвеченной областью.
9. Исправленное пользователем значение не затирается повторной обработкой; распознанное
остаётся видимым рядом с исправленным.
10. Отклонение вида ИК позволяет указать верный; пакет с неопознанным видом помечается
ошибочным и остаётся в очереди.
11. Правку пакета ведёт только тот, кто взял его в работу.
12. Создание ИК недоступно, пока не заполнены обязательные поля; состав кадров на это
не влияет.
""";
public static string S5_OpenQuestions = """
## Открытые вопросы
| № | Вопрос |
|---|---|
| OQ-PP-1 | Пороги уверенности для цветовой индикации и, возможно, для автопропуска проверки не заданы |
| OQ-PP-2 | Порог уверенности определения вида ИК, ниже которого Сервис сам просит подтверждения, не задан |
| ~~OQ-PP-3~~ | Снят: привязка карты к экземпляру фонда в состав Сервиса не входит, реестра документов нет |
| OQ-PP-4 | Раздача пакетов операторам: ручной выбор либо автоматическое назначение (OQ-V-6) |
| OQ-PP-5 | Ошибка самой обработки — не распознавания, а сбоя: повтор, ручное вмешательство, отбраковка пакета |
| OQ-PP-6 | Сколько раз пакет может вернуться в очередь после отклонения вида, прежде чем потребуется ручной разбор |
| OQ-PP-7 | Может ли другой оператор подхватить пакет, взятый в работу и отложенный до дозаполнения, и через сколько; продолжение OQ-PP-4 |
""";
public static string S99_Related = $"""
## Связанные артефакты
- {nameof(Ban.Sdaid.Icd.Arch.Adr.ADR_008_PacketStatesAndTwoTabs)} — решение о четырёх состояниях и двух вкладках
- {nameof(Ban.Sdaid.Icd.Arch.Adr.ADR_005_FieldValueSourceBinding)} — привязка значения к странице формы и области
- {nameof(Ban.Sdaid.Icd.Requirements.FR_002_TextRecognition)} — Распознавание текста
- {nameof(Ban.Sdaid.Icd.Requirements.FR_003_AttributeExtraction)} — Сегментация и извлечение атрибутов
- {nameof(Ban.Sdaid.Icd.Requirements.FR_004_ConfidenceScoring)} — Оценка достоверности распознавания
- {nameof(Ban.Sdaid.Icd.Requirements.FR_005_Verification)} — Верификация и корректировка данных
- {nameof(Ban.Sdaid.Icd.Requirements.FR_006_CardCreation)} — Формирование электронной информационной карты
- {nameof(Ban.Sdaid.Icd.Requirements.FR_009_PacketQueue)} — Очередь обработки пакетов
""";
}
}