...
Метод | Назначение |
Код: registerDocument Наименование: Регистрация сведений об ЭМД | Предназначен для регистрации сведений об ЭМД в АЭМД |
Код: searchRegistryItem Наименование: Поиск записи в реестре | Предназначен для поиска записи реестра по метаописанию ЭМД |
Код: getRegistryItem Наименование: Запрос регистрационных сведений об ЭМД | Предназначен для получения сведений о регистрации ЭМД |
Код: demandContent Наименование: Запрос файла ЭМД из хранилища предоставляющей системы | Предназначен для получения файла ЭМД из АЭМД |
Код: getMetadata Наименование: Запрос метаописания ЭМД | Предназначен для получения метаописания ЭМД, зарегистрированного в АЭМД |
Wiki разметка |
---|
В АЭМД предусмотрена проверка уникальности идентификатора документа в рамках всей подсистемы. Поэтому зарегистрировать несколько документов под одним и тем же идентификатором невозможно.
Генерация идентификаторов должна производиться согласно стандарту UUID (Universally Unique Identifier, RFC 4122). UUID — статистически уникальный 128-битный идентификатор. UUID представляет собой 16-байтный (128-битный) номер. Формат строки: \[a-fA-F0-9\]\{8\}-\[a-fA-F0-9\]\{4\}-\[a-fA-F0-9\]\{4\}-\[a-fA-F0-9\]\{4\}-\[a-fA-F0-9\]\{12\}. Пример UUID: 550e8400-e29b-41d4-a716-446655440000. Рекомендации к генерации UUID также указаны в стандартах ITU-T Rec. X.667 и ISO/IEC 9834-8.
Для остальных передаваемых идентификаторов использование UUID является предпочтительным, но допускается использование идентификаторов других видов.
\\ |
Якорь |
---|
| _Ref528589487 |
---|
| _Ref528589487 |
---|
|
Якорь |
---|
| _Toc111717668 |
---|
| _Toc111717668 |
---|
|
Якорь |
---|
| _Toc480985168 |
---|
| _Toc480985168 |
---|
|
Якорь |
---|
| _Ref481664156 |
---|
| _Ref481664156 |
---|
|
Якорь |
---|
| _Ref481664163 |
---|
| _Ref481664163 |
---|
|
Якорь |
---|
| _Toc482198783 |
---|
| _Toc482198783 |
---|
|
Якорь |
---|
| _Toc467236274 |
---|
| _Toc467236274 |
---|
|
Описание транспортного заголовка АЭМД
Wiki разметка |
---|
Помимо самого тела запроса, каждое сообщение к сервису АЭМД должно содержать транспортный заголовок, сформированный по требованиям ИПС, описанным в разделе 3.4 документа «Методические материалы по подключению к Сервису ИПС» \[2\].
Также есть возможность передачи в сообщениях транспортного заголовка АЭМД. В транспортном заголовке АЭМД указывается идентификатор МО, от имени которой выполняется запрос к сервису АЭМД, а также код режима отладки.
Таким образом доступ к документам, предоставленный пациентом, учитывается при указании идентификатора МО в транспортном заголовке АЭМД при следующих сценариях: |
- поиск записей регистра, зарегистрированных другими ИС (см. раздел 2.2);
- получение файла ЭМД запрашивающей ИС из АЭМД (см. раздел 2.4);
- получение метаописания ЭМД, зарегистрированного другой ИС (см. раздел 2.5).
...
Якорь |
---|
| _Ref507061247 |
---|
| _Ref507061247 |
---|
|
Якорь |
---|
| _Toc111717679 |
---|
| _Toc111717679 |
---|
|
Формат файла документа PDF/A-1
Wiki разметка |
---|
Файл документа в электронном виде может иметь формат PDF/A-1, соответствующий международному стандарту ISO 19005-1:2005 «Управление документацией. Формат файлов электронных документов для долгосрочного сохранения. Часть 1: Использование формата PDF 1.4 (PDF/A-1)» – Document management - Electronic document file format for long-term preservation - Part 1: Use of PDF 1.4 (PDF/A-1) \[3\].
Текстовая часть должна включаться в документ формата PDF/A-1 в виде текстовых данных. Вставка текста в документ в виде изображения не допускается. |
Якорь |
---|
| _Ref513730337 |
---|
| _Ref513730337 |
---|
|
Якорь |
---|
| _Toc111717680 |
---|
| _Toc111717680 |
---|
|
Формат файла документа XML
Wiki разметка |
---|
Файл документа в электронном виде может иметь формат XML. Структура регистрируемых документов должна соответствовать международному стандарту ISO/HL7 27932:2009 «Обмен данными - Архитектура клинических документов HL7, выпуск 2» – Data Exchange - HL7 Clinical Document Architecture, Release 2 \[4\]. |
Якорь |
---|
| _Ref481571301 |
---|
| _Ref481571301 |
---|
|
Якорь |
---|
| _Ref481571303 |
---|
| _Ref481571303 |
---|
|
Якорь |
---|
| _Ref507061349 |
---|
| _Ref507061349 |
---|
|
Якорь |
---|
| _Toc111717681 |
---|
| _Toc111717681 |
---|
|
Требования к электронной подписи
Wiki разметка |
---|
В соответствии с Федеральным законом № 63-ФЗ от 06.04.2011 «Об электронной подписи», электронные подписи, формируемые в рамках создания документов в электронном виде, должны соответствовать требованиям к усиленной квалифицированной электронной подписи. При создании ЭП должен использоваться формат CAdES (CMS Advanced Electronic Signatures) \[5\].
Для отладки разработок в тестовой среде допускается формирование электронных подписей неквалифицированными сертификатами ЭП (см. раздел 3.1).
В соответствии с Приказом Министерства связи и массовых коммуникаций РФ и Федеральной службы охраны РФ от 27 мая 2015 г. № 186/258 «Об утверждении Требований к организационно-техническому взаимодействию государственных органов и государственных организаций посредством обмена документами в электронном виде», ЭП сотрудников и организаций, создаваемые при подписи электронных документов, должны формироваться в отдельных файлах (каждой ЭП должен соответствовать отдельный файл), т.е. должны быть использованы варианты открепленной (отсоединенной) ЭП.
Электронные подписи должны формироваться с использованием следующих алгоритмов цифровой подписи: |
- ГОСТ Р 34.10-2001;
- ГОСТ Р 34.10-2012.
...
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:tns="http://egisz.rosminzdrav.ru/iehr/emdr/callback/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://egisz.rosminzdrav.ru" name="EmdrClientCallbackImplService" targetNamespace="http://egisz.rosminzdrav.ru/iehr/emdr/callback/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://egisz.rosminzdrav.ru/iehr/emdr/callback/" elementFormDefault="qualified" targetNamespace="http://egisz.rosminzdrav.ru/iehr/emdr/callback/" version="1.0"> <xs:element name="callbackResponse" type="tns:callbackResponse"/> <xs:element name="getDocumentFileRequest" type="tns:getDocumentFileRequest"/> <xs:element name="getDocumentFileResponse" type="tns:getDocumentFileResponse"/> <xs:element name="registerDocumentResult" type="tns:registerDocumentResult"/> <xs:element name="sendDocumentFileRequest" type="tns:sendDocumentFileRequest"/> <xs:element name="sendNoticeRequest" type="tns:sendNoticeRequest"/> <xs:complexType name="sendDocumentFileRequest"> <xs:sequence> <xs:element name="relatesToMessage" type="xs:string"/> <xs:element name="status" type="tns:responseStatus"/> <xs:element minOccurs="0" name="file" type="tns:binaryData"/> <xs:element minOccurs="0" name="errors" type="tns:errors"/> </xs:sequence> </xs:complexType> <xs:complexType name="binaryData"> <xs:sequence> <xs:element name="data" type="xs:base64Binary"/> <xs:element name="checksum" type="xs:long"/> </xs:sequence> </xs:complexType> <xs:complexType name="errors"> <xs:sequence> <xs:element maxOccurs="unbounded" name="item" type="tns:error"/> </xs:sequence> </xs:complexType> <xs:complexType name="error"> <xs:sequence> <xs:element name="code" type="xs:string"/> <xs:element minOccurs="0" name="message" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="callbackResponse"> <xs:sequence> <xs:element name="status" type="tns:responseStatus"/> <xs:element minOccurs="0" name="errors" type="tns:errors"/> </xs:sequence> </xs:complexType> <xs:complexType name="registerDocumentResult"> <xs:sequence> <xs:element name="relatesToMessage" type="xs:string"/> <xs:element name="status" type="tns:responseStatus"/> <xs:element minOccurs="0" name="registryItem" type="tns:registryItem"/> <xs:element minOccurs="0" name="errors" type="tns:errors"/> </xs:sequence> </xs:complexType> <xs:complexType name="registryItem"> <xs:sequence> <xs:element name="emdrId" type="xs:string"/> <xs:element minOccurs="0" name="documentVersion" type="xs:int"/> <xs:element name="registrationDate" type="xs:dateTime"/> <xs:element name="registrationDateTime" type="xs:dateTime"/> <xs:element name="storeTillDate" nillable="true" type="xs:date"/> <xs:element minOccurs="0" name="registrationWarnings" type="tns:registrationWarnings"/> </xs:sequence> </xs:complexType> <xs:complexType name="registrationWarnings"> <xs:sequence> <xs:element maxOccurs="unbounded" name="item" type="tns:registrationWarning"/> </xs:sequence> </xs:complexType> <xs:complexType name="registrationWarning"> <xs:sequence> <xs:element name="code" type="xs:string"/> <xs:element minOccurs="0" name="message" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="sendNoticeRequest"> <xs:sequence> <xs:element name="initiatingOrg" type="xs:string"/> <xs:element name="document" type="tns:document"/> <xs:element name="isNewDoc" type="xs:boolean"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="association" nillable="true" type="tns:association"/> </xs:sequence> </xs:complexType> <xs:complexType name="document"> <xs:sequence> <xs:element name="docKind" type="xs:string"/> <xs:element name="emdrId" type="xs:string"/> <xs:element minOccurs="0" name="version" type="xs:int"/> </xs:sequence> </xs:complexType> <xs:complexType name="association"> <xs:sequence> <xs:element name="type" type="tns:associationType"/> <xs:element name="target" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="getDocumentFileRequest"> <xs:sequence> <xs:element name="system" type="xs:string"/> <xs:element name="organization" type="xs:string"/> <xs:element name="localUid" type="xs:string"/> <xs:element name="kind" type="xs:string"/> <xs:element name="documentNumber" type="xs:string"/> <xs:element name="creationDate" type="xs:date"/> <xs:element name="creationDateTime" type="xs:dateTime"/> <xs:element minOccurs="0" name="emdrId" type="xs:string"/> <xs:element minOccurs="0" name="documentVersion" type="xs:int"/> <xs:element name="registrationDate" type="xs:dateTime"/> <xs:element name="registrationDateTime" type="xs:dateTime"/> </xs:sequence> </xs:complexType> <xs:complexType name="getDocumentFileResponse"> <xs:sequence> <xs:element name="status" type="tns:responseStatus"/> <xs:element minOccurs="0" name="documentFile" type="tns:documentFile"/> <xs:element minOccurs="0" name="errors" type="tns:errors"/> </xs:sequence> </xs:complexType> <xs:complexType name="documentFile"> <xs:sequence> <xs:element name="system" type="xs:string"/> <xs:element name="organization" type="xs:string"/> <xs:element name="localUid" type="xs:string"/> <xs:element name="file" type="tns:binaryData"/> </xs:sequence> </xs:complexType> <xs:simpleType name="responseStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="success"/> <xs:enumeration value="error"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="associationType"> <xs:restriction base="xs:string"> <xs:enumeration value="RELATES_TO"/> <xs:enumeration value="INCLUDED_IN"/> <xs:enumeration value="INCLUDES"/> </xs:restriction> </xs:simpleType> </xs:schema> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://egisz.rosminzdrav.ru" elementFormDefault="qualified" targetNamespace="http://egisz.rosminzdrav.ru" version="1.0"> <xs:element name="transportHeader"> <xs:complexType> <xs:sequence> <xs:element name="authInfo" type="tns:authInfo"/> <xs:element minOccurs="0" name="userInfo" type="tns:userInfo"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="authInfo"> <xs:sequence> <xs:element minOccurs="0" name="userSession" type="xs:string"/> <xs:element name="clientEntityId" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="userInfo"> <xs:sequence> <xs:element name="userId" type="xs:string"/> <xs:element name="lastName" type="xs:string"/> <xs:element name="firstName" type="xs:string"/> <xs:element name="middleName" type="xs:string"/> <xs:element name="role" type="tns:property"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="medOrg" nillable="true" type="tns:organization"/> <xs:element minOccurs="0" name="region" type="tns:property"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="education" nillable="true" type="tns:education"/> </xs:sequence> </xs:complexType> <xs:complexType name="property"> <xs:sequence> <xs:element name="code" type="xs:string"/> <xs:element name="name" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="organization"> <xs:sequence> <xs:element name="id" type="tns:property"/> <xs:element name="type" type="tns:property"/> <xs:element minOccurs="0" name="positionType" type="tns:property"/> <xs:element minOccurs="0" name="position" type="tns:property"/> </xs:sequence> </xs:complexType> <xs:complexType name="education"> <xs:sequence> <xs:element name="type" type="tns:property"/> <xs:element name="speciality" type="tns:property"/> <xs:element minOccurs="0" name="diplomType" type="tns:property"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="sendRegisterDocumentResult"> <wsdl:part element="ns1:transportHeader" name="header"> </wsdl:part> <wsdl:part element="tns:registerDocumentResult" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="sendDocumentFileResponse"> <wsdl:part element="tns:callbackResponse" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="sendNotice"> <wsdl:part element="ns1:transportHeader" name="header"> </wsdl:part> <wsdl:part element="tns:sendNoticeRequest" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="getDocumentFileResponse"> <wsdl:part element="tns:getDocumentFileResponse" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="sendDocumentFile"> <wsdl:part element="ns1:transportHeader" name="header"> </wsdl:part> <wsdl:part element="tns:sendDocumentFileRequest" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="sendNoticeResponse"> <wsdl:part element="tns:callbackResponse" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="sendRegisterDocumentResultResponse"> <wsdl:part element="tns:callbackResponse" name="body"> </wsdl:part> </wsdl:message> <wsdl:message name="getDocumentFile"> <wsdl:part element="ns1:transportHeader" name="header"> </wsdl:part> <wsdl:part element="tns:getDocumentFileRequest" name="body"> </wsdl:part> </wsdl:message> <wsdl:portType name="emdrClientCallbackPort"> <wsdl:operation name="sendDocumentFile"> <wsdl:input message="tns:sendDocumentFile" name="sendDocumentFile"> </wsdl:input> <wsdl:output message="tns:sendDocumentFileResponse" name="sendDocumentFileResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendRegisterDocumentResult"> <wsdl:input message="tns:sendRegisterDocumentResult" name="sendRegisterDocumentResult"> </wsdl:input> <wsdl:output message="tns:sendRegisterDocumentResultResponse" name="sendRegisterDocumentResultResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendNotice"> <wsdl:input message="tns:sendNotice" name="sendNotice"> </wsdl:input> <wsdl:output message="tns:sendNoticeResponse" name="sendNoticeResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="getDocumentFile"> <wsdl:input message="tns:getDocumentFile" name="getDocumentFile"> </wsdl:input> <wsdl:output message="tns:getDocumentFileResponse" name="getDocumentFileResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="EmdrClientCallbackImplServiceSoapBinding" type="tns:emdrClientCallbackPort"> <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsaw:UsingAddressing xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" wsdl:required="true"/> <wsp:PolicyReference URI="#EmdrClientCallbackImplServiceSoapBinding_WSAM_Addressing_Policy"/> <wsdl:operation name="sendDocumentFile"> <soap12:operation soapAction="sendDocumentFile" style="document"/> <wsdl:input name="sendDocumentFile"> <soap12:header message="tns:sendDocumentFile" part="header" use="literal"> </soap12:header> <soap12:body parts="body" use="literal"/> </wsdl:input> <wsdl:output name="sendDocumentFileResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendRegisterDocumentResult"> <soap12:operation soapAction="sendRegisterDocumentResult" style="document"/> <wsdl:input name="sendRegisterDocumentResult"> <soap12:header message="tns:sendRegisterDocumentResult" part="header" use="literal"> </soap12:header> <soap12:body parts="body" use="literal"/> </wsdl:input> <wsdl:output name="sendRegisterDocumentResultResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendNotice"> <soap12:operation soapAction="sendNotice" style="document"/> <wsdl:input name="sendNotice"> <soap12:header message="tns:sendNotice" part="header" use="literal"> </soap12:header> <soap12:body parts="body" use="literal"/> </wsdl:input> <wsdl:output name="sendNoticeResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getDocumentFile"> <soap12:operation soapAction="getDocumentFile" style="document"/> <wsdl:input name="getDocumentFile"> <soap12:header message="tns:getDocumentFile" part="header" use="literal"> </soap12:header> <soap12:body parts="body" use="literal"/> </wsdl:input> <wsdl:output name="getDocumentFileResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="EmdrClientCallbackImplService"> <wsdl:port binding="tns:EmdrClientCallbackImplServiceSoapBinding" name="emdrClientCallbackPort"> <soap12:address location="https://ips-test.rosminzdrav.ru/dwBSaIkPLSwor"/> </wsdl:port> </wsdl:service> <wsp:Policy xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="EmdrClientCallbackImplServiceSoapBinding_WSAM_Addressing_Policy"> <wsam:Addressing xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"> <wsp:Policy/> </wsam:Addressing> </wsp:Policy> </wsdl:definitions> |
Wiki разметка |
---|
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="a2f3a5d9-2f78-4183-890c-6b619b71b3f6"><ac:parameter ac:name="">_Ref470097743</ac:parameter></ac:structured-macro><ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="ce3aa9f2-4917-408b-a967-0fffac06c934"><ac:parameter ac:name="">_Ref375306643</ac:parameter></ac:structured-macro><ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="f2c93211-696d-4858-b508-05c316fad7d3"><ac:parameter ac:name="">_Toc385509617</ac:parameter></ac:structured-macro><ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="bc4d70ef-f76e-451c-8aad-82ea803d2756"><ac:parameter ac:name="">_Toc467236282</ac:parameter></ac:structured-macro>\\
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="91e50856-658b-4fac-8be2-e208e51acdc1"><ac:parameter ac:name="">_Toc111717685</ac:parameter></ac:structured-macro><ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="9cf323df-ff2e-4ecb-a7f1-e54031d1dc37"><ac:parameter ac:name="">_Ref503341485</ac:parameter></ac:structured-macro>\\
(обязательное)
*Примеры вызова веб-сервиса обмена сведениями об ЭМД*
Из примеров запросов и ответов исключены файлы подписей, а также их контрольные суммы, так как они занимают много места и отрицательно сказываются на восприятии. Пример файла документа и файла подписи к нему приведены в документе «Приложение к документу «Рекомендации к информационным системам в сфере здравоохранения по обеспечению информационного взаимодействия» \[6\]. |
Якорь |
---|
| _Toc482198805 |
---|
| _Toc482198805 |
---|
|
Якорь |
---|
| _Toc111717686 |
---|
| _Toc111717686 |
---|
|
Метод «registerDocument»
...