Перейти к основному содержимому

Системные уведомления

Справочник открывается по кнопке Справочники на панели инструментов стартового меню программы, пункт меню: Системные справочники > Системные уведомления.

Доступ к справочнику регламентируется правом доступа: Системные уведомления.

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

  • проверка на наличие какого-либо документа по пациенту (договора, согласия на мед. вмешательство);
  • проверка на заполнение какого-либо реквизита в карточке, записи на прием, приеме и т.д.;
  • проверка на допустимое количество каких-либо единиц в системе, например, плановых или внеплановых записях на прием.

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

Справочник системных уведомлений. Общий вид

Окно состоит из панели инструментов, панели фильтров, таблицы уведомлений, блока вкладок в правой части формы: Типы уведомлений, Параметры уведомлений и Параметры действий, блока вкладок Запрос, Описание и Запрос для выполнения в фоновом процессе в нижней части окна и панели подсказки.

Кнопки панели инструментов:

  • Обновить – обновляет таблицу системных уведомлений.

  • Добавить – варианты выбора:

    • Добавить системное уведомление – добавляет новое уведомление в таблицу системных уведомлений. Возможно множественное добавление уведомлений.
    • Добавить системную блокировку – добавляет новую системную блокировку.
  • Удалить – удаляет выбранное уведомление из таблицы.

  • Сохранить – сохраняет внесенные изменения.

  • Отменить – отменяет внесенные изменения.

  • Справочник системных уведомлений – кнопка отображается, если право доступа Системные уведомления в положении "Редактирование". По кнопке открывается Справочник типов уведомлений. Это системный справочник, который содержит список всех типов уведомлений.

  • Выход.

Элементы панели фильтров:

  • Филиал, где добавлено событие – по кнопке "..." открывается диалоговое окно для выбора филиала.
  • Тип уведомления – по кнопке "..." открывается диалоговое окно со списком имеющихся в системе типов уведомлений.
  • Наименование – поле для ввода значения вручную. Поиск по колонке Наименование.
  • Запрос – поле для ввода значения вручную. Поиск по вкладке Запрос.

Колонки таблицы системных уведомлений:

РеквизитОписание
НаименованиеНаименование уведомления.
ИспользуетсяФлаг, активирующий уведомление.
Выполнение запроса в write транзакцииФлаг должен быть установлен, если в процессе работы запроса системного уведомления необходимо записывать данные в БД (например, регистрировать событие в системный журнал).
Выполненять в ЦБДФлаг должен быть установлен, если запрос системного уведомления должен выполняться по ЦБД. В случае, если в справочнике филиалов нет БД с признаком "ЦБД", при выполнении запроса выводится сообщение об ошибке. В случае, если отключена синхронизация с ЦБД, при выполнении запроса выводится сообщение об ошибке. Если нет доступа к ЦБД, выводится сообщение об ошибке и текст, заданный в справочнике.
Текст ошибкиПоле для ввода значения вручную.
Управление действием в событииРегламентирует работу со Стандартными действиями, заданными в одноименной колонке. Варианты выбора: ; "Управление действием в событии" – при срабатывании системного уведомления выводится диалоговое окно с сообщением о необходимости выполнения действия. Если в колонке Возможность отмены при предупреждении установлен флаг и системное уведомление вернуло checkcode=1, пользователь может как выбрать исполнение действия "Да", так и отказаться от выполнения действия. В зависимости от выбора пользователя система работает следующим образом: ; "Да" – выполняется стандартное действие, затем продолжается основное;; "Нет" – стандартное действие пропускается, продолжается основное. Если в запросе использован параметр actres, переданный в составе checktext, в зависимости от значения параметра система работает следующим образом: ; actres=0 (по умолчанию) – основное действие продолжается без сохранения сущности, использованной в стандартном действии (карточки регистрации, свободного протокола).; actres=1 – основное действие не продолжается, если не было сохранения сущности, использованной в стандартном действии (карточки регистрации, свободного протокола). ; "Всегда предупреждать" – сначала выполняется действие, привязанное к уведомлению, после чего продолжается основное действие. После закрытия сущности, с которой связано уведомление, действие продолжается. Если в колонке Возможность отмены при предупреждении установлен флаг и системное уведомление вернуло checkcode=1, пользователь может как выбрать исполнение действия "Да", так и отказаться от выполнения действия. В зависимости от выбора пользователя система работает следующим образом: ; "Да" – выполняется стандартное действие, затем продолжается основное;; "Нет" – стандартное действие не выполняется, основное действие блокируется. Если в запросе использован параметр actres, переданный в составе checktext, в зависимости от значения параметра система работает следующим образом: ; actres=0 (по умолчанию) – основное действие продолжается без сохранения сущности, использованной в стандартном действии (карточки регистрации, свободного протокола).; actres=1 – основное действие не продолжается, если не было сохранения сущности, использованной в стандартном действии (карточки регистрации, свободного протокола). ; "Всегда блокировать". Обратите внимание: ; Системное уведомление простое и связанное с действием работают одинаково.; Параметры для стандартного действия всегда передаются в checktext. Пример запроса для системного уведомления с привязанным действием "Свободный протокол для пациента из картотеки" mractiontype.actid = 23 select 'Для исполнения прививки необходимо заполнить протокол «Осмотр врача перед вакцинацией». Перейти к заполнению протокола?##placeid=910000010##pol=1##PCODE=60042351##actres=1' CHECKTEXT, 1 CHECKCODE from dual
ФилиалФилиал создания уведомления. Колонка недоступна для редактирования.
Возможность отмены при предупрежденииЕсли при выполнении пользовательского системного уведомления появится ошибка с кодом (1) ("проверка не прошла") и флаг установлен, выводится сообщение с двумя альтернативами: "продолжить работу" или "отменить действие".
Выполнить запрос в фоновом процессеРегламентирует возможность выполнения запросов в фоне. Варианты выбора: ; "Не выполнять" – уведомление не работает в фоновом режиме.; "С уведомлением перед выполнением" – выполнение фонового запроса выполняется отдельным консольным приложением CheckExecute.exe. Перед запуском приложения выводится информационное сообщение.; "Без уведомления перед выполнением" – выполнение фонового запроса выполняется отдельным консольным приложением CheckExecute.exe.
Стандартное действиеПо кнопке "..." открывается диалоговое окно со списком предусмотренных в системе стандартных действий. Для работы с системными уведомлениями доступны следующие действия: ; "Карта вызова ПНД" – открывает карточку вызова ПНД. ; "Пациент" – открывает карточку регистрации пациента.; "Создать направление" – открывает форму создания направления.; "Свободные протокол для пациента из картотеки" – создает свободный протокол ИБ. Действие будет выполнено автоматически при срабатывании системного уведомления. Если срабатывают несколько системных уведомлений, подразумевающие несколько действий, эти действия будут выполнены последовательно.
Выполнять обособленноФлаг, при установке флага уведомление выполняется обособленно.
Порядок сортировкиКолонка для ввода числового значения. Уведомления обрабатываются по-очереди, согласно указанной сортировке. Уведомления с незаполненной колонкой проверяются последними.
Вид системного уведомленияВарианты выбора: ; "Системное уведомление";; "Системная блокировка".

Вкладка "Типы уведомлений"​

На вкладке Типы уведомлений настраиваются контрольные точки: точки программы, в которых должен выполняться запрос.

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

Кнопки панели инструментов:

  • Добавить – добавляет новый тип уведомления из Справочник типов уведомлений. Справочник типов уведомлений является системным, редактировать его невозможно.
  • Удалить – удаляет выбранное уведомление из таблицы.

Колонки таблицы типов уведомлений:

  • Тип уведомления – наименование типа уведомления.
  • Уведомление обрабатывается в write-транзакции – при установке флага уведомление обрабатывается в write-транзакции.

Вкладка "Параметры уведомлений"​

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

Всегда передаются следующие параметры:

  • CHECKTYPE и ADATE – передаются всегда, но могут принимать разные значения в зависимости от контрольной точки. CHECKTYPE может использоваться для определения места возникновения события на уровне запроса уведомления (если запрос универсальный и используется в разных точках).
  • PASSWORD – передается пароль к базе данных. Потребуется для подключения к БД других филиалов
  • CDBSTATUS, LASTCONNECT – передает статус подключения к ЦБД. CDBSTATUS может принимать следующие значения:
    • -1 – не филиальная структура или текущий филиал является ЦБД;
    • -2 – отключена синхронизация с ЦБД;
    • 0 – связи с ЦБД нет;
    • 1 – успешное подключение к ЦБД.

Для CDBSTATUS со статусом -2, 0 и 1 в LASTCONNECT передается дата и время последнего успешного подключения к ЦБД (для CDBSTATUS со значением -1 в LASTCONNECT передается значение NULL).

Вкладка "Параметры действий"​

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

Вкладка "Запрос"​

Вкладка Запрос содержит текст SQL запроса, который должен вернуть результат проверки.

Панель "Запрос" справочника. Отображается запрос для выделенного уведомления. Общий вид.

Запрос должен быть построен таким образом чтобы возвращать два поля:

  • CheckText. Текстовое сообщение о результате проверки.
  • CheckCode. Код результата проверки:
  1. Проверка прошла успешно. Сообщения не выдаются

  2. Проверка не прошла, выдается только предупреждение из CHECKTEXT

  3. Проверка не прошла, сообщение CHECKTEXT и блокировка следующего действия.

В случае если для контрольной точки настроено несколько запросов, то результатом считается MAX(CheckCode).

Если Max(CheckCode) =1, сообщение будет сформировано из CheckText ВСЕХ запросов, которые выполнялись в контрольной точке.

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

  • Button1= – заменять лейбл кнопки "Ок" на значение, указанное в Button1.
  • Button2= –  заменять лейбл кнопки "Отмена" на значение, указанное в Button2.
  • FormName= – заменять заголовок формы на значение, указанное в FormName.

Все управляющие конструкции отделяются друг от друга последовательностью ##, например, check_text может выглядеть так:

Документ нельзя будет изменить никогда!##Button1=Продолжить##Button2=ОТМЕНА##FormName=Заголовок формы диалога
text

Пример вида запроса

Контрольная точка: "Открытие карточки"

select case
when coalesce(c.nationalid, 0) > 0 then 0 else 1 end checkcode,
case when coalesce(c.nationalid,0) > 0 then ''
else ' Укажите гражданство ' end checktext
from clients c where c.pcode = :pcode
sql

Вкладка "Описание"​

Вкладка Описание предназначена для ручного ввода описания работы конкретного уведомления.

Вкладка "Запрос для выполнения в фоновом процессе"​

Вкладка предназначена для ручного ввода запроса. Подсказка для написания запроса расположена в нижней части вкладки на желтом поле.

Системная блокировка​

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

При выполнении конкретных действий пользователем, система выполняет следующие действия:

  • Существует ли в справочнике системное уведомление, для которого в колонке Вид системного уведомления установлено значение "Системная блокировка".
  • Для этого типа системного уведомления добавлено ли на вкладку Типы уведомлений действие, выполняемое пользователем.
  • Если проверки пройдены успешно, выполняется запрос на вкладке Запрос.
  • Если запрос вернул checkcode = 2, то действие пользователя выполняется в режиме "Только чтение": все поля формы будут заблокированы от редактирования, все кнопки будут не активны.

Типы уведомлений, для которых доступна системная блокировка:

Тип уведомленияПоведение системы при системной блокировке
Открытие лечения (приема)Если запрос системного уведомления вернул checkcode = 2, то прием будет открываться в режиме "Только чтение" (все поля заблокирована от редактирования, все кнопки не активны).
Была ли статья полезна?