ГОСТ Р HCO/HL7 27951— 2016
Идентификаторы UUID присваиваются на основе МАС-адресов Ethernet, момента времени создания и не
которого случайного компонента. Предполагается, что это сочетание позволяет генерироватьдостаточно уникаль
ные идентификаторы без какой-либо организационной политики присваивания идентификаторов (если не считать
организацию присвоения МАС-адресов).
Идентификаторы UUID не являются предпочтительной схемой для использования в качестве УИД в стандар
тах HL7. Они I/Oгут использоваться, когда идентификаторы присваиваются отдельным объектам (например, иденти
фикаторы экземпляров сущностей, идентификаторы событий действия и т.д.). Для обьехтов. описывающих классы
сущностей или событий (например, каталога предметов), предпочтительной схег/ой идентификации являются ОИД.
type Universall’niqueldentihet alias UUID specializes UID (
INT tuneLow;
INT timeMid;
INT tlmeHighAndVetsion;
INT clockSequence;
INT none;
i ;
B.2.15.1 Литеральная форма
Структурное определение идентификаторов UUID представлено только в целях соответствия спецификации
универсально уникальных идентификаторов. В стандартах HL7 идентификаторы UUID используются только как
строки УИД, то есть строка литерала является единственным передаваемым объектом, и получатель только ее и
должен рассматривать при работе с идентификаторами UUID в рамках спецификации HL7.
Литеральная форма идентификаторов UUID определена в соответствии с их исходной спецификацией. Сле
дует иметь в виду, что в стандартах HL7 уникальные идентификаторы чувствительны к регистру, поэтому при ис
пользовании в соответствии со стандартами HL7 шестнадцатеричные цифры A-F в этих идентификаторах должны
быть приведены к верхнему регистру.
1
UUID.literal ST (
UUID:hexdhex’!hex-1hex<lhex12 1
S.timeLow.equal(SI);
S.timeMio.equal(Sl>;
S.
1
meltighAndVersion.equal(Sa);
S.elockSequence.equal(S
? ) ;
S.node.equal(S9)j
I
INT hex4 :hexDigit hexDigit hexDigit hexDigit
1
S.equal(SI.times(16).plus($2)
.times(16).plus(S3)
.times(16).plus
($4);
1
1
1
1
INT hex8 :hexDigit hexDigit hexDigit hexDigit
hexDigit hexDigit hexDigit hexDigit t
S.equal(SI.Limes(16!.plus(S2>
.times(
6
).plus(S3)
.times(16).plus(S4)
.times(
6
).plus(Sb)
.times(16).plus(S6)
.times(
6
).plus(S’?)
.times(16).plus(S8)<
l
INT hexl2: hexDigit hexDigit hexDigit hexDigit
hexDigit hexDigit hexDigit hexDigit
hexDigit hexDigit hexDigit hexDigit (
$.equal($1.tunes(16).plus($2)
.times(16).plus(S3)
.times(16).plus(S4)
.times(16).plus(Sb)
.times(16).plus(S6)
.times(
16
).plus(ST)
.times(lo).plus(S3)
335