Ссылка скопирована

Для расширений с HTTP-сервисами (Медицина.Стоматология, МедАнгел, Аналит: Учет медицинских услуг)

Интеграция онлайн-записи реализована при помощи HTTP-сервиса MR_Integration.

Для доступа к базе выполняется basic авторизация.

МЕТОДЫ

ПРОВЕРКА СТАТУСА СЕРВЕРА

Тип запроса GET

Формат тела запроса Нет

URL /hs/mr_integration/v1/get_healthcheck/noid

Тело запроса Нет

Формат ответов:

{
"results": true
}

Код состояния: 200

МЕТАДАННЫЕ

Тип запроса GET

Формат тела запроса Нет

URL /hs/mr_integration/v1/get_metadata/noid

Тело запроса Нет

Формат ответов:

  • Данные успешно получены:
{
"results": [
{
"result": true,
"ВерсияПлатформы": "8.3.24.1819",
"Конфигурация": "1С:Медицина. Стоматологическая клиника, редакция 2.1",
"ВерсияКонфигурации": "2.1.8.1",
"РежимСовместимости": "Версия8_3_18",
"НаименованиеРасширения": "MedFlexAppointment_Stomatology",
"РасширениеВерсия": "2.2.0",
"РежимСовместимостиРасширения": "Версия8_3_11",
"РасширениеХешСумма": "58 DB 0C AC 92 AD FC 67 26 CB 02 9C 7F 61 0F 2E 50 5D E5 9C",
"НаличиеОбъектовВКонфигурации": "HTTPСервис: HTTPСервис.MR_Integration",
"РасширеннаяВыгрузкаПриемов": true
}
]
}
  • ВерсияПлатформы — версия платформы 1С.
  • Конфигурация — наименование установленной конфигурации.
  • ВерсияКонфигурации — версия установленной конфигурации.
  • РежимСовместимости — режим совместимости конфигурации.
  • НаименованиеРасширения — наименование расширения МедФлекс.
  • РасширениеВерсия — версия расширения МедФлекс.
  • РежимСовместимостиРасширения — режим совместимости расширения МедФлекс.
  • РасширениеХешСумма — хеш-сумма расширения МедФлекс.
  • НаличиеОбъектовВКонфигурации — список объектов расширения МедФлекс, присутствующих в базе.
  • РасширеннаяВыгрузкаПриемов — включена ли функция отправки полного набора данных приёмов.

Код состояния: 200

  • Не удалось получить расширения из конфигурации:

«Не удалось получить расширение из конфигурации»

Код состояния: 200

ДАННЫЕ ФИЛИАЛОВ

Тип запроса GET

Формат тела запроса Нет

URL /hs/mr_integration/v1/book_filials/noid

Тело запроса Нет

Формат ответов:

{
"Parameters": [
{
"name": "Тестовая клиника",
"id": "502c533c-9b12-11ee-8106-96d03872bb29"
},
],
"Errors": {
"code": 0,
"message": ""
}
}
  • Parameters может содержать любое количество сложенных структур.
  • Name — наименование клиники.
  • ID — УИД клиники.

Код состояния: 200

ДАННЫЕ ВРАЧЕЙ

Тип запроса GET

Формат тела запроса Нет

URL /hs/mr_integration/v1/pd_doctors_list/{filial_id}

  • Filial_id — УИД филиала, в котором необходимо искать врачей. Формат: aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa. Обязательный.

Тело запроса Нет

Формат ответов:

  • Данные успешно получены:
[
{
"name": "Иванов Иван Иванович",
"id": "c518fb50-2dc3-4ceb-8a8f-c576c23329ac",
"spec": "Директор"
}
]
  • В массиве может содержаться любое количество структур.
  • Name — ФИО врача.
  • ID — УИД врача.
  • Spec — должность врача.

Код состояния: 200

  • Не удалось найти филиал:
{
"Parameters": null,
"Errors": {
"code": 1055,
"message": "Не найдена структурная единица"
}
}

Код состояния: 400

ДАННЫЕ УСЛУГ

Тип запроса GET

Формат тела запроса Нет

URL /hs/mr_integration/v1/pd_services_list/{filial_id}?doctor_id=6048e93d-99ad-4997-9663-ad15a790c6fe

  • Filial_id — УИД филиала, где необходимо искать услуги. Формат: aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa. Обязательный.
  • Doctor_id — УИД врача, по которому необходимо найти услуги. Обязательный.

Тело запроса Нет

Формат ответов:

Данные получены успешно:

{
"results": [
{
"id": "2b08b356-57d7-11f0-8145-96d03872bb29",
"text": "Восстановление зуба пломбой 30 мин"
}
]
}
  • Массив results может содержать любое количество структур.
  • ID — УИД номенклатуры.
  • Text — наименование номенклатуры.

Код состояния: 200

  • Не удалось найти филиал:
{
"Parameters": null,
"Errors": {
"code": 1055,
"message": "Не найдена структурная единица"
}
}

Код состояния: 400

  • Не удалось найти врача:
{
"Parameters": null,
"Errors": {
"code": 1050,
"message": "Не найден сотрудник"
}
}

Код состояния: 400

РАСПИСАНИЕ ВРАЧЕЙ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/doctors_send_schedule/noid

Тело запроса

{
"start_date": "2025-08-20",
"end_date": "2025-08-30",
"filials_ids": ["06a55650-22c7-11ed-bbdd-005056833d76"],
"doctors_service": [
{
"staff_id": "6048e93d-99ad-4997-9663-ad15a790c6fe",
"service_id": "1e1a6ebd-04c7-11f0-8137-96d03872bb29"
}
]
}
  • Start_date — дата начала выгружаемого периода YYYY-MM-dd. Обязательный.
  • End_date — дата окончания выгружаемого периода YYYY-MM-dd. Обязательный.
  • Filials_ids — массив филиалов, в которых необходимо искать рабочее время.
  • Doctors_service — массив из структур, содержащих данные врача и его услуги. Должен содержать хотя бы одну структуру.
  • Staff_id — УИД врача, по которому необходимо выгрузить расписание.
  • Service_id — УИД услуги, которую оказывает врач. Длительность этой услуги используется для разбиения всего интервала на индивидуальные слоты.

Формат ответов:

{
"schedule": {
"06a55650-22c7-11ed-bbdd-005056833d76": "Центр Стоматологической Имплантологии",
"data": {
"06a55650-22c7-11ed-bbdd-005056833d76": {
"febe518f-15fb-4b7e-9945-e4549440f049": {
"efio": "Зигангиров Артур Амперович",
"espec": "Ортодонтия",
"cells": [
{
"dt": "2025-05-29",
"time_start": "11:30",
"time_end": "12:00",
"free": true
}
]
}
}
}
}
}
  • Schedule может содержать любое количество филиалов и должно содержать одну структуру data.
  • {filial_id} — в качестве ключа указывается УИД филала (в формате aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa), а в качестве значения — его наименование.
  • Data содержит столько же структур филиалов, сколько и schedule.
  • Data:{filial_id} должно содержать хотя бы одну структуру {staff_id} в формате «aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa».
  • Data:{filial_id}:{staff_id}:efio — ФИО врача.
  • Data:{filial_id}:{staff_id}:espec — специализация врача.
  • Data:{filial_id}:{staff_id}:cells — массив, который должен содержать хотя бы одну структуру с данными ячейки.
  • Data:{filial_id}:{staff_id}:cells:dt — дата слота YYYY-MM-dd.
  • Data:{filial_id}:{staff_id}:cells:time_start — время начала слота HH:mm.
  • Data:{filial_id}:{staff_id}:cells:time_end — время окончания слота HH:mm.
  • Data:{filial_id}:{staff_id}:cells:free — свободен ли слот или нет.
  • Некорректно заданы параметры даты:
{
"Parameters": null,
"Errors": {
"code": 1054,
"message": "Неверный формат даты"
}
}
  • Не удалось найти филиал:
{
"Parameters": null,
"Errors": {
"code": 1117,
"message": "Не найдена структурная единица"
}
}
  • Не удалось найти врача:
{
"Parameters": null,
"Errors": {
"code": 1050,
"message": "Не найден сотрудник"
}
}
  • Не удалось найти услугу:
{
"Parameters": null,
"Errors": {
"code": 1051,
"message": "Не найдена услуга"
}
}

РАСПИСАНИЕ УСЛУГ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/services_send_schedule/noid

Тело запроса

{
"start_date": "2025-09-22",
"end_date": "2025-09-23",
"filials_ids": [],
"only_price": false
}
  • Start_date — дата начала выгружаемого периода YYYY-MM-dd. Обязательный.
  • End_date — дата окончания выгружаемого периода YYYY-MM-dd. Обязательный.
  • Filials_ids — массив филиалов, в которых необходимо искать рабочее время.
  • Only_price — будут ли выгружаться периоды или только данные услуг.

Формат ответов:

  • Данные успешно получены:
{
"schedule": {
"bc091729-29d9-11ed-bbdd-005056833d76": "Центр Эстетической Стоматологии",
"data": {
"bc091729-29d9-11ed-bbdd-005056833d76": {
"services": {
"basic": {
"19073231-2a9c-11ed-bbdd-005056833d76": {
"name": "Ушивание лунки после простого удаления",
"category": "Хирургия",
"government_code": null,
"price": 950,
"duration": 30,
"additional_services": [],
"intervals": []
}
},
"additional": {}
},
"doctors": {
"4237a6ca-1072-4200-b5f4-454e28d572bc": {
"efio": "Иванов Иван Иванович",
"intervals": [
{
"dt": "2025-09-22",
"time_start": "09:30",
"time_end": "18:00",
"free": true
}
],
"services": [
"19073231-2a9c-11ed-bbdd-005056833d76"
]
}
},
"devices": {}
}
}
}
}
  • Schedule может содержать любое количество филиалов и должно содержать одну структуру data.
  • {filial_id} — в качестве ключа указывается УИД филала (в формате aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa), а в качестве значения — его наименование.
  • Data содержит столько же структур филиалов, сколько и schedule.
  • Должно содержать один экземпляр каждой из структур services, doctors и devices.
  • Data:{filial_id}:services должно содержать один экземпляр каждой из структур basic и additional.
  • Data:{filial_id}:services:basic должно содержать хотя бы одну структуру с данными услуги.
  • Data:{filial_id}:services:basic:{service_id} — в качестве ключа указывается УИД номенклатуры (в формате aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa), а в качестве значения — её наименование.
  • {service_id}:name — наименование номенклатуры.
  • {service_id}:category — категория номенклатуры.
  • {service_id}:government_code — временно не используется, всегда null.
  • {service_id}:price — цена номенклатуры.
  • {service_id}:duration — продолжительность приёма по данной услуге.
  • {service_id}:additional_services — временно не используется, пустой массив.
  • {service_id}:intervals — устаревшее поле, пустой массив.
  • Data:{filial_id}:services:additional — временно не используется, пустая структура.
  • Data:{filial_id}:doctors должно содержать хотя бы одну структуру с данными врача.
  • Data:{filial_id}:doctors:{doctor_id} — в качестве ключа указывается УИД врача (в формате aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa), а в качестве значения — данные о нём.
  • Data:{filial_id}:doctors:{doctor_id} должно содержать один экземпляр каждой из структур efio, intervals и services.
  • {doctor_id}:efio — ФИО врача.
  • {doctor_id}:intervals — массив интервалов рабочего времени врача, должен содержать хотя бы один элемент с данными интервала.
  • {doctor_id}:intervals:dt — дата интервала YYYY-MM-dd.
  • {doctor_id}:intervals:time_start — время начала интервала HH:mm.
  • {doctor_id}:intervals:time_end — время окончания интервала HH:mm.
  • {doctor_id}:intervals:free — свободен ли интервал или нет.
  • {doctor_id}:services — массив услуг, оказываемых врачем. Состоит из УИДов номенклатуры.
  • Data:{filial_id}:devices — временно не используется, пустая структура.
  • Некорректно заданы параметры даты:
{
"Parameters": null,
"Errors": {
"code": 1054,
"message": "Неверный формат даты"
}
}
  • Не удалось найти филиал:
{
"Parameters": null,
"Errors": {
"code": 1117,
"message": "Не найдена структурная единица"
}
}

ОНЛАЙН-ЗАПИСЬ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/book_record_from_pd/noid

Тело запроса

{
"filial_id": "502c533c-9b12-11ee-8106-96d03872bb29",
"family_name": "Иванов",
"first_name": "Иван",
"patronic_name": "Иванович",
"birth_date": "2019-09-13T00:00",
"phone": "7 (924) 1111111",
"comment": "Комментарий",
"datetime": "2025-04-30T10:00",
"staff_id": "6048e93d-99ad-4997-9663-ad15a790c6fe",
"service_id": "1e1a68b5-04c7-11f0-8137-96d03872bb29"
}
  • Filial_id — УИД филиала, в который выполняется запись. Обязательный.
  • Family_name — фамилия пациента.
  • First_name — имя пациента.
  • Patronic_name — отчество пациента.
  • Birth_date — дата рождения пациента YYYY-MM-ddTHH:mm:ss.
  • Phone — мобильный телефон пациента.
  • Comment — комментарий к записи.
  • Datetime — дата и время, на которые выполняется запсь YYYY-MM-ddTHH:mm:ss. Обязательый.
  • Staff_id — врач, к которому выполняется запись. Обязательный.
  • Service_id — услуга, на которую выполняется запись. Обязательный.

Формат ответов:

  • Запись успешно выполнена:
{
"Parameters": {
"Result": true,
"Appointment_id": "464340dd-afcb-4602-b216-62a4a3cd66a9"
},
"Errors": {
"code": 0,
"message": ""
}
}
  • Appointment_id — УИД созданной записи.
  • Некорректно заданы параметры даты-времени:
{
"Parameters": null,
"Errors": {
"code": 1054,
"message": "Неверный формат даты"
}
}
  • Не удалось найти врача:
{
"Parameters": null,
"Errors": {
"code": 1050,
"message": "Не найден сотрудник"
}
}
  • Не удалось найти услугу:
{
"Parameters": null,
"Errors": {
"code": 1051,
"message": "Не найдена услуга"
}
}
  • У указанной услуги не задана продолжительность:
{
"Parameters": null,
"Errors": {
"code": 1100,
"message": "Сотрудник не может оказать выбранную услугу, у данной услуги не задана продолжительность."
}
}
  • Приём выходит за границы рабочего времени сотрудника:
{
"Parameters": null,
"Errors": {
"code": 1118,
"message": "Прием выходит за границы рабочего времени сотрудника"
}
}
  • Слот, на который делается запись, уже занят:
{
"Parameters": null,
"Errors": {
"code": 1102,
"message": "Интервал сотрудника занят: Запись 0000-000009 от 10.09.2025 9:07:44 С 22.09.2025 11:00:00 до 22.09.2025 11:30:00"
}
}
  • Не удалось записать документ приёма:
{
"Parameters": null,
"Errors": {
"code": 1000,
"message": "Текст ошибки"
}
}

ПЕРЕНОС ЗАПИСИ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/book_transfer_record/noid

Тело запроса

{
"appointment_id": "ea8f84e1-ab21-4e02-812c-15c96ee153ab",
"filial_id": "bc091729-29d9-11ed-bbdd-005056833d76",
"family_name": "Иванов",
"first_name": "Иван",
"patronic_name": "Иванович",
"birth_date": "2019-09-13T00:00",
"phone": "7 (924) 2020478",
"comment": "Тестовый комментарий",
"datetime": "2025-09-22T13:00",
"staff_id": "4237a6ca-1072-4200-b5f4-454e28d572bc",
"service_id": "4e80e410-2a9b-11ed-bbdd-005056833d76"
}
  • Appointment_id — УИД записи, которую необходимо перенести. Обязательный.
  • Filial_id — УИД филиала, в который выполняется запись. Обязательный.
  • Family_name — фамилия пациента.
  • First_name — имя пациента.
  • Patronic_name — отчество пациента.
  • Birth_date — дата рождения пациента YYYY-MM-ddTHH:mm:ss.
  • Phone — мобильный телефон пациента.
  • Comment — комментарий к записи.
  • Datetime — дата и время, на которые выполняется запсь YYYY-MM-ddTHH:mm:ss. Обязательый.
  • Staff_id — врач, к которому выполняется запись. Обязательный.
  • Service_id — услуга, на которую выполняется запись. Обязательный.

Формат ответов:

  • Запись успешно перенесена:
{
"Parameters": {
"Result": true
},
"Errors": {
"code": 0,
"message": ""
}
}
  • Некорректно заданы параметры даты-времени:
{
"Parameters": null,
"Errors": {
"code": 1054,
"message": "Неверный формат даты"
}
}
  • Не удалось найти врача:
{
"Parameters": null,
"Errors": {
"code": 1050,
"message": "Не найден сотрудник"
}
}
  • Не удалось найти услугу:
{
"Parameters": null,
"Errors": {
"code": 1051,
"message": "Не найдена услуга"
}
}
  • Некорректно задан параметр appointment_id:
{
"Parameters": null,
"Errors": {
"code": 1047,
"message": "Не указана прямая запись"
}
}
  • Не удалось найти запись:
{
"Parameters": null,
"Errors": {
"code": 1049,
"message": "Не найдена прямая запись"
}
}
  • У указанной услуги не задана продолжительность:
{
"Parameters": null,
"Errors": {
"code": 1100,
"message": "Сотрудник не может оказать выбранную услугу, у данной услуги не задана продолжительность."
}
}
  • Приём выходит за границы рабочего времени сотрудника:
{
"Parameters": null,
"Errors": {
"code": 1118,
"message": "Прием выходит за границы рабочего времени сотрудника"
}
}
  • Слот, на который делается запись, уже занят:
{
"Parameters": null,
"Errors": {
"code": 1102,
"message": "Интервал сотрудника занят: Запись 0000-000009 от 10.09.2025 9:07:44 С 22.09.2025 11:00:00 до 22.09.2025 11:30:00"
}
}
  • Не удалось записать документ приёма:
{
"Parameters": null,
"Errors": {
"code": 1000,
"message": "Текст ошибки"
}
}

ПОДТВЕРЖДЕНИЕ ЗАПИСИ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/confirm_book_appointment/no-need-filial

Тело запроса

{
"GUID": "93c7006e-7ed6-4093-b261-c33704755b93",
"ConfirmSource": "МедТочка"
}
  • GUID — УИД подтверждаемой записи.
  • ConfirmSource — источник подтверждения.

Формат ответов:

  • Подтверждение успешно:

«Запись успешно подтверждена»

Код состояния: 200

  • Не указан источник подтверждения записи:

«Не указан источник подтверждения записи»

Код состояния: 400

  • Не удалось найти запись:
{
"Parameters": null,
"Errors": {
"code": 1049,
"message": "Не найдена прямая запись"
}
}
  • Запись уже подтверждена:

«Запись уже была подтверждена»

Код состояния: 200

ОТМЕНА ЗАПИСИ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/book_cancel_record/noid

Тело запроса

{
"appointment_id": "93c7006e-7ed6-4093-b261-c33704755b93"
}
  • Appointment_id — УИД записи, которую необходимо отменить.

Формат ответов:

  • Запись успешно отменена:
{
"Parameters": {
"Result": true
},
"Errors": {
"code": 0,
"message": ""
}
}
  • Некорректно задан параметр appointment_id:
{
"Parameters": null,
"Errors": {
"code": 1047,
"message": "Не указана прямая запись"
}
}
  • Не удалось найти запись:
{
"Parameters": null,
"Errors": {
"code": 1049,
"message": "Не найдена прямая запись"
}
}

ОБНОВЛЕНИЕ КОММЕНТАРИЯ ЗАПИСИ

Тип запроса POST

Формат тела запроса JSON

URL /hs/mr_integration/v1/update_comment_appointment/noid

Тело запроса

{
"appointment_id": "dec6441b-2e7d-4133-9157-4ce3a20ea1ac",
"comment": "testcomment"
}
  • Appointment_id — УИД записи, которую необходимо отменить.
  • Comment — новый комментарий.

Формат ответов:

  • Комментарий успешно обновлён:
{
"Parameters": {
"Result": true
},
"Errors": {
"code": 0,
"message": ""
}
}
  • Некорректно задан параметр appointment_id:
{
"Parameters": null,
"Errors": {
"code": 1047,
"message": "Не указана прямая запись"
}
}
  • Не удалось найти запись:
{
"Parameters": null,
"Errors": {
"code": 1049,
"message": "Не найдена прямая запись"
}
}
  • Не удалось записать документ приёма:
{
"Parameters": null,
"Errors": {
"code": 1000,
"message": "Текст ошибки"
}
}