# Настройка формулы в параметре

В МИС КСАМУ есть возможность настройки формул для расчётных параметров (рис.1).

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/CYyizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/CYyizobrazenie.png)<span data-type="image-caption">Рисунок 1.</span>

Синтаксис формул

Числа в формулах указываются как есть (напр. 777).

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

Строки (буквы и символы) должны обрамляться в одинарные кавычки (напр. ‘Это одинарные кавычки’)

Переменные

Переменные, используемые в формуле должны находиться внутри квадратных скобок (напр. \[Переменная\])

В качестве переменной можно указывать наименование параметра (номер 1 на рис. 1.1), код параметра (номер 2 на рис. 1.1). Переменные действуют внутри своей области видимости, ограниченной результатом для каждого конкретного пациента.

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/h7wizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/h7wizobrazenie.png)<span data-type="image-caption">Рисунок 1.1</span>

Основные выражения, функции и арифметические действия

В качестве аргументов любых выражений, функций и арифметических действий могут быть как числа, так и переменные. Например переменные: \[163\]+\[132\] или \[Фосфор СЭ\]/\[Хлор в моче\]. Или \[163\]\*6 где 6 – ссылка на параметр, а 6 – число.

Для сложения используйте символ (+), вычитания (-), умножения (\*), деления (/).

**Степень(Х,У)** возведение в степень (У) числа (Х). Например СТЕПЕНЬ(5,2) будет равно 25.

**МИН(Х,У)** нахождение минимального из двух чисел. Например МИН(1,2) будет равно 1.

**МАКС(Х,У)** нахождение максимального из двух чисел. Например МАКС(1,2) будет равно 2.

**МАКС\_ЗНАЧ(Х,У,<span>Z</span>,<span>F</span>)** нахождение максимального из набора чисел. Например МАКС\_ЗНАЧ(1,2,3,4) будет равно 4

**МИН\_ЗНАЧ(Х,У,<span>Z</span>,<span>F</span>)** нахождение минимального из набора чисел. Например МИН\_ЗНАЧ(1,2,3,4) будет равно 1

**ОКРУГЛИТЬ\_ДО(Х,У)** округление дробного числа (Х) до количества знаков (У)

**ЕСЛИ\_ТО(логическое\_выражение,Х,У)** возвращает одно из двух значений в зависимости от того, принимает логическое выражение значения ДА или НЕТ. Например ЕСЛИ\_ТО(1=1,1,2) при выполнении логического выражения (1=1) получаем результат ДА, как итог, результатом является <span>X</span>, что в данном случае равно 1. Если бы результатом логического выражения было бы НЕТ, то результатом данной функции был бы У.  
При использовании различных типов данных в аргументах вывода (например, **X** текст, а **Y** число) необходимо конвертировать число в текстовое представление. Для этого необходимо поместить числовой аргумент в функцию `FloatToStr()`, данная функция является одной из технических функций, про которые описано ниже.  
Например, `ЕСЛИ_ТО([Лейкоциты] < 5, 'Норма', FloatToStr([Лейкоциты])`.  
  
Вышеописанные функции представляют собой лёгкую для использования обёртку для настройки выражения формулы.  
Помимо этих функций присутствуют ещё и дополнительные, технические функции, они описаны в документации "Руководство разработчика FastScript" в разделе функции.

**Референсные формулы**

Функция ЕСЛИ\_ТО, принимая в качестве логического выражения некий референсный признак пациента, позволяет написание формулы, выражения в которой будут меняться от референсных признаков пациента. Такими, как пол, возраст, фаза менструального цикла и так далее.

В логическое выражение формулы, таким образом, по коду референсного вопроса поступает его значение для пациента, которое сравнивается с значением, указанным в формуле. Например: ЕСЛИ\_ТО('\[SEX\]'='Муж.',1,0.742)

Так как по коду в примере подтягивается строка, то переменную \[<span>SEX</span>\] необходимо обрамлять в одинарные кавычки согласно правилам, указанным в разделе синтаксиса.

<span> </span>

<span>Для определения кода вопроса референсной группы необходимо раскрыть норму референсной группы (щелкнув на норму и выбрав пиктограмму лупы (рис. 1.2)</span>

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/qqFizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/qqFizobrazenie.png)<span data-type="image-caption">Рисунок 1.2</span>

На открывшейся форме (рис. 1.3) нас интересует один из вопросов

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/D3jizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/D3jizobrazenie.png)<span data-type="image-caption">Рисунок 1.3</span>

На открывшейся форме нас интересует Код (номер 1, рис.1.4). В данном случае Код = \[‘<span>SEX</span>’\].

И список значений, которые может принимать данный вопрос (номер 2, рис.1.4).

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/6u7izobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/6u7izobrazenie.png)<span data-type="image-caption">Рисунок 1.4</span>

С правилами оформления формулы так же можно ознакомиться, нажав на кнопку информации (рис.2)

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/bzaizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/bzaizobrazenie.png)<span data-type="image-caption">Рисунок 2.</span>

Для каждого параметра, входящего в формулу можно настроить поведение формулы, при его отсутствии (рис.3).

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/Umhizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/Umhizobrazenie.png)<span data-type="image-caption">Рисунок 3.</span>

Выпадающий список «При отсутствии значения этого параметра в формуле» позволяет выбрать поведение расчетного параметра в своде при отсутствии поступающих для него данных.

Позиций в списке 4:

1. Выдать ошибку
2. Вернуть «Невозможно рассчитать без»
3. Заменить на 0
4. Заменить на 1

При этом, пункт 1 более приоритетен, чем пункт 2. Все позиции списка применяются для исходных параметров в формуле - переменным (тем параметрам, на основании которых рассчитывается итоговый результат). Рассчитываемые параметры этой настройкой не настраиваются (т.е. она на них не влияет). В рассчитываемых параметрах эта настройка играет роль только в тех случаях, когда данный параметр участвует в другой формуле (для расчёта другого параметра).

**1. Выдать ошибку**<span></span>

<span>В своде выглядит как предупреждение (рис.4)  
</span>

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/aDdizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/aDdizobrazenie.png)<span data-type="image-caption">Рисунок 4.</span>

В данном случае в параметре гематокрит выбран элемент списка «Выдать ошибку». Гематокрит участвует в формулах для «Средний объем эритроцитов» и «Средняя концентрация гемоглобина» соответственно, для этих параметров выдаётся предупреждение. При этом в ячейка свода остаётся пустой.

**2. Вернуть «Невозможно рассчитать без».**

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/kZJizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/kZJizobrazenie.png)<span data-type="image-caption">Рисунок 5.</span>

При выборе элемента списка Вернуть «Невозможно рассчитать без» в ячейку свода пишется сообщение. На рисунке 5 это «Невозможно рассчитать без: \[Эритроциты\]». Сообщение указывает необходимость заполнения поля исходных данных.

Обращаем ваше внимание, что это сообщение будет писаться в документ результата.

**3. «Заменить на 0», «Заменить на 1»**

<span>Необходима для расчёта формул, когда значение можно пропустить, заменяя его на 0 (при сложении, вычитании) или на 1 (деление, умножение). Эта замена работает только для формул, в которых используется данный параметр и только при отсутствии значений в ячейках настроенных параметров, участвующих в расчёте. В документ результата 0 или 1 не запишутся, ячейки останутся пустыми.</span>

<span></span>

**Чекбокс «Заполнять автоматически даже если не назначено»**

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/soQizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/soQizobrazenie.png)<span data-type="image-caption">Рисунок 6.</span>

В параметре анализа (рис. 6) по умолчанию установлен чекбокс «Заполнять автоматически даже если не назначено». При его снятии расчёт по формуле/выгрузка с анализатора/подстановка значения по умолчанию не производится при отсутствии назначения.

Для вычисления значения параметра по формуле, необходимо нажать кнопку в своде "Рассчитать результат" (рис.7)

[![изображение.png](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/scaled-1680-/IgEizobrazenie.png)](https://docs.medicine-it.ru/uploads/images/gallery/2025-01/IgEizobrazenie.png)<span data-type="image-caption">Рисунок 7.</span>