Skip to main content

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>"
  }
}

Методы по сущностям

Сущность

Методы

Описание

clinic

get, list, fields

Клиники

doctor

get, list, fields

Врачи

specialization

get, list, fields

Специализации

office

get, list, fields

Кабинеты/офисы

schedule

get, list, fields

Расписания (с рабочим временем)

appointment

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)

Сводная таблица методов

Метод

Параметры

Описание

hms.clinic.list

order, filter, select

Список клиник

hms.clinic.get

id

Одна клиника по ID

hms.clinic.fields

—

Описание полей клиники

hms.doctor.list

order, filter, select

Список врачей

hms.doctor.get

id

Один врач по ID

hms.doctor.fields

—

Описание полей врача

hms.specialization.list

order, filter, select

Список специализаций

hms.specialization.get

id

Одна специализация по ID

hms.specialization.fields

—

Описание полей специализации

hms.office.list

order, filter, select

Список кабинетов

hms.office.get

id

Один кабинет по ID

hms.office.fields

—

Описание полей кабинета

hms.schedule.list

order, filter, select

Список расписаний (с WORKTIME)

hms.schedule.get

id

Одно расписание по ID

hms.schedule.fields

—

Описание полей расписания

hms.appointment.list

order, filter, select

Список записей на приём

hms.appointment.get

id

Одна запись по ID

hms.appointment.add

fields (CONTACT_ID обязателен)

Создать запись

hms.appointment.update

id, fields

Обновить запись

hms.appointment.fields

—

Описание полей записи