JournalRecordManager
Назначение JournalRecordManager — класс для управления одной записью журнала (ЛЖ) и её атрибутами. Отвечает за логику получения, изменения, перемещения по этапам и удаления записи ЛЖ
Интерфейс interface IJournalRecordManager {
journalRecordId: number, data: JournalRecordResponse | null, recordAttributesFields: JournalRecordAttributeFieldWithEdit[] | null, // Атрибуты - поля конкретной записи ЛЖ setFieldValue(fieldName: string, value: any): Promise<void>, getFieldValue(fieldName: string): string | number | boolean | undefined, moveRecord(stageName: string, direction: 'PREV' | 'NEXT'): Promise<void>, deleteRecord(): Promise<void>
} Инициализация Экземпляр класса инициализируется асинхронно (подгружаются данные о записи ЛЖ):
import { JournalRecordManager } from "../../src/servivces/worker/api/interactors"
const journalRecordManager = await JournalRecordManager(journalRecordId) Свойства journalRecordId: number ID управляемой записи лабораторного журнала.
data: JournalRecordResponse | null Данные о текущей записи лабораторного журнала (или null, если запись удалена).
recordAttributesFields: JournalRecordAttributeFieldWithEdit[] | null Атрибуты-поля текущей записи (или null, если запись удалена).
Методы setFieldValue(fieldName: string, value: any): Promise<void> Устанавливает значение поля (атрибута) по имени. Если поле отсутствует в текущем этапе, выбрасывает ошибку. Обновляет data.
getFieldValue(fieldName: string): string | number | boolean | undefined Возвращает значение поля (атрибута) по имени из текущей записи.
moveRecord(stageName: string, direction: 'PREV' | 'NEXT'): Promise<void> Перемещает запись на указанный этап маршрута (назад или вперёд). Обновляет data
deleteRecord(): Promise<void> Удаляет запись журнала, очищает связанные данные в менеджере.