⟨/⟩ 30_Requirements/FR_006_CardCreation.cs

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

using Ban.Sdaid.Notation.Documents;

namespace Ban.Sdaid.Icd.Requirements
{
    /// <summary>Создание электронной информационной карты по пакету — задача 6 ТЗ.</summary>
    public class FR_006_CardCreation : IFunctionalRequirementDocument
    {
        public static string _refName = "FR-006 «Создание карты»";

        public string Name => "FR-006. Формирование электронной ИК";

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

        public string Version => "0.2";
        public string Status => "draft";
        public string[] Comments => new[]
        {
            "2026-08-26. По CR «Обязательные поля ИК»: условие создания — заполненность обязательных атрибутов вида.",
        };

        public static string S1_Requirement = $"""
            ## Требование

            По команде пользователя «Создать ИК» Сервис создаёт **электронную информационную карту**, которая
            содержит:

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

            Созданная ИК попадает в реестр информационных карт.

            **Той же командой формируется файл для загрузки в АБИС.** Отдельного действия выгрузки
            пользователь не выполняет: «Создать ИК» — единственная команда, и она даёт и карту,
            и файл ({SdaidAnchors.RefTo<Ban.Sdaid.Icd.Arch.Adr.ADR_013_ExportFileOnCardCreation>()}).
            Если файл записать не удалось, карта всё равно создаётся: работа оператора не должна
            пропадать из-за сбоя записи.
            """;

        public static string S2_Completeness = $"""
            ## Условие создания

            Карта создаётся, только когда заполнены **все обязательные атрибуты вида** — перечень
            задаёт {SdaidAnchors.RefTo<Ban.Sdaid.Icd.Domain.Cards.Template.RequiredAttributes>()}.
            Неполной информационной карты не существует: полнота обеспечивается при создании, а не
            проверяется потом.

            Если сведений не хватает, пользователь откладывает проверку — внесённые значения остаются
            в пакете ввода, и он возвращается к ним позже
            ({nameof(Ban.Sdaid.Icd.Arch.Adr.ADR_012_UnfinishedCardLivesInPacket)}).

            Отсутствующее на бланке значение записывается явно там, где так принято: «Б.м.» вместо
            места издания, «Б.и.» вместо издательства. Для Сервиса это обычные значения, и поле
            считается заполненным.
            """;
    }
}