Краткое описание ЯОМП

В первой строке текста программы после символов // должно быть задано имя алгоритма.

Дальнейший текст программы начинается с инструкций Переменные: и, при необходимости Строки: , в которых задаются глобальные переменные программы (соответственно, вещественные двойной точности и строковые). Далее следует основной блок программы и далее, при необходимости вспомогательные блоки. Основной блок имеет имя ВХОД. Комментарии начинаются с символов //.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

В языке ЯОМП присутствуют следующие основные конструкции:

Активировать_блок

Алгоритм

Блок

Ввести_Начать

Вводить_и_ждать

Ввести_быстро

Выбор

Вывод

Вывод_без_ожидания

Вызов_врача

Выход

Дата

Доза

Если

Задать_значения_из_файла

Задать_текст

Закончить_введение

Изменить_скорость

Минуты

Мультивыбор

Остановить_алгоритм

Переменные

повторять_в_течение

Пока

Разведение

Спать

Спать_до_ок

Строки

Строка

ТекущееВремя

ТекущиеМинуты

Установить_диурез

Установить_интервал

 

Далее следует их подробное описание.

Управляющие конструкции ЯОМП

 

Переменные

Должна стоять в начале программы. Задает список вещественных глобальных переменных (двойной точности). Возможно использование инициализаторов.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: МАССА, РОСТ, ПОЛ, ШКГ, КОМА, АД, ПаСО2, норма_ПаСО2, МОВ,\

                    Гипертония, САД, ДАД, ГИПЕРТЕНЗИЯ, ГЛЮКОЗА, ИНФ_НОМЕР_ХЛ_СОД,\

                    ИНФ_НОМЕР_ДЕКСТРОЗА, КОЭФФ_УРАПИДИЛ=1.0, ИНФ_НОМЕР_УРАПИДИЛ, ИНФ_НОМЕР_ГЭК, ВЧД,\

                    ВЧД_НОРМА=10.0, ИНФ_НОМЕР_МАННИТОЛ, КОЭФФ_МАННИТОЛ=1.0, приподнять_голову=0,\                     

                    температура=0.0

//…

---------------------------------------------------------------------------

 

Строки

Должна стоять в начале программы после определения вещественных переменных. Задает список глобальных строковых переменных. Возможно использование инициализаторов.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: МАССА, РОСТ, ПОЛ, ШКГ, КОМА, АД, ПаСО2, норма_ПаСО2, МОВ

Строки: Текст1, Текст2=”Текст…”

//…

---------------------------------------------------------------------------

 

Блок/конец_блока

 

Блок – это модуль программы. Программа должна начинаться с блока ВХОД. Блок должен завершаться инструкцией конец_блока.

После блока ВХОД возможно произвольное количество дополнительных блоков. Дополнительные блоки активируются с помощью инструкции АКТИВИРОВАТЬ_БЛОК. После активации блока тело блока выполняется в цикле с интервалом, заданным в инструкции   АКТИВИРОВАТЬ_БЛОК. Здесь имеется в виду, что в следующий раз тело блока выполняется после прохождения заданного времени после окончания выполнения предыдущего тела блока.

Завершение работы блока происходит с помощью инструкции ВЫХОД.

Завершение работы всего алгоритма (=всех блоков) происходит с помощью инструкции ОСТАНОВИТЬ_АЛГОРИТМ.

Пример циклического запроса роста пациента и вывода сообщения с полученным значением:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

    АКТИВИРОВАТЬ_БЛОК(ЗАПРОС,3сек)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

БЛОК ЗАПРОС()

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

КОНЕЦ_БЛОКА

---------------------------------------------------------------------------

 

Установить_интервал

Инструкция позволяет установить интервал обновления следующих величин: ЧСС, ЧДД, АД, SpO2, диурез, температура.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

     УСТАНОВИТЬ_ИНТЕРВАЛ(ЧСС,5сек)

     УСТАНОВИТЬ_ИНТЕРВАЛ(ЧДД,1мин)

     УСТАНОВИТЬ_ИНТЕРВАЛ(АД,10мин)

     УСТАНОВИТЬ_ИНТЕРВАЛ(СПО2,1час)

     УСТАНОВИТЬ_ИНТЕРВАЛ(ДИУРЕЗ,1час)

     УСТАНОВИТЬ_ИНТЕРВАЛ(ТЕМП,30мин)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Ввести_быстро

Позволяет выдать запрос на быстрое введение лекарства и отдать команду на ввод лекарства.

Команда может вызываться в одном из двух форматов.

Первый формат.

Первый параметр – номер инфузомата, по которому должно произойти введение.

Второй параметр – название лекарства (список известных лекарств задан в файле C:\Angel\ENUMS\drug.txt).

Третий параметр – доза лекарства.

Четвертый параметр – тип введения (в/в или в/м).

Текст, выводимый на экран для подтверждения команды ввода, может быть задан непосредственно перед вызовом данный функции с помощью функции ЗАДАТЬ_ТЕКСТ.

Второй формат.

Первый параметр – текст в двойных кавычках, выводимый на экран для подтверждения команды ввода, либо выражение с использованием функции СТРОКА , обязательно начинающееся со строки (т.е. с двойной кавычки).

Второй параметр – номер инфузомата, по которому должно произойти введение.

Третий параметр – название лекарства (список известных лекарств задан в файле C:\Angel\ENUMS\drug.txt).

Четвертый параметр – доза лекарства.

Пятый параметр – тип введения (в/в или в/м).

Пример:

---------------------------------------------------------------------------

// Пример 1

БЛОК ВХОД

    задать текст(”Быстро ввести фурасемид 40мг в/в”)

    ввести_быстро(1,фурасемид, 40мг, в/в)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

// Пример 2

БЛОК ВХОД

    ввести_быстро(”Быстро ввести фурасемид 40мг в/в”, 1,фурасемид, 40мг, в/в)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

 

Ввести_Начать

Позволяет выдать запрос на медленное (в течение заданного времени) введение лекарства и отдать команду на ввод лекарства. Программа продолжает свое выполнение сразу после начала введения лекарства.

Первый параметр – номер инфузомата, по которому должно произойти введение. Вместо номера инфузомата можно записать текст ручное_введение (соответствует номеру инфузомата = 0), или капельное_введение (соответствует номеру инфузомата = 100). Ручное и капельное введения должны производиться вручную, без использования инфузомата.

Второй параметр – название лекарства (список известных лекарств задан в файле C:\Angel\ENUMS\drug.txt).

Третий параметр – скорость введения лекарства.

Четвертый параметр – время ввода. Параметр необязательный. Если параметр не задан, то окончание введения должно произойти либо по окончании работы алгоритма, либо при помощи инструкции ЗАКОНЧИТЬ_ВВЕДЕНИЕ.

Текст, выводимый на экран для подтверждения команды ввода, может быть задан перед вызовом данный функции с помощью функции ЗАДАТЬ_ТЕКСТ.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

    Ввести_начать (1,ДОПАМИН, 60 мг/час,1час)

    Ввести_начать (капельное_введение,ДОПАМИН, 60 мг/час,1час)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Задать_текст

Позволяет задать текст запроса на введение лекарства. Текст будет выведен в запросе на введение лекарства при вызове одной из последующих функции: Ввести_начать, Вводить_и_ждать, Ввести_быстро. Если данная функция не вызывается перед командой ввода лекарства, то команда ввода лекарства сама формирует запрос на его ввод.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

    задать_текст(”Ввести  Допамин со скоростью 60мл/час в течение 1часа ”)

    вводить_и ждать(1,ДОПАМИН, 60 мл/час,1час)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Вводить_и_ждать

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

Первый параметр – номер инфузомата, по которому должно произойти введение. Вместо номера инфузомата можно записать текст ручное_введение (соответствует номеру инфузомата = 0), или капельное_введение (соответствует номеру инфузомата = 100). Ручное и капельное введения должны производиться вручную, без использования инфузомата.

Второй параметр – название лекарства (список известных лекарств задан в файле C:\Angel\ENUMS\drug.txt).

Третий параметр – скорость введения лекарства.

Четвертый параметр – время ввода. Параметр необязательный. Если параметр не задан, то окончание введения должно произойти либо по окончании работы алгоритма, либо при помощи инструкции ЗАКОНЧИТЬ_ВВЕДЕНИЕ.

Текст, выводимый на экран для подтверждения команды ввода, может быть задан перед вызовом данный функции с помощью функции ЗАДАТЬ_ТЕКСТ.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

    Вводить_и_ждать (1,ДОПАМИН, 60 мг/час,1час)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Закончить_введение

Инструкция, использующаяся для прекращения введения лекарства, вводимого при помощи команды ВВЕСТИ. В единственном параметре команды передается номер инфузомата.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

    ввести (1,ДОПАМИН, 60 мл,1час)

    закончить_введение (1)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

Изменить_скорость

Инструкция, использующаяся для изменения скорости введения лекарства, вводимого, например, при помощи команды ВВЕСТИ_НАЧАТЬ. В параметрах команды передается номер инфузомата и новая скорость введения.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

    ВВЕСТИ_НАЧАТЬ (1, Нитроглицерин, 60 мг/час)

    ИЗМЕНИТЬ_СКОРОСТЬ(1,Нитроглицерин,ДОЗА_НИТРОГЛИЦЕРИН*ИД_МАССА мг/кгчас)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

установить_диурез

На данный момент команда не используется.

 

Активировать_блок

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

После активации блока тело блока выполняется в цикле с интервалом, заданным во втором параметре инструкции  АКТИВИРОВАТЬ_БЛОК. Здесь имеется в виду, что в следующий раз тело блока выполняется после прохождения заданного времени после окончания выполнения предыдущего тела блока.

В операторе АКТИВИРОВАТЬ_БЛОК имеется необязательный третий параметр - задержка перед первым вызовом блока. По умолчанию (при отсутствии третьего параметра) блок вызывается сразу после его активации.

Завершение работы блока происходит с помощью инструкции ВЫХОД.

Завершение работы всего алгоритма (=всех блоков) происходит с помощью инструкции ОСТАНОВИТЬ_АЛГОРИТМ.

Пример циклического запроса роста пациента и вывода сообщения с полученным значением:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

    АКТИВИРОВАТЬ_БЛОК(ЗАПРОС,10сек, 3сек)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

БЛОК ЗАПРОС()

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

КОНЕЦ_БЛОКА

---------------------------------------------------------------------------

 

Алгоритм

Инструкция используется для активации некоторого алгоритма с одновременным завершением работы текущего алгоритма.

Инструкция имеет единственный параметр – строку с именем активируемого алгоритма (имя алгоритма берется из первой строки с ЯОМП-программой вызываемого алгоритма).

Пример циклического запроса роста пациента и вывода сообщения с полученным значением:

---------------------------------------------------------------------------

// Пример

  ЕСЛИ пиковая_скорость_вдоха==1 то

     ВЫЗОВ_ВРАЧА("Диагностирован приступ астмы. Запустите соответствующий алгоритм лечения.", 20мин)

     Алгоритм("Бронхиальная астма диагностика и лечение")

  КОНЕЦ_ЕСЛИ

---------------------------------------------------------------------------

 

 

Вызов_врача

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

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Вывод

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

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

                ВЫВОД("Алгоритм работает нормально...")

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Вывод_без_ожидания

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

В первый параметр инструкции передается выводимое сообщение.

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

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

                ВЫВОД_БЕЗ_ОЖИДАНИЯ("Проблемы с работой алгоритма...")

                ВЫВОД_БЕЗ_ОЖИДАНИЯ("Алгоритм работает нормально...",30сек)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Строка

Данная функция используется для преобразования числа в строку.

Например, если в параметре инструкции Вызов_врача требуется вывести текст, в который надо вставить значение некоторой переменной, то это можно сделать с использованием данной функции.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Выход

Инструкция используется для остановки работы текущего дополнительного блока.

Также инструкцию можно использовать в основном блоке. В этом случае происходит переход в конец основного блока и инициируется процедура ожидания завершения работы всего алгоритма.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

    АКТИВИРОВАТЬ_БЛОК(ЗАПРОС,3сек)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

БЛОК ЗАПРОС()

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

                ВЫХОД

КОНЕЦ_БЛОКА

---------------------------------------------------------------------------

 

Задать_значения_из_файла

В программе имеется возможность задания значений переменных алгоритма после компиляции библиотеки при выполнении алгоритма.

Значения переменных задаются в файле с именем библиотеки, расширением dat,

расположенным в папке C:\Angel\Alg. Например переменные библиотеки

GenDiagnostics.dll задаются в файле C:\Angel\Alg\GenDiagnostics.dat в обычной синтаксисе по одному заданию переменной в строке.

В dat-файле можно записывать комментарии после символов //.

В dat-файле можно задавать значения как обычных переменных, так и элементов массива.

 Значения констант считываются при выполнении операции языка ЯОМП ЗАДАТЬ_ЗНАЧЕНИЯ_ИЗ_ФАЙЛА.

Пример:

---------------------------------------------------------------------------

// Пример файла test.txt, из которого  будет компилироваться библиотека:

Переменные: МАССА, РОСТ, ПОЛ, ШКГ, КОМА, АД, ПаСО2, норма_ПаСО2, знач[4]

БЛОК ВХОД

    ЗАДАТЬ_ЗНАЧЕНИЯ_ИЗ_ФАЙЛА

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

//--- пример файла test.dat с заданием переменных:

МАССА=100

РОСТ=181

ПОЛ=1

знач[0]=1

знач[1]=11

знач[2]=12

знач[3]=100

---------------------------------------------------------------------------

 

Остановить_алгоритм

Инструкция используется для остановки работы всего алгоритма.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

    АКТИВИРОВАТЬ_БЛОК(ЗАПРОС,3сек)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

БЛОК ЗАПРОС()

                РОСТ= ВВОД("Введите рост пациента (см)", 70, 260)

                ВЫЗОВ_ВРАЧА("Рост="+Строка(РОСТ))

                остановить_алгоритм

КОНЕЦ_БЛОКА

---------------------------------------------------------------------------

 

Спать_до_ок

Инструкция используется для приостановки работы текущего блока с выдачей диалога, в котором следует нажать на кнопку OK, после чего работа блока продолжается.

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

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

//…

        спать_до_ок(10мин)

//…

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

Разведение

Инструкция используется для задания кратности разведения по умолчанию в последующей инструкции начала введения лекарства.

В единственном параметре инструкции следует указать строку в формате ”КратностьРазведенияxОбъемШприца”.

Пример:

---------------------------------------------------------------------------

Переменные:  Масса

БЛОК ВХОД

    Разведение(“2x20”)

    Ввести_начать (1,ДОПАМИН, 2*Масса мл/час)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

 

Спать

Инструкция используется для простой приостановки работы текущего блока.

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

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: РОСТ

БЛОК ВХОД

//…

        спать(10мин)

//…

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

 

Если/иначе если/иначе/конец_если

Данный набор инструкций представляет собой набор операций для конструирования условного оператор.

Логическое выражение в операторе задается в рамках синтаксиса языка С.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: знач

БЛОК ВХОД

//…

        Если (знач==1) то

          Вывод(”Значение = 1”)

        Иначе Если (знач==2) то

          Вывод(”Значение = 2”)

        Иначе

          Вывод(”Другое Значение”)

        Конец_Если

//…

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Повторять_в_течение/конец_повтора

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

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

//…

        Повторять_в_течение (10сек)

          Вывод(”Тело цикла…”)

        Конец_повтора

//…

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Пока/конец_пока

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

Логическое выражение в операторе задается в рамках синтаксиса языка С.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: Знач

БЛОК ВХОД

//…

        Знач=1

        Пока (Знач<1000)

          Вывод(”Значение=”+Строка(Знач))

          Знач=Знач*2

        Конец_пока

//…

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Выбор

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

Первый аргумент функции задает заголовок диалога.

Далее аргументы следуют парами. Допускается использование до одиннадцати пар.

Первый аргумент в паре задает подпись данного варианта. Второй аргумент в паре задает значение, возвращаемое функцией при выборе данного варианта.

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: продолжительность

БЛОК ВХОД

        продолжительность=ВЫБОР("Продолжительность приступа более 30 сек?", "Да", 1, "Нет", 0)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

 

Мультивыбор

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

Первый аргумент оператора задает заголовок диалога.

Далее аргументы следуют парами. Допускается использование до одиннадцати пар.

Первый аргумент в паре задает подпись около выпадающего списка с вариантами и названия вариантов. Указанные поля разделяются в строке аргумента символом / . Если требуется использовать, собственно, символ / , то это можно сделать, указав его два раза подряд.

По умолчанию изначально в выпадающих списках нет выбранных вариантов. Но если требуется задать вариант по умолчанию сразу при открытии диалога, то следует поместить текст варианта в круглые скобки.

Второй аргумент в паре задает переменную, в которую ляжет номер выбранного варианта. Нумерация идет с 1.

Диалог не закроется, если в каждом заданном выпадающем списке не будет выбран какой-либо вариант.

В конструкции МУЛЬТИВЫБОР имеется возможность задания возвращаемых значений для каждого выбираемого варианта выпадающего списка. Для этого сразу после текста варианта выпадающего списка (внутри кавычек) надо написать =ЗНАЧЕНИЕ, где ЗНАЧЕНИЕ - требуемое значение.

 

Пример:

---------------------------------------------------------------------------

// Пример

Переменные: а, б

БЛОК ВХОД

        МУЛЬТИВЫБОР("тестирование мультивыбора", "Вариант a:/Вариант a//1=1.1/(Вариант a//2=2.2)/Вариант a//3/Вариант a//4=-4.e4",а , "Вариант b:/Вариант a//1=1.1/(Вариант a//2=2.2)/Вариантa//3=3.3/Вариантa//4=4.4",б )

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

Здесь в первом выпадающем списке будут строки:

Вариант a/1

Вариант a/2

Вариант a/3

Вариант a/4

Им соответствуют возвращаемые значения: 1.1, 2.2, 3, -40000.

По умолчанию отображается вторая строка.

 

---------------------------------------------------------------------------

 

Тест_Начать

Данная функция начинает этап тестирования инфузоматов.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

ТЕСТ_НАЧАТЬ

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(0)

  ПОВТОРЯТЬ_В_ТЕЧЕНИЕ(10час)

  //--

   ВВЕСТИ_НАЧАТЬ(1, добутамин, 10мг/час)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 1)

    СПАТЬ(2сек)

   ЗАКОНЧИТЬ_ВВЕДЕНИЕ(1)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 0)

    СПАТЬ(2сек)

  //--

  КОНЕЦ_ПОВТОРА

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(1)

 ТЕСТ_ЗАКОНЧИТЬ

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

Тест_Закончить

Данная функция заканчивает этап тестирования инфузоматов вместе с выводом информации, полученной в результате тестирования.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

ТЕСТ_НАЧАТЬ

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(0)

  ПОВТОРЯТЬ_В_ТЕЧЕНИЕ(10час)

  //--

   ВВЕСТИ_НАЧАТЬ(1, добутамин, 10мг/час)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 1)

    СПАТЬ(2сек)

   ЗАКОНЧИТЬ_ВВЕДЕНИЕ(1)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 0)

    СПАТЬ(2сек)

  //--

  КОНЕЦ_ПОВТОРА

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(1)

 ТЕСТ_ЗАКОНЧИТЬ

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

Тест_Проверить_Ввод

Данная функция используется на этапе тестирования инфузоматов. Функция проверяет – выполняется/не выполняется ли данным ифузоматом операция введения.

Первый параметр – номер инфузомата.

Второй параметр – определяет вид тестирования: если параметр равен 1, но данный инфузомат не осуществляет ввод, либо если параметр равен 0, но данный инфузомат осуществляет введение, то фиксируется ошибка. При этом отдельно насчитывается общее количество ошибок для параметра, равного 0, и параметра, равного 1. Насчитанное количество ошибок выводится в виде сообщения через каждый 10 проверок и при отработке функции Тест_Закончить.

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

ТЕСТ_НАЧАТЬ

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(0)

  ПОВТОРЯТЬ_В_ТЕЧЕНИЕ(10час)

  //--

   ВВЕСТИ_НАЧАТЬ(1, добутамин, 10мг/час)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 1)

    СПАТЬ(2сек)

   ЗАКОНЧИТЬ_ВВЕДЕНИЕ(1)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 0)

    СПАТЬ(2сек)

  //--

  КОНЕЦ_ПОВТОРА

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(1)

 ТЕСТ_ЗАКОНЧИТЬ

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

Тест_Выдавать_Запросы

Данная функция устанавливает/убирает требование вывода подтверждения на каждую операцию введения инфузоматов.

Единственный параметр = 0, если не требуется вывод запроса на подтверждение операций введения и =1, если подтверждения треуются (=стандартное поведение).

Пример:

---------------------------------------------------------------------------

// Пример

БЛОК ВХОД

ТЕСТ_НАЧАТЬ

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(0)

  ПОВТОРЯТЬ_В_ТЕЧЕНИЕ(10час)

  //--

   ВВЕСТИ_НАЧАТЬ(1, добутамин, 10мг/час)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 1)

    СПАТЬ(2сек)

   ЗАКОНЧИТЬ_ВВЕДЕНИЕ(1)

    СПАТЬ(2сек)

   ТЕСТ_ПРОВЕРИТЬ_ВВОД(1, 0)

    СПАТЬ(2сек)

  //--

  КОНЕЦ_ПОВТОРА

 ТЕСТ_ВЫДАВАТЬ_ЗАПРОСЫ(1)

 ТЕСТ_ЗАКОНЧИТЬ

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

---------------------------------------------------------------------------

ТекущееВремя

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

После имени функции скобки не пишутся.

Пример:

---------------------------------------------------------------------------

// Пример

//===========================

Переменные:  МассивДата[6], ПеременнаяМинуты

Строки:

//===========================

БЛОК ВХОД

//примеры использования:

МассивДата = Дата(ПеременнаяМинуты)

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)

ПеременнаяМинуты = ТекущиеМинуты

//пример задания времени через полчаса от текущего

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)+30

МассивДата = Дата(ПеременнаяМинуты)

Вызов_Врача("часов="+строка(МассивДата[3])+" минут="+строка(МассивДата[4])+" секунд="+строка(МассивДата[5]))

КОНЕЦ_БЛОКА

//===========================

ТекущиеМинуты

Данная функция возвращает текущее время в минутах (от некоторого определенного времени).

После имени функции скобки не пишутся.

Пример:

---------------------------------------------------------------------------

// Пример

//===========================

Переменные:  МассивДата[6], ПеременнаяМинуты

Строки:

//===========================

БЛОК ВХОД

//примеры использования:

МассивДата = Дата(ПеременнаяМинуты)

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)

ПеременнаяМинуты = ТекущиеМинуты

//пример задания времени через полчаса от текущего

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)+30

МассивДата = Дата(ПеременнаяМинуты)

Вызов_Врача("часов="+строка(МассивДата[3])+" минут="+строка(МассивДата[4])+" секунд="+строка(МассивДата[5]))

КОНЕЦ_БЛОКА

//===========================

Дата

Данная функция возвращает массив длины 6 с временем, полученным из времени, заданным в минутах.

Единственный параметр = переменная, в которой лежит время, заданное в минутах(от некоторого определенного времени).

Пример:

---------------------------------------------------------------------------

// Пример

//===========================

Переменные:  МассивДата[6], ПеременнаяМинуты

Строки:

//===========================

БЛОК ВХОД

//примеры использования:

МассивДата = Дата(ПеременнаяМинуты)

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)

ПеременнаяМинуты = ТекущиеМинуты

//пример задания времени через полчаса от текущего

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)+30

МассивДата = Дата(ПеременнаяМинуты)

Вызов_Врача("часов="+строка(МассивДата[3])+" минут="+строка(МассивДата[4])+" секунд="+строка(МассивДата[5]))

КОНЕЦ_БЛОКА

//===========================

Доза

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

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

Пример:

---------------------------------------------------------------------------

// Пример

Переменные:  Масса

БЛОК ВХОД

    Доза (2, “мл/кгчас”)

    Ввести_начать (1,ДОПАМИН, 2*Масса мл/час)

КОНЕЦ_БЛОКА // конец БЛОК ВХОД

//===========================

Минуты

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

Единственный параметр = массив, в котором лежит время (год.,месяц,день,час,минуты,секунды).

Пример:

---------------------------------------------------------------------------

// Пример

//===========================

Переменные:  МассивДата[6], ПеременнаяМинуты

Строки:

//===========================

БЛОК ВХОД

//примеры использования:

МассивДата = Дата(ПеременнаяМинуты)

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)

ПеременнаяМинуты = ТекущиеМинуты

//пример задания времени через полчаса от текущего

МассивДата = ТекущееВремя

ПеременнаяМинуты = Минуты(МассивДата)+30

МассивДата = Дата(ПеременнаяМинуты)

Вызов_Врача("часов="+строка(МассивДата[3])+" минут="+строка(МассивДата[4])+" секунд="+строка(МассивДата[5]))

КОНЕЦ_БЛОКА

//===========================

---------------------------------------------------------------------------