ГОСТ Р HCO/HL7 27951— 2016
В отсутствие формального определения календарного шаблона используются следующие правила его раэ
бора (на примере строки «М021918..21»):
1. Считать идентификатор привязываемого цикла (например. «М»).
2. Положить привязку равной этому календарному циклу (например, месяцу года).
3. Взять текущий момент времени и форматировать литерал точно до более высокого календарного цикла,
следующего за привязываемым циклом (например, взять год «2000» и сконструировать строку «2000021918»): этот
литерал служит «стеблем».
4. Считать сконструированный литерал (например. «2000021918») в значение типа TS и преобразовать его
в интервал в соответствии со свойством IVL_TS.promotk>nTS (например. «[2000021918:2000021919[»); это «нижний
интервал».
5. Если после разобранной части строки следует оператор оболочки «..». считать следующие цифры шабло
на (например. «21»).
6. Выравнять вправо литерал «стебля» и только что считанные цифры шаблона:
"2000021918"
"
21
";
7. Затем скопировать все цифры литерала стебля, отсутствующие в только что считанных цифрах шаблона
(например получить «2000021921»),
8. Считать этот сконструированный литерал (например. «2000021918») в значение типа TS и преобразо
вать его в интервал в соответствии со свойством IVL_TS.promotionTS (например. «[2000021921 ;2000021922[»); это
«верхний интервал».
9. Положить свойство phase равным выпуклой оболочке нижнего и верхнего интервала (например.
«[2000021918:2000021922[»),
10. Если оператор оболочки отсутствует, то положить свойство phase равным нижнему интервалу.
В.5.1.5.3 Чередование
Календарный шаблон, после которого указана косая черта и целое число п. означающее, что данный шаблон
применяется каждый n-й раз.
Например, строка «D19/2» задает 19-е число каждого второго месяца.
Выражение календарного шаблона применяется при первом появлении шаблона. В этот момент отсутству
ющие левые цифры шаблона дополняются, используя самую раннюю дату, соответствующую шаблону (и следуя
предшествующему шаблону в комбинации спецификаций времени).
Например, строка «D19t’2» задает 19-е число каждого второго месяца. Если эта строка применяется 14 марта
2000 г., то свойству phase присваивается значение «[20000319;20000320[/(2 mo)@DM» и двухмесячный цикл на
чинается 19 марта, затем 19 мая и т. д. Если эта строка применяется 20 марта, то цикл начнется 19 апреля, затем
19 июня и т. д.
Если после идентификатора календарного цикла не указаны цифры, го шаблон совпадает с любой датой.
Целое число, указанное после косой черты, означает продолжительность цикла. В этих случаях свойство phase об
ладает только свойством ширины width, указывающим длительность привязанного календарного цикла (в данном
примере — один день).
Например, строка «CD/2» означает каждый второй день, строка «Н/8» означает каждый восьмой час с дли
тельностью интервала один час.
В.5.1.5.4 Время, задаваемое стороной
После литерала типа данных PIVL или календарного шаблона могут быть указаны три буквы «1ST» (Institution
Specified Time — время, задаваемое стороной), обозначающие, что внутри большего календарного цикла (на
пример. для цикла «час дня» большим циклом будет «день») повторяющиеся события планируются во время,
задаваемое стороной. Этот суффикс используется при задании такого цикла, как «три раза в день», при котором
между двумя последовательными событиями может пройти и четыре часа (между завтраком и обедом), и 10 ч
(охватывающие ночь).
Т аблица В.44 — Примеры литеральных выражений типа данных PIVL
Общая литеральная форма
Форма календарною
шаблона
Описание
[ 198709:198710[/(1 a>@MY
М09
Весь месяц сентябрь каждого года (сле
дует обратить внимание, что указание
1987 г. в общей литеральной форме не
имеет особого значения, поскольку пери
одические интервалы повторяются каж
дый год как в прошлом, так и в будущем)
405