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

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

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

Информационный обмен осуществляется в соответствии со стандартом 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. Описание структуры ресурса приведено выше
Выходные данные
Элемент Описание
Resource-URI Путь до ресурса
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

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
Content-Encoding: text/plain; charset=utf-8
Content-Length: 43

Выходные данные 
/snils/{id}

HTTP/2 40X/50X
Content-Encoding: application/json; charset=utf-8
 {
"code": "код_ошибки",
"description": "текст_ошибки"
}

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

Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!

Метод 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/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. Описание структуры ресурса приведено выше
Выходные данные
Элемент Описание
Resource-URI Путь до ресурса
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

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

Выходные данные 
/snils-validate/{id}

HTTP/2 40X/50X
Content-Encoding: UTF-8
Content-Length: 0
{
   "error": {
      "code": "код_ошибки",
      "description": "текст_ошибки"
   }
}

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

Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!

Метод 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/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. Описание структуры ресурса приведено выше
Выходные данные
Элемент Описание
Resource-URI Путь до ресурса
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

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

Выходные данные
/united-policy-number/{id}

HTTP/2 40X/50X
Content-Encoding: UTF-8
Content-Length: 0
{
      "code": "код_ошибки",
      "description": "текст_ошибки"
}

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

Между данными запросами оканчивающиеся на /{id} должна быть пауза в 10 секунд!

Метод GET
Входные данные Конечная точка:
[baseURL]/united-policy-number/id
Выходные данные
Элемент Обязательность Описание
unitedPolicyNumber
Нет Единый номер полиса ОМС (ЕНП). Строка из 16 цифр
region
 
Нет Код субъекта РФ по ОКАТО, где зарегистрирована СМО в качестве участника ОМС
insuranceOrganization
 
Нет Наименование страховой медицинской организации
startDate
Нет Дата начала страхования
endDate Нет Дата окончания страхования
status Да Статус выполнения запроса
Принимаемые значение:
"Выполнено"
"В процессе"
"Ошибка"
error_code Нет Код ошибки
error_text Нет Текстовое описание ошибки
HTTP-код ответа
200 Успешное выполнение запроса
405 Использование метода запрещено
500 Иные ошибки

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": "Выполнено"
    }
}