Основные шаги
- Отбор данных, которые необходимо отправить в ФРЛЛО и помещение их в справочник тмб_ФедеральныеВебСервисыОбъектыОтправки.
- Формирование документов xml, содержащих данные для передачи в ФРЛЛО
- Подписание xml и формирование транспортного пакета
- Отправка сформированного пакета в ФРЛЛО
- Обработка синхронного ответа
- Ожидание и обработка асинхронного ответа
- Передача подтверждения приема синхронного ответа
Регламентное задание (выполнение пунктов 1-5):
Общий модуль "тмб_ФРЛЛО" метод "СформироватьДанныеДляПомещенияВОбъектыОтправки":
Работа регламентного задания регулируется значением константы "Использовать интеграцию с ФРЛЛО".
Выбор данных на отправку и формирование документов xml. Выбираются данные за период, который рассчитаывается исходя из текущей дати и значения константы "Количество дней для отбора данных ФРЛЛО".
Начало периода = Начало дня ("Текущая дата" - "Количество дней для отбора данных ФРЛЛО")
Конец периода = Конец дня ("Текущая дата").
Выбранные данные попадают в справочник "Федеральные веб сервисы объекты отправки". Выбираются следующие объекты:
Льготы (документ "Изменение льготы (тмб)"), которые были изменены или созданы за период (наличие записей в регистре ЛьготыПациента.СрезПоследних за период); Льгота не должны быть отправлена ранее (в РС "Идентификаторы сведений о льготах" нет записей с отбором по регистратору - документу "Изменение льготы (тмб)");
Рецепты (документ "Льготное лекарственное обеспечение"), по которым имеется документ "Внутреннее потребление товаров". Льготы пациента, которому выписывался рецепт, должны быть ранее отправлены в ФРЛЛО (проверяется наличие записи РС "Идентификаторы сведений о льготах" по пациенту); Отпущенный рецепт не должен быть ранее отправлен (проверяется наличие записи в РС "Идентификаторы назначений в ФРЛЛО" по рецепту);
Отпуск рецептов (документ "Внутреннее потребление товаров"). Отбираются все документы, созданный за период, которые ранее не были отправлены в ФРЛЛО (проверяется РС "Идентификаторы отпусков в ФРЛЛО") и по которым имеется рецепт, ранее отправленный в ФРЛЛО (проверяется РС "Идентификаторы назначений в ФРЛЛО");
Персонифицированная заявка по пациенту. Отбираются все проведенные документы, созданные за период, которые раннее не были зарегистрированы в ФРЛЛО (проверяется РС "Идентификаторы персонифицированных заявок ФРЛЛО").
Запускается обработка объектов, помещенных в справочник "Федеральные веб сервисы объекты отправки".
- Обрабатываются объекты, имеющие статус "На отправку";
- Формируется транспортный конверт, с помощью сертификата, указанного в константе "Сертификат подписи сообщений SOAP", подписывается тело сообщения
- Происходит отправка в ФРЛЛО.
- Обрабатывается синхронный ответ. В случае успешной передачи изменяется статус Объекта на "Подтверждено синхронно". При ошибке - "Ошибка отправки" и записывается текст ошибки в регистр со статусами ("Федеральные веб сервисы статусы объектов отправки");
Ожидание асинхронного ответа.
Для этого был создан HTTP сервис ФедеральныеВебСервисы.FRLLOCallback. Для запуска этого сервиса пользователю необходима роль "Старт веб сервиса ФРЛЛО (тмб)". Для ФРЛЛО публикация происходит с зашитым пользователем Web_FRLLO. Дополнительных прав не требуется, т.к. обработка происходит в привелегированном режиме.
Прием входящего запроса Общий модуль "ФедеральныеВебСервисыФРЛЛО" метод "sendResponse";
- По ИдДокумента в запросе вычисляется объект отправки (Справочник "Федеральные веб сервисы объекты отправки" реквизит "Идентификатор документа");
- Разархивируется входящий файл. Проверяется количество файлов в архиве. Если файлов > 1, значит в передаваемых данных была ошибка структуры. Статус объекта отправки меняется на "Ошибка пакета";
- Если файлов = 1, то файл добавляется в прикрепленные файлы и происходит его обработка.
- Исходя из значения МетодВзаимодействия справочника "Федеральные веб сервисы объекты отправки" выбирается алгоритм обработки данных, но принцип везде похож: Если статус записи в обрабатываемом файле имеет код 200 или 208, то создается запись в соответствующем РС: "Идентификаторы сведений о льготах в ФРЛЛО" - льготы "Идентификаторы назначений в ФРЛЛО" - назначения "Идентификаторы отпусков в ФРЛЛО" - отпуски "Идентификаторы персонифицированных заявок ФРЛЛО" - персонифицированные заявки
- Изменяется статус объекта отправки на "Зарегистрировано" - в случае кода 200 или 208. "Ошибка пакета" - код 400;
Формирование ответа - подтверждения. Подпись, отправка.
Логирование HTTP запросов (входящие, исходящие)
Информация записывается в регистр "Логирование сообщения с федеральными web сервисами". Активация функции логирования осуществляется константой "Использовать логирования сообщений с федеральными web сервисами";
Логирование ошибок формирования xml
В момент формирования документов xml могут возникать ошибки заполнения данных. Для их фиксации создан регистр "Логирование сообщений ФРЛЛО (тмб)";
Описание интерфейса:
- Инструменты необходимые для взаимодействия с ФРЛЛО расположены в подсистеме "ФРЛЛО (тмб);
Регистры для хранения идентификаторов документов полученных от ФРЛЛО:
- Идентификаторы сведений о льготах в ФРЛЛО;
- Идентификаторы назначений в ФРЛЛО;
- Идентификаторы отпусков в ФРЛЛО;
- Идентификаторы персонифицированных заявок ФРЛЛО;
- Регистровые записи пациентов в ФРЛЛО (не используется);
Регистры логирования:
- Логирование сообщений ФРЛЛО (тмб) - регистрация ошибок, возникших при формировании документов xml
- Логирование сообщения с федеральными web сервисами - запись всех входящих и исходящих сообщений http.
Федеральные веб сервисы объекты отправки - регистрация объектов на отправку в ФРЛЛО.
Дополнительные обработки - Статистика отправленных данных в ФРЛО - обработка, позволяющая сформировать статистические данные по отправленным Отпускам, назначениям и льготам.
Настройка ФРЛЛО (тмб)
тест: Адрес callBack http://46.8.36.66:34895/pharmacy_llo_test_FRLLO/hs/fws/FRLLOCallback/ Инфо о регистрации в тесте: Данная ИС с идентификатором ИС в ИПС fbd33aa5-5b3a-4586-b01a-9896ef4ce2fe и кодом 3.010 зарегистрирована в ФРЛЛО и связана со справочником ФНСИ 1.2.643.5.1.13.13.99.2.622 по актуальной версии 3.34. Адрес сервиса ФРЛЛО в ИПС: https://ips-test.rosminzdrav.ru/1810424db9bec Адрес для ответа ФРЛЛО: https://ips-test.rosminzdrav.ru/e99cb41b1221e
прод: адрес callback https://1c-prod-llo.tls.72to.ru/pharmacy_llo_FRLLO/hs/fws/FRLLOCallback/ Инфо о регистрации в проде: Адрес веб-службы в рабочей версии ИПС - https://ips.rosminzdrav.ru/5c3cf3d9e2990 (после регистрации)