Przejdź do treści
megapromotingPorozmawiajmy

Rozwiązania · Kliniki stomatologiczne

Lista usług z oznaczeniem objęcia obowiązkowym ubezpieczeniem, edytowalna przez recepcję — a nie PDF z cenami wysłany e-mailem.

Strona kliniki stomatologicznej jest oceniana według jednej rzeczy: czy osoba znajduje usługę, której potrzebuje, z ceną i jednostką — za ząb, za szczękę, za sesję — oraz czy wie, czy wchodzi to w ubezpieczenie, czy nie. Reszta to dekoracja. Budujemy strukturę, która to utrzymuje, i panel, z którego personel zmienia to samodzielnie.

Już zbudowaneLucrarea se poate verifica din exterior chiar acum: datele publice ale unui centru stomatologic raional pe care îl administrăm sunt servite ca fișier structurat — 89 de servicii, fiecare cu categorie, subcategorie, denumire, preț, unitate de măsură și un indicator de eligibilitate pentru asigurarea obligatorie, dintre care 27 marcate ca eligibile; 7 categorii și 10 subcategorii, verificate de noi pe 06.09.2026. A doua parte a dovezii e securizarea, cu diff în istoric: la preluare, parola de administrator era comparată în browser și ajungea în pachetul JavaScript public, iar scrierile pe interfața de programare se puteau face de oricine de pe internet. Precizarea corectă, ca să nu ne atribuim mai mult decât e al nostru: prima variantă a site-ului nu e a noastră. Contribuția care se poate arăta cu diff e preluarea, securizarea, tipurile, integrarea continuă și igiena dependințelor.

Klinika stomatologiczna nie sprzedaje „usług”. Sprzedaje bardzo długą listę pozycji taryfowych z jednostkami, które nie przypominają niczego z innej branży: za ząb, za szczękę, za ekstrakcję, za leczony przypadek, za sesję, za wizytę, za zabieg. Osoba szukająca w internecie nie szuka kliniki, tylko swojej pozycji: ile kosztuje ekstrakcja, czy płaci się za ząb czy za wizytę, czy jest objęta ubezpieczeniem. Strona, która odpowiada na to, jest użyteczna; strona z zakładką „Cennik” i załączonym PDF-em nie jest.

Drugą rzeczą, której wymaga rzeczywistość kliniki, jest możliwość zmiany listy bez programisty. Cenniki się zmieniają, lekarze się zmieniają, dyżury są ogłaszane inaczej zimą. Jeśli każda zmiana przechodzi przez dewelopera, lista zostaje stara i po kilku miesiącach pacjenci przychodzą z ceną z zeszłego roku. Struktura, którą budujemy, trzyma dane publiczne — usługi i zespół — w uporządkowanych plikach czytanych zarówno przez interfejs programowania, jak i bezpośrednio przez widoczną część strony, a personel edytuje je z panelu.

Trzecia rzecz, której nikt nie wpisuje w brief, a która ma największe znaczenie, to kto może pisać do tej listy. Przy przejęciu projektu, o którym tutaj piszemy, dowolna osoba z internetu mogła wysłać zapis do interfejsu programowania, a hasło panelu trafiało do pakietu JavaScript serwowanego przeglądarce — ponieważ jego weryfikacja odbywała się w przeglądarce. Przenieśliśmy weryfikację na serwer: hasło nie opuszcza już serwera, zwracany jest podpisany token ważny dwanaście godzin, z limitem ośmiu prób na piętnaście minut na adres IP i porównaniami w czasie stałym; interfejs nasłuchuje tylko na adresie lokalnym, więc serwer WWW jest jedyną publiczną drogą.

Oznaczenie objęcia obowiązkowym ubezpieczeniem zasługuje na osobne zdanie, bo to pole o największej wartości dla pacjenta i największym ryzyku dla kliniki: to stwierdzenie z konsekwencjami. Dlatego żyje jako dane edytowane przez instytucję, a nie jako tekst przez nas napisany na stronie; my budujemy pole, wyświetlanie i możliwość poprawienia go w minutę.

Co obejmuje

Co zmienia się konkretnie w klinikach stomatologicznych

Każda usługa to pozycja z własną jednostką, a nie wiersz w tabeli cen

Struktura danych każdej usługi ma kategorię, podkategorię, nazwę, cenę, jednostkę miary i wskaźnik kwalifikowalności do obowiązkowego ubezpieczenia. Jednostki są rzeczywistymi jednostkami tej branży — ząb, szczęka, ekstrakcja, leczony przypadek, sesja, wizyta, konsultacja, znieczulenie, procedura, badanie, interwencja — ponieważ cena bez jednostki wywołuje dokładnie tę rozmowę, której recepcja chce uniknąć.

Taksonomia na dwóch poziomach, aby długa lista pozostała możliwa do przeglądania

Kategoria i podkategoria, a nie płaska lista. W pracy, o której piszemy: 7 kategorii i 10 podkategorii ponad 89 usług. Skala ma znaczenie — przy mniej niż stu pozycjach taksonomia na dwóch poziomach wystarcza; powyżej kilkuset struktura staje się inną rozmową i mówimy to z góry, a nie po fakcie.

Oznaczenie pokrycia przez ubezpieczenie jako dane instytucji

Wskaźnik kwalifikowalności znajduje się przy każdej usłudze, w danych publicznych, i może być edytowany przez klinikę. W przywołanej pracy 27 z 89 usług jest oznaczonych jako kwalifikowalne. Nie wpisujemy sami, co wchodzi do ubezpieczenia, i tego nie wyprowadzamy: to stwierdzenie instytucji, z konsekwencjami dla pacjentki lub pacjenta, i musi ona móc je skorygować w dowolnym momencie.

Oddzielne ekrany dla nagłych przypadków, ortodoncji, implantów, pedodoncji

Nie jedna strona „Usługi”. Serwis ma 22 ekrany, od usług i cen po nagłe przypadki, ortodoncję, implanty, pedodoncję, przejrzystość i opinię zwrotną. Powód jest praktyczny: osoba szukająca „nagły przypadek stomatologiczny” w niedzielny wieczór nie chce strony ogólnej, a strona sekcji ma co powiedzieć o godzinach i o tym, co się w niej robi.

Personel edytuje, deweloper nie jest w łańcuchu

Usługi i zespół są edytowane z panelu, a zapisy wymagają ważnego tokena; odczyty pozostają publiczne, aby strona działała bez uwierzytelniania. Skutek dla kliniki: zmiana taryfy wchodzi tego samego dnia, a nie w następnej iteracji rozwojowej.

Hasło nie opuszcza serwera, a próby są ograniczone

Uwierzytelnianie odbywa się na serwerze i zwraca token podpisany HMAC-SHA256, ważny 12 godzin, z maksymalnie 8 próbami na 15 minut na adres IP i porównaniami w stałym czasie. Sekret podpisywania jest generowany samodzielnie, w pliku o ograniczonych uprawnieniach, przechowywanym poza repozytorium. To są liczby z kodu, a nie ogólne zasady — można je odczytać i zakwestionować.

Interfejs programowania nie jest wystawiony bezpośrednio do internetu

Nasłuchuje tylko na adresie lokalnym, więc serwer WWW z przodu jest jedyną publiczną drogą; lista dozwolonych domen jest jawna, a treść żądań jest ograniczona do 1 MB. Zapis wymaga tokena, odczyt nie. To typowa konfiguracja — problem polega na tym, że gdy jej brakuje, nie widać tego z zewnątrz aż do dnia, kiedy ktoś to znajdzie.

Ciągła integracja odrzuca pakiet, jeśli znajdzie w nim sekret

Sprawdzenie, które kompiluje i weryfikuje typy, robi też coś, co robi niewiele projektów: szuka sekretów w zbudowanym pakiecie i kończy się niepowodzeniem, jeśli je znajdzie. Jest to bezpośrednio związane z naprawioną wadą przy przejęciu — hasło trafiło do publicznego pakietu właśnie dlatego, że nic tego nie sprawdzało. Do tego dochodzą tygodniowe aktualizacje zależności.

Czego nie robi strona internetowa kliniki stomatologicznej

Nie potwierdza samodzielnie wizyty: zbiera zgłoszenie, a potwierdzenie wymaga albo osoby, albo połączenia z systemem rejestracji kliniki — to osobna praca, z własnymi warunkami. Nie publikuje medycznych informacji napisanych przez nas: treść o leczeniu należy do specjalistek i specjalistów. I nie decyduje, co wchodzi do ubezpieczenia.

Traseul

Jak przechodzi zgłoszenie przez system.

01

Inwentaryzujemy nomenklaturę przed projektem

Pierwsza dostawa to lista pozycji taryfowych z jednostką każdej z nich i oznaczeniem pokrycia, w formie, w jakiej prowadzi ją klinika. Jeśli lista nie istnieje w ustrukturyzowanej formie — a zwykle istnieje jako plik arkusza kalkulacyjnego albo jako dokument — strukturujemy ją my, a klinika ją potwierdza. Projekt przychodzi później, bo zależy od tego, ile jest pozycji.

02

Budujemy strukturę publiczną i panel, na tym samym etapie

Ekrany publiczne i panel, z którego się edytuje, nie są robione osobno, bo inaczej pojawiają się wyświetlane pola, których nie da się edytować. Dostarczamy stronę z wczytanymi rzeczywistymi danymi, a nie z treścią zastępczą — strona kliniki wypełniona prowizorycznym tekstem nie może być oceniona przez nikogo.

03

Zamykać zapisy i sprawdzać z zewnątrz

Uwierzytelnianie na serwerze, podpisany token, limit prób, interfejs rejestracji tylko pod adresem lokalnym, lista dozwolonych domen, limit rozmiaru ciała żądań. Dostarczamy wynik sprawdzenia wykonanego z zewnątrz: co można odczytać bez uwierzytelniania, a czego nie można zapisać.

04

Przekazujemy z instruktażem dla osoby edytującej, nie tylko z hasłami

Przekazujemy dostępy, dokument uruchomienia i krótki instruktaż dla osoby, która będzie zmieniać ceny i zespół. Dostawy nie uznaje się za zakończoną, dopóki ktoś z kliniki nie wykona samodzielnie zmiany, która pojawi się na stronie.

1Server web în față2pachet static construit3interfață de programare doar pe adresa locală4fișiere structurate cu serviciile și echipaCitirile trec public; scrierile cer un jeton semnat, valabil 12 ore.
4 straturi

Dane

Czego dotykamy, gdzie to leży i jak długo zostaje

Zasady różnią się w zależności od branży. To są te, które stosują się w klinikach stomatologicznych.

Co jest publiczne, a co nie, na stronie kliniki
Publiczne: lista usług z jednostką i oznaczeniem pokrycia, zespół, godziny pracy, kontakty instytucji. Niepubliczne: wszystko, co trafia z formularza. Różnica wydaje się oczywista, dopóki ktoś nie wpisze na stronie opinii wiadomości ze swoim nazwiskiem i problemem — dlatego formularze i publiczne wyświetlanie nigdy nie korzystają z tego samego źródła.
Wniosek o wizytę zawiera dane o zdrowiu
„Boli mnie dolny lewy ząb mądrości” to informacja o zdrowiu możliwej do zidentyfikowania osoby, z kategorii o bardziej rygorystycznym reżimie. Praktyczne konsekwencje ustala się przy wdrożeniu: kto ma dostęp do otrzymanych wiadomości, jak długo są przechowywane, przez jaki kanał trafiają i czego nigdy nie wymaga się w formularzu.
Ceny i oznaczenie pokrycia należą do instytucji
Budujemy je jako strukturę i jako panel; ich treść należy do kliniki i zmienia się na jej decyzję. Nie publikujemy żadnej kwoty taryfy jako przykładu w naszych materiałach, nawet w celach ilustracyjnych — taryfa wyrwana z kontekstu staje się stwierdzeniem o klinice.
Kto może wpisywać do danych publicznych
Tylko ten, kto ma ważny token, uzyskany przez uwierzytelnienie na serwerze, z limitem prób. Odczyty są publiczne, bo takie muszą być. Różnica między tymi dwoma zdaniami to dokładnie wada, którą naprawiliśmy przy przejęciu cytowanego projektu.
Co zostaje w historii repozytorium
Historia projektu zawiera, niemal zawsze, dane, których nikt nie umieścił tam celowo: numer telefonu, adres e-mail, nazwę administratora treści. Traktujemy je właśnie tak — nie trafiają do materiałów publicznych i są usuwane z treści na żądanie klienta.

Przykład

Hasło administratora, które trafiało do pakietu serwowanego przeglądarce

Sytuacja

Przy przejęciu strony centrum stomatologicznego panel administracyjny miał dwa problemy, które były widoczne tylko od wewnątrz. Pierwszy: hasło było porównywane w przeglądarce, więc trafiało do publicznego pakietu JavaScript. Drugi: żądania zapisu do interfejsu programowania mogła wysyłać dowolna osoba z internetu, a port był wystawiony bezpośrednio.

Co zbudowaliśmy

Przenieśliśmy weryfikację na serwer: uwierzytelnienie zwraca token podpisany HMAC-SHA256, ważny 12 godzin, z limitem 8 prób na 15 minut na adres IP i porównaniami w czasie stałym; sekret podpisywania generuje się samodzielnie, z ograniczonymi uprawnieniami, poza repozytorium. Interfejs programowania pozostał nasłuchujący tylko na adresie lokalnym, z serwerem webowym z przodu, listą dozwolonych domen i limitem treści żądania do 1 MB. Zapisy do usług i zespołu wymagają tokena; odczyty pozostały publiczne. Ponad tym wszystkim, ciągła integracja, która kompiluje, sprawdza typy i odrzuca pakiet, jeśli znajdzie w nim sekret.

Co z tego wyszło

Publiczne dane kliniki można dziś sprawdzić z zewnątrz: 89 usług, każda z kategorią, podkategorią, ceną, jednostką i wskaźnikiem pokrycia przez ubezpieczenie, z czego 27 oznaczonych jako kwalifikujące się. Zmieniło się to, kto może w nich zapisywać.

Czego nie mówi ten przypadek

To nie my zbudowaliśmy pierwszą wersję strony. Z historii repozytorium część commitów należy do zewnętrznych deweloperów. Wkład, który możemy pokazać diffem, to przejęcie: bezpieczeństwo, ciągła integracja, typy, zależności.

Pytania

O co pytają osoby z klinik stomatologicznych

Czy możemy sami zmieniać ceny, bez dzwonienia do was?

Tak — to połowa pracy. Usługi i zespół są edytowane z poziomu panelu; zapisy wymagają uwierzytelnienia, odczyty pozostają publiczne. Nasza rekomendacja: przy przekazaniu osoba, która będzie się tym zajmować, dokonuje zmiany na naszych oczach, żebyśmy wiedzieli, że działa z jej ręki, a nie z naszej.

Jak pokazujemy, co wchodzi do obowiązkowego ubezpieczenia?

Jako wskaźnik przy każdej usłudze, w tych samych danych, które edytujecie. W pracy, którą cytujemy, 27 z 89 usług jest oznaczonych jako kwalifikujące się. My budujemy pole i wyświetlanie; to, co dokładnie jest kwalifikujące się, jest stwierdzeniem instytucji, bo ma skutki dla pacjentki lub pacjenta i dla kliniki.

Dlaczego jednostka miary ma znaczenie przy cenie?

Bo w stomatologii cena nie jest za wizytę. Jest za ząb, za szczękę, za ekstrakcję, za leczony przypadek, za sesję. Cena wyświetlona bez jednostki wywołuje dokładnie taką rozmowę, jaką recepcja prowadzi dziesięć razy dziennie, a co gorsza, wrażenie pacjentki lub pacjenta, że powiedziano coś innego przez telefon.

Czy strona może robić zapisy?

Może zbierać zgłoszenie. Potwierdzenie terminu wymaga albo osoby, która sprawdza grafik, albo połączenia z systemem zapisów kliniki — to osobna praca, z wcześniejszym sprawdzeniem kompatybilności. Nie nazywamy „zapisem online” formularza, który wysyła e-mail.

Kto pisze teksty o zabiegach?

Specialistki kliniki. Nie piszemy informacji klinicznej i nie „optymalizujemy” jej pod wyszukiwanie, ponieważ oznaczałoby to formułowanie twierdzeń medycznych w imieniu instytucji medycznej. Porządkujemy tekst, stawiamy pytania, na które tekst ma odpowiedzieć, i publikujemy go po potwierdzeniu.

Mam już stronę wykonaną przez kogoś innego. Możecie ją przejąć?

Tak, i właśnie o tym jest praca, o której piszemy tutaj. Co robimy najpierw przy przejęciu: sprawdzamy, co da się opisać z zewnątrz, gdzie są hasła i co trafia do pakietu serwowanego przeglądarce. W cytowanym przypadku hasło administracyjne trafiało do publicznego pakietu, a zapisy mogły być wykonywane przez dowolną osobę. Przenieśliśmy weryfikację na serwer i zamknęliśmy zapisy.

Jak szybko widać zmianę stawki?

Natychmiast po zapisaniu, ponieważ dane publiczne są odczytywane z tego samego źródła, które edytujecie. Nie obiecujemy natomiast szybkości aktualizacji wyników w wyszukiwarkach — to nie zależy od nas i nie możemy tego zagwarantować.

Co dzieje się z danymi z formularza kontaktowego?

Ustala się to podczas wdrożenia: gdzie trafiają, kto je widzi, jak długo są przechowywane i czego nigdy nie należy żądać w formularzu. W klinice wiadomość często zawiera opis problemu zdrowotnego, więc nie jest „lead”, tylko kategorią danych o ścisłym reżimie — i sposób jej przetwarzania jest zapisany w opublikowanej polityce kliniki.

Czy strona będzie mówić, że jest wykonana przez Was?

Tylko jeśli tego chcecie. Część naszych realizacji ma atrybucję w stopce, inne nie — zależy to od klienta. Wspominamy o tym, ponieważ to pytanie zadają kliniki i ponieważ, gdy strona nie ma żadnej atrybucji, my też nie przedstawiamy się jako autorzy bez ich zgody.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy