// Services, Service Detail, Diagnostics, Team, Vet, About, Contact, Emergency pages function PageHeader({ eyebrow, title, lede, kicker }) { return (
{kicker &&
{e.preventDefault(); kicker.onBack();}} className="ph-back"> {kicker.label}
} {eyebrow}

{title}

{lede &&

{lede}

}
); } /* ========== SERVICES HUB ========== */ function ServicesPage({ setRoute }) { const data = window.BOV_DATA; const groups = ["Flagship","Urgent","Clinical","Specialist","Wellness","Convenience"]; const byGroup = groups.map(g => ({ g, items: data.services.filter(s => s.group === g) })); return (
Care across every stage of life.} lede="From puppy boosters to MRI-led diagnostics and round-the-clock emergency surgery — explore the full range." />
{byGroup.map(({ g, items }) => items.length > 0 && (
{g}
{items.map(s => ( ))}
))}
); } /* ========== SERVICE DETAIL ========== */ function ServiceDetail({ slug, setRoute }) { const data = window.BOV_DATA; const s = data.services.find(x => x.slug === slug); if (!s) return ; const related = data.services.filter(x => x.slug !== slug && x.group === s.group).slice(0, 3); const heroImg = { "diagnostics-imaging": "media/clinic-imaging-suite.webp", "emergency-critical-care": "media/imaging-equipment-station.webp", "surgery": "media/surgery-theatre-procedure.webp", "vaccinations": "media/vaccination-syringe-prep.webp", "dermatology": "media/team-vet-portrait-noura.webp", "internal-medicine": "media/consult-cat-stethoscope-exam.webp", "dentistry": "media/consult-cat-stethoscope-exam.webp", "spay-neuter": "media/surgery-theatre-procedure.webp", "physiotherapy": "media/grooming-dog-on-table.webp", "gold-bead-implants": "media/grooming-dog-on-table.webp", "microchipping": "media/vaccination-syringe-prep.webp", "housecall": "media/team-vet-holding-cat.webp", "pet-taxi": "media/reception-front-desk.webp", "pet-relocation": "media/reception-front-desk.webp", }[s.slug] || "media/clinic-home-01.webp"; return (
setRoute({ page: "services" }) }} eyebrow={s.group} title={s.name} lede={s.lede} />
{s.name}/

What it is

{s.body}

What's included

    {s.includes.map(i => (
  • {i}
  • ))}

What to expect

  1. 1
    Book your visit

    Pick a time online via Floof, call us, or send a request through the contact page.

  2. 2
    In-clinic exam

    A vet from the relevant focus area sees you. If imaging or lab work is needed, it happens on-site.

  3. 3
    Treatment plan

    You leave with a clear written plan — next steps, medication, follow-up. Questions answered before you go.

Questions we get a lot

); } function Faq({ q, a }) { const [open, setOpen] = React.useState(false); return (
setOpen(o => !o)}>
{q} {open ? "−" : "+"}
{open &&

{a}

}
); } /* ========== DIAGNOSTICS ========== */ function DiagnosticsPage({ setRoute }) { const c = window.BOV_DATA.clinic; return (
An imaging suite under one roof.} lede="MRI, digital X-ray, ultrasound and an in-house laboratory — so we can move from suspicion to diagnosis in a single visit. We also accept referrals." />
MRI imaging suite
MRI · Magnetic Resonance Imaging
{[ {i:"scan", t:"MRI", body:"For soft-tissue, neurological and orthopaedic work-ups that X-ray and ultrasound can't see — referred and in-house patients alike."}, {i:"spark", t:"Digital X-ray", body:"Skeletal, thoracic and abdominal radiographs. Instant images, no film delay, lower-dose technique."}, {i:"drop", t:"Ultrasound", body:"Abdominal and cardiac ultrasound — quick, non-invasive answers for the right cases."}, {i:"tag", t:"In-house laboratory", body:"Bloods, biochemistry, urinalysis and cytology. Same-visit results for most panels."}, ].map(b => (

{b.t}

{b.body}

))}
For referring clinics

Refer MRI, cytology & oncology cases.

Send your case to Dr Dieter (imaging & neurology), Dr Mariana (imaging) or Dr Nour (cytology & oncology). You'll receive a written report within working hours and continue managing your patient with full notes.

04 884 8580
{["dieter-malleczek","mariana-barreto","nour-abou-fakher"].map(slug => { const v = window.BOV_DATA.vets.find(x=>x.slug===slug); return ( ); })}
); } /* ========== TEAM ========== */ function TeamPage({ setRoute }) { const data = window.BOV_DATA; return (
An international team you'll actually meet.} lede="Trained in Vienna, Wroclaw, Cairo, Brno, Beirut, Manila and Kyiv — practising in Dubai. Every credential below was verified from the clinic's published team pages." />
{data.vets.map(v => ( ))}
); } /* ========== VET DETAIL ========== */ function VetDetail({ slug, setRoute }) { const data = window.BOV_DATA; const v = data.vets.find(x => x.slug === slug); if (!v) return ; const others = data.vets.filter(x => x.slug !== slug).slice(0, 4); return (
setRoute({page:"team"}) }} eyebrow={v.role} title={v.name} lede={v.focus} />
{v.name}/
{v.tags.map(t => {t})}

Background

{v.bio}

Practice notes

  • Sees small-animal patients (dogs & cats); some vets see exotics — call ahead to confirm
  • Speaks English; clinic supports Arabic, Russian and Polish (vet-dependent)
  • Available by appointment at the DIP 1 clinic
Call clinic

Dubai Municipality / MOCCAE licence number will be published here once supplied by the clinic. No invented numbers.

More of the team

You might also meet…

{others.map(o => ( ))}
); } /* ========== ABOUT ========== */ function AboutPage({ setRoute }) { const data = window.BOV_DATA; return (
A pillar of progressive, caring veterinary practice.} lede='"To provide personalised, exceptional veterinary care to keep your animals healthy, happy, and free from pain." — Blue Oasis Vet, est. 2008.' />
Our story

16+ years in the same city — same standard.

Blue Oasis Veterinary Clinic opened in Dubai Investments Park in 2008. We treat dogs, cats, rabbits and avian patients — and over time the clinic has grown around a simple idea: that pets are family members, and the care they get should reflect that.

Today the practice combines an in-house MRI and imaging suite, a dedicated operating theatre, in-patient ward and a {data.vets.length}-strong specialist team. Our motto is short: We care more.

What this looks like in practice
  • Diagnoses worked through in a single visit when imaging and lab work line up
  • Specialists you can ask for by name — not "the on-call vet"
  • A 24/7 emergency line that picks up at 03:00 if your pet needs it
  • Housecall and Pet Taxi options for patients who don't travel well
A vet holding a cat at the clinic
{data.stats.map(s => (
{s.v}
{s.l}
))}
All figures reported by the clinic.
The facility

One building, full workup.

Operating theatre
Imaging equipment station
Reception
Vet with a poodle
MRI suite
); } /* ========== EMERGENCY ========== */ function EmergencyPage({ setRoute }) { const c = window.BOV_DATA.clinic; return (
Emergency · 24/7 · 365 days

If it can't wait, neither do we.

Call us before you set off. The team will be ready when you arrive, with the right people, the right equipment and a clean theatre.

What to do

Before you set off

  1. 1
    Call us first. Even a 60-second call lets the team prepare the right room and equipment.
  2. 2
    Keep your pet calm and contained. A carrier for cats; a leash or blanket-wrap for dogs.
  3. 3
    If toxin exposure: bring the packaging or a photo of the substance.
  4. 4
    Drive safely. We're in Dubai Investments Park 1, next to Premier Inn — directions below.

When to come in immediately

    {["Difficulty breathing", "Trauma — hit by car, fall, bite", "Suspected poisoning or toxin", "Severe vomiting / diarrhoea > 12 h", "Inability to urinate (especially male cats)", "Seizure or collapse", "Bloated, distended abdomen (large dogs)", "Heatstroke"].map(s => (
  • {s}
  • ))}

This list is a guide only. If you're unsure — call. We'd rather take the call.

); } /* ========== CONTACT / BOOK ========== */ function ContactPage({ setRoute }) { const c = window.BOV_DATA.clinic; const [step, setStep] = React.useState(1); const [form, setForm] = React.useState({ ownerName: "", phone: "", email: "", petName: "", species: "Dog", service: "General consultation", date: "", time: "", notes: "", }); const update = (k, v) => setForm(f => ({...f, [k]: v})); return (
Let's get your pet seen.} lede="Pick a slot below, send us a message, or call. We answer the phones." />
{/* Form */}
{[1,2,3].map(n => (
= n ? "active" : "")}> {step > n ? "✓" : n} {n === 1 ? "Your details" : n === 2 ? "About your pet" : "Choose a time"}
))}
{step === 1 && (

Your details

So we can confirm your booking.

update("ownerName", v)} placeholder="e.g. Sara Al Marri"/>
update("phone", v)} placeholder="+971 ..."/> update("email", v)} placeholder="you@email.com" type="email"/>
)} {step === 2 && (

About your pet

What's their name, and what brings them in?

update("petName", v)} placeholder="e.g. Mochi"/>
{["Dog","Cat","Rabbit","Avian","Other"].map(s => ( ))}
update("notes", v)} placeholder="Anything we should know — symptoms, allergies, last visit…" textarea/>
)} {step === 3 && (

Pick a time

We'll confirm by phone or email within a few hours.

update("date", v)}/>
{["09:00","11:00","13:00","15:00","17:00","19:00"].map(t => ( ))}
You're booking
Service{form.service}
Pet{form.petName || "—"} · {form.species}
When{form.date || "—"} {form.time && "at " + form.time}
For{form.ownerName} · {form.phone}
)} {step === 4 && (

Booking request sent.

We'll call {form.phone} to confirm {form.petName ? form.petName + "'s" : "your pet's"} appointment on {form.date} at {form.time}.

This is a working prototype — in production the form would post to the clinic's booking system. For real bookings today: book.floof.ae/blue-oasis-vet

)}
{/* Side: location / hours / call */}
Map preview
DIP 1 · Green Community
Open in Maps
Visit us

Blue Oasis Veterinary Clinic

{c.address}
{c.address2}

Plus code · {c.plus}

Hours
{c.hours.map(h => (
{h.d}{h.t}
))}
); } function Field({ label, value, onChange, placeholder, type="text", textarea }) { return (
{textarea ?