Veterinary clinic website development using 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Veterinary Clinic Website Development on 1C-Bitrix

A veterinary clinic is specialized medical business where patient cannot describe symptoms, and client (owner) is doubly anxious. Website must solve three tasks: quickly schedule appointment, provide pet medical history access, and position clinic as expert platform through content. Key engineering feature — online scheduling with three entities: veterinarian, specialization, and animal type.

Service Catalog

"Services" information block organized with two-level sections. First level — animal type (dogs, cats, rodents, birds, reptiles, exotic animals). Second level — service category (therapy, surgery, vaccination, dentistry, ophthalmology, dermatology, laboratory diagnostics, ultrasound/x-ray).

Element properties:

  • PRICE_FROM — price "from" (numeric, for list display)
  • DURATION_MINUTES — appointment duration (for scheduling slot calculation)
  • REQUIRES_SPECIALIST — veterinarian specialization link (HL-dictionary)
  • ANIMAL_TYPES — multiple link to animal types
  • PREPARATION — preparation text (fast 12 hours, don't bathe etc.)
  • CONTRAINDICATIONS — contraindications

Service detail page includes description, indications, preparation, list of veterinarians performing procedure, and "Schedule" button with prefilled service.

Veterinarian Profiles

"Veterinarians" information block is critical for conversion. Pet owners choose specific veterinarian, especially for narrow specializations (veterinary ophthalmologist, ratologist, herpetologist).

Profile properties:

Property Type Example
SPECIALIZATIONS HL Link (multiple) Therapist, surgeon, ophthalmologist
ANIMAL_TYPES HL Link (multiple) Dogs, cats, exotics
EXPERIENCE_YEARS Number 12
EDUCATION Text Moscow Veterinary Academy, 2012
CERTIFICATES File (multiple) PDF/JPG certificates
PHOTO File Profile photo
SCHEDULE_USER_ID Number Bitrix user ID (for schedule linking)
CONSULTATION_TYPES List (multiple) In-clinic, online, home visit

On veterinarian detail page — "Schedule with This Vet" button with prefilled link.

Online Scheduling: Three-Dimensional Matrix "Veterinarian × Specialization × Animal Type"

Standard Bitrix booking modules designed for simple flow: select service → select time → schedule. Veterinary is complex. Not every surgeon operates reptiles, not every therapist works with birds. Scheduling system must account for three-parameter intersection.

Schedule Highload-block (hl_vet_schedule):

Field Type Purpose
UF_DOCTOR_ID Number Veterinarian ID from info block
UF_DATE Date Working day
UF_TIME_FROM String Shift start (09:00)
UF_TIME_TO String Shift end (18:00)
UF_SLOT_DURATION Number Slot duration in minutes (30)
UF_CLINIC_BRANCH Number Clinic branch

Appointments Highload-block (hl_vet_appointments):

Field Type Purpose
UF_DOCTOR_ID Number Veterinarian
UF_DATE Date Appointment date
UF_TIME String Start time
UF_DURATION Number Duration (minutes)
UF_SERVICE_ID Number Service
UF_ANIMAL_TYPE Number Animal type
UF_PET_NAME String Pet name
UF_PET_BREED String Breed
UF_PET_AGE String Age
UF_PET_WEIGHT Number Weight (kg)
UF_OWNER_USER_ID Number Owner ID
UF_OWNER_PHONE String Phone (for unregistered)
UF_STATUS List scheduled / confirmed / completed / cancelled / no_show
UF_COMMENT Text Owner comment

Available Slot Formation Algorithm:

  1. User selects animal type (e.g., "parrot").
  2. System filters veterinarians: keeps only those with "birds" in ANIMAL_TYPES.
  3. User selects service category (e.g., "therapy").
  4. System additionally filters: keeps vets with "therapist" or "parrot-specialist" specialization.
  5. For remaining vets, schedule loads from hl_vet_schedule for selected date.
  6. From schedule, occupied slots from hl_vet_appointments subtracted.
  7. Service duration considered: if exam takes 60 minutes but only 30-minute slot free — not shown.
  8. Result — list of available vets with time slots. User selects vet and time, fills pet data, confirms.

Frontend: step-by-step wizard (four steps) — animal type → service → vet and date → confirmation. Each step is AJAX request to controller, available options update without page reload.

Confirmation and Reminders:

After scheduling — SMS via SMS gateway integration (SMS.ru, SMSC). Reminder 24 hours and 2 hours before appointment. Agent CVetReminderAgent processes reminder queue every 10 minutes.

Emergency Appointment:

Separate section on site — "Emergency Help". Large 24-hour phone, call button (tel:), online chat via JivoSite or Carrot quest. On mobile — fixed block at bottom that doesn't scroll.

Owner Dashboard: Pet Medical Card

Authorized user sees pet list in dashboard. Each pet — Highload-block hl_pets element:

  • UF_OWNER_ID — owner
  • UF_NAME — pet name
  • UF_SPECIES — species (dog, cat...)
  • UF_BREED — breed
  • UF_BIRTH_DATE — birth date
  • UF_WEIGHT — weight
  • UF_PHOTO — photo
  • UF_CHIP_NUMBER — microchip number
  • UF_STERILIZED — sterilized (yes/no)

Per each pet — visit history, vaccinations, tests. Data comes from veterinary MIS (medical information system): VetManager, Enote, Veterinary Practice Management. Integration via REST API or CSV export.

Highload-block hl_pet_medical:

Field Type Purpose
UF_PET_ID Number Pet
UF_DATE Date Record date
UF_TYPE List vaccination / analysis / visit / surgery
UF_DESCRIPTION Text Description (vaccine, test type, diagnosis)
UF_DOCTOR_ID Number Veterinarian
UF_RESULT_FILE File PDF with test results
UF_NEXT_DATE Date Next procedure date (revaccination)

Revaccination reminders are automatic. Agent CVetVaccinationReminder daily checks UF_NEXT_DATE, sends SMS/email to owner 14 days and 3 days before.

SEO Content: Pet Care Articles

"Useful Articles" section — standard info block with news.list / news.detail components. Categories: care, nutrition, health, behavior, breeds. Linked to animal types via tag property.

Each article optimized for informational queries: "how to trim cat nails", "puppy vaccination schedule", "what to feed chinchilla". Title and Description formed via information block SEO properties. schema.org/Article micromarkup with author field linking to veterinarian profile — improves E-E-A-T.

Implementation Phases

Phase Work Duration
Design Data structure, scheduling UX, MIS integration contracts 2 weeks
Catalog and Profiles Services, veterinarians, branches, responsive markup 2–3 weeks
Scheduling System Wizard, schedule, slots, SMS notifications 3–4 weeks
Dashboard Pets, medical record, vaccination reminders 3 weeks
MIS Integration VetManager/Enote connection, history sync 2–3 weeks
Content and SEO Articles, micromarkup, optimization 1–2 weeks
Testing and Launch End-to-end scheduling test, load, training 1–2 weeks