Сервис обогащения СНИЛС

Описание протокола взаимодействия

Сервис обогащения предназначен для получения и валидации СНИЛС в ПФР через ЕГИСЗ.

Информационный обмен осуществляется в соответствии со стандартом 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

2. Заказ на получение СНИЛС гражданина по набору данных гражданина и данным документа, удостоверяющего личность

Элемент Кратность Описание
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.320 (УИ)
series 0..1 Серия документа. Строка — не более 10 символов
number 1..1 Номер документа. Строка — не более 20 символов
issueDate 1..1 Дата выдачи. В формате: YYYY-MM-DD
issuer 1..1 Кем выдан (не обязан соответствовать на 100% как в паспорте)

 

Метод POST
Входные данные Конечная точка:
[baseURL]/snils
Тело запроса:
В теле запроса информация о пациенте в формате JSON. Описание структуры ресурса приведено выше
Выходные данные
Элемент Описание
Resource-URI Путь до ресурса
HTTP-код ответа
202 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

2.1.1 Пример заказа на получение СНИЛС гражданина по реквизитам

POST /snils HTTP/2
HOST: https://b2b.n3health.ru/snils/Proxy/
Accept: application/json
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 202
Content-Encoding: UTF-8
Content-Length: 0
{
«success»: true,
«error_text»: «string»,
«error_code»: «string»,
«id»: «string»
}

2.2 Запрос статуса заказа

Метод GET
Входные данные Конечная точка:
[baseURL]/snils/id
Выходные данные
Элемент Обязательность Описание
status Да Статус выполнения запроса
Принимаемые значение:
«Выполнено»
«В процессе»
«Ошибка»
snils Нет СНИЛС
error_code Нет Код ошибки
error_text Нет Текстовое описание ошибки
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

2.2.1 Пример запроса

GET /snils/cf2c0205-e0cb-4dfd-ad02-80959c091344 HTTP/2
HOST: https://b2b.n3health.ru/snils/Proxy/
Accept: application/json
Content-Type: application/json;charset=UTF-8
Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39

2.2.2 Пример ответа

HTTP/2 200
Content-Type: application/json;charset=utf-8
Content-Encoding: UTF-8
{
   «success»: true,
   «error_text»: «string»,
   «error_code»: «string»,
   «data»: {
     «patient»: {
          «status»: «string»,
          «error_text»: «string»,
          «error_code»: «string»,
          «snils»: «string»
     }
   }
}

3. Запрос на проверку соответствия фамильно-именной группы, даты рождения, пола и СНИЛС

 

Элемент Кратность Описание
patient 1..1 Блок персональной информации пациента
familyname 1..1 Фамилия. Строка — не более 100 символов
firstname 1..1 Имя. Строка — не более 100 символов
patronymic 0..1 Отчество. Обязательно при наличии. Строка — не более 100 символов
snils 1..1 СНИЛС. Строка — 11 цифр, без тире и пробелов
birth_date 1..1 Дата рождения. В формате: YYYY-MM-DD
gender 1..1 Пол. Число: [1, 2]. Справочник 1.2.643.5.1.13.13.11.1040
Метод POST
Входные данные Конечная точка:
[baseURL]/snils-validate
Тело запроса:
В теле запроса информация о пациенте в формате JSON. Описание структуры ресурса приведено выше
Выходные данные
Элемент Описание
Resource-URI Путь до ресурса
HTTP-код ответа
202 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

3.1.1 Пример запроса

POST /snils-validate HTTP/2
HOST: https://b2b.n3health.ru/snils/Proxy/
Accept: application/json
Content-Type: application/json;charset=UTF-8
Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39
{
   «patient»: {
       «familyname»: «Иванов»,
       «firstname»: «Иван»,
       «patronymic»: «Иванович»,
       «snils»: «02773319862»,
       «birthDate»: «1966-09-12»,
       «gender»: 1
   }
}

3.1.2 Пример ответа

HTTP/2 202
Content-Encoding: UTF-8
Content-Length: 0
{
«success»: true,
«error_text»: «string»,
«error_code»: «string»,
«id»: «string»
}

3.2 Запрос статуса

Метод GET
Входные данные Конечная точка:
[baseURL]/snils-validate/id
Выходные данные
Элемент Обязательность Описание
status Да Статус выполнения запроса
Принимаемые значение:
«Выполнено»
«В процессе»
«Ошибка»
result Нет Булево значение
error_code Нет Код ошибки
error_text Нет Текстовое описание ошибки
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

3.2.1 Пример запроса

GET /snils-validate/cf2c0205-e0cb-4dfd-ad02-80959c091344 HTTP/2
HOST: https://b2b.n3health.ru/snils/Proxy/
Accept: application/json
Content-Type: application/json;charset=UTF-8
Authorization: N3 7496f7bf-0bb0-4e4e-a946-17475f08ad39

3.2.2 Пример ответа

HTTP/2 200
Content-Type: application/json;charset=utf-8
Content-Encoding: UTF-8
{
   «success»: true,
   «error_text»: «string»,
   «error_code»: «string»,
   «data»: {
     «patient»: {
          «status»: «string»,
          «error_text»: «string»,
          «error_code»: «string»,
          «snils»: «string»
     }
   }
}