Case study
Medical Scheduling Platform with AI Triage
A full-stack medical appointment management application built with ASP.NET Core 8, Next.js, and PostgreSQL. The platform provides JWT authentication and role-based access for patients and doctors, while integrating Azure OpenAI to automatically analyze patient symptoms and recommend an appropriate healthcare professional.
Technologies
The problem
The challenge was to develop a platform capable of managing the appointment workflow between patients and doctors while ensuring that each user profile could only access the features and information associated with its role. In addition to appointment management, the project explored the use of artificial intelligence to support initial triage by analyzing symptoms provided by patients and directing appointments to an appropriate professional.
The solution
A full-stack application was developed using Next.js for the frontend and an ASP.NET Core 8 REST API for the backend. The backend uses Entity Framework Core with PostgreSQL to persist users and appointments. Authentication was implemented using JWT, while role-based authorization separates the functionality available to patients and doctors. Patients can create and view their own appointments, while doctors access appointment information according to their role. Azure OpenAI was integrated into the triage workflow. Patient symptoms are analyzed together with the list of available doctors, allowing the model to select the most appropriate professional. The AI response is validated by the backend before the selected doctor is associated with the appointment. The entire application environment can be executed through Docker containers using Docker Compose.
Responsibilities
Responsible for the full-stack development of the solution, including architecture definition, ASP.NET Core API development, Next.js frontend implementation, PostgreSQL and Entity Framework Core data modeling, JWT authentication, and role-based authorization. Also responsible for integrating Azure OpenAI into the triage workflow, validating model responses, managing database migrations, and containerizing application components using Docker and Docker Compose.
Technical decisions
ASP.NET Core 8 was selected for the backend to leverage a strongly typed architecture and the .NET ecosystem. Entity Framework Core was adopted for data access abstraction and migration management, with PostgreSQL serving as the relational database. JWT was chosen for stateless authentication, while ASP.NET's native role-based authorization system was used to restrict endpoints based on user type. Next.js was used to build dedicated patient and doctor interfaces and handle communication with the backend API. Azure OpenAI was integrated into the triage workflow to interpret patient descriptions and select a professional from the doctors registered in the system. To reduce the risk of invalid model responses, the application requires an identifier as the model output and validates it against existing doctors before persisting the association. Docker and Docker Compose were used to standardize the development environment and orchestrate the frontend, backend, and PostgreSQL services.
Results
The project resulted in a functional full-stack application capable of managing users and medical appointments through different access roles. The solution integrates frontend, REST API, relational database, authentication, authorization, migrations, and containerized infrastructure within a single environment. Azure OpenAI added an automated triage workflow capable of interpreting patient symptoms and supporting the selection of an appropriate available professional, demonstrating a practical integration between generative AI and traditional application business logic.