Spółka Medibase oparła swój biznes na stworzeniu i udostępnianiu m.in. przez stronę WWW zintegrowanych baz interakcji leków wspierających bezpieczną terapię – do korzystania przez lekarzy i placówki medyczne, a także farmaceutów i apteki. Ogólnie zasada działania aplikacji opiera się na prostej zasadzie: lekarz wybiera z listy zestaw leków, jakie chce zapisać pacjentowi, a aplikacja, opierając się na zaimplementowanych bazach danych, sprawdza, czy preparaty te nie wchodzą ze sobą w niepożądane reakcje oraz czy nawzajem nie nasilają działań ubocznych. Jeśli tak – lekarz będzie miał możliwość skorzystania z podpowiedzi zamiany na lek zastępczy oraz rekomendacji w zakresie zmiany dawki. Korzyści dla użytkownika są oczywiste – oszczędność czasu przy doborze terapii i dawkowania oraz znaczne zmniejszenie ryzyka terapii farmakologicznych związanego z niewłaściwie dobranymi lekami. Za tym idą także oszczędności placówek medycznych.
Zarząd spółki – dopiero rozpoczynającej działalność – nie chciał inwestować w platformę sprzętową, zespół administratorów itp. Od początku założono również, że rozwiązanie powinno być udostępnione w modelu software as a service (SaaS).
Z tak zarysowaną ideą spółka Medibase zwróciła się do BCC (aktualnie All for One Poland), zlecając zarówno napisanie aplikacji w All for One Software Factory, jak i opracowanie koncepcji jej utrzymania w All for One Data Centers.
Siłą BCC w realizacji takich przedsięwzięć jest połączenie kompetencji zespołu architektów IT i programistów, którzy mają duże doświadczenie w budowaniu aplikacji biznesowych na zlecenie klienta w większości popularnych technologii, z bogatą ofertą hostingu zarządzanego i usług administracji IT. Komplet usług – od pomysłu, poprzez realizację i dalszy rozwój, aż po udostępnienie usługi w modelu SaaS – u jednego dostawcy, to duża wartość dla klienta.
Jak stworzyć udaną aplikację
Konstrukcja każdego rozwiązania informatycznego wymaga wstępnej analizy, wiedzy po stronie wykonawcy prac oraz zaangażowania po stronie klienta. Dużo projektów informatycznych kończy się porażką podczas tworzenia, tylko dlatego że nie są poprawnie zarządzane: brak szczegółowej koncepcji z opisem wymaganych funkcji i konsekwencji w jej wprowadzaniu. Podobnie jest, jeśli chodzi o podejście do „strony technicznej” rozwiązań IT. Zły wybór technologii, brak projektu architektury IT i dokładnej dokumentacji powoduje niezrozumienia pomiędzy zespołami programistów i administratorów rozwiązania.
Przystępując do tworzenia koncepcji aplikacji udostępnianej w modelu SaaS należy brać pod uwagę:
- dostępność technologicznego rozwiązania w przyszłości,
- ciągłość rozwijania języka programowania,
- dostępność wsparcia technologii programistycznej,
- kontakt z firmą realizującą usługi programistyczne oraz hostingowe,
- wsparcie programistycznie oraz ciągłość działania firmy hostingowej.
Spełnienie tych wstępnych kryteriów oraz skuteczne zarządzenie projektem to warunki do stworzenia dobrego rozwiązania.
Spotkania projektowe
Zanim programiści BCC przystąpili do prac programistycznych, zorganizowano serię spotkań projektowych z przedstawicielami Medibase, w trakcie których ustalono zakres, specyfikację oraz listy wymagań funkcjonalnych i niefunkcjonalnych opracowywanego rozwiązania. Programiści – wychodząc od pomysłu biznesowego klienta – „przełożyli” go na język techniczny, realizując kilka podstawowych założeń:
- możliwość importu, scalania, aktualizacji oraz weryfikacji danych pochodzących z wielu źródeł, dostarczanych w różnych formatach (XML, pliki Excel, pliki PDF), w różnych przedziałach czasu,
- możliwość integracji zewnętrznych systemów funkcjonujących w dziedzinie medycyny i farmacji, dająca tym systemom kontrolowany dostęp do danych Medibase,
- dostęp do pełnej funkcjonalności systemu z poziomu dedykowanej aplikacji web (strony WWW).
Pierwsza wersja w trzy tygodnie
Dla klienta bardzo ważne było uzyskiwanie kolejnych wersji rozwiązania w jak najkrótszym czasie (równocześnie prowadzone były konsultacje ze środowiskiem medycznym oraz potencjalnymi użytkownikami rozwiązania). Jednocześnie, chcąc jak najlepiej dopasować rozwiązanie do wymagań użytkowników, Medibase zastrzegła sobie możliwość wprowadzania na bieżąco zmian do projektu, które wynikały z sygnałów otrzymywanych w trakcie prezentacji kolejnych wersji aplikacji. Aby sprostać tym wymaganiom, podjęto decyzję o podziale prac programistycznych na kilka etapów oraz zorganizowaniu środowiska pracy w taki sposób, by odstęp pomiędzy kolejnymi wersjami aplikacji nie przekraczał 2–3 tygodni.
Zakładany cel został osiągnięty. Już po trzech tygodniach od rozpoczęcia prac udostępniono do testów pierwszą wersję aplikacji, a po dwóch miesiącach od pierwszego spotkania projektowego aplikacja medibase.pl została produkcyjnie udostępniona w internecie.
Wybór platformy programistycznej
Na podstawie zebranych od klienta wymagań funkcjonalnych i niefunkcjonalnych zdecydowano się na zrealizowanie projektu z wykorzystaniem technologii Microsoft, a dokładniej: .Net Framework 4.5, ASP.NET MVC 4, SQL Server 2012. Na powyższy wybór duży wpływ miały pozytywne doświadczenia z wykorzystania tych technologii w komercyjnych aplikacjach realizowanych dla innych klientów BCC (aktualnie All for One Poland).
Warstwę API zbudowano w oparciu o stos ServiceStack.net, który jest popularną alternatywą dla technologii Windows Communication Foundation i Entity Framework, oferującą większą niż WCF i EF wydajność. To bezpośrednio przekłada się na zmniejszenie wymagań co do zasobów sprzętowych, a tym samym kosztów hostingu aplikacji. ServiceStack.net umożliwia również dostarczenie gotowego rozwiązania w znacznie krótszym czasie niż pozostałe z analizowanych narzędzi tego typu.
Rozwiązania proste i użyteczne
Działamy na bardzo dynamicznym rynku. Szczegółowo przygotowaliśmy zestaw funkcjonalności, które chcielibyśmy móc zaoferować klientom w momencie uruchomienia naszego serwisu. Opracowanie tego zajęło nam ponad rok. Jednak konfrontacja klienta z działającym, choć wówczas jeszcze testowo, serwisem pokazała nam jeszcze kilka istotnych możliwości. Możemy przyjąć, że to, co teraz oferujemy, jest już trzecią wersją.
Usługę taką jaka nasza łatwo jest skomplikować. Tym bardziej, że ma ona charakter specjalistyczny, a zakres dostarczanych przez nas informacji jest bardzo szeroki. Dodając zbyt wiele funkcjonalności, podając zbyt wiele informacji, łatwo jest jednak zniechęcić użytkowników. Stosujemy więc zasadę – Keep it simple and useful.
Pracujemy właśnie nad pierwszymi wdrożeniami u klientów. Przyznam szczerze, że tempo absorbcji naszego rozwiązania przez rynek było dla nas pozytywnym zaskoczeniem. W ciągu najbliższych dwóch lat planujemy poszerzenie naszych usług o dodatkowe zestawy informacji specjalistycznych.
Wybór SaaS był dla nas najbardziej efektywnym rozwiązaniem. Nasz core-business to dostarczanie aktualnej, wiarygodnej informacji, w sposób wygodny dla jej odbiorcy (lekarza, farmaceuty i pacjenta) oraz wskazywanie zaleceń co do dalszych kroków. Ten kierunek – usługi dla medycyny i farmacji chcemy przede wszystkim rozwijać. Kompetentny i elastyczny partner IT pozwala więc nam skupić się głównie na realizacji naszej strategii.
Piotr Kwiatek, Prezes Zarządu Medibase
Siła medibase.pl
Siłą medibase.pl są zintegrowane bazy interakcji leków, które zostały opracowane przez specjalistów Medibase we współpracy m.in. z Karolinska Institute oraz Urzędem Rejestracji Leków w Sztokholmie i są jednymi z największych baz na świecie. Współpraca Medibase z międzynarodowym środowiskiem farmaceutycznym i medycznym pozwala na wprowadzanie rocznie ponad 1500 aktualizacji bazy. Rozwiązanie, oprócz wersji dostępnej jako strona WWW, jest integrowane z najważniejszymi aplikacjami wspomagającymi pracę lekarzy, m.in. w prowadzeniu kartotek pacjentów czy w procesie wystawiania recept.
Outsourcing aplikacji w All for One Data Centers
Rozwiązanie jest fizycznie umiejscowione w All for One Data Centers, które zapewnia komplet usług utrzymania, zapewnianie wydajności i dostępności oraz serwis. Usługa jest realizowana w oparciu o kontrakt SLA definiujący parametry techniczne i czasy reakcji.
Podstawą realizacji usługi jest umiejscowienie jej w na platformie sprzętowej o wysokiej dostępności, w technologii wirtualizacji VMware. Platforma zapewnia wysoką dostępność w przypadku awarii sprzętowej. Dane przechowywane na macierzach posiadają wielostopniowy poziom zabezpieczeń. Całość, w połączeniu z redundantnymi łączami do internetu, gwarantuje dostępność usługi na poziomie 99,999% w skali roku.
Dla zapewnienia bezpieczeństwa zastosowano rozwiązanie FrontEnd oparte na NGINX, które powoduje automatyczne odcięcie aplikacji od prób ataków z internetu.
Całość aplikacji, bazy danych, systemu operacyjnego jest wspierana przez Centrum Outsourcingowe BCC, które odpowiada za zapewnienie ciągłości działania, zapewnia jeden punkt kontaktu dla zgłoszeń serwisowych oraz mierzalność jakości usług.
Koncepcja techniczna aplikacji – obejmująca wybór technologii oraz modelu świadczenia usług dla użytkownika końcowego – realizowana przez jednego dostawcę pozwala na uzyskanie efektu synergii działań i spójności rozwiązania. Programiści – projektując rozwiązanie – znają zalety i ograniczenia platformy sprzętowej. Z kolei już na etapie planowania platformy technologicznej, można uwzględnić nawet dalekie plany rozwoju rozwiązania, które w przyszłości mogą wpłynąć na wielkość bazy danych czy wydajność.