Strona gabinetu medycznego Case studies

Euroklinika, Bielsko-Biała

Centrum medyczne z dwiema placówkami w Bielsku-Białej działało na Drupalu 7 bez wsparcia producenta, a pacjent chcący zapisać się do lekarza kończył na numerze telefonu do rejestracji. Przenieśliśmy rezerwację wizyt i badań laboratoryjnych na stronę — z terminami pobieranymi wprost z grafików w systemie medycznym kliniki — i oddaliśmy zespołowi kontrolę nad całą ofertą: od cennika po profile 97 lekarzy.

Z jakim problemem zgłosiła się Euroklinika

Euroklinika to centrum medyczne w Bielsku-Białej, które działa od 1999 roku w dwóch placówkach — przy ul. Żółkiewskiego 40 i ul. Piotra Skargi 9. Blisko 30 gabinetów specjalistycznych, kilkudziesięciu lekarzy, wizyty prywatne, w ramach NFZ i ubezpieczeń, własne laboratorium i punkt pobrań. Cała ta oferta opisana była na stronie zbudowanej na Drupalu 7 — systemie, który od stycznia 2025 roku nie ma już wsparcia producenta, także w zakresie poprawek bezpieczeństwa.

Największym problemem nie był jednak wygląd strony, a to, czego pacjent nie mógł na niej zrobić. Rezerwacja wizyty kończyła się na numerze telefonu do rejestracji albo na linku, który wyrzucał pacjenta do osobnego panelu e-rejestracji w nowej karcie — bez kontekstu, bez informacji o lekarzu i bez powrotu na stronę. Badania laboratoryjne wymagały wcześniejszego telefonu, żeby ustalić dzień i godzinę wizyty w punkcie pobrań.

Skutek był odczuwalny po obu stronach: pacjenci dzwonili po informacje, które mogliby znaleźć sami, a rejestracja telefoniczna była wąskim gardłem w godzinach pracy przychodni. Oferta — specjalizacje, zabiegi, cennik, lekarze — żyła w statycznych podstronach z adresami typu /poradnie-specjalistyczne/dermatologia.html, których nikt w klinice nie mógł samodzielnie rozbudować.

Co się zmieniło dla pacjenta i dla zespołu kliniki

ObszarPrzed wdrożeniemPo wdrożeniu
Rezerwacja wizytyTelefon do rejestracji lub zewnętrzny panel w nowej karcieFormularz na stronie — termin wybierany z realnych grafików lekarzy, 24/7
Badania laboratoryjneWymagany telefon, żeby ustalić dzień i godzinę pobraniaOsobny formularz rezerwacji punktu pobrań online
CennikStatyczna podstrona, zmiany przez wykonawcę269 pozycji w CMS, aktualizowane przez zespół kliniki
Lekarze i ofertaRęcznie utrzymywane podstrony .html97 profili lekarzy i 39 specjalizacji powiązanych z zabiegami i cennikiem
TechnologiaDrupal 7 — bez wsparcia producenta od stycznia 2025Next.js 15 + Payload CMS 3 + PostgreSQL, wspierane i rozwijane
DostępnośćBrak narzędzi ułatwień dostępuPasek dostępności: rozmiar tekstu, kontrast, wyłączenie animacji i mediów
Nowa strona główna: rejestracja online, wyniki badań i wyszukiwarka specjalistów dostępne od pierwszego ekranu.

Cele, które ustaliliśmy z klientem

Pięć celów biznesowych, nie „nowa strona”

  1. Przeniesienie rezerwacji wizyt na stronęŻeby pacjent mógł zapisać się do lekarza o dowolnej godzinie, bez telefonu i bez przechodzenia do osobnego systemu, a rejestracja odzyskała czas na pacjentów będących na miejscu.
  2. Udostępnienie rezerwacji badań laboratoryjnychPunkt pobrań pracuje w wąskich godzinach porannych — możliwość wybrania terminu online zdejmuje z rejestracji telefony o godziny pobrań.
  3. Oddanie treści w ręce zespołu klinikiCennik, lekarze, specjalizacje i aktualności miały być edytowalne bez programisty, żeby zmiana ceny albo dodanie nowego lekarza zajmowały minuty, nie dni.
  4. Migracja bez utraty widoczności w GoogleStare adresy .html były zaindeksowane od lat — należało je przenieść na nową strukturę bez utraty ruchu i bez błędów 404 u pacjentów, którzy mają je w zakładkach.
  5. Wyjście z niewspieranej technologiiDrupal 7 bez wsparcia bezpieczeństwa to realne ryzyko dla serwisu placówki medycznej — nowa strona musiała stanąć na stacku, który da się bezpiecznie rozwijać przez kolejne lata.

Co dokładnie zrobiliśmy

Rezerwacja wizyty połączona z systemem kliniki

Euroklinika pracuje na systemie Gabos — tam są grafiki lekarzy, kontrakty, usługi i wolne terminy. Zamiast budować drugi, równoległy kalendarz na stronie (który zawsze rozjeżdża się z rzeczywistością), połączyliśmy formularz bezpośrednio z tym systemem. Pacjent widzi te same terminy, które widzi rejestracja.

Formularz prowadzi krok po kroku: specjalizacja → placówka → lekarz → cel wizyty → data → godzina → dane kontaktowe. Każde kolejne pole odblokowuje się dopiero wtedy, gdy poprzednie ma sens — dzięki temu pacjent nie może wybrać kombinacji, której klinika nie obsłuży. Cel wizyty podpowiadamy automatycznie: po wybraniu ortopedii formularz sam ustawia konsultację ortopedyczną, a nie jedno z kilkunastu badań USG.

Wybrany termin jest blokowany na czas wypełniania formularza i zwalniany, jeśli pacjent zrezygnuje — dwie osoby nie zapiszą się na tę samą godzinę. Dostępność terminów na 90 dni w przód pobieramy równolegle i trzymamy w cache’u, żeby kalendarz otwierał się od razu, a nie po kilku sekundach.

Formularz rezerwacji: po lewej wejście do panelu e-rejestracji dla pacjentów z kontem, po prawej zapis bez logowania.
Lista poradni pochodzi z systemu kliniki — z wyszukiwaniem, bo specjalizacji jest kilkadziesiąt.
Po wybraniu poradni formularz pokazuje tylko te placówki, które faktycznie mają w niej wolne terminy.
Ten sam formularz na telefonie — większość pacjentów zapisuje się z komórki.

Zapisy z formularza trafiają też do panelu CMS jako log rezerwacji — rejestracja ma podglądowe potwierdzenie, kto i na kiedy się zapisał, nawet jeśli pacjent nie zadzwonił. Logi kasują się automatycznie po 7 dniach, więc dane pacjentów nie zostają w systemie dłużej, niż są potrzebne do obsługi zapisu.

Badania laboratoryjne bez telefonu

Punkt pobrań ma inną logikę niż gabinet lekarski: nie wybiera się specjalisty, tylko placówkę i godzinę w wąskim oknie porannym. Dlatego laboratorium dostało własny formularz z zawężoną ścieżką — pacjent nie przechodzi przez wybór lekarza, a rezerwacje badań są rozdzielone od wizyt także w logach, więc rejestracja i laboratorium nie mieszają sobie zapisów.

Rezerwacja badań laboratoryjnych: informacje o godzinach pobrań obok formularza, bez konieczności telefonu.

Oferta ułożona tak, jak pacjent szuka

Pacjent rzadko szuka „poradni” — szuka lekarza, objawu albo konkretnego badania. Rozbiliśmy więc ofertę na powiązane ze sobą typy treści: 39 specjalizacji, 43 zabiegi, 46 usług i 97 profili lekarzy. Ze strony specjalizacji wchodzi się na zabiegi, na lekarzy przyjmujących w tej poradni i na cennik — bez cofania się do menu.

Listę lekarzy da się filtrować po specjalizacji i przeszukiwać po nazwisku, a każdy profil ma własny adres, który pacjent może wysłać znajomemu albo znaleźć w Google po nazwisku lekarza.

Katalog specjalizacji z wyszukiwaniem — punkt wejścia dla pacjenta, który zna dziedzinę, ale nie zna nazwy poradni.
Strona specjalizacji: opis pisany językiem pacjenta i skróty do zabiegów, cennika, lekarzy i FAQ.
97 profili lekarzy z filtrem po specjalizacji i wyszukiwaniem po nazwisku.

Cennik, który klinika aktualizuje sama

Cennik to 269 pozycji w trzech grupach — zabiegi, usługi i szczepienia — pogrupowanych po specjalizacjach i zwiniętych w rozwijane sekcje, żeby dało się go czytać także na telefonie. Zmiana ceny albo dopisanie nowej pozycji to edycja rekordu w panelu, bez udziału programisty i bez wdrożenia. Do tego 19 pakietów badań, które klinika może składać samodzielnie.

Cennik: przełącznik zabiegi / usługi / szczepienia i sekcje rozwijane po specjalizacjach.

Wyszukiwarka, która rozumie język pacjentów

Pacjent wpisuje „kardio”, „serce” albo „na oczy” — nie „kardiologia” i „okulistyka”. Wyszukiwarka na stronie ma własną bazę synonimów i odmian, którą rozszerza zapytanie przed przeszukaniem treści: hasło „serce” wyciąga kardiologię, „na oczy” — okulistykę. Bazę synonimów zespół kliniki może rozbudowywać w ustawieniach CMS, bez zmian w kodzie. Wyniki są pogrupowane na specjalistów, specjalizacje, zabiegi i strony, więc pacjent od razu widzi, czy trafił na lekarza, czy na opis badania.

Wyniki dla zapytania „usg”: najpierw specjaliści wykonujący badanie, potem powiązane treści.

Krótsza droga do kontaktu

Na każdej podstronie pacjent ma pod ręką telefon do rejestracji i przycisk umówienia wizyty, a strona kontaktu pokazuje obie placówki z osobnymi numerami, godzinami pracy i adresami e-mail — bez zgadywania, gdzie dzwonić. Formularz kontaktowy trafia mailem do kliniki i zbiera zgody RODO w jednym miejscu.

Strona kontaktu: formularz i dane obu placówek z godzinami przyjęć.

Dostępność cyfrowa jako część wdrożenia

Strona placówki medycznej jest czytana także przez osoby starsze i słabowidzące. Wdrożyliśmy stały pasek ułatwień dostępu: trzy rozmiary tekstu, tryb wysokiego i niskiego kontrastu, wyłączenie skryptów i animacji, ukrycie mediów oraz reset ustawień. Wybór pacjenta zapamiętuje się między podstronami, więc nie trzeba klikać go od nowa na każdym kroku.

Pasek dostępności dostępny z każdej podstrony — rozmiar tekstu, kontrast, wyłączenie animacji i mediów.

Migracja bez utraty pozycji w Google

Stara strona miała adresy z rozszerzeniem .html i inną strukturą katalogów. Zmapowaliśmy je na nowe adresy i wdrożyliśmy 268 przekierowań 301 — z czego 210 prowadzi ze starych adresów Drupala. Przekierowania są zarządzane z panelu i działają od razu po zapisaniu, bez wdrożenia, więc klinika może reagować na kolejne znalezione stare linki samodzielnie.

Do tego doszły podstawy techniczne: wymuszony jeden adres kanoniczny (www + HTTPS), pięć map strony (strony, aktualności, specjalizacje, zabiegi, lekarze), tytuły i opisy meta ustawiane per dokument oraz obrazy serwowane w AVIF i WebP.

przekierowań 301 w CMS
268
ze starych adresów .html
210
mapy strony (sitemap.xml)
5
adres kanoniczny
www + HTTPS

Najważniejsze decyzje techniczne

Pięć decyzji, które najbardziej wpłynęły na efekt

  • Next.js + Payload CMS zamiast gotowego szablonuKlinika potrzebowała nietypowych typów treści (specjalizacje ↔ zabiegi ↔ lekarze ↔ cennik) i formularza rezerwacji zintegrowanego z systemem medycznym. Na gotowym szablonie oba te elementy byłyby wtyczkami obok siebie; tutaj są częścią modelu treści. Redaktor układa strony z 24 gotowych bloków, a nowe podstrony powstają bez programisty.
  • Rozmowa z systemem Gabos tylko po stronie serweraFormularz nigdy nie łączy się z systemem medycznym z przeglądarki pacjenta. Wszystkie zapytania idą przez 14 własnych endpointów na serwerze, które trzymają token serwisowy i dane logowania po stronie serwera. Dane dostępowe do systemu kliniki nie są widoczne w kodzie strony.
  • Blokowanie terminu na czas wypełniania formularzaZamiast zapisywać wizytę „w ciemno” i sprzątać kolizje ręcznie, rezerwujemy slot na czas wypełniania i zwalniamy go po rezygnacji. To eliminuje podwójne zapisy na tę samą godzinę — najbardziej kosztowny błąd w rejestracji.
  • Rezerwacje abonamentowe wyłączone na start, gotowe do włączeniaNa starcie strona przyjmuje tylko wizyty prywatne — bo grafiki abonamentowe w systemie kliniki wymagały jeszcze uporządkowania. Włączenie ich to zmiana dwóch wartości w konfiguracji, więc decyzja biznesowa nie wymaga przebudowy formularza. Klinika dostała od nas pisemną instrukcję, co musi ustawić w Gabosie.
  • Minimalizacja danych pacjentówLogi zapisów są widoczne wyłącznie dla administratora, pól nie da się edytować, a rekordy usuwają się automatycznie po 7 dniach. Strona przechowuje dokładnie tyle, ile potrzeba do obsługi zapisu — nie buduje równoległej bazy pacjentów.

Czego celowo nie robiliśmy

Nie budowaliśmy własnego systemu rezerwacji od zera. Klinika ma działający system medyczny z grafikami i kartotekami — drugi kalendarz oznaczałby podwójne wpisywanie i konflikty terminów. Zamiast tego strona pobiera i zapisuje dane w systemie, który zespół już zna.

Nie uruchamialiśmy płatności online za wizyty. Na tym etapie rozliczenie odbywa się w placówce, a dodanie bramki podniosłoby koszt i zakres wdrożenia bez wpływu na główny cel, czyli zdjęcie ruchu z rejestracji telefonicznej.

Nie wdrażaliśmy jeszcze danych strukturalnych ani rozbudowanej analityki konwersji. Pierwszym krokiem było uruchomienie i ustabilizowanie rezerwacji online oraz bezpieczne przeniesienie adresów. Znaczniki dla wyszukiwarek (placówka, lekarz, usługa) i mierzenie ścieżki rezerwacji zaplanowaliśmy jako kolejny etap — opisujemy je w sekcji „Co dalej”.

Jakie efekty przyniosło wdrożenie

profili lekarzy
97
specjalizacji
39
zabiegów i usług
89
pozycji cennika
269
rekordów treści w CMS
550
bloków do budowy stron
24
przekierowań 301
268
dostępność rezerwacji
24/7

Pacjent może dziś zapisać się na wizytę i na badania laboratoryjne o dowolnej godzinie, wybierając z terminów, które faktycznie są wolne w grafiku lekarza — bez telefonu i bez przenoszenia się do osobnego systemu. Rezerwacja działa też wtedy, gdy rejestracja jest zamknięta.

Zespół kliniki prowadzi treści samodzielnie: cennik, lekarzy, specjalizacje, zabiegi, aktualności, FAQ i pliki do pobrania. Nowa podstrona ofertowa powstaje z gotowych bloków, a przekierowanie starego adresu dodaje się w panelu i działa od razu — bez zgłoszenia do wykonawcy i bez wdrożenia.

Strona wyszła z niewspieranego Drupala 7 na aktualny, rozwijany stack (Next.js 15, Payload CMS 3, PostgreSQL) i przez kolejne miesiące była dalej rozwijana — bez przebudowy fundamentu. Doszły do tego ułatwienia dostępu dla osób słabowidzących i porządek w adresach po migracji.

Jak mierzyliśmy efekt

Liczby w tym case study opisują stan serwisu po wdrożeniu i pochodzą z produkcyjnej instancji (liczby rekordów w kolekcjach CMS, lista przekierowań, mapy strony) oraz z repozytorium projektu (zakres i tempo prac). Stan „przed” opisaliśmy na podstawie archiwalnej wersji poprzedniej strony z września 2025 roku, w tym jej systemu CMS i struktury adresów.

Prace prowadziliśmy od lipca 2025 roku, z uruchomieniem produkcyjnym na przełomie października i listopada 2025, a następnie rozwijaliśmy serwis w kolejnych miesiącach — łącznie ponad 1100 zmian w repozytorium i 29 migracji bazy danych.

Danych o ruchu i konwersjach (GA4, Google Search Console) nie zestawiamy w tym materiale — poprzednia strona nie miała porównywalnego pomiaru rezerwacji, więc porównanie „przed / po” byłoby nierzetelne. Mierzenie ścieżki rezerwacji uruchamiamy jako kolejny etap.

Sprawdzimy, czy Twoje SEO wspiera widoczność także -w nowych sposobach wyszukiwania

Umów krótkie konsultacje

Porozmawiajmy
o Twoim projekcie

Napisz do nas lub zadzwoń.
Odpowiemy na wszystkie pytania i pokażemy Ci, co możemy poprawić na Twojej
stronie już na starcie - bez zobowiązań.

Umów bezpłatną konsultację

Krótka konsultacja, podczas której pokażemy Ci wstępny plan.
*
*
*

* to pole jest wymagane

Adres

ul. Parkowa 4, 43-365 Wilkowice

Dane rejestrowe

Adsolutions s.c.

NIP: 9372500229

REGON: 240449079

© 2026 Adsolutions s.c. All rights reserved.