ОПИСАНИЕ ИНТЕГРАЦИОННЫХ ПРОФИЛЕЙ
СЕРВИС ПОИСКА ПАЦИЕНТОВ
ОБЩАЯ ИНФОРМАЦИЯ
Общее описание
Схема взаимодействия
Определения, обозначения и сокращения
Описание методов
1. Авторизация
1.1. Запрос токена
2. Получение списка пациентов
2.1. Получение списка пациента по одному параметру
2.2. Получение списка пациента по комбинации параметров lastName, firstName, middleName, birthdate, gender
3. Получение данных пациента по идентификатору
Приложение 1. Примеры обращения к сервису
Приложение 2. Справочник «Типы документов»
ОБЩАЯ ИНФОРМАЦИЯ
Общее описание
Сервис предназначен для поиска пациентов по критерию, последующей идентификации из перечня найденных и выбора нужного, а также для получения расширенной информации об указанном пациенте.
Веб-сервис построен по архитектуре REST, в качества формата для обмена используется JSON.
Схема взаимодействия
- Клиентское приложение проходит авторизацию, полученный точен используется при каждом последующем запросе.
- Для обращения к методам веб-сервиса применяются апраметры URL строки запроса
- Веб-сервис содержит первый метод поиска пацинетов по параметр-у/-ам, который возвращает минимальный набор полей (включая уникальный идентификатор) по всем пациентам, отобранныз согласно критерию запроса. Второй метод по уникальному идентификатору в запросе возвращает расширенный набор полей по пациенту.
- При обращении API формирует запросы к БД в соответствии с методом и параметрами и возвращает ответные данные в виде структур в формате JSON.
- Веб-сервис возвращает синхронный ответ с кодом состояния HTTP 200, в формате, описанном ниже. Ошибки так же возвращаются с кодом состояния HTTP 200 и содержат текст сообщения об ошибках.
Определения, обозначения и сокращения
Сокращение | Определение |
2 | 3 |
МИС | Медицинская информационная система |
БД | База данных |
API | Интерфейс программирования приложений (application programming interface) |
JSON | JavaScript Object Notation — текстовый формат обмена данными |
ДУЛ | Документ, удостоверяющий личность |
Описание методов
№ | Описание метода | Метод | Передаваемые параметры | Комментарий |
1. | Получение списка пациентов | GET /find_pat | snils, | Возвращает данные о пациентах. |
2. | Получение данных пациента по идентификатору | GET | 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 | Код документа, удостоверяющего личность (справочник НСИ |
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. Примеры обращения к сервису
- Получение списка пациентов
Пример запроса:
http://185.27.192.200:8779/API/find_pat?lastName=тест&firstName=пац&middleName=иван |
Пример ответа:
{ |
- Получение данных пациента по идентификатору
Пример запроса:
Пример ответа:
{ |
Приложение 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 | Иной документ, соответствующий свидетельству о предоставлении убежища на территории Российской Федерации |