⟨/⟩ 60_Epics/CardInput/EPIC_CardInput.cs

96 строк · в начало

using Ban.Sdaid.Notation.Documents;

namespace Ban.Sdaid.Icd.Epics.CardInput
{
    /// <summary>Эпик «Ввод информационных карт» — сбор кадров бумажной ИК в пакет.</summary>
    public class EPIC_CardInput : IEpicDocument
    {
        public static string _refName = "эпик «Ввод информационных карт»";

        public string Name => "Ввод информационных карт";

        public string Description =>
            @"Пользователь снимает или загружает кадры страниц бумажной информационной карты и завершает ввод одной командой; пакет уходит в очередь обработки.";

        public string Version => "0.2";
        public string Status => "draft";
        public string[] Comments => new[]
        {
            "2026-08-14. Переписано по ADR-007: свободное формирование пакета вместо конвейера по плану.",
        };

        public static string S1_Goal = """
            ## Цель

            Дать пользователю быстро и без ошибок перевести бумажную форму ИК в набор изображений,
            пригодный для автоматической обработки. Ключевое ограничение — **поток**: архив 50 тыс.
            карт, поэтому каждое лишнее действие на карте умножается на пять десятков тысяч.

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

        public static string S2_Actors = """
            ## Акторы

            | Актор | Роль в эпике |
            |---|---|
            | Хранитель | снимает и загружает кадры, правит состав пакета, завершает ввод карты |
            | Сервис | назначает номер пакета и ключи хранения файлов, принимает пакет в очередь |
            """;

        public static string S3_Scope = $"""
            ## Границы

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

            **Не входит:** определение вида ИК и формы бланка, распределение кадров по страницам,
            распознавание и проверка результатов — всё это эпик обработки пакета. Ведение форм
            и состава видов ИК — администрирование.

            Требования: {nameof(Ban.Sdaid.Icd.Requirements.FR_001_ImageInput)}, {nameof(Ban.Sdaid.Icd.Requirements.FR_008_FreePacketComposition)}.
            """;

        public static string S4_AcceptanceCriteria = """
            ## Критерии приёмки

            1. Экран ввода не требует никакого выбора до начала съёмки: ни вида карты, ни плана,
               ни идентификации.
            2. Изображение добавляется камерой рабочего места (живое превью и кнопка съёмки), с диска (в том числе несколькими файлами
               и перетаскиванием) и по ссылке; все три способа доступны одновременно.
            3. Каждому кадру присваивается очередной номер; порядок меняется перетаскиванием,
               имена файлов пересчитываются вслед за порядком.
            4. Кадр можно открыть на просмотр, переснять и удалить до завершения ввода.
            5. Число кадров в пакете ограничено настройкой; при попытке превысить предел кадр
               не добавляется и показывается сообщение.
            6. Ввод карты завершается единственным действием — «Сохранить и перейти к следующей»;
               экран очищается под следующую карту, способ ввода изображений сохраняется.
            7. Пакет попадает в очередь автоматически: отдельного действия постановки нет.
            8. До завершения ввода пакет не имеет номера; после — номер вида `П-ГГГГММДД-NNN`
               показан в списке созданных за смену.
            """;

        public static string S5_OpenQuestions = """
            ## Открытые вопросы

            | № | Вопрос |
            |---|---|
            | OQ-CI-1 | Предел числа кадров задаётся глобально или на вид ИК: у формы на рукопись пять страниц, у графики состав ещё не известен |
            | OQ-CI-2 | Нужен ли пользователю возврат к уже созданному пакету со снятой картой — например, чтобы доснять страницу, замеченную сразу после завершения |
            | OQ-CI-3 | Выбор камеры при нескольких подключённых устройствах на рабочем месте |
            | OQ-CI-4 | Работа камеры вне localhost требует HTTPS (secure context) — как разворачивается на стендах |
            """;

        public static string S99_Related = $"""
            ## Связанные артефакты

            - {nameof(Ban.Sdaid.Icd.Requirements.FR_001_ImageInput)} — Ввод изображений информационных карт
            - {nameof(Ban.Sdaid.Icd.Requirements.FR_008_FreePacketComposition)} — Свободное формирование пакета кадров
            - {nameof(Ban.Sdaid.Icd.Arch.Adr.ADR_007_InputWithoutPlan)} — решение о вводе без плана
            """;
    }
}