Aplikacja medyczna służąca do prezentacji modelu 3D ludzkiego mózgu i wyświetlania informacji o jego poszczególnych częściach. Chcieliśmy, aby projekt był przyjemny dla oka użytkownika i pozwalał na łatwą interakcję z interfejsem.
Technologie
W Scythe Studio ponad 80% naszych projektów skierowanych jest do branży medycznej – sektora, który charakteryzuje się wykorzystaniem najnowocześniejszych rozwiązań technologicznych oraz szczególną dbałością o detale i jakość rozwiązań.
Jest to sektor, w którym działamy od najdłuższego czasu i posiadamy najwięcej doświadczenia. Dodatkowo, nasze przedsiębiorstwo posiada certyfikaty ISO 13485:2016 oraz ISO 9001:2015, co świadczy o najwyższej jakości oprogramowania, które tworzymy. Zapoznaj się z naszymi usługami w zakresie rozwoju oprogramowania dla urządzeń medycznych.
Studium przypadku przedstawia proces rozwoju i możliwości aplikacji Brain Viewer – narzędzia do wyświetlania trójwymiarowego modelu ludzkiego mózgu. Aplikacja ukazuje wyzwania, z jakimi mierzymy się na co dzień w projektach dla branży medycznej oraz sposób, w jaki je pokonujemy!
Aplikacja ta została stworzona w ramach przygotowań do największych międzynarodowych targów sprzętu medycznego i materiałów eksploatacyjnych w Polsce – SalMed, gdzie braliśmy udział jako wystawca. W Scythe Studio znaczną część naszych projektów stanowią oprogramowania dla urządzeń medycznych. Niestety, pomimo że pracujemy nad wieloma projektami, nie możemy ich „pokazać” ze względu na podpisane umowy NDA (większość projektów jest jeszcze we wczesnym stadium rozwoju i mogą przynieść potencjalne zyski, więc zrozumiałe jest, że klienci nie chcą, aby ich produkty były prezentowane zbyt wcześnie). Dlatego też, postanowiliśmy opracować własną aplikację, która w pewien sposób ilustruje, co można osiągnąć przy naszym wsparciu. I tak oto powstał BrainViewer.
Głównym celem przy tworzeniu tego demo było pokazanie naszych umiejętności w projektowaniu zaawansowanego i nowoczesnego interfejsu użytkownika, wykorzystującego skomplikowane elementy 3D. Dodatkowo, zależało nam na tym, aby aplikacja nie tylko dobrze wyglądała, ale także była jak najbardziej interaktywna, a więc dostarczającej rzeczywistej wartości potencjalnym klientom.
Ponieważ aplikacja miała być głównie prezentowana na targach, postanowiliśmy uruchomić ją na tablecie z ekranem dotykowym, aby każdy odwiedzający mógł samodzielnie wziąć urządzenie do ręki i przetestować jej funkcjonalności.
Podczas pracy nad projektem stworzenia Brain Viewer, staraliśmy się odtworzyć warunki, w jakich na co dzień pracujemy nad projektami medycznymi. Zapewniliśmy odpowiednie planowanie pracy i podejście do jakości, w tym wysoką jakość kodu. Oczywiście, nie mogło zabraknąć testów. Oprogramowanie, które tworzymy, jest również dokumentowane zgodnie ze standardem IEC 62304. Zapoznaj się z funkcjami Brain Viewer.
Głównym elementem aplikacji jest model 3D ludzkiego mózgu. Model ten składa się z ponad 100 oddzielnych elementów, co pozwala na bardzo dokładne odwzorowanie rzeczywistego mózgu. Model został przetransferowany do aplikacji z pliku STL przy użyciu modułu Qt Quick 3D i narzędzia balsam.
Jeśli jesteś zainteresowany tym, jak samodzielnie tego dokonać, zachęcam do przeczytania naszego wpisu na blogu poświęconego modułowi Qt Quick 3D.
Sam model można dowolnie przesuwać, obracać i przybliżać, co pozwala użytkownikowi na dostosowanie go do swoich indywidualnych potrzeb. Dodatkowo, użytkownik może wybrać jeden z trzech dostępnych podmodeli mózgu: pełny model mózgu, połowę mózgu (widoczna tylko połowa mózgu) oraz model środkowy mózgu, w którym widoczne są jedynie wewnętrzne struktury mózgu.
Co więcej, użytkownik może modyfikować każdą strukturę osobno, zmieniając przezroczystość lub kolor struktury. Taki wysoki poziom modyfikacji modelu zapewnia, że klient będzie w stanie w pełni dostosować model do swoich potrzeb.
Aplikacja byłaby mało użyteczna, gdyby jedynie pokazywała model 3D, dlatego wprowadziliśmy liczne dodatkowe funkcjonalności. Pierwszą z nich jest często używana w projektach medycznych opcja mierzenia długości struktur: dzięki tej opcji użytkownik może mierzyć wymiary wewnętrznych struktur z dokładnością do jednej setnej milimetra, co może być użyteczne, na przykład, podczas planowania skomplikowanych operacji medycznych.
Kolejną funkcjonalnością jest możliwość przeniesienia płaszczyzny kamery do wnętrza modelu, tworząc efekt rentgenowski. Opcja ta pozwala na izolowanie interesujących struktur w polu widzenia. Taka funkcjonalność może być ponownie użyteczna, na przykład, w połączeniu z fizyczną kamerą robota medycznego.
Model składa się z ponad 100 elementów, z których każdy jest oddzielnym elementem, co pozwala na jego wybranie poprzez kliknięcie (wybrany element zostaje podświetlony na jasno niebiesko). Opis wybranego elementu wyświetla się w sekcji „element”. Zawarte w niej informacje krótko charakteryzują wybrany element. Dzięki temu aplikacja może być wykorzystywana do celów edukacyjnych, np. w szkołach medycznych.
Użytkownik nie jest ograniczony do ręcznego wybierania elementów; może również skorzystać z pola wyszukiwania, które podczas wpisywania kryteriów podświetla części modelu spełniające dane kryterium. Dodatkowo, możliwe jest wybieranie elementów z listy rozwijanej, która zawiera wszystkie pod-elementy modelu. W tym celu zastosowaliśmy lokalną bazę danych SQL, w której skrupulatnie skatalogowaliśmy wszystkie elementy.
Rzeczą od której zaczęliśmy było spotkanie zespołowe, podczas którego przeprowadziliśmy burzę mózgów dotyczącą funkcjonalności aplikacji. Następnie przekształciliśmy te pomysły w listę wymagań funkcjonalnych i niefunkcjonalnych oraz oszacowaliśmy, ile czasu i zasobów będzie potrzebnych do realizacji projektu. Kolejnym krokiem było szczegółowe zaplanowanie pracy, w tym rozbicie backlogu zadań, planowanie sprintów itp. Takie podejście pozwoliło nam pracować nad projektem w sposób przejrzysty i efektywny.
Jeśli Twój projekt jest na wczesnym etapie i nie jesteś pewien, jak go odpowiednio zaplanować, zachęcamy do umówienia się na warsztaty projektowe, podczas których nasi specjaliści pomogą Ci we wszystkim.
Do stworzenia Brain Viewer zdecydowaliśmy się wykorzystać nasz najbardziej sprawdzony stos technologiczny, oparty na kombinacji C++ i Qt QML.
C++ jest znany ze swojej wysokiej wydajności i precyzyjnej kontroli nad zasobami systemowymi, co jest niezbędne do tworzenia aplikacji wymagających szybkości i efektywności. Ta zdolność niskopoziomowa pozwala Brain Viewer na optymalizację wydajności i efektywne zarządzanie pamięcią, co jest kluczowe przy obsłudze skomplikowanych wizualizacji i dużych zbiorów danych.
Qt i QML razem usprawniają ten proces, umożliwiając tworzenie nowoczesnych, responsywnych interfejsów użytkownika. Qt dostarcza niezbędne narzędzia i biblioteki, a deklaratywna składnia QML pozwala na szybki rozwój interfejsów użytkownika, co sprawia, że Brain Viewer oferuje eleganckie i intuicyjne interfejsy. QML wspiera dynamiczne animacje i bezproblemowo integruje elementy 3D, co jest kluczowe dla zaawansowanych wizualizacji w Brain Viewer.
Ta kombinacja zapewnia utrzymywalną i skalowalną bazę kodu, sprawiając, że C++, Qt i QML to doskonały zestaw technologii do tworzenia wydajnych i atrakcyjnych wizualnie aplikacji. Dokładnie ten zestaw technologii jest naszą główną dziedziną specjalizacji.
W Scythe Studio wykorzystujemy naszą wiedzę i doświadczenie w C++ i Qt do tworzenia nowoczesnych rozwiązań, które zapewniają naszym klientom przewagę konkurencyjną w branży medycznej. Ten projekt podkreśla naszą zdolność do przekształcania prostych koncepcji w zaawansowane narzędzia, przynoszące znaczące korzyści naszym klientom.
Ostatnie projekty
Monitor parametrów życiowych pacjenta jest wyposażony w pulsoksymetr i czujnik tętna. Składa się z czujnika i mikrokontrolera. Komunikuje się on z czujnikiem, pobiera z niego dane i przesyła je kablem USB do komputera.
Aplikacja medyczna działająca na urządzeniu wbudowanym, której celem jest symulacja działania lasera medycznego. Użytkownik ma do wyboru jedną z gotowych operacji lub stworzyć własną z ustawionymi indywidualnie parametrami. Aplikacja symuluje przebieg procedury.
Cross-platformowa aplikacja przeznaczona do komunikacji i sterowania ramieniem robotycznym Dobot Magician. Działanie ramienia jest również wspomagane przez model 3D w pełni odzwierciedlający pozycję i ustawienie fizycznego modelu w czasie rzeczywistym.