Cel projektu i punkt startowy
W odpowiedzi na rosnące oczekiwania pacjentów, którzy potrzebują szybkiego, wygodnego i przystępnego cenowo dostępu do usług medycznych, OpenMed podjął decyzję o stworzeniu własnej platformy do zdalnego wystawiania e-recept, e-zwolnień i e-skierowań. Rozwiązanie to pozwala ograniczyć konieczność odbywania powtarzalnych wizyt stacjonarnych, dzięki czemu lekarze mogą poświęcić więcej czasu na bardziej złożone przypadki, a pacjenci otrzymują sprawną i bezpieczną pomoc. Do tej pory rynek był zdominowany przez podmioty działające w szarej strefie – bez realnego zaplecza medycznego i z wątpliwymi standardami bezpieczeństwa.
Naszym zadaniem było:
- Skrócić czas oczekiwania pacjenta na dokument medyczny do kilkunastu minut od momentu złożenia zamówienia
- Zapewnić pełną zgodność ze standardami bezpieczeństwa platformy P1 oraz ZUS
- Stworzyć rozwiązanie skalowalne i bezpieczne, a jednocześnie przyjazne dla pacjentów i lekarzy
Analiza i proces projektowy
Na początku współpracy przeprowadziliśmy dogłębną analizę modelu biznesowego oraz dwóch kluczowych ścieżek użytkowników: pacjenta, który potrzebuje szybkiego dostępu do leku lub zwolnienia, i lekarza, który musi zatwierdzić dokument w zgodzie z obowiązującymi regulacjami. Zmapowaliśmy każdy etap – od wyszukania leku, przez wypełnienie ankiety, płatność i kontakt telefoniczny, po obsługę wizyty w panelu lekarskim i wystawienie potrzebnych dokumentów.
Już na tym etapie dużą wagę położyliśmy na projekt doświadczenia użytkownika (UX) — proces został zaprojektowany tak, aby składanie zamówienia było maksymalnie szybkie, intuicyjne i pozbawione zbędnych kroków. Dzięki temu pacjent w prosty sposób przechodzi od wyboru leku do uzyskania recepty, a lekarz otrzymuje wszystkie niezbędne informacje w przejrzystym i uporządkowanym formacie.
Następnie, podczas serii warsztatów z kadrą lekarską i zespołem zarządzającym, dopracowaliśmy wymagania kliniczne i prawne, a także priorytety biznesowe: bezpieczeństwo danych, automatyzację i skrócenie czasu obsługi. Całość tych prac pozwoliła nam przygotować specyfikację funkcjonalną dwuczęściowego systemu:
- Część sprzedażową strony, zaprojektowaną jako mobile-first, z wyszukiwarką leków opartą o aktualną bazę przechowywaną na naszych serwerach
- Panel lekarski zaprojektowany w sposób umożliwiający szybką obsługę pacjenta przy jednoczesnym zachowaniu maksymalnego poziomu bezpieczeństwa i prywatności pacjenta
Wybór technologii
Od początku wiedzieliśmy, że budujemy platformę, która z jednej strony musi być intuicyjna i szybka dla pacjentów, a z drugiej — stabilna, bezpieczna i zgodna z przepisami dotyczącymi dokumentacji medycznej. Dodatkowo musi pracować niezawodnie w tle — nie przytłaczając użytkownika, ale dając pełną kontrolę lekarzowi i spełniając wszystkie wymogi prawne.
Część widoczna dla pacjenta została zbudowana w Next.js. Strona główna działa w trybie SSR (server-side rendering), dzięki czemu ładuje się bardzo szybko i spełnia wymagania SEO, co jest ważne przy pozyskiwaniu nowych użytkowników.
Część lekarska systemu została zbudowana trybie SPA (Single Page Application) z użyciem Reacta — dzięki temu wszystko działa płynnie, wszystkie widoki przełączają się błyskawicznie i bez potrzeby przeładowania strony. To rozwiązanie dobrze sprawdza się w środowisku pracy lekarzy, gdzie liczy się szybki dostęp do danych i płynna obsługa wielu pacjentów.
Autoryzacja użytkowników została oparta o protokół OAuth2, który zapewnia kontrolowany i bezpieczny dostęp do chronionych zasobów.
Warstwa backendowa systemu została oparta na dwóch niezależnych aplikacjach Spring Boot.
Pierwsza z nich, działająca w oparciu o Spring WebFlux, pełni funkcję bramy systemowej i odpowiada za całą obsługę logowania oraz zarządzanie sesją użytkownika. Działa ona jako OAuth2 Client, który realizuje proces autoryzacji – odbiera dane logowania, ustawia sesję i utrzymuje stan zalogowania po stronie serwera. Przeglądarka użytkownika nie ma dostępu do żadnych tokenów – cała wrażliwa logika odbywa się w bezpiecznym zapleczu.
Takie podejście pozwala nie tylko uprościć architekturę frontendową, ale przede wszystkim znacząco zwiększa bezpieczeństwo — sesja użytkownika pozostaje pod pełną kontrolą serwera, a nawet w przypadku naruszenia bezpieczeństwa po stronie klienta, dostęp do systemu jest ograniczony serwerowo.
Druga aplikacja odpowiada za logikę biznesową i działa jako OAuth2 Resource Server — to tutaj realizowane są procesy wystawiania e-recept, e-skierowań i zwolnień lekarskich online. Każda decyzja lekarza jest rejestrowana zgodnie ze standardami medycznymi i przekazywana bezpośrednio do systemu P1. Dzięki integracji z Platformą P1 oraz powiązanymi systemami e-zdrowia, takimi jak eWUŚ czy ZUS, dokumenty medyczne trafiają do państwowej infrastruktury, skąd mogą być zrealizowane w aptekach i placówkach medycznych w całej Polsce. Zapewnia to pełną zgodność z polskimi regulacjami, bezpieczeństwo danych pacjentów oraz transparentność procesu.
Finalnie, platforma działa w chmurze Microsoft Azure, zapewniając elastyczność w zarządzaniu środowiskami, wysoką dostępność oraz możliwość szybkiego skalowania w przypadku zwiększonego ruchu. Dane przechowywane są w relacyjnej bazie Azure SQL Database, co gwarantuje wysoką spójność, integralność i zgodność ze standardami bezpieczeństwa wymaganymi w sektorze ochrony zdrowia. W warstwie ochrony ruchu wspiera nas również Cloudflare, dostarczając zabezpieczenia aplikacyjne oraz dodatkową warstwę ochrony przed atakami.
Efekty końcowe
Zbudowana przez nas aplikacja spełniła wszystkie swoje założenia i stała się realnym wsparciem dla rozwoju obecności online dla firmy OpenMed.
System jest skalowalny i gotowy na zwiększającą się z miesiąca na miesiąc liczbę użytkowników i będzie rozbudowywany o kolejne funkcjonalności - wspierając w ten sposób rosnące zapotrzebowania pacjentów.