Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Метод получения документа для печати.

Входит в РЭМД Сервис регионального хранилища ЭМД.

Здесь публикуются последние версии спецификаций РЭМД Сервис регионального хранилища ЭМД. Спецификации для интеграций

Также доступна спецификация в формате OpenAPI(swagger) http://

Точка входа для Московской области {{url}}

remd.emias.mosreg.ru/emds/rest/api/v1

...

/swagger-ui.html#/emds-controller

Базовый адрес(url) для Московской области http://remd.emias.mosreg.ru/

Оглавление

Запросы печати ЭМД из РЭМД

Существуют 2 формата ЭМД - PDF/A-1 и HL7 CDA R2
https://nsi.rosminzdrav.ru/#!/refbook/1.2.643.5.1.13.13.99.2.40/?version=1.2

Примеры разных документов:
1fce3354-6043-46bc-b635-d12e73b3084a - Протокол консультации (PDF/A-1)
390b9929-b8fd-4adc-8772-f85f0113cb13 - Справка об отсутствии контактов с инфекционными больными (CDA) Редакция 2

Для формата PDF/A-1 в РЭМД хранится файл pdf, который можно получить напрямую методом /signed-content, либо в методе /documents/{localUid} 
Для формата CDA в РЭМД хранится файл xml, для печати которого в формате PDF следует выполнять преобразование, поэтому нужно использовать использовать метод /xsl-content?docType=pdf&stamp=true

Определить формат ЭМД можно:

Запрос печати PDF/A-1 ЭМД

Адрес запроса

GET: {{url}}/emds/rest/api/v1/documents/{{GUIDemdGuid}}/signed-content

Параметры запроса

Параметр

Тип

Описание

По умолчанию

Обязательный

Комментарий

GUIDemdGuidGUIDpathГуид Идентификатор ЭМД-+

Можно получить в методе Получение ЭМД и заявок на ЭМД по документу-основанию или Журнал заявок ЭМД. Получение журнала заявок на ЭМД. При получении ЭМД этими методами для печати доступны только документы со статусом от 06 - Отправлен и выше (06, 07, 08, 09, 10).

Также можно получить документ напрямую из РЭМД методом Получение документов пациента. Получение списка ЭМД из РЭМД. В качестве emdGuid используется localUid.

Ответ сервера

В случае успешного выполнения сервер вернет ответ в формате JSON со следующими данными:

ОбъектdocContent.(byte) или XML оформленный по стандарту ISO/HL7 27932:2009,
ПолеТипОписание
docContent

Содержимое электронного документа

datastring

Содержимое электронного документа (файл формата PDF

,

в base64).

Для просмотра при тесте можно пользоваться онлайн форматером, например https://www.freeformatter.com/base64-encoder.html

docContent.checksuminteger

Контрольная сумма файла, вычисленная по алгоритму CRC32 (в десятичном представлении)

docContent.idcasestringЛокальный идентификатор услуги относящийся к документу
orgSignatureОбъектСведения о подписи МО, которой подписан документ
personalSignaturesОбъектЭП сотрудников, которыми подписан документ

Пример структуры ответа 

Другие поля из тела ответа в данной интеграции не интересны.

Блок кода
titleПример ответа
collapsetrue
Блок кода
{
    "docContent": {
        "data": "JVBERi0x JVBERi0xLjQNCiW0tba3DQolDQoxIDAgb2JqDQo8PA0K... LU9GDQo=",
        "checksum": 212761416,215542653
        "idcase": null
    },
    "orgSignature": {
        "data": "MIII4QYJKoZ ... t9trQOglrX",
        "checksum": 370852156
    },
    "personalSignatures": [{
        "localUid": "245b7be7-bcec-4f04-bfa8-cbc08c095880_13c53db9-65f5-4dcf-9c3a-7d33640b2b00",
        "signer": {
            "localId": "8085cb6a-1596-49c6-b3ca-3ebbb2d9a94b",
            "role": {
                "code": "DOCTOR",
                "codeSystem": null,
                "codeSystemName": null,
                "codeSystemVersion": null,
                "displayName": "Врач"
            },
            "surname": "Яцкевич",
            "name": "Дмитрий",
            "patrName": "Юрьевич",
            "birthDate": "1990-04-10",
            "snils": "14285708879",
            "position": {
                "code": "4",
                "codeSystem": null,
                "codeSystemName": null,
                "codeSystemVersion": null,
                "displayName": "главный врач медицинской организации"
            },
            "speciality":}
}

Запрос печати CDA ЭМД

Адрес запроса

GET: {{url}}/emds/rest/api/v1/documents/{{emdGuid}}/xsl-content?docType=pdf&stamp=true

Параметры запроса

Параметр

Тип

Описание

По умолчанию

Обязательный

Комментарий

emdGuid
pathИдентификатор ЭМД-+

Можно получить в методе Получение ЭМД и заявок на ЭМД по документу-основанию или Журнал заявок ЭМД. Получение журнала заявок на ЭМД. При получении ЭМД этими методами для печати доступны только документы со статусом от 06 - Отправлен и выше (06, 07, 08, 09, 10).

Также можно получить документ напрямую из РЭМД методом Получение документов пациента. Получение списка ЭМД из РЭМД. В качестве emdGuid используется localUid.

docTypequeryТип документа-+Поддерживается только pdf и html
stampqueryОтображать штамп с информацией о подписи на документе--

Только для pdf

Для печати на РПГУ вывод штампа обязателен.

Ответ сервера

В случае успешного выполнения сервер вернет ответ в формате JSON со следующими данными:

ПолеТипОписание
datastring

Содержимое электронного документа (файл формата PDF, в base64).

Для просмотра при тесте можно пользоваться онлайн форматером, например https://www.freeformatter.com/base64-encoder.html

checksuminteger

Контрольная сумма файла, вычисленная по алгоритму CRC32 (в десятичном представлении)

docTypestring

Локальный идентификатор услуги относящийся к документу

Блок кода
titleПример ответа
collapsetrue
{
    "data": "JVBERi0xLjcKJeLjz9MKNSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZ...",
    "checksum": 581198999,
    "docType": "pdf"
}

Возможные ошибки

Ошибки с кодом и сообщением перечислены в массиве errors тела ответа при неуспешном коде ответа 400, 404 или 500.

Код ответа сервераКод сообщенияСообщениеКомментарий
400E-0001Разрешенные типы документов - pdf и html



404E-0002Документ с идентификатором {emdGuid} не найден
400E-0003Значение параметра 'docType' должно быть заполнено
500-Непредвиденное сообщение ошибкиВозникает при непредвиденных ошибках сервера
Блок кода
titleПример ответа с ошибкой
collapsetrue
{
    "status": "error",
    "result": null,
    "errors": [
        {
                "code": "27E-0002",
                "codeSystemmessage": null,
                "codeSystemName": null,
                "codeSystemVersion": null,
                "displayName": "Терапия"
            },
            "email": null,
            "phone": null,
            "department": {
                "localId": {
                    "code": "28a08a86-0735-4867-9ddc-bbd4f104865e",
                    "codeSystem": null,"Документ с идентификатором localUid='b488a8b5-ad9d-459d-9a5a-61f487178245' не найден"
                    "codeSystemName": null,}
                    "codeSystemVersion": null,
  ],
                  "displayName"page": null
                },
                "nameid": "ХИМКИНСКАЯ ОБ. Взрослая поликлиника № 1"
            },
            "office": null
        },
        "descriptionmessageId": null,
        "signature": {
            "data": "MIIVWAYJKoZIhvcNAQ ... Iz13J3iXhTVlGJ7FOrNOI2slaKxWqgE=",
            "checksum": 4167420720
        }
    }]
}

Ошибки

Пример структуры ответа с ошибкой

Блок кода
{
  "status": "success",
  "id": "4987cbe2-a22e-439a-8a35-2857c884e8e3",
  "errors": [
    {
      "code": "string",
      "message": "string"
    }
  ]
}

Возможные коды ошибок

...

Invalid input

...

Not found

...