Содержание
Статус пациента в расписании
В расписании возможно выделение пациента цветом. При указании статуса для назначения, оно выделяется определенным фоном.
Список фонов располагается в стандартном справочнике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