Описание протокола взаимодействия
Сервис обогащения предназначен для получения и валидации СНИЛС в ПФР через ЕГИСЗ.
Информационный обмен осуществляется в соответствии со стандартом FHIR® (Fast Healthcare Interoperability Resources), разработанным организацией HL7. Подробное описание стандарта доступно по следующим ссылкам:
http://hl7.org/fhir/summary.html
http://fhir-ru.github.io/summary.html (перевод)
http://fhir-ru.github.io/terminology-service.html (описание Терминологических сервисов).
В качестве протокола взаимодействия используется REST (использование REST-протокола в FHIR® – см. http://fhir-ru.github.io/http.html).
1. Авторизация в сервисе и формат обмена
Для обращения к сервису Обогащения СНИЛС, ЕНП необходимо указать в заголовке сообщения авторизационный ключ в формате:
Authorization: N3[пробел][GUID]
Авторизационный ключ системе-клиенту сервиса выдается администратором интеграционной платформы N3.Health.
В качестве формата обмена требуется указать:
Content-Type: application/json
На текущий момент единственным ограничением запросов в промышленной среде сервиса обогащения является ограничение в 50 запросов в минуту (это ограничение федеральное и распространяется на всех операторов России одновременно).
2.1 Заказ на получение СНИЛС гражданина по набору данных гражданина и данным документа, удостоверяющего личность
Элемент | Кратность | Описание |
patient | 1..1 | Блок персональной информации пациента |
familyName | 1..1 | Фамилия. Строка - не более 100 символов |
firstName | 1..1 | Имя. Строка - не более 100 символов |
patronymic | 0..1 | Отчество. Обязательно при наличии. Строка - не более 100 символов |
birthDate | 1..1 | Дата рождения. В формате: YYYY-MM-DD |
gender | 1..1 | Пол. Число: [1, 2]. Справочник 1.2.643.5.1.13.13.11.1040 |
patientPersDocs | 1..1 | Блок информации о документе пациента. |
type | 1..1 | Тип документа. Справочник: 1.2.643.5.1.13.13.99.2.48 Разрешённые значения [1, 6, 7, 9, 11, 20, 42] |
series | 0..1 | Серия документа. Строка - не более 10 символов |
number | 1..1 | Номер документа. Строка - не более 20 символов |
issueDate | 1..1 | Дата выдачи. В формате: YYYY-MM-DD |
issuer | 1..1 | Кем выдан (не обязан соответствовать на 100% как в паспорте) |
Метод | POST | ||||||
Входные данные | Конечная точка: [baseURL]/snils Тело запроса: В теле запроса информация о пациенте в формате JSON. Описание структуры ресурса приведено выше |
||||||
Выходные данные |
|
||||||
HTTP-код ответа |
|
2.1.1 Пример заказа на получение СНИЛС гражданина по реквизитам
POST /snils HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Content-Type: application/json;charset=UTF-8 Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 { "patient": { "familyName": "Иванов", "firstName": "Иван", "patronymic": "Иванович", "birthDate": "1992-10-31", "gender": "1" }, "patientPersDocs": { "type": "1", "series": "4890", "number": "627790", "issueDate": "2007-01-01", "issuer": "ОВД" } } |
2.1.2 Пример ответа
HTTP/2 200 Выходные данные |
HTTP/2 40X/50X Content-Encoding: application/json; charset=utf-8 { "code": "код_ошибки", "description": "текст_ошибки" } |
2.2 Запрос статуса заказа
Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!
Метод | GET | |||||||||||||||
Входные данные | Конечная точка: [baseURL]/snils/id |
|||||||||||||||
Выходные данные |
|
|||||||||||||||
HTTP-код ответа |
|
2.2.1 Пример запроса
GET /snils/cf2c0205-e0cb-4dfd-ad02-80959c091344 HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 |
2.2.2 Пример ответа
HTTP/2 200 Content-Type: text/plain;charset=utf-8 Content-Encoding: UTF-8 {
"patient": {
"status": "Выполнено",
"snils": "номер_СНИЛС"
}
}
|
3.1 Запрос на проверку соответствия фамильно-именной группы, даты рождения, пола и СНИЛС
Элемент | Кратность | Описание |
patient | 1..1 | Блок персональной информации пациента |
familyName | 1..1 | Фамилия. Строка - не более 100 символов |
firstName | 1..1 | Имя. Строка - не более 100 символов |
patronymic | 0..1 | Отчество. Обязательно при наличии. Строка - не более 100 символов |
snils | 1..1 | СНИЛС. Строка - 11 цифр, без тире и пробелов |
birthDate | 1..1 | Дата рождения. В формате: YYYY-MM-DD |
gender | 1..1 | Пол. Число: [1, 2]. Справочник 1.2.643.5.1.13.13.11.1040 |
Метод | POST | ||||||
Входные данные | Конечная точка: [baseURL]/snils-validate Тело запроса: В теле запроса информация о пациенте в формате JSON. Описание структуры ресурса приведено выше |
||||||
Выходные данные |
|
||||||
HTTP-код ответа |
|
3.1.1 Пример запроса
POST /snils-validate HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Content-Type: application/json;charset=UTF-8 Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 { "patient": { "familyname": "Иванов", "firstname": "Иван", "patronymic": "Иванович", "snils": "12312312312", "birthDate": "1966-09-12", "gender": "1" } } |
3.1.2 Пример ответа
HTTP/2 200 Content-Encoding: text/plain; charset=utf-8 Content-Length: 52 Выходные данные |
HTTP/2 40X/50X Content-Encoding: UTF-8 Content-Length: 0 { "error": { "code": "код_ошибки", "description": "текст_ошибки" } } |
3.2 Запрос статуса
Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!
Метод | GET | |||||||||||||||
Входные данные | Конечная точка: [baseURL]/snils-validate/id |
|||||||||||||||
Выходные данные |
|
|||||||||||||||
HTTP-код ответа |
|
3.2.1 Пример запроса
GET /snils-validate/cf2c0205-e0cb-4dfd-ad02-80959c091344 HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 |
3.2.2 Пример ответа
HTTP/2 200 Content-Type: text/plain;charset=utf-8 {
"patient": {
"result": true,
"status": "Выполнено"
}
}
|
4.1 Запрос на получение ОМС (ЕНП - единый номер полиса) по персональным данным пациента
Элемент | Кратность | Описание |
patient | 1..1 | Блок персональной информации пациента |
familyName | 1..1 | Фамилия. Строка - не более 40 символов |
firstName | 1..1 | Имя. Строка - не более 40 символов |
patronymic | 0..1 | Отчество. Обязательно при наличии. Строка - не более 40 символов |
birthDate | 1..1 | Дата рождения. В формате: YYYY-MM-DD |
patientPersDocs | 1..1 | Блок информации о документе пациента. |
type | 1..1 | Тип документа. Справочник: 1.2.643.5.1.13.13.99.2.48 Разрешённые значения [1, 6, 7, 9, 11, 20, 42] |
series | 0..1 | Серия документа. Строка - не более 10 символов |
number | 1..1 | Номер документа. Строка - не более 20 символов |
Метод | POST | ||||||
Входные данные | Конечная точка: [baseURL]/united-policy-number Тело запроса: В теле запроса информация о пациенте в формате JSON. Описание структуры ресурса приведено выше |
||||||
Выходные данные |
|
||||||
HTTP-код ответа |
|
4.1.1 Пример запроса
POST /united-policy-number HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Content-Type: application/json;charset=UTF-8 Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 { "patient": { "familyName": "Иванов", "firstName": "Иван", "patronymic": "Иванович", "birthDate": "1992-10-31" }, "patientPersDocs": { "type": "1", "series": "4890", "number": "627790" } } |
4.1.2 Пример ответа
HTTP/2 200 Content-Encoding: text/plain; charset=utf-8 Content-Length: 58 Выходные данные |
HTTP/2 40X/50X Content-Encoding: UTF-8 Content-Length: 0 { "code": "код_ошибки", "description": "текст_ошибки" } |
4.2 Запрос статуса
Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!
Метод | GET | |||||||||||||||||||||||||||
Входные данные | Конечная точка: [baseURL]/united-policy-number/id |
|||||||||||||||||||||||||||
Выходные данные |
|
|||||||||||||||||||||||||||
HTTP-код ответа |
|
4.2.1 Пример запроса
GET /united-policy-number/cf2c0205-e0cb-4dfd-ad02-80959c091344 HTTP/2 HOST: https://b2b.n3health.ru/mpisnils/Proxy/ Accept: */* Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39 |
4.2.2 Пример ответа
HTTP/2 200 Content-Type: text/plain;charset=utf-8 Content-Encoding: UTF-8 {
"patient": {
"unitedPolicyNumber": "1234567891234567",
"region": "40000",
"insuranceOrganization": "АДМИНИСТРАТИВНОЕ СТРУКТУРНОЕ ПОДРАЗДЕЛЕНИЕ ООО \"КАПИТАЛ МС\" - ФИЛИАЛ В Г. САНКТ-ПЕТЕРБУРГЕ И ЛЕНИНГРАДСКОЙ ОБЛАСТИ",
"startDate": "2020-01-09",
"status": "Выполнено"
}
}
|