ОПИСАНИЕ ИНТЕГРАЦИОННЫХ ПРОФИЛЕЙ
СЕРВИС ПОИСКА ПАЦИЕНТОВ

ОБЩАЯ ИНФОРМАЦИЯ
Общее описание
Схема взаимодействия
Определения, обозначения и сокращения
Описание методов
1. Авторизация
1.1. Запрос токена
2. Получение списка пациентов
2.1. Получение списка пациента по одному параметру
2.2. Получение списка пациента по комбинации параметров lastName, firstName, middleName, birthdate, gender
3. Получение данных пациента по идентификатору
Приложение 1. Примеры обращения к сервису
Приложение 2. Справочник «Типы документов»

ОБЩАЯ ИНФОРМАЦИЯ

Общее описание

Сервис предназначен для поиска пациентов по критерию, последующей идентификации из перечня найденных и выбора нужного, а также для получения расширенной информации об указанном пациенте.
Веб-сервис построен по архитектуре REST, в качества формата для обмена используется JSON.

Схема взаимодействия

  1. Клиентское приложение проходит авторизацию, полученный точен используется при каждом последующем запросе.
  2. Для обращения к методам веб-сервиса применяются апраметры URL строки запроса
  3. Веб-сервис содержит первый метод поиска пацинетов по параметр-у/-ам, который возвращает минимальный набор полей (включая уникальный идентификатор) по всем пациентам, отобранныз согласно критерию запроса. Второй метод по уникальному идентификатору в запросе возвращает расширенный набор полей по пациенту.
  4. При обращении API формирует запросы к БД в соответствии с методом и параметрами и возвращает ответные данные в виде структур в формате JSON.
  5. Веб-сервис возвращает синхронный ответ с кодом состояния HTTP 200, в формате, описанном ниже. Ошибки так же возвращаются с кодом состояния HTTP 200 и содержат текст сообщения об ошибках.


Определения, обозначения и сокращения

Сокращение

Определение

2

3

МИС

Медицинская информационная система

БД

База данных

API

Интерфейс программирования приложений (application programming interface)

JSON

JavaScript Object Notation — текстовый формат обмена данными

ДУЛ

Документ, удостоверяющий личность


Описание методов


п/п

Описание метода

Метод

Передаваемые параметры

Комментарий

1.

Получение списка пациентов

GET /find_pat

snils,
number,
policy,
lastname,
firstName,
middleName, birthdate,
gender

Возвращает данные о пациентах.

2.

Получение данных пациента по идентификатору

GET
/pat

patid

Возвращает расширенные данные о пациенте.


Авторизация

Каждый запрос к API должен сопровождаться заголовком авторизации, сервис сначала проверит токен и отправляет соответствующую информацию в ответ на запрос.Для получения токена необходимо выполнить запрос к сервису авторизации.

1.1. Запрос токена

Для получения токена необходимо отправить HTTP POST запрос на адрес сервиса http://185.27.192.200:8779/API/auth, указав в заголовке Autorization: Basic <encoded_to_Base64_string> , где encoded_to_Base64_string – строка из состоящая логина и пароля в формате username:password, закодированная в формат Base64.
Полученный JWT токен необходимо использовать в дальнейшем при обращении к API. Для каждого запроса необходимо добавлять заголовок: Authorization: bearer <access_token>, где access_token - значение токена полученное при успешной авторизации. При отсутствии активности к веб-сервису в течении опрделенного времени (4 часа по умолчанию) происходит сброс токена, после чего необходимо обновить токен авторизации.

Получение списка пациентов

Поиск пациента возможен по точному совпадению одного из параметров: snils, number, policy. При отсутствии данных параметров поиск производится по комбинации параметров lastName, firstName, middleName, birthdate, gender.
Метод HTTP: GET /API/find_pat

2.1. Получение списка пациента по одному параметру

Параметры запроса приведены в таблице 2.1.

Параметры

Тип

Описание

snils

string

Номер СНИЛС

number

string

Номер ДУЛ

policy

string

Номер полиса

2.2. Получение списка пациента по комбинации параметров lastName, firstName, middleName, birthdate, gender

Корректный запрос должен содержать не менее 2-х параметров. Параметры запроса приведены в таблице 2.2.

Параметры

Тип

Описание

lastName

string

Фамилия пациента*

firstName

string

Имя пациента*

middleName

string

Отчество пациента*

birthDate

string

Дата рождения (в формате yyyy-MM-dd)

gender

string

Пол пациента (М/Ж, необязательный)

*для ФИО достаточно частичного совпадения по первым буквам
Параметры ответа приведены в таблице 2.

Выходные данные

Тип

Описание

id

guid

Идентификатор пациента

SNILS

string

СНИЛС пациента

lastName

string

Фамилия пациента

firstName

string

Имя пациента

middleName

string

Отчество пациента

birthDate

string

Дата рождения

gender

string

Пол

docType

string

Короткое наименование документа, удостоверяющего личность (Приложение 2. Справочник «Типы документов»)

docSer

string

Серия ДУЛ

docNum

string

Номер ДУЛ

address1

string

Адрес фактического проживания


Получение данных пациента по идентификатору

Метод HTTP: GET /API/pat
Параметры запроса приведены в таблице 3.1.

Параметры

Тип

Описание

patid

guid

Идентификатор пациента (полученный в методе find_pat)

Параметры ответа приведены в таблице 3.2.

Выходные данные

Тип

Описание

id

guid

Идентификатор пациента

SNILS

string

СНИЛС пациента

lastName

string

Фамилия пациента

firstName

string

Имя пациента

middleName

string

Отчество пациента

birthDate

string

Дата рождения

gender

string

Пол

docType

string

Код документа, удостоверяющего личность (справочник НСИ
1.2.643.5.1.13.13.99.2.48 - Документы, удостоверяющие личность)

docSer

string

Серия ДУЛ

docNum

string

Номер ДУЛ

docDate

date

Дата выдачи ДУЛ

docOrg

string

Орган, выдавший ДУЛ

polisType

string

Тип полиса (справочник НСИ 1.2.643.5.1.13.13.11.1035 - Виды полиса ОМС)

polNum

string

Номер полиса

polSer

string

Серия полиса

insCode

string

Код страховой организации

insName

string

Наименование страховой организации

phones

string

Контактный телефон

address1

string

Адрес фактического проживания

address2

string

Адрес регистрации


Приложение 1. Примеры обращения к сервису

  1. Получение списка пациентов

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

http://185.27.192.200:8779/API/find_pat?lastName=тест&firstName=пац&middleName=иван

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

{
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c6463ac0-09e9-41b4-8354-c4a371c3376a"><ac:plain-text-body><![CDATA[ "patients": [
]]></ac:plain-text-body></ac:structured-macro>
{
"id": "cba81eb6-24ca-4878-8a5a-5ea4c2e97382",
"SNILS": "000-000-000 00",
"lastName": "Теставая",
"firstName": "Пациентка",
"middleName": "Ивановна",
"birthDate": "1996-05-19",
           "docType": "Паспорт РФ",
"gender": "Ж",
"docSer": "11 11",
"docNum": "111111",
"address1": "420095, г.Казань, ул.12 Декабря, д.12, кв.3"
}
]
}

  1. Получение данных пациента по идентификатору

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

GET:

http://185.27.192.200:8779/API/pat?patId=

cba81eb6-24ca-4878-8a5a-5ea4c2e97382

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

{
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="02ae2c0a-11d0-42b2-b6c3-5b43ec6a0a81"><ac:plain-text-body><![CDATA[ "patients": [
]]></ac:plain-text-body></ac:structured-macro>
{
"id": "cba81eb6-24ca-4878-8a5a-5ea4c2e97382",
"SNILS": "000-000-000 00",
"lastName": "Теставая",
"firstName": "Пациентка",
"middleName": "Ивановна",
"birthDate": "1996-05-19",
"gender": "Ж",
"docType": "1",
"docSer": "11 11",
"docNum": "111111",
"polisType": "2",
"polNum": "0000000000000000",
"insCode": "16051",
"insName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"СТРАХОВАЯ КОМПАНИЯ \"АК БАРС-МЕД\"",
"phones": "8(917)237-77-77 (моб.), 1513031106@mail.ru (email), 555555 (дом.)",
"address1": "420095, г.Казань, ул.12 Декабря, д.12, кв.3",
"address2": "420095, г.Казань, ул.12 Декабря, д.12, кв.3"
}
]
}



Приложение 2. Справочник «Типы документов»

Код

Короткое наименование

2

Паспорт РФ

3

Свид. о рожд. РФ

4

Удост. личности офицера

5

Военный билет

6

Вид на жительство.

7

Удост. беженца РФ

8

Спр. об освобожд.

9

Прочие

10

Паспорт гражд. СССР

11

Загранпаспорт гражд. СССР

12

Свид. о рег. ходат. о призн. иммигранта беженцем

13

Дипломат. паспорт гражд. РФ

14

Паспорт Минморфлота

15

Паспорт моряка

16

Иностранный паспорт

17

Врем. удост. лич. гражданина РФ

18

Загранпаспорт гражданина РФ

19

Воен. билет офиц. запаса

20

Документ иностранного гражданина

21

Документ лица без гражданства

22

Разрешение на временное проживание

23

Свидетельство о рождении, выданное не в РФ

24

Свидетельство о предоставлении временного убежища на территории Российской Федерации

25

Удостоверение сотрудника Евразийской экономической комиссии

26

Копия жалобы о лишении статуса беженца

27

Иной документ, соответствующий свидетельству о предоставлении убежища на территории Российской Федерации