====== Процесс синхронизации данных сервиса записи к врачу с МИС Ариадна ====== ===== Запрос данных в API Ариадна ===== JSON-данные передаются в теле запроса POST в REST API. Ключевым аспектом является указание заголовка Content-Type: application/json, который сообщает серверу, что данные имеют формат JSON. В случае успешного выполнения запроса возвращается JSON объект. Убедитесь, что сервер принял данные, в противном случае выполнение запроса необходимо повторить. Запросы к API желательно отправлять со статического IP адреса, который будет внесен в белый список. В противном случае, потребуется предавторизация. ===== /api/v2/login ===== Запрос создает access токен, предназначенный для работы с API. Полученный токен необходимо отправлять в заголовке Authorization: token //accessToken// === Запрос === ^Аргумент^Описание^ |username|Имя пользователя| |key|API-ключ| === Ответ === ^Аргумент^Описание^ |access_token|Токен доступа к API| == Пример == { username: "super" key: "7d61d77d61d77d61d77d61d77d61d7" } ===== /api/v2/specialty.get ===== Получение списка специальностей врачей === Запрос === {} === Ответ === |specialties[]|массив специальностей| |specialties[] id|уникальный id специальности| |specialties[] parent_id|уникальный id родительской специальности * уточнить нужен ли| |specialties[] title|Наименование специальности| { specialties: [ { id: 722, parent_id: 1, title: "Абдоминальные хирурги", }, ] } ===== /api/v2/division.get ===== Получение списка Подразделений по приему врачей === Запрос === {} === Ответ === |divisions[]|массив подразделений| |divisions[] id|уникальный id подразделения| |divisions[] title|Наименование подразделения| |divisions[] address|Адрес подразделения| { divisions: [ { id: 72, title: "Клиническая больница № 1", address: "Нижний Новгород, Нижневолжская наб., 2" }, ] } ===== /api/v2/doctor.get ===== Получение списка врачей === Запрос === {} === Ответ === |doctors[]|массив врачей| |doctors[] id|уникальный id врача| |doctors[] name|ФИО врача| |doctors[] specialty_id|Id специальности| { doctors: [ { id: 1001, name: "Иванова Маргарита Анатольевна", specialty_id:722, division_id:44 }, ] } ===== /api/v2/nearest.slot.get ===== Получение ближайших доступных слотов, сгруппированных по врачам === Запрос === |specialty_id|id специальности (необязательное)| |doctor_id|массив id врачей (необязательное)| |division_id|id подразделения (необязательное)| { doctor_id:[722,723,728] } === Ответ === |slots[]|массив слотов| |slots[] id|Уникальный id слота| |slots[] date|Дата и время слота| |slots[] price|Стоимость приема (Первичный дорогой)| |slots[] doctor_id|id врача| |slots[] specialty_id|id специальности| |slots[] division_id|id подразделения| { slots: [ { id: 75562488, date: "2025-08-23T09:00:00" price:3500, doctor_id:722, specialty_id:22, division_id:72 }, { id: 75562489, date: "2025-08-23T09:15:00" price:3500, doctor_id:723, specialty_id:22, division_id:72 }, ] } ===== /api/v2/days.get ===== Получение списка доступных дней для записи к врачу с выборкой по параметрам === Запрос === |date_start|Дата начала диапазона доступных дней для записи| |date_end|Дата окончания диапазона доступных дней для записи| |doctor_id|id врача (обязательное)| { date_start: "2025-10-08", date_end: "2025-10-23", doctor_id:722 } === Ответ === |days[]|массив дней| |day[] date|Дата| { days: [ { date: "2025-08-08" }, { date: "2025-08-10" }, ] } ===== /api/v2/slot.get ===== Получение списка доступных слотов врачей с выборкой по параметрам === Запрос === |date_start|Дата начала диапазона записей| |date_end|Дата окончания диапазона записей| |specialty_id|id специальности (необязательное)| |doctor_id|id врача (необязательное)| |division_id|id подразделения (необязательное)| { date_start: "2025-08-23T09:00:00", date_end: "2025-08-23T23:59:59", specialty_id:722 } === Ответ === |slots[]|массив слотов| |slots[] id|Уникальный id слота| |slots[] date|Дата и время слота| |slots[] doctor_id|id врача| |slots[] specialty_id|id специальности| |slots[] division_id|id подразделения| { slots: [ { id: 75562488, date: "2025-08-23T09:00:00" doctor_id:1001, specialty_id:722, division_id:72 }, { id: 75562489, date: "2025-08-23T09:15:00" doctor_id:1001, specialty_id:722, division_id:72 }, ] } ===== /api/v2/visit.create ===== Отправка записи на слот. === Запрос === |slot_id| id слота *| |last_name|Фамилия пациента*| |first_name|Имя пациента*| |surname|Отчество пациента*| |email| Еmail пациента*| |snils| СНИЛС (необязательное)| |funding| Платный прием 0/1 (необязательное)| { slot_id: 7211, last_name: "Сорокин", first_name: "Кирилл", surname: "Кирилл", email: email@mail.ru, birthday: "1925-08-23", snils: ХХХ-ХХХ-ХХХ YY, funding: 1, } === Ответ === |status|Успешно записан/Слот не существует/Слот занят| |doctor_id id|id доктора| |date|Дата и время слота| { visit: [ { status: "Успешно записан", doctor_id:1001, date: "2025-08-23T09:00:00", }, ] }