====== Описание сервисов РЭМД ====== ~~TOC:2-4 ~~ [[{}:remd|← Назад]] ==== 1. EMDS-SERVICE ==== Сервис осуществляет прием и валидацию запросов от МИС по rest- протоколу. Если запрос был успешно обработан и принят, появляется запись в таблице med_docs, затем сервис осуществляет постановку документов в очередь на отправку в ФРЭМД (таблица emdfr_send_task) в соответствии с правилами, прописанными в таблице ref_emdfr_send_rule. Если запрос не прошел валидацию, запись появляется в таблице med_docs_reg_flk. Методы сервиса: * POST/documents – публикация документа; * GET/documents/ – поиск метаданных ЭМД по параметрам; Параметры поиска, используемые в данном методе: ^ Параметр ^ Назначение ^ | X-medOrgOid | Организация, от имени которой выполняется запрос | | creationDate | Дата создания документа внутри организации или ее подразделения | | creationDateTime | Дата и время создания документа внутри организации или ее подразделения | | creationDateBegin | Дата и время начала периода создания документа внутри организации или ее подразделения | | creationDateEnd | Дата и время окончания периода создания документа внутри организации или ее подразделения | | registerDateBegin | Дата и время начала периода регистрации документа в ФРЭМД | | registerDateEnd | Дата и время окончания периода регистрации документа в ФРЭМД | | documentNumber | Регистрационный номер документа внутри организации или подразделения | | emdrId | Реестровый номер документа в ФРЭМД | | kind | Код вида документа | | localUid | Уникальный идентификатор документа в РЭМД в формате UUID | | organization | Код мед. организации, подписью которой подписан документ | | patientLocalId | Идентификатор пациента в МИС | | patientSnils | СНИЛС пациента | | pageNumber | Номер страницы с результатами поиска (0 - первая страница) | | pageSize | Количество записей на странице с результатами (1 - одна запись на странице) | | searchInFremd | Признак необходимости поиска в ФРЭМД | | securityToken | Токен безопасности МО | * GET/documents/{uid}/signed-content, где uid – localUid документа. Метод получения подписанного ЭМД; * GET/documents /{messageId}/{emdrId}/demand-content, где messageId - идентификатор запроса, emdrId – регистрационный номер документа во ФРЭМД. Метод для запроса файла ЭМД, зарегистрированного в сторонней ИС через ФРЭМД; так же необходимо указывать параметр SendAdress (коллбэк МИСа) в заголовке запроса * GET/documents/metadata?{emdrId}&{grantingEmdrId}, где emdrId – регистрационный номер документа во ФРЭМД, grantingEmdrId - идентификатор документа, к которому ИС имеет доступ, связанного с запрашиваемым. Указывается в том случае, когда нет явного разрешения на получение документа, но есть разрешение на связанный. Метод получения метаописания ЭМД в РЭМД. * GET/documents/{uid}/xsl-content, где uid – localUid документа. Метод находит в хранилище документов РРЭМД тело документа (xml) с указанным uid, осуществляет xsl-преобразование и отдает документ, полученный путем xslt-преобразования из xml (hl7) в html или pdf, в виде строки, закодированной в base64. Параметры, используемые в данном методе: ^ Параметр ^ Назначение ^ | docType| Формат документа (pdf\html) | | stamp | Проставление печати в документе pdf (true\false) | * GET/documents/{uid}/associations, где uid – localUid документа. Метод возвращает метаданные связанного документа из блока associations: смотрит какой emdrId стоит в блоке associations и ищет по этому emdrId документ в med_docs (associations -> 'targetDocument' ->> 'emdrId'). ==== 2. EMDS-SOAP-SERVICE ==== Сервис осуществляет прием запросов от МИС по soap – формату, затем преобразует полученный запрос в rest формат и отправляет его в сервис EMDS-SERVICE по rest – протоколу. Принимает запрос getDocumentFile от сервиса EMDS-SERVICE и направляет его в МИС, полученный ответ транслирует обратно. ==== 3. EMDS-OUTBOUND-SCHEDULER ==== Сервис проверяет таблицу emdfr_send_task на наличие записей, где is_done != true, осуществляет пакетную отправку запросов на регистрацию ЭМД в сервис взаимодействия с ФРЭМД - emdr. Так же сервис осуществляет повторную отправку ЭМД, ранее отправленных на регистрацию во ФРЭМД и вернувшихся с ошибкой, согласно перечню ошибок в таблице emds.ref_error_resending и настройке частоты отправки в параметре конфига сервиса - emdfr.resending.cron.expression ==== 4. EMDR ==== === Сервис осуществляет: === - Прием пакетов запросов от emds-outbound-scheduler, - На основе полученных данных формирует запрос RegisterDocument в формате xml, - Осуществляет проверку сформированного запроса на валидность xsd схеме, - Осуществляет заполнение заголовка и подписание (используется подпись МИАЦ/Деп. здрав.) SOAP запроса, в котором осуществляется передача сведений с использованием сертификата системы. - Отправляет запрос во ФРЭМД, - Получает синхронные и асинхронные ответы от ФРЭМД, - Осуществляет прием запросов от ФРЭМД. === Методы сервиса: === * registerDocument – регистрация документа во ФРЭМД; * searchRegistryItem - поиск записей в федеральном реестре сведений об ЭМД; * getRegistryItem - запрос сведения о регистрации по номеру записи в федеральном реестре; * demandContent - используется для запроса файла ЭМД, зарегистрированного предоставляющей ИС; * getMetadata - позволяет запросить метаописание ЭМД, зарегистрированного во ФРЭМД, по номеру записи в реестре. === Методы колбек сервиса: === * sendRegisterDocumentResult – используется для асинхронной передачи результатов регистрации сведений об ЭМД; * getDocumentFile – используется для запроса тела документа из архива ИС; * sendDocumentFile – используется для асинхронной передачи ЭМД, запрошенного из электронного архива предоставляющей ИС; * sendNotice – используется для уведомления ИС о регистрации в РЭМД сведений об ЭМД из других ИС, а также о создании другими ИС связей с документами ИС. === 5. EMDS-NOTICE-SENDING === Сервис осуществляет отправку уведомлений в МИС/РМИС о результатах обработки документа, отправленного во ФРЭМД. === Сервис направляет уведомления в результате следующих событий: === * Документ успешно зарегистрирован во ФРЭМД; * Документ не зарегистрирован во ФРЭМД (от сервиса ФРЭМД получена ошибка); * Возникла ошибка при передаче запроса в сервис ФРЭМД; * В РРЭМД появился связанный документ (сведения о результатах МСЭ). Для отправки уведомлений в МИС в исходном запросе от МИС обязательно присутствие не пустого параметра messageId. messageId – идентификатор запроса. ==== 6. EMDS-UPDATE-SCHEDULER ==== Сервис в автоматическом режиме осуществляет запрос актуальных сведений по ЭМД, записи по которым имеются в таблице update_registry_item со значением в поле status = ‘1’, из ФРЭМД и вносит полученные от ФРЭМД данные в таблицу med_docs в поле emdr_metadata. ==== 7. EMDS-IPRA-OUTBOUND-SCHEDULER ==== Сервис предназначен для передачи зарегистрированных во ФРЭМД направлений на МСЭ в подсистему ИПРА. Все успешно зарегистрированные во ФРЭМД направления на МСЭ (kind.code = ‘34’) добавляются в таблицу очереди ipra_send_task, далее сервис проверяет данную таблицу на наличие записей, где is_done != true, после чего осуществляет пакетную отправку запросов в ИПРА. Статус выгрузки документов в сервис ИПРА проставляется в поле status таблицы ipra_doc_upload_status. ==== 8. EMDS-RIMS-SERVICE ==== В сервис emds-rims-service поступают данные подписанта из блока personal_signature, после чего он обращается в сервис РИМС (региональный индекс медицинских сотрудников) получая от него по СНИЛС подписанта + oid медицинской организации информацию по медицинскому сотруднику из ФРМО/ФРМР, затем сверяет данные, полученные в запросе от emds-service и данные из РИМС сервиса. Если данные совпадают – ФЛК пройдено, в противном случае в МИС вернется синхронная ошибка. ==== 9. EMDS-REGIONAL-OUTBOUND-SCHEDULER ==== Сервис проверяет таблицу do_send_task на наличие записей, где is_done != true, осуществляет пакетную отправку запросов на регистрацию региональных ЭМД в сервис департамента образования. ==== 10. EMDR-NOTICE-SCHEDULER ==== Сервис запрашивает документ (как правило документ вида “Сведения о результатах МСЭ”) из ФРЭМД на основе полученного уведомления от федерального сервиса методом notice_task. ==== 11. EMDS-CLEAN-SCHEDULER ==== Сервис осуществляет удаление записей в таблице med_docs по заданным настройкам и расписанию, а также очистку истории хранения запросов к федеральному сервису. По требованиям федерального РЭМД документы должны храниться 25 лет.