Документ информационной карты
То, что заполнено на конкретной карте: документ своего вида с заполненными атрибутами и вложенными документами.
1. Пара к описанию
Состав задан дважды параллельными парами. Вид документа и его атрибут вида — описание того, что бывает; документ карты и его атрибут документа — то, что заполнено на конкретной карте.
Каждый уровень экземпляра ссылается на свой уровень описания: документ знает свой вид, атрибут документа знает атрибут вида. Через атрибут вида известны обязательность, код и наименование атрибута, его тип значения, порядок и участие в ядре.
2. Вложение
Документ ссылается на непосредственного родителя, образуя дерево заполненных документов внутри карты: эксперты, замеры величины pH, авторы, переписчики, владельцы, биотесты, примечания. Дерево экземпляров повторяет дерево видов: документ может быть вложен в другой, только если его вид входит в состав вида родителя.
3. Инварианты
- Вид документа не меняется после создания: смена вида — это другой документ.
- Атрибут документа ссылается на атрибут своего вида; чужой атрибут вида в документ попасть не может.
- Один атрибут вида заполняется в документе не более одного раза: повтор выражается не вторым заполнением, а списком значений либо вложенным документом.
- Документ полон, когда заполнены все обязательные атрибуты его вида.
Свойства
| Свойство | Тип | Описание |
|---|---|---|
DocId | Guid | Идентификатор документа. |
ParentId | Nullable<Guid> | Непосредственный родитель; пуст у документа верхнего уровня. |
Kind | DocumentKind | Вид, по которому заполнен документ. |
NestedDocuments | IReadOnlyList<CardDocument> | Вложенные документы. |
Attributes | IReadOnlyList<CardDocumentAttribute> | Заполненные атрибуты документа. |