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

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