Навигация:  МОДУЛЬ "ЭЛЕКТРОННАЯ МЕДИЦИНСКАЯ КАРТА" > ХРАНЕНИЕ И ОТОБРАЖЕНИЕ ИНФОРМАЦИИ В СИСТЕМЕ > Перечень функций МИС МЕДИАЛОГ >

Функции общего назначения

Предыдущая страницаВернуться в начало главыСледующая страница

Таблица 4. Функции общего назначения

Синтаксис функции

Описание функции

IF(<Условие>,<Выражение1>,
<Выражение2>)

Если <Условие> истинно, то результат функции - <Выражение1>, иначе - <Выражение2>

IF({Таблица.Поле} > 0, 1, 2)

ISNULL(<Поле>)

Проверяет <Поле> на значение null или пустую строку. Обычно применяется в сочетании с IF:

IF(ISNULL({Таблица.Поле}), 'Пустое', 'Заполнено')

EXEC_SCRIPT(<Имя скрипта>[,<Параметр1>,<Параметр2>,...])

Функция позволяет выполнить скрипт (меню Статистика / Скрипты).

Результат функции: 1 – скрипт выполнен, 0 –скрипт не выполнен.

Функция доступна в макроподстановках.

{=EXEC_SCRIPT('ADDRESS')}

QUERY(<Имя запроса>, <Имя возвращаемого поля> [,<Параметр1>,<Параметр2>,...])

Функция позволяет выполнить запрос (зарегистрированный в справочнике Статистика / Скрипты) и возвращает значение поля, указанного в параметре <Имя возвращаемого поля>. Если запрос возвращает более одной строки, при выполнении функции возникает ошибка.

QUERY('{QUERY_ED_VALUE}','EXAM_TEMPLATE','MODELS_GR','MODELS_ID='+ numstr({MOTCONSU.MODELS_ID})+' and MODELSGROUP_ID=1')

EXPR(<Выражение> [,<Тип результата>])

Функция вычисления <Выражения>, указанного в качестве аргумента.

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

<Тип результата> может принимать следующие значения (по умолчанию - STRING):

STRING - строка;

NUMERIC - число, дата;

BOOL - логический.

Примеры:

1. EXPR({Таблица.Поле}) - вычисляет значение выражения, содержащегося в поле:

·если в поле содержится  '2+3', выражение вернет 5,

·если в поле содержится  'IF ({Пациенты.Пол}=1,1,0)', выражение в зависимости от пола пациента вернет 1 или 0,

·если в поле содержится  'IF({Пациенты.Пол} = 1, {Таблица.Формула1}, {Таблица.Формула2})', функция вернет результат выполнения выражения, заданного в поле Формула1 или Формула2.

2. EXPR('{Таблица.Поле}') - возвращает значение поля. Если в поле содержится '2+3', выражение вернет '2+3'.

Подвыражения

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

Примеры:

1. <$expr  {Таблица.Формула1} />

IF ($EXPR = true, 'Температура повышена', '')

Если поле Формула1 содержит текст {{R}[T]STATUS PRAESENS.Температура тела}>37, то результат аналогичен вычислению формулы IF ({STATUS PRAESENS.Температура тела} > 37, 'Температура повышена', '').

2. <$expr1  IF ({Пациенты.Пол} = 1, {Таблица.Формула1}, {Таблица.Формула2}) />

<$expr2 '{Таблица.Значение}' />

IF ($EXPR1 = 'true', $EXPR2, '')

Если пациент - женщина и поле Формула1 содержит формулу {{R}[T]STATUS PRAESENS. Температура тела}>37, а поле  Значение содержит 'Температура повышена', то результат  аналогичен вычислению формулы: IF ({STATUS PRAESENS. Температура тела} > 37, 'Температура повышена',  '')

CHAR(<Код символа>)

Возвращает символ по его коду. Некоторые коды символов приведены в таблице 5.2

CHAR(13)+CHAR(10) – символ переноса строки

AGE(<Дата> [,Формат возраста для детей])

Функция вычисления возраста пациента. Возраст рассчитывается на указанную дату. Задание формата возраста позволяет показать, сколько пациенту лет и месяцев.

AGE({=Дата текущей записи}, '%Y г. %M мес.')  - возвращает возраст пациента в виде "1 г. 8 мес."

CUR_INTORG_FIELDVAL(<Имя поля>)

В качестве имени поля подставляется поле из таблицы Организации (FM_ORG)

Возвращает значение указанного поля для текущего филиала.

CUR_INTORG_FIELDVAL('LABEL')

LANGUAGE()

Возвращает код языка, с которым в данный момент запущена МИС МЕДИАЛОГ. О коде языка см. "Перевод МИС МЕДИАЛОГ" (DBKernel.pdf).

TRANSLITERATE(<Строка>)

Возвращает транслитерированное значение <Строки>. Таблица транслитерации определяется в текущем файле перевода (для русского языка - Automedi.rus) в секции [SYSTEM_BEGIN]:

Alphabet=абвгдеёжзийклмнопрстуфхцчшщъыьэюя

Transliteration=a,b,v,g,d,e,e,zh,z,i,y,k,l,m,n,o,p,r,s,t,u,f,h,c,ch,sh,sch,_,y,_,e,yu,ya

PREPAREPHONE(<телефон>, <код страны по умолчанию>, <код региона по умолчанию>)

Функция преобразует полученный номер телефона (<телефон>) по следующим правилам:

·если получен пустой <телефон>, функция также возвращает пустое значение;

·если длина полученного номера = 7 знакам, то в номер добавятся <код страны по умолчанию> и <код региона по умолчанию>;

·если длина полученного номера = 10 знакам, то в номер добавится <код страны по умолчанию>;

·если длина полученного номера = 11 знакам и первый символ '8', то он будет заменен на '+7';

·если полученный  <телефон> некорректен, возвращается строка без преобразования.

PREPAREPHONE('123-45-67', '7', '495') - возвращает '+74951234567'

PREPAREPHONE('89061112233', '7', '') - возвращает '+79061112233'

PREPAREPHONE('123', '7', '495') - возвращает '123'

CDSToText(<DataSet>,<Разделитель столбцов>,<Разделитель строк>)

Функция выводит полученный набор данных в виде строки с указанными разделителями строк и столбцов. Как правило, используется для вывода результата функции CUR_DIR_SERV().

CDSToText(CUR_DIR_SERV('FM_SERV.FM_SERV_ID,  FM_SERV.LABEL'), '-', '; ')

 

Таблица 5. Некоторые коды символов, используемые в функции Char()

Код символа

Символ

Комментарий

10

 

Перевод строки

13

 

Возврат каретки

153

Знак (TM)

160

 

Неразрывный пробел

167

§

Знак параграфа

169

©

Знак копирайта

172

¬

Знак отрицания

174

®

Знак (R)

176

°

Знак градуса

177

±

Знак "плюс минус"

178

²

Степень 2

179

³

Степень 3

182

Знак абзаца

183

·

Точка-маркер

185

¹

Степень 1

188

¼

Одна четвертая

189

½

Одна вторая

215

×

Крестик

247

÷

Знак деления

9

 

Знак  табуляции