Skip to content

The official repository for MediPal. MediPal is open source medical software that gives users true access to their holistic health picture. This application is meant to simplify getting the important information to the person in ways they are able to understand.

License

Notifications You must be signed in to change notification settings

patrickpiedad/MediPal

Repository files navigation

MediPal

MediPal is open source medical software that gives users true access to their holistic health picture.

This application is meant to solve the pain points of long term medical patients that want to have their information easily accessible, especially in today's medical system where medical teams are low-staffed and overburdened.



Patient View

animated



Doctor View

animated



How It's Made

Tech Used: C#, Blazor, Entity Framework, Bootstrap, MSFT SQL Server (SQL Express)

The project is based on Blazor Web App with capability of both client and server side rendering. All main information is currently stored server side, allowing for direct database access without required web API calls. Information is currently stored on local databases using SQL Express.

Authentication and authorization are both applied to ensure proper access to the application, both through use of general user login and assigned roles. CRUD operations are executed to update information such as symptom tracking for each user.



Inspiration

This project is inspired by the experience of my wife and I working through her cancer diagnosis and always having communication issues and information disconnects with the medical team. We were at the regional university hospital that had the best team, but due to an overburdened medical system and the natural friction that occurs in large organizations, we encountered a lot of friction in knowing what was going on.

I want this project to empower patients to learn more about their circumstances, relieve their pain points in communication, as well as provide a relief to the medical team's burden to keep patient's constantly performed in an already overwhelming environment.



Featured Implementations

Major Features

  • Model-View-ViewModel (MVVM) Architecture
    • Model (database, models such as Symptom and ApplicationUser)
    • ViewModel (Code blocks in razor files, commands, and services interfaces)
    • View (razor components and HTML templates
  • Account creation with full form validation and error handling
  • Full CRUD functionality MS SQL Server database
    • Symptoms
    • Notes
  • ASP.NET Core Identity implementation with authentication and authorization
  • Current user authentication state handling to display user-specific data
  • Create calendar appointment functionality (Syncfusion), display in multiple formats
  • Doctor Dashboard allowing for selection of patient by name (read by patientId) and view/edit of information

Smaller Details

  • Models containing properties with backing fields and constructor
  • List collection to hold symptoms (accessed through interface)
  • List collection to hold doctors (hard coded)
  • Button interactivity to validate properties with model and allow/not allow for form submit as appropriate
  • Logic to execute specific actions if collections do not show, async functionality, JavaScript interaction when deleting symptoms for user-feedback.
  • Model classes for base object structure
  • Service interfaces to allow for abstracted interaction with async functions and loosely coupled components
  • Foreign key implementation in relational database (MS SQL Server)
  • Authorization role based access for specific pages and components
  • Populate user dashboard items with user account information using current user authentication
  • Database seeding to ensure admin account, roles, and other features are always added to database in new environments



Optimizations

  • Client-Side rendering for specific features
  • Chat Functionality
  • Cloud Storage
  • Add Azure Open Search integration
  • Add Open AI integration


  • Lessons Learned

    This project has taught me how to implement C#, Blazor, Entity Framework, and MSFT SQL Server into a comprehensive full stack application. I've learned about application design, dependency injection, authorization and authentication, database integration with personal and foreign keys, amongst other topics.

    This project has emphasized the value of proper design with loosely coupled components to facilitate reusability and maintainability. This design has allowed for easier and more effective debugging, as well as ability to work on separate components without breaking the functionality of others.



    More importantly, I've learned that there are technical aspects, such as the code design and implementation, and there are functional aspects, referring to how the program functions when used by an actual user. The key to building a great project is bridging these two concepts.

About

The official repository for MediPal. MediPal is open source medical software that gives users true access to their holistic health picture. This application is meant to simplify getting the important information to the person in ways they are able to understand.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published