В процессе импорта система последовательно обрабатывает записи, возвращенные SQL-запросом импорта, при этом производятся все необходимые проверки и обновления данных, заданные в коде программы, и заполнение системных полей в основной таблице импорта.
Если есть необходимость дополнительной обработки каждой импортируемой записи после добавления данных в системные таблицы (т.е. сразу после создания или обновления услуги), то в окне Настройка импорта на вкладке SQL (обработка записи) можно указать SQL-скрипт (рис. 14.1.9).
Примеры применения скрипта обработки записи:
·добавление признака "Статус прикрепления" (например, STANDART, VIP, SUPER-VIP и т.п.);
·добавление информации о риске прикрепления;
·заполнение поля _PATIENTS_ID – ID найденного пациента (если _PATIENTS_ID заполнен скриптом, поиск потенциальных дубликатов при импорте не производится).
Для написания скрипта используется синтаксис языка SQL. Для обращения к текущей записи таблицы импорта используется параметр :IMPORT_RECORD_ID. Использование оператора GO не поддерживается при выполнении скрипта обработки.
Рисунок 14.1.9. SQL (обработка записи)
Пример скрипта обработки записи
/* Для каждой новой записи о прикреплении добавляем признак "Статус прикрепления", значения которого берем из соответствующего справочника в МИС МЕДИАЛОГ. */
set NOCOUNT on
update FM_CLINK_PATIENTS
set USER_CP_STATUS_REF_ID = u_cp_s.USER_CP_STATUS_REF_ID
from FM_CLINK_PATIENTS as fm_cp
inner join IMP_INSURANSE as imp_i
on imp_i._FM_CLINK_PATIENTS_ID = fm_cp.FM_CLINK_PATIENTS_ID
inner join USER_CP_STATUS_REF as u_cp_s
on (u_cp_s.STATUS = imp_i.POLICE_TYPE)
where imp_i.IMP_INSURANSE_ID = :IMPORT_RECORD_ID and isnull (imp_i.IS_EXIST, 0) = 0