ГОСТ Р HCO/HL7 27951— 2016
5.highClosea(32.lowClosecs}; I;
I ;
Например, расписание «через один час после еды» имеет литерал «PC+[1h:1hJ». Расписание «за один час
перед сном в течение 10 минут» имеет литерал «HS-[50min:1h]»,
В.5.2.4 Разрешение связи с событием
Тип данных EIVL описывает множество моментов времени, поэтому можно проверить, является ли конкрет
ный момент или интервал времени элементом этого множества. Вопрос, содержит ли значение типа EIVL данный
интервал времени, разрешается с помощью отношения х time, обозначаемого как EVENT(event, time). Свойство
occurrenceAt(t) задает повторение интервала, имеющее место, если событие происходит в момент времени t.
.invariant<EIVL*T> х, Т eventTime, TVL<T> v}
where v.equal(x.occurreneeA t(eventT im e)> |
v.lo w .e q u a l(e ve n tT im e .p lu s(x.o f£s e t.lo w }>;
v.h ig h .e q u a l(e ve n tT im e .p lu s(x.o lC se t.h ig h }>;
v.lo w C lo se a .e q u a l(x.o ffse t.lo w C lo se d };
v.h ig h C lo se d .e q u a l(x.o ffse t.h ig h C lo se d };
I?
Таким образом, значение типа EIVL содержит момент времени t типа TS. если существует время события е
с повторением интервала v. содержащим t.
invariant(EIVL<T> х, т у} (
х.contains(у}.equal(exists(Т е, IVL<T> v>
where EVENT(x.event, y>.ana(v.resolvedAt (y>} (
v.contains(y>;
]>;
B.5.3 Тип данных общей спецификации времени GTS (специализация типа данных SET<TS>)
Определение: множество моментов времени, указывающее времена событий и действий, а также шаблоны
циклов, которые могут применяться к некоторым видам информации, например, к телефонным номерам (утро, ве
чер). к адресам (для так называемых «перелетных птиц», которые живут зимой на юге. а летом на севере), а также к
часам работы.
Тип GTS имеет следующие особенности:
- он является общим типом множества моментов времени SET<TS>. Поэтому тип данных GTS может исполь
зоваться для определения того, попадает ли данное значение типа TS в расписание, описанное значением типа GTS:
- тип GTS представляет собой сочетание нескольких интервалов типа PIVL. Эта особенность позволяет опре
делить. как именно простые и комплексные шаблоны повторений могут быть описаны с помощью типа данных GTS:
- тип данных GTS может служить генератором списков типа LIST<IVL<TS». Эта особенность позволяет ис
пользовать тип данных GTS для генерирования всех повторяющихся интервалов события или действия либо всех
периодов действительности факта.
- тип данных GTS может использоваться как синтаксис календарных выражений. Эта особенность характер
на для литеральной формы этого типа данных.
В любом случае тип данных GTS определяется как множество моментов времени SET<TS>. С помощью
свойств SET.union, SET.intersecl и SET.difference из простых множеств типа SET<TS> можно сконструировать более
сложные. В конечном счете строительными блоками всех значений типа GTS являются типы данных IVL. PIVL и
EIVL. Конструкция значения типа GTS может быть определена в литеральной форме. Для генерации комбинации
более простых множеств моментов времени из данного значения типа GTS не определена никакая специальная
структура типа данных. Хотя любая реализация и могла бы содержать такое структурированное представление,
оно не является необходимым, чтобы передавать значения типа GTS в литеральной форме1).
type GenerslTimingSpecilication alias GTS specialises SET<TS> (
IVL<TS> hull;
IVL<TS> nextTo(TS x}
Тип данных GTS служит примером типа данных, который имеет только алгебраическое определение, а
не описывается структурой данных, с помощью которой можно было бы реализовать поведение такого типа дан
ных. Алгебраическое определение выглядит чрезвычайно простым, поэтому можно подозревать его неполноту.
Поскольку в настоящее время для представления значений типа GTS используется только литеральная форма,
то все определение структуры данных оставлено на будущее.
409