REST API модуля mywebstor.hms
Область (scope): hms.
Как вызывать методы
JavaScript (Bitrix24)
// Список клиник
BX.rest.callMethod("hms.clinic.list", {
order: { ID: "ASC" },
filter: { ACTIVE: "Y" },
select: ["*"]
}, (res) => {
if (res.error()) console.error(res.error());
else console.log(res.data());
});
// Получить одну запись
BX.rest.callMethod("hms.clinic.get", { id: 1 }, callback);
// Создание записи
BX.rest.callMethod("hms.appointment.add", {
fields: {
CONTACT_ID: 390046,
CLINIC_ID: 1,
DOCTOR_ID: 696,
DATE_FROM: "2025-12-10T14:00:00",
DURATION: 20,
TITLE: "Заявка на приём"
}
}, callback);cURL
# GET-запрос (список)
curl -X GET "https://your-portal.bitrix24.ru/rest/hms.clinic.list?auth=xxx" \
-d "order[ID]=ASC" \
-d "filter[ACTIVE]=Y" \
-d "select[]=*"
# POST-запрос (создание)
curl -X POST "https://your-portal.bitrix24.ru/rest/hms.appointment.add" \
-d "auth=xxx" \
-d "fields[CONTACT_ID]=390046" \
-d "fields[CLINIC_ID]=1" \
-d "fields[DATE_FROM]=2025-12-10T14:00:00" \
-d "fields[DURATION]=20" \
-d "fields[TITLE]=Заявка на приём"Общая структура ответа
Все методы возвращают обёртку:
{
"result": <данные метода>,
"time": {
"start": <timestamp>,
"finish": <timestamp>,
"duration": <секунды>,
"processing": <секунды>,
"date_start": "<ISO datetime>",
"date_finish": "<ISO datetime>"
}
}Методы по сущностям
Сущность | Методы | Описание |
|---|---|---|
| get, list, fields | Клиники |
| get, list, fields | Врачи |
| get, list, fields | Специализации |
| get, list, fields | Кабинеты/офисы |
| get, list, fields | Расписания (с рабочим временем) |
| get, list, add, update, fields | Записи на приём |
Формат вызова: hms.<сущность>.<метод> (например, hms.clinic.list).
1. Клиники (hms.clinic)
hms.clinic.list
Параметры: order, filter, select — массивы (см. общий формат Bitrix REST).
Пример запроса:
{
"order": { "ID": "ASC" },
"filter": { "ACTIVE": "Y" },
"select": ["*"]
}Пример ответа:
{
"result": [
{
"ID": "1",
"XML_ID": "14b50b24-ea06-11e9-80f2-000c297a2574",
"ACTIVE": "Y",
"TITLE": "ул. Циолковского, д.7",
"COMPANY_ID": null
}
],
"time": { "start": ..., "finish": ..., "duration": ..., "date_start": "...", "date_finish": "..." }
}hms.clinic.get
Параметры: id — ID клиники.
Пример запроса:
{ "id": 1 }Пример ответа: один объект клиники (структура как в list).
При отсутствии записи: "result": null.
hms.clinic.fields
Параметры: не требуются.
Возвращает описание полей (type, title, isRequired, isReadOnly).
2. Врачи (hms.doctor)
hms.doctor.list
Параметры: order, filter, select. В select: NAME, LAST_NAME, SECOND_NAME, SPECIALIZATION, PERSONAL_PHOTO_PATH.
Пример запроса:
{
"order": { "ID": "ASC" },
"filter": { "ACTIVE": true },
"select": ["*"]
}Пример ответа:
{
"result": [
{
"ID": 65,
"XML_ID": "93119487-e5d2-11e9-80f2-000c297a2574",
"ACTIVE": true,
"OFFICE_ID": null,
"BASE_DURATION": 40,
"SPECIALIZATION": [{ "ID": 5, "TITLE": "Терапевт", "RECEIVE_TYPE": "base" }],
"NAME": "Денис",
"LAST_NAME": "Александров",
"PERSONAL_PHOTO_PATH": "https://..."
}
],
"time": { ... }
}hms.doctor.get
Параметры: id — ID врача.
Пример запроса: { "id": 65 }
При отсутствии: "result": null.
hms.doctor.fields
Параметры: не требуются.
3. Специализации (hms.specialization)
hms.specialization.list
Параметры: order, filter, select.
Пример запроса:
{
"order": { "TITLE": "ASC" },
"filter": { "ACTIVE": "Y" },
"select": ["*"]
}hms.specialization.get
Параметры: id.
Пример запроса: { "id": 1 }
hms.specialization.fields
Параметры: не требуются.
4. Кабинеты (hms.office)
hms.office.list
Параметры: order, filter, select. Поле SERVICES в ответ не включается.
Пример запроса:
{
"order": { "TITLE": "ASC" },
"filter": { "CLINIC_ID": 1 },
"select": ["*"]
}hms.office.get
Параметры: id.
Пример запроса: { "id": 1 }
hms.office.fields
Параметры: не требуются.
5. Расписания (hms.schedule)
hms.schedule.list
Параметры: order, filter, select. Для WORKTIME: select: ['*', 'WORKTIME.*'].
Пример запроса:
{
"order": { "PLAN_DATE": "ASC" },
"filter": {
"CLINIC_ID": 1,
">=PLAN_DATE": "2025-12-01",
"<=PLAN_DATE": "2025-12-31"
},
"select": ["*", "WORKTIME.*"]
}MODE: D — по врачам, O — по кабинетам.
hms.schedule.get
Параметры: id.
Пример запроса: { "id": 1 }
hms.schedule.fields
Параметры: не требуются.
6. Записи на приём (hms.appointment)
hms.appointment.list
Параметры: order, filter, select. Фильтры: DATE_FROM, CLINIC_ID, DOCTOR_ID, REAL_STATUS_ID, CONFIRMATION_ID.
Пример запроса:
{
"order": { "DATE_FROM": "ASC" },
"filter": {
"CLINIC_ID": 1,
">=DATE_FROM": "2025-12-01T00:00:00",
"<=DATE_FROM": "2025-12-31T23:59:59"
},
"select": ["*"]
}hms.appointment.get
Параметры: id (integer).
Пример запроса: { "id": 429179 }
hms.appointment.add
Параметры: fields — объект. Обязательно: CONTACT_ID.
Основные поля: CLINIC_ID, DOCTOR_ID, OFFICE_ID, SPECIALIZATION_ID, DATE_FROM, DURATION, TITLE, REAL_STATUS_ID, CONFIRMATION_ID, COMMENTS.
Пример запроса:
{
"fields": {
"CONTACT_ID": 390046,
"CLINIC_ID": 1,
"DOCTOR_ID": 696,
"SPECIALIZATION_ID": 11,
"DATE_FROM": "2025-12-10T14:00:00",
"DURATION": 20,
"TITLE": "Заявка на приём"
}
}Пример ответа: { "result": 429180 } — ID созданной записи.
hms.appointment.update
Параметры: id, fields.
Пример запроса:
{
"id": 429179,
"fields": {
"DATE_FROM": "2025-12-10T15:00:00",
"DURATION": 30,
"REAL_STATUS_ID": "5",
"CONFIRMATION_ID": "YES"
}
}Пример ответа: { "result": true }
hms.appointment.fields
Параметры: не требуются.
Схема взаимосвязей
CLINIC (клиника)
├── OFFICE (кабинеты) [CLINIC_ID]
│ └── SPECIALIZATION (специализации кабинета)
├── SCHEDULE (расписания) [CLINIC_ID]
│ └── WORKTIME (рабочие интервалы)
│ ├── DOCTOR_ID
│ └── OFFICE_ID
└── APPOINTMENT (записи) [CLINIC_ID]
├── DOCTOR_ID → DOCTOR
├── OFFICE_ID → OFFICE
├── SPECIALIZATION_ID → SPECIALIZATION
├── CONTACT (пациент из CRM)
├── STATUS, CONFIRMATION
└── PRODUCT_ROWS (услуги)
DOCTOR (врач)
└── SPECIALIZATION (специализации врача)Фильтрация и навигация (list)
- filter — массив условий:
['FIELD' => 'value'],['>=DATE_FROM' => '...'] - order — сортировка:
['ID' => 'ASC'] - select — массив полей или
['*'] - Постраничная выборка: стандартная навигация Bitrix REST (start)
Сводная таблица методов
Метод | Параметры | Описание |
|---|---|---|
| order, filter, select | Список клиник |
| id | Одна клиника по ID |
| — | Описание полей клиники |
| order, filter, select | Список врачей |
| id | Один врач по ID |
| — | Описание полей врача |
| order, filter, select | Список специализаций |
| id | Одна специализация по ID |
| — | Описание полей специализации |
| order, filter, select | Список кабинетов |
| id | Один кабинет по ID |
| — | Описание полей кабинета |
| order, filter, select | Список расписаний (с WORKTIME) |
| id | Одно расписание по ID |
| — | Описание полей расписания |
| order, filter, select | Список записей на приём |
| id | Одна запись по ID |
| fields (CONTACT_ID обязателен) | Создать запись |
| id, fields | Обновить запись |
| — | Описание полей записи |
No comments to display
No comments to display