ГОСТ Р HCO/HL7 27951— 2016
invariant (ANY x! 1
x.notApplicable.equal(x.nullFlavor.implies(NA1};
11
B. 1.11.6 Предикат unknown: BL
Определение: предикат, указывающий, что причина пустоты nullFlavor данного исключительного значения
равна «UNK» (неизвестно).
invariant (ANY х} (
х.unknown.equal(x.nullFlavor.implies(UKK));
11
B. 1.11.7 Предикат other: BL
Определение: предикат, указывающий, что причина пустоты nullFlavor данного исключительного значения
равна «ОТН» (другое), то есть правильное значение не принадлежит требуемому домену значений.
invariant(ANY х)
\
х.other.equal(х.nullFlavor.implies(OTH)1;
I ;
B.1.11.8 Предикат equal: BL (равенство)
Определение: равенство является рефлексивным, симметричным и транзитивным отношением между дву
мя значениями данных. Равенство возможно только между допустимыми значениями, пустые значения никогда не
равны (даже если имеют одинаковую причину пустоты).
invariant(ANY х, у, 2)
where x.nonKull.ana(y.nonKull}.and(z.nonNullj (
x.equal(x);
/*
рефлексивность ♦/
x.equal(y>.equal(y.equal(x{>;
!*
симметричность ♦/
x.equal(y>.and(y.equal(
2
>;.implies(x.equal(z>) /* транзитивность »/
x.equa1(yl.implies(x.dataType.equa1(y.dataTypel;
i ;
Способ установления равенства должен быть определен для каждого типа данных. Если иное не указано,
то два значения данных равны, если они не различимы, то есть если у них нет различающихся семантических
свойств. Это общее определение равенства может быть «переопределено» в типе данных с помощью указания
собственного отношения равенства. Такое переопределение отношения равенства гложет быть использовано для
исключения семантических свойств из проверки на равенство. Если в типе данных какие-то семантические свой
ства исключены из его определения равенства, это означает, что определенные свойства (или аспекты свойств),
не ставшие частью проверки на равенство, не существенны для смысла значения.
Например, физическая величина имеет два семантических свойства: (1) вещественное число. (2) кодирован
ная единица измерения. Однако при проверке на равенство необходимо учитывать тот факт. что. к примеру, 1 метр
равен 100 сантиметрам. Таким образом, независимые равенства двух семантических свойств являются слишком
строгим критерием равенства двух величин. Поэтому в определении типа данных физической величины
необходи мо переопределить отношение равенства.
В.1.12 Тип данных DataType (TYPE) (специализация типа данных ANY)
Определение: метатип. объявленный, чтобы можно было давать формальное определение типа данных зна
чения. Любой тип данных, определенный в настоящей спецификации, является значением типа DataType.
private type DataType alias TYPE specializes DataValue !
CS shortName;
CS longName;
BN implies(TYPE that>;
i ;
B.1.12.1 Свойство shortName: CS
Определение: значение типа CS. содержащее краткое имя типа данных.
invariant(DatаТуре х)
where x.nonNull (
х.shor tName.nonNull;
i ;
301