Abstract | MIDOMa je web aplikacija napravljena kako bi olakšala komunikaciju između medicinskih stručnjaka. Realizirana je primarno pomoću ASP .NET Core tehnologije, koristeći "Web API" za backend, i "MVC" za frontend.
Jedna od bitnih stavki razvoja MIDOMa je bilo pitanje sigurnosti, s ciljem osiguravanja nesmetanog iskustva za krajnjeg korisnika. Uzimajući to u obzir, odabran je OAuth protokol čiji je glavni cilj odvojiti proces autorizacije od klijenta, i premjestiti ga u zasebnu jedinicu, realiziranu pomoću IdentityServera4.
IdentityServer4 je dostupan u obliku "nuget" paketa, te nudi implementaciju OpenID Connecta, protokola koji se gradi na OAuth protokolu, te spomenutog OAuth protokola. Kako bi se osigurao ispravan rad, potrebno ga konfigurati pomoću datoteke "Config.cs".
Korisnici mogu poprimiti jednu od 3 rola:
1. "Medical Specialist" - Medicinski stručnjak koji može davati savjete na zahtjeve konzultacije
2. "Study Provider" - Osoba koja je zatražila konzultaciju
3. "Admin" - Osoba zadužena za administraciju i rad s korisnicima
Osim navedenog, u bazu se pohranjuju informacije o konzultacijama i njihovim statusima, pripadajućim porukama, logovima i specijalizacijama.
Web API koristi Entity Framework Core, ORM ("Object Relationship Mapper"), za rad s bazom podataka. To omogućuje dohvaćanje podataka koristeći "Linq" sintaksu, koja se preslika u SQL upite
Korištenje API-ja se svodi na pozivanje odgovarajućeg "endpointa", koji u ASP .NETu su definirani kao akcije, koje pripadajuću odgovarajućim kontrolerima.
MIDOM definira sljedeće kontrolere:
• "ConsultationMessagesController",
• "ConsultationRequestsController"
• "LogsController",
• MedicalSpecialistsController",
• "SpecializationController",
• "StudiesController",
• "UserMangementController"
Svi controleri imaju odgovarajuće CRUD akcije, te dodatne akcije specifične za kontroler.
Za testiranje ispravnosti i vidljivosti "endpointa", koristi se Swagger, koji omogućuje jednostavan pregled svih akcija, podijeljenim po kontrolerima.
U budućnosti, planira se razvoj MIDOM mobilnog klijenta, koristeći Xamarin.Forms, kako bi se olakšalo korisnicima u pokretu brži i lakši rad sa MIDOM sustavom. |
Abstract (english) | MIDOM in a web application whose primary purpose is to facilitate better communication within the medical community. It was realized using ASP .NET Core, using "WEB API "as backend, and "MVC "as frontend.
One of the main challenges when developing MIDOM was a question of security, with the primary goal being uninterrupted user access. Keeping this in mind, OAuth 2.0 was chosen as the most appropriate security protocol, which focuses on separating client and authorization logic, and implementing this logic as a separate unit, realized using IdentityServer4.
IdentityServer4 is available as a "nuget "package, and offers implementation of OpenID Connect, protocol build as an extension of OAuth 2.0, as well as the OAuth 2.0 itself. For IdentityServer4 to function correctly, "Config.cs "file needs to be set up first.
Users can assume one of three roles:
1. Medical Specialist – Medical specialist whose primary use case consists of consulting on various study created by study providers
2. Study Provider – Person in need of a consultation, responsible for managing studies, and communication with the medical specialist
3. Admin – Person responsible for user management and various administrative tasks
MIDOM also stores information about consultation requests and their status, as well as messages, logs, specializations, and studies. This is done using EF Core, an ORM, which translates C#s "LINQ quires "into SQL.
In order to use WEB API, the user simply needs to call the right endpoint. For instance, sending a GET request to "ConsultationMessages/{id}. "Endpoint consists of a "controller "and an "action. "
MIDOM consists of the following controllers:
• "ConsultationMessagesController"
• "ConsultationRequestsController",
• "LogsController",
• "MedicalSpecialistsController",
• "SpecializationController",
• "StudiesController",
• "UserMangementController"
All controllers have appropriate CRUD actions implemented, as well as specific actions to the controller.
For testing "endpoints, "Swagger was used, which summarises all actions and allows trying said actions during development.
In the future, MIDOM is expanding to mobile, which will use Xamarin.Forms to offer multiplatform "on the move "experience. |