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:
- User selects animal type (e.g., "parrot").
- System filters veterinarians: keeps only those with "birds" in
ANIMAL_TYPES. - User selects service category (e.g., "therapy").
- System additionally filters: keeps vets with "therapist" or "parrot-specialist" specialization.
- For remaining vets, schedule loads from
hl_vet_schedulefor selected date. - From schedule, occupied slots from
hl_vet_appointmentssubtracted. - Service duration considered: if exam takes 60 minutes but only 30-minute slot free — not shown.
- 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 |







