Розробка сайту ветеринарної клініки на 1С-Бітрікс
Ветеринарна клініка — специфічний медичний бізнес, де пацієнт не може описати симптоми, а клієнт (власник) нервує вдвічі. Сайт повинен вирішувати три завдання: швидко записати на прийом, дати доступ до історії лікування тварини та позиціонувати клініку як експертну площадку через контент. Ключова інженерна особливість — онлайн-запис, у якому беруть участь три сутності: лікар, спеціалізація та вид тварини.
Каталог послуг
Інфоблок «Послуги» організований двовровневими розділами. Перший рівень — вид тварини (собаки, кішки, гризуни, птиці, рептилії, екзотичні тварини). Другий рівень — категорія послуги (терапія, хірургія, вакцинація, стоматологія, офтальмологія, дерматологія, лабораторна діагностика, УЗД/рентген).
Властивості елемента:
-
PRICE_FROM— ціна «від» (числове, для виведення в список) -
DURATION_MINUTES— тривалість прийому (для розрахунку слотів запису) -
REQUIRES_SPECIALIST— прив'язка до спеціалізації лікаря (HL-довідник) -
ANIMAL_TYPES— множественна прив'язка до видів тварин -
PREPARATION— текст підготовки до процедури (не годувати 12 годин, не мити тощо) -
CONTRAINDICATIONS— протипоказання
Деталізована сторінка послуги включає опис, показання, підготовку, список лікарів, які виконують цю процедуру, і кнопку «Записатися» з передзаповненою послугою.
Профілі ветеринарів
Інфоблок «Ветеринари» — найважливіший для конверсії. Власники тварин вибирають не клініку, а конкретного ветеринара, особливо для вузьких спеціалізацій (офтальмолог-ветеринар, ратолог, герпетолог).
Властивості профілю:
| Властивість | Тип | Приклад |
|---|---|---|
SPECIALIZATIONS |
Прив'язка до HL (множ.) | Терапевт, хірург, офтальмолог |
ANIMAL_TYPES |
Прив'язка до HL (множ.) | Собаки, кішки, екзотики |
EXPERIENCE_YEARS |
Число | 12 |
EDUCATION |
Текст | Московська академія ветеринарної медицини, 2012 |
CERTIFICATES |
Файл (множ.) | PDF/JPG сертифікатів |
PHOTO |
Файл | Фото профілю |
SCHEDULE_USER_ID |
Число | ID користувача Бітрікса (для прив'язки до розкладу) |
CONSULTATION_TYPES |
Список (множ.) | Очна, онлайн, виїзд на дім |
На деталізованій сторінці лікаря — кнопка «Записатися до цього лікаря» з передзаповненою прив'язкою.
Онлайн-запис: тривимірна матриця «лікар × спеціалізація × вид тварини»
Стандартні модулі бронювання Бітрікса розраховані на просту схему: вибрав послугу → вибрав час → записався. У ветеринарії все складніше. Не кожен хірург оперує рептилій, не кожен терапевт працює з птицями. Система запису повинна враховувати перетин трьох параметрів.
Highload-блок розкладу (hl_vet_schedule):
| Поле | Тип | Призначення |
|---|---|---|
UF_DOCTOR_ID |
Число | ID лікаря з інфоблока |
UF_DATE |
Дата | Робочий день |
UF_TIME_FROM |
Строка | Початок зміни (09:00) |
UF_TIME_TO |
Строка | Кінець зміни (18:00) |
UF_SLOT_DURATION |
Число | Тривалість слота в хвилинах (30) |
UF_CLINIC_BRANCH |
Число | Філіал клініки |
Highload-блок записів (hl_vet_appointments):
| Поле | Тип | Призначення |
|---|---|---|
UF_DOCTOR_ID |
Число | Лікар |
UF_DATE |
Дата | Дата прийому |
UF_TIME |
Строка | Час початку |
UF_DURATION |
Число | Тривалість (хвилини) |
UF_SERVICE_ID |
Число | Послуга |
UF_ANIMAL_TYPE |
Число | Вид тварини |
UF_PET_NAME |
Строка | Кличка тварини |
UF_PET_BREED |
Строка | Порода |
UF_PET_AGE |
Строка | Вік |
UF_PET_WEIGHT |
Число | Вага (кг) |
UF_OWNER_USER_ID |
Число | ID власника |
UF_OWNER_PHONE |
Строка | Телефон (для незареєстрованих) |
UF_STATUS |
Список | scheduled / confirmed / completed / cancelled / no_show |
UF_COMMENT |
Текст | Коментар власника |
Алгоритм формування доступних слотів:
- Користувач вибирає вид тварини (наприклад, «папуга»).
- Система фільтрує лікарів: залишає тільки тих, у кого в властивості
ANIMAL_TYPESє «птиці». - Користувач вибирає категорію послуги (наприклад, «терапія»).
- Система додатково фільтрує: залишає лікарів зі спеціалізацією «терапевт» або «ратолог-орнітолог».
- Для залишених лікарів завантажується розклад з
hl_vet_scheduleна вибрану дату. - З розкладу вичитуються вже заняті слоти з
hl_vet_appointments. - Враховується тривалість послуги: якщо прийом займає 60 хвилин, а вільним залишається тільки 30-хвилинний слот — він не показується.
- Результат — список доступних лікарів з часовими слотами. Користувач вибирає лікаря та час, заповнює дані про тварину, підтверджує.
Фронтенд-реалізація: пошаговий майстер (wizard) на чотири кроки — вид тварини → послуга → лікар та дата → підтвердження. Кожен крок — AJAX-запит до контролера, оновлення доступних варіантів без перезавантаження сторінки.
Підтвердження та напоминання:
Після запису — SMS через інтеграцію з SMS-шлюзом (SMS.ru, SMSC). Напоминання за 24 години та за 2 години до прийому. Агент CVetReminderAgent обробляє чергу напоминань кожні 10 хвилин.
Екстрена запис:
Окремий блок на сайті — «Невідкладна допомога». Круглодобовий телефон крупним шрифтом, кнопка виклику (tel:), онлайн-чат через JivoSite або Carrot quest. На мобільних — fixed-блок внизу екрана, який не скроллиться.
Особистий кабінет власника: карточка пацієнта
Авторизований користувач бачить в особистому кабінеті список своїх тварин. Кожна тварина — елемент Highload-блока hl_pets:
-
UF_OWNER_ID— власник -
UF_NAME— кличка -
UF_SPECIES— вид (собака, кішка...) -
UF_BREED— порода -
UF_BIRTH_DATE— дата народження -
UF_WEIGHT— вага -
UF_PHOTO— фото -
UF_CHIP_NUMBER— номер мікрочипу -
UF_STERILIZED— стерилізовано (так/ні)
По кожній тварині — історія відвідувань, щеплень, аналізів. Дані надходять з ветеринарної МІС (медичної інформаційної системи): Ветменеджер, Enote, Veterinary Practice Management. Інтеграція через REST API або вивантаження CSV.
Highload-блок hl_pet_medical:
| Поле | Тип | Призначення |
|---|---|---|
UF_PET_ID |
Число | Тварина |
UF_DATE |
Дата | Дата запису |
UF_TYPE |
Список | vaccination / analysis / visit / surgery |
UF_DESCRIPTION |
Текст | Опис (вакцина, тип аналізу, діагноз) |
UF_DOCTOR_ID |
Число | Лікар |
UF_RESULT_FILE |
Файл | PDF з результатами аналізів |
UF_NEXT_DATE |
Дата | Дата наступної процедури (ревакцинація) |
Напоминання про ревакцинацію — автоматичні. Агент CVetVaccinationReminder щодня перевіряє поле UF_NEXT_DATE, за 14 днів та за 3 дні відправляє SMS/email власнику.
SEO-контент: статті з догляду за тваринами
Розділ «Корисні статті» — інфоблок зі стандартними компонентами news.list / news.detail. Категорії: догляд, харчування, здоров'я, виховання, породи. Прив'язка до видів тварин через властивість-теги.
Кожна стаття оптимізована під інформаційні запити: «як підстригти когті кішці», «щеплення для щеняти графік», «чим годувати шиншилу». Title та Description формуються через SEO-властивості інфоблока. Мікророзмітка schema.org/Article з полем author, що посилається на профіль лікаря — підвищує E-E-A-T.
Етапи реалізації
| Етап | Роботи | Тривалість |
|---|---|---|
| Проектування | Структура даних, UX запису, інтеграційні контракти з МІС | 2 тижні |
| Каталог та профілі | Послуги, лікарі, філіали, адаптивна вёрстка | 2–3 тижні |
| Система запису | Wizard запису, розклад, слоти, SMS-сповіщення | 3–4 тижні |
| Особистий кабінет | Тварини, медкарта, напоминання про вакцинацію | 3 тижні |
| Інтеграція з МІС | Підключення до Ветменеджер/Enote, синхронізація історій | 2–3 тижні |
| Контент та SEO | Статті, мікророзмітка, оптимізація | 1–2 тижні |
| Тестування та запуск | Наскрізне тестування запису, навантажування, навчання | 1–2 тижні |







