Это старая версия документа.
Статус пациента в расписании
В расписании возможно выделение пациента цветом. При указании статуса для назначения, оно выделяется определенным фоном. Список фонов располагается в «Справочники» → «Персонал/Расписание» → «Справочники расписания» → «Типы назначений пациента»
Правила задания при автоматической постановке фонов задается через Классификатор НСИ «Автоматическая постановка повода назначения [-7900990]
» и регулируется триггером «USER$SCHEDULE_POVOD» на таблице с расписанием (SCHEDULE
)
CREATE OR ALTER TRIGGER USER$SCHEDULE_POVOD FOR SCHEDULE active BEFORE INSERT OR UPDATE POSITION 5 AS DECLARE astatus TYPE OF COLUMN schedule.status; 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 astatus do BEGIN NEW.status = astatus; 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 astatus do BEGIN NEW.frompid = astatus; END END END END