Навигация:  МОДУЛЬ "УЧЕТ УСЛУГ" > ИМПОРТ ДАННЫХ МОДУЛЯ "УЧЕТ УСЛУГ" > Импорт прикреплений пациентов >

Конфигурация импорта

Предыдущая страницаВернуться в начало главыСледующая страница

Понятие конфигурации импорта и описание основных параметров импорта приведены в разделе Общие сведения об импорте данных модуля "Учет услуг".

Настроенные конфигурации импорта прикреплений хранятся на локальном компьютере, с которого будет запускаться процесс импорта, в рабочем каталоге МЕДИАЛОГ в файле ImportClinkPatients.xml.

Примечание. До версии 7.20 конфигурации импорта хранились в виде файла import.ini. При первом запуске импорта прикреплений пациентов в МИС МЕДИАЛОГ версии 7.20 и выше система конвертирует старые настройки импорта, хранящиеся в файле import.ini, и создаст новый файл конфигурации ImportClinkPatients.xml.

Системные поля таблицы импорта

При импорте прикреплений в основную таблицу импорта МИС МЕДИАЛОГ автоматически добавляет системные поля, необходимые для обработки данных при импорте:

_PATIENTS_ID int– ID пациента, который был найден или создан в базе данных МЕДИАЛОГ;
_FM_CLINK_ID int– ID медицинской программы, которая была найдена или создана в базе данных МЕДИАЛОГ;
_FM_CLINK_PATIENTS_ID int– ID прикрепления пациента, которое было найдено или создано в базе данных МЕДИАЛОГ;
_STATUS int – статус обработки записи;
_ERR_TEXT varchar (2000)– текст ошибки обработки импортируемой записи.

При формировании SQL-запроса импорта в него необходимо добавить соответствующие параметры.

Вкладка "Выбор пациента"

При обработке каждой импортируемой записи о прикреплении пациента система ищет в базе данных МЕДИАЛОГ прикрепления пациентов, совпадающих по фамилии, имени, отчеству, дате рождения и номеру полиса. Если такие пациенты найдены, то система определяет наличие потенциальных "двойников" и выдает пользователю окно Обработка конфликтных пациентов (рис. 14.4.7), в котором необходимо указать актуальные прикрепления пациента.

В окне Настройка импорта на вкладке Выбор пациента (рис. 14.4.2) можно задать условия поиска прикрепления и определения "двойников".

 Рисунок 14.4.2. Поиск пациента


Рисунок 14.4.2. Поиск пациента

В строке Дополнительные поля для поиска прикрепления по кнопке ... следует указать поля системной таблицы Прикрепленные пациенты (FM_CLINK_PATIENTS), по которым будет идентифицироваться прикрепление пациента. Прикрепления сравниваются по номеру полиса (поле POLICE) и дополнительным полям. Если поля поиска не заданы, то прикрепление ищется только по номеру полиса (поле POLICE).

В процессе импорта не обновляются поля, выбранные в качестве полей поиска, в том числе поле POLICE (Номер полиса).

Использование дополнительных полей поиска актуально, когда номер полиса (значения поля POLICE) является уникальным для застрахованного человека в рамках договора или хотя бы в рамках одной медицинской программы. При выполнении импорта должна быть возможность аннуляции импортируемой записи с номером полиса, для которого в базе данных МЕДИАЛОГ уже существует одно или несколько прикреплений. Поэтому рекомендуется при поиске прикрепления учитывать дополнительно даты прикрепления (DATE_FROM, DATE_TO).

Тип поля поиска в таблице импорта обязательно должен соответствовать типу данных соответствующего поля в базе данных МЕДИАЛОГ. При использовании в качестве полей поиска полей DATE_FROM и DATE_TO, они должны иметь тип Дата. Если производится преобразование данных SQl-запросом импорта, то корректный тип данных следует задать для соответствующего поля запроса. Если в SQL-запросе импорта нет обработки, то соответствующий тип данных должен быть задан в ячейках файла импорта.

Также на вкладке Выбор пациента в поле Формат отображения доп. информации о пациенте следует указать, какие поля из таблицы импорта должны отображаться в окне обработки прикреплений-"двойников" и в каком виде. Дополнительная информация отображается в верхнем разделе окна обработки конфликтных пациентов (рис. 14.4.7). Обращение к полю таблицы импорта следует указывать в формате %Имя_поля%. Пример соответствующей настройки показан на рис. 14.4.2.

Скрипт обработки медицинской программы

На вкладке SQL (медпрограмма) (рис. 14.4.3) конфигурации импорта можно задать SQL-скрипт обновления медицинской программы страхования, позволяющий обрабатывать сложные структуры данных непосредственно внутри программы.

 Рисунок 14.4.3. SQL (медпрограмма)


Рисунок 14.4.3. SQL (медпрограмма)

Примеры применения скрипта обновления медицинской программы:

·обработка рисков по медицинской программе;

·добавление или изменение наборов услуг, оказываемых по медицинской программе;

·добавление или изменение условий страхования по медицинской программе;

·выполнение дополнительного контроля.

Скрипт обновления медицинской программы выполняется импортом только в том случае, когда происходит обновление существующей или создание новой медицинской программы, сразу после добавления данных в системные таблицы. При этом в скрипт будет передан ID текущей записи из основной таблицы импорта, в поле _FM_CLINK_ID которой уже прописан ID обрабатываемой медицинской программы.

При написании скрипта используется синтаксис языка SQL. Для обращения к текущей записи таблицы импорта используется параметр :IMPORT_RECORD_ID. Использование оператора GO не поддерживается при выполнении скрипта обработки.

Пример скрипта обновления медицинской программы

/* Добавляем условия страхования для всех новых прикреплений. */

set NOCOUNT on

update FM_CLINK

set FM_INSCOND_ID = imp_pr.FM_INSCOND_ID

   from FM_CLINK as fm_c

        inner join IMP_INSURANSE as imp_i

                on (imp_i._FM_CLINK_ID = fm_c.FM_CLINK_ID)

        inner join IMP_PROGRAMS as imp_pr

                on imp_pr.PROGRAM = imp_i.PROGRAM

where imp_i.IMP_INSURANSE_ID = :IMPORT_RECORD_ID and isnull(imp_pr.IS_EXIST, 0) = 0

/* Добавляем наборы услуг, оказываемых по медицинской программе. */

declare @CLINK_PROG_ID int, @PROG_ID int, @CLINK_ID int

declare CURSOR_CLINK_PROG cursor local FORWARD_ONLY for

 select distinct fm_c.FM_CLINK_ID, imp_i_s.FM_PROG_ID

   from FM_CLINK AS FM_C

        inner_join IMP_INSURANSE as imp_i

                on imp_i._FM_CLINK_ID = fm_c.FM_CLINK_ID

        inner_join IMP_PROGRAMS as imp_pr

                on imp_pr.PROGRAM = imp_i.PROGRAM

        inner_join IMP_INSURANSE_SERVICES as imp_i_s

                on imp_i_s.PROGRAM = imp_i.PROGRAM

where imp_i.IMP_INSURANSE_ID = :IMPORT_RECORD_ID and isnull(imp_pr.IS_EXIST, 0) = 0

 

open CURSOR_CLINK_PROG

fetch next from CURSOR_CLINK_PROG into @CLINK_ID, @PROG_ID

while @@FETCH_STATUS = 0

BEGIN

 exec UP_GET_ID @KEYNAME = 'FM_CLINK_PROG', @SHIFT = 1, @ID = @CLINK_PROG_ID output

   insert into FM_CLINK_PROG (FM_CLINK_PROG_ID, FM_CLINK_ID, FM_PROG_ID, CANCEL, CANCEL_AN)

   values(@CLINK_PROG_ID, @CLINK_ID, @PROG_ID, 0, 0)

 fetch next from CURSOR_CLINK_PROG into @CLINK_ID, @PROG_ID

END

close CURSOR_CLINK_PROG

deallocate CURSOR_CLINK_PROG