ГОСТ Р ИСО 21090—2016
переводом какого значения типа CD. С помощью атрибута source можно представить последовательность
от одного перевода к другому. Каждый элемент множества переводов был получен из исходного значения
типа CD. Однако каждый перевод также может иметь переводы. Таким образом, когда код переводится
несколько раз. будет сохранена информация о том. какой код послужил входным значением для какого
перевода.
7.52.5 Равенство
Равенство двух значений типа CD определяется исключительно на основе сравнения их атрибу
тов code и codeSystem. Атрибуты codeSystemVersion. originalText. codingRationate. source, информация
о наборе значений и переводах не участвуют в проверке на равенство. Значения, имеющие причину
пустоты nullfiavor, не равны, даже если у них одинаковые коды причины пустоты или значения атрибу
тов исходного текста.
Равенство основано на литеральных значениях атрибутов code и codeSystem. Элементы обработ
ки информации не должны рассматривать семантическое значение пары code+codeSystem для опреде
ления того, идентифицирует ли она то же самое понятие.
Примечания
1Это. к примеру, означает для номенклатуры SNOMED, что две изоморфные формы одного и того же выра
жения не будут равны. При реализации следует тщательно выбирать литеральные формы представления.
2 Значения типа CD могут быть также равны значениям типа CS. Детальная информация приведена
в 7.8.6.4.
7.5.2.6 Инварианты:
- если значение не пусто, то либо атрибут code, либо атрибут originalText должны иметь значение:
- если атрибут code имеет значение, то атрибут codeSystem тоже должен иметь значение;
- присутствие атрибута valueSet требует присутствия атрибута valueSetVersion;
- атрибут codeSystemName может иметь значение только в том случае, если атрибут codeSystem
имеет значение;
- атрибут codeSystemVersion может иметь значение только втом случае, если атрибут codeSystem
имеет значение;
- атрибут displayName может иметь значение только в том случае, если атрибут code имеет зна
чение;
- у переводов не может быть исходного текста;
- переводы не могут иметь переводы.
Представление инвариантов на языке OCL:
def: let hasCode :Boolean - code.ocllsDefined
def: let hasCodeSystem :Boolean - codeSystem.oclIsDefined
def: let hasOriginall’ext : Boolean - originalText.isNotNull
codeSystem - system or translation >select<t I
t.fromCodeSystem(system)) >notEmpty
Примечание — Определена система кодирования fromCodeSystem. являющая источником, поэтому
можно задать ограничения извне системы кодирования codeSystem. к которой принадлежат тип данных CD или
один из его переводов, например, inv: code.fromCodeSystem(e2.16.840.1.113883.6.42»).
def: let noOriginalText : Boolean - originalText.oclIsUndefined
lnv "null или code и/кли originalText":
sNotNull implies (hasCode or hasOnginalText)
mv "other требует codeSystem или valueSet":
(nullFlavor - Nullb’lavor.OTHJ implies
(codeSystem.ocl IsDefined or valueSet .oclIsDefined)
inv "code требует codeSystem": code.ocllsDefined
implies codeSystem.oclisDefir.ed
inv "codeSystemName, только если codeSystem":
codeSystemName. ocl IsDefined implies codeSystem. ocl-sDefined
lnv "codeSystemVersion, только если codeSystem":
codeSystemVersion.ос11sDefined implies codeSystem. oclIsDefir.ed
inv „displayName, только если code": displayName.oclIsDefined
implies code.ocllsDefined
51