Функция разности дат

Часто возникает необходимость вычисления разности значений типа «Дата». Например, разницу в годах между текущей датой и датой рождения пациента, разницу в днях между текущей датой и датой начала месяца и т.д. Для этого предусмотрена функция разности дат, которой на панели инструментов конструктора соответствует кнопка

Значок функции может быть перетащен с помощью мыши в область операнда выражения. При этом в области операнда появляются новые элементы:

Далее по правой кнопке мыши (в контекстном меню) на заголовке функции (текст «Разница в годах между») может быть выбрана единица измерения, в которой требуется вычислить разность:

год (устанавливается автоматически),

  • квартал,

  • месяц,

  • день,

  • час,

  • минута, секунда и миллисекунда.

Также вместо символов «?», установленных в области аргументов функции, должны быть указаны либо константные значения дат (двойной клик на области аргумента), либо атрибут или параметр, имеющие тип «Дата».

Функция возвращает количество полных единиц (полных лет, целых дней ( Под днем в данном случае понимаются сутки, т.е. период времени длиной в 24 часа.) и т.д.), вмещающихся в указанный период. Например, разность между датами 20.12.2014 и 10.01.2015 составит 0 полных лет.

Применяя эту функцию необходимо иметь в виду, что вторая по порядку дата вычитается из первой, т.е. если первая дата будет меньше второй, результат будет отрицательным. Если при формировании условия нет уверенности в том, что первая по порядку дата обязательно будет больше второй, к результату данной функции следует применить функцию вычисления абсолютного значения (см. п.2.5.2), чтобы исключить ошибки при обработке результата вычисления функции.

Функция «Прибавить к дате»

Для вычисления даты, отстоящей от заданной на определенное количество временных периодов (лет, месяцев, дней и т.д.) предназначена функция «Прибавить к дате»:

Контекстное меню функции содержит список допустимых временных периодов, аналогичный списку периодов в функции «Разность дат» (см. п.2.5.1). Первым аргументом данной функции является количество временных периодов указанного вида, вторым – дата, к значению которой будет прибавляться указанный период времени.

Функция получения части даты

При необходимости использовать в выражении определенную часть даты (год, месяц или число по отдельности) можно использовать функцию «Получить часть даты» (кнопка панели инструментов):

Исходный вид функции после перетаскивания на панель редактирования:

Требуемая часть даты выбирается из контекстного меню функции:

год,

квартал,

  • месяц (порядковый номер в рамках года),

  • день года (порядковый номер в рамках года),

  • неделя (порядковый номер в рамках года),

  • день недели (порядковый номер в рамках недели),

  • день (порядковый номер в рамках месяца),

  • час (порядковый номер в рамках суток),

  • минута (порядковый номер в рамках суток),

  • секунда (порядковый номер в рамках суток).

Тип возвращаемого значения – целое число.

Функция получения подстроки

В том случае, когда необходимо вычленить какую-либо часть текстовой строки (например, код территории из единого номера полиса пациента), можно применить функцию получения подстроки. Функции соответствует кнопка:

панели инструментов конструктора условий. Функция имеет вид:

, где

  • первый аргумент функции – исходная строка, часть которой требуется извлечь,

  • второй – порядковый номер позиции (символа), с которой начинается нужный фрагмент,

  • третий – длина нужного фрагмента в символах.

Нумерация символов в строке начинается с 0. Пример наложения условия на номер полиса, включающего функцию подстроки:

Функция вычисления длины строки

Функция

пределяет длину в символах указанной в аргументе функции строки

Пример условия с использованием данной функции:

Функция ABS

Блок математических функций, в который входит функция ABS, представлен на панели инструментов кнопкой

Перетаскивание кнопки на панель редактирования автоматически вставляет функцию «Число π». Изменить вид функции можно в контекстном меню заголовка функции. В списке доступных функций контекстного меню следует выбрать функцию <ABS>, после чего функция примет вид:

В область аргумента может быть вставлен любой элемент, значение которого имеет числовой тип.

Функция приведения типов

Функция применяется в тех случаях, когда необходимо преобразовать значение какого-либо элемента выражения к другому типу. Например, любой системный параметр, в т.ч. «Текущая дата» имеет тип «Объект». Т.е. для того, чтобы использовать его в выражении, анализирующем даты, требуется приведение значения параметра к типу «Дата».

В панели инструментов функции соответствует кнопка

Результат помещения функции на панель редактирования условия выглядит так:

Тип данных, к которому необходимо привести значение, выбирается в контекстном меню функции (список возможных типов соответствует типам, перечисленным в п. 1.2).

Пример корректно оформленной функции:

Функция «Удовлетворяет выражению»

Функция позволяет анализировать значение аргумента функции (атрибута или параметра) с помощью регулярных выражений. Изначально функция на панели редактирования выражения имеет вид:

где первый аргумент функции – это текстовая строка регулярного выражения (при двойном щелчке мышью открывается окошко редактирования, в котором нужно ввести строку), второй – анализируемое значение, который заполняется перетаскиванием нужного элемента из списка атрибутов или панели инструментов. Пример корректно заполненной функции:

Функция возвращает целое число, соответствующее числу вхождений шаблона, заданного в регулярном выражении, в текстовую строку второго аргумента функции.

Описание синтаксиса регулярных выражений выходит за рамки данного Руководства.

Функция «Условие»

Функция «Условие» (кнопка ) позволяет включить в выражение конструкцию проверки условия вида «Если ВЫРАЖЕНИЕ тогда ЗНАЧЕНИЕ1, иначе ЗНАЧЕНИЕ2». ВЫРАЖЕНИЕ должно возвращать логическое значение, и если оно положительное, функция возвращает ЗНАЧЕНИЕ1, если условие не выполняется –ЗНАЧЕНИЕ2.

Перетаскивание элемента на панель редактирования выражения создает блок функции, как это показано на рисунке:

Все аргументы функции могут быть созданы перетаскиванием нужных элементов в область аргумента. Значения аргументов, соответствующих возвращаемому значению, могут быть заполнены константным значением с помощью двойного клика на области аргумента. Возвращаемое значение (аргументы функции «Тогда» и «Иначе») может быть константой, значением атрибута, параметра, результатом вычисления функции или выражением, но не может быть коллекцией (перетащить атрибут child-коллекции в поле возвращаемого значения нельзя).

Кнопка

 позволяет добавить еще одну конструкцию «Если … тогда …»

-скрыть, т.е. удалить ненужное условие.

Таким образом, функция позволяет проанализировать ряд условий и в зависимости от того, какое из них выполнено, вернуть определенный результат.

Пример условной конструкции приведен на рисунке:

Жесткого требования по совпадению типов возвращаемых значений «Тогда» и «Иначе» нет, т.к. это зависит от той процедуры, которая будет обрабатывать результат выполнения функции, но следует иметь в виду, что если возвращаемые значения не могут быть автоматически приведены к одному типу, возможна ошибка при обработке результата функции. Т.е. если результат функции анализируется в рамках создаваемого с помощью конструктора выражения, необходимо следить, чтобы возвращаемые значения имели тот тип, который ожидает функция или выражение, в которое включена условная конструкция. Пример анализа результата функции в выражении:

  • Нет меток