Статус пациента в расписании

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

Список фонов располагается в стандартном справочнике1)
«Справочники» → «Персонал/Расписание» → «Справочники расписания» → «Типы назначений пациента»

Справочник

Правила задания при автоматической постановке фонов задается через Классификатор НСИ «Автоматическая постановка повода назначения [-7900990]»

Классификатор имеет следующие поля:

Название Соответствие таблицы
DICINFO
Назначение
Повод назначения (уст)rekvint1Установка значенияУстановка статуса назначения, для последующей раскраски фона
Источник записи (уст)rekvint2Изменение источника записи для последующего разделения в отчетности
СотрудникdcodeПроверка значенияПроверка по сотруднику, который записывает пациента
Договорrekvint4Проверка по договору, указанному в назначении или основному договору указанному в карточке регистрации пациента
Источник записиrekvint5Проверка по источнику записи пациента

Триггер

Регулируется триггером «USER$SCHEDULE_POVOD» на таблице с расписанием (SCHEDULE)

CREATE OR ALTER TRIGGER USER$SCHEDULE_POVOD FOR SCHEDULE
active BEFORE INSERT OR UPDATE POSITION 5
AS
DECLARE new_sta TYPE OF COLUMN schedule.status;
DECLARE new_pid TYPE OF COLUMN phprogrref.pid;
DECLARE cur_uid TYPE OF COLUMN doctor.dcode;
DECLARE cur_jid TYPE OF COLUMN jpagreement.agrid;
DECLARE cur_pid TYPE OF COLUMN phprogrref.pid;
BEGIN
  IF (EXISTS(SELECT * FROM repl$getaccess WHERE repl$access = 'USER')) THEN
  BEGIN
    -- получение данных
    SELECT current_uid FROM s_session_info INTO cur_uid;
    SELECT COALESCE(NEW.agrid, jid, 0) FROM clients WHERE pcode = NEW.pcode INTO cur_jid;
    cur_pid = NEW.frompid;
 
    -- установка повода назначения
    IF (COALESCE(NEW.status,0)=0) THEN
    BEGIN
      FOR SELECT FIRST 1 rekvint1 FROM dicinfo d WHERE d.refid=-7900990
             AND d.rekvint1 IS NOT NULL
             AND ( d.dcode= :cur_uid OR d.rekvint4= :cur_jid OR d.rekvint5= :cur_pid )
           ORDER BY sign(COALESCE(d.dcode,0))+sign(COALESCE(d.rekvint4,0))+sign(COALESCE(d.rekvint5,0)) DESC
      INTO new_sta do
      BEGIN
        NEW.status = new_sta;
      END
    END
 
    -- установка внешнего источника записи
    IF (COALESCE(NEW.frompid,0)=0) THEN
    BEGIN
      FOR SELECT FIRST 1 rekvint2 FROM dicinfo d WHERE d.refid=-7900990
             AND d.rekvint2 IS NOT NULL
             AND ( d.dcode= :cur_uid OR d.rekvint4= :cur_jid OR d.rekvint5= :cur_pid )
           ORDER BY sign(COALESCE(d.dcode,0))+sign(COALESCE(d.rekvint4,0))+sign(COALESCE(d.rekvint5,0)) DESC
      INTO new_pid do
      BEGIN
        NEW.frompid = new_pid;
      END
    END
  END
END
1)
актуально для версии 17.1

расширенная.настройка/расписание/статус.пациента.txt · Последние изменения: 2018/07/25 09:42 (внешнее изменение)