Skip to content

An advanced health consulting application featuring chat and video consultations, appointment management, health records, a GPT-powered chatbot, and a medical product marketplace. The app includes three modules for users, doctors, and admins. It integrates AI models for disease prediction to suggest suitable doctors for consultation.

Notifications You must be signed in to change notification settings

phathuynh24/HealthConsulting

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HealthConsulting

Health Consulting

An advanced health consulting application featuring chat and video consultations, appointment management, health records, a GPT-powered chatbot, and a medical product marketplace. The app includes three modules for users, doctors, and admins. It integrates AI models for disease prediction to suggest suitable doctors for consultation.

Features

Feature Description
πŸ₯ Register, Login, Forgot Password User authentication functionality.
πŸ“… Appointment Management Schedule, cancel, or reschedule consultation appointments.
πŸ‘¨β€βš•οΈ Select Doctors and Consult Allows users to select doctors, submit consultation requests, and receive online consultations.
πŸ’¬ In-app Messaging and Video Calls Facilitates communication between users and doctors.
πŸ“‹ Manage Health Profiles Users can create and manage their personal health profiles with medical history and test results.
πŸ“Š Monitor Health Metrics Track health indicators such as temperature, height, weight, and BMI.
πŸ“ Store Consultation Records Keeps a record of consultations and medical history for future reference.
πŸ’³ Payment and Feedback Enables users to pay for services and provide feedback on consultations.
πŸ“– Health Articles Read health-related articles.
πŸ›’ Medical Product Marketplace Purchase medical products from the integrated shop.
πŸ€– AI Doctor Recommendation Get doctor suggestions based on symptom analysis using AI.
πŸ—£οΈ Anonymous Community Q&A Participate in anonymous health discussions.
πŸ—‚οΈ Consultation Results View and download consultation outcomes.
πŸ’» Admin Management Admins can manage doctor accounts, handle payments, and view statistics.
πŸ“ˆ Doctor Statistics Doctors can view statistics such as revenue and consultation counts.
πŸ”§ Admin Tools Admins can manage doctors, delete user reviews, and handle anonymous questions.
πŸͺ Product and Order Management Admins manage products, orders, and purchase history.
πŸ“ Feedback Management Admins handle feedback and reviews.
πŸ—‚οΈ User Management Admins manage user information including personal details, addresses, reviews, and orders.

Main Functions in the User Interface

  • πŸ₯ Register, Login: User authentication.
  • πŸ“… Schedule Video Consultations: Book video consultation appointments.
  • πŸ“… Appointment Management: Manage consultation schedules.
  • πŸ’¬ Messaging with Doctors and Admins: Direct communication.
  • πŸ—£οΈ Anonymous Community Q&A: Engage in anonymous health discussions.
  • πŸ“‹ Manage Health Profiles: Manage health records for self and family members.
  • ⭐ Rate Services: Provide feedback after consultations.
  • πŸ“Š Monitor Health Metrics: Track health indicators.
  • πŸ“ View Consultation Results: Access past consultation records.
  • πŸ€– Chatbot Integration: Use a chatbot for health information.
  • πŸ‘¨β€βš•οΈ Doctor Recommendations: Get AI-based doctor suggestions.
  • πŸ“– Health Articles: Access health articles.
  • πŸ›’ Medical Product Marketplace: Buy health products online.

Main Functions in the Doctor Interface

  • πŸ₯ Login: Authenticate as a doctor.
  • πŸ“… Manage Consultation Schedule: Organize appointments.
  • πŸ’¬ Online Consultation: Provide online consultations.
  • πŸ’¬ Messaging with Patients and Admins: Direct communication.
  • πŸ—£οΈ Answer Community Questions: Respond to community Q&A.
  • πŸ“‹ Manage Patient Records: Handle patient health records.
  • πŸ“ Return Consultation Results: Provide consultation outcomes.
  • πŸ“ˆ Statistics: View consultation and revenue statistics.
  • πŸ“– Approve Health Articles: Review and approve health articles.

Main Functions in the Admin Interface

  • πŸ₯ Login: Authenticate as an admin.
  • πŸ”§ Manage Doctors: Administer doctor accounts.
  • πŸ—‘οΈ Delete User Reviews: Remove inappropriate reviews.
  • πŸ—‘οΈ Delete Anonymous Questions: Moderate community questions.
  • πŸ’¬ Messaging with Users and Doctors: Direct communication.
  • πŸ’³ Handle Payments: Process payments and transactions.
  • πŸ“ˆ Revenue Statistics: View financial statistics.
  • πŸ“– Manage Health Articles: Administer health articles.
  • πŸ—‚οΈ Manage User Information: Oversee user details, addresses, reviews, and orders.
  • πŸ›’ Manage Products and Orders: Oversee product listings and order history.
  • πŸ“ Feedback Management: Handle feedback and reviews.

AI-Powered Doctor Recommendation Feature

The Health Consulting app integrates advanced AI models to provide doctor recommendations based on user-reported symptoms. This feature analyzes the symptoms to diagnose potential diseases and then suggests doctors with relevant experience in treating those conditions. Below is a detailed breakdown of the AI models used:

AI Models Overview

Model 1: Detailed Symptom Description Analysis

  • Input: A detailed description of the user's symptoms.
  • Output: Predicted disease (the model can distinguish around 22 diseases).
  • Advantages:
    • Provides accurate disease prediction based on detailed symptom descriptions.
    • Utilizes advanced NLP techniques for better understanding of medical terminologies.
  • Disadvantages:
    • Requires users to provide comprehensive symptom descriptions, which might be challenging for some.
    • Limited to 22 diseases.
  • Training Libraries: TensorFlow, Keras
  • Reference: Pretrained BERT Model

Model 2: Symptom List Selection Analysis

  • Input: Selection of symptoms from a predefined list of approximately 200 symptoms.
  • Output: Predicted disease (the model can distinguish around 42 diseases).
  • Advantages:
    • Allows users to easily select symptoms from a list, making it user-friendly.
    • Covers a broader range of diseases (42 diseases).
  • Disadvantages:
    • The predefined symptom list may not cover all possible user-reported symptoms.
    • The accuracy depends on the user's ability to correctly identify and select symptoms.
  • Training Libraries: scikit-learn (sklearn)
  • Reference: Disease Prediction and Analytics

Combining AI Models

To leverage the strengths of both models, the app combines their outputs using a weighted approach. The weights assigned are:

  • Model 1: 0.4
  • Model 2: 0.6

This method ensures a balanced and accurate prediction by considering both detailed descriptions and symptom list selections.

Example Workflow

  1. User Input:
    • Users can either provide a detailed description of their symptoms or select symptoms from a list.
  2. Model Analysis:
    • Model 1 processes detailed descriptions to predict the disease.
    • Model 2 processes selected symptoms to predict the disease.
  3. Weighted Combination:
    • The outputs of both models are combined using the weights (Model 1: 0.4, Model 2: 0.6).
  4. Doctor Recommendation:
    • Based on the final disease prediction, the app suggests doctors with relevant experience in treating the diagnosed condition.

This AI-powered feature enhances the user experience by providing accurate and reliable doctor recommendations, ensuring users receive the best possible care.

Model Comparison Table

Model Input Output Disease Coverage Training Libraries Advantages Disadvantages
Model 1 Detailed symptom description Predicted disease 22 diseases TensorFlow, Keras Accurate with detailed inputs Requires comprehensive descriptions
Model 2 Selected symptoms from a list Predicted disease 42 diseases scikit-learn (sklearn) User-friendly, broader disease coverage Depends on correct symptom selection

By combining these models, the app ensures robust and comprehensive disease diagnosis and doctor recommendations.

Installation

Prerequisites

  • Flutter SDK
  • Dart SDK
  • Python
  • Flask

Steps

  1. Clone the Repository

    git clone https://github.com/bduy1011/SE121.O11-Do_An_1
    cd SE121.O11-Do_An_1
  2. Navigate to the API Directory

    cd SE121.O11-Do_An_1/assist_health/lib/src/api
  3. Run the API Server

    python api.py
  4. Run the Application

    • Open the project in VSCode.
    • Press the Run button on the IDE or use the command palette to run the application.

Additional Tips

  • Ensure all dependencies are installed by running flutter pub get in the terminal.
  • For detailed instructions on setting up Flutter and Dart, refer to the Flutter documentation.
  • For Python and Flask setup, refer to the Flask documentation.

Usage

  • Register: Create a new account or log in with an existing account.
  • Select Doctor: Choose a doctor from the list for consultation.
  • Choose Health Profile: Select your own or a family member's health profile that you have created.
  • Submit Consultation Request: Provide symptom descriptions and submit requests.
  • Make Payments: Pay for services online.
  • Manage Appointments: Cancel or reschedule appointments.
  • Consult Online: Communicate with doctors via messaging or video calls.
  • Review History: View past consultation records and medical history.
  • Provide Feedback: Rate the consultation and provide feedback.

Additional Services:

  • AI-Powered Doctor Recommendations: Get symptom analysis and recommendations for the most suitable doctor based on their experience with similar cases.
  • Integrated GPT Chatbot: Use the GPT-powered chatbot for health information and inquiries.
  • Analyze Body Metrics: Monitor body metrics such as temperature, height, weight, and BMI.
  • Read Health Articles: Access various health-related articles.
  • Purchase Medical Products: Buy medical products from the integrated shop.

Technologies Used πŸ’»

  • Dart
  • Flutter: For building the mobile application.
  • Python: For backend services.
  • Flask: For server-side logic.
  • Firebase: For authentication and database management.
  • BloC pattern: For state management.
  • Agora: For video calling functionality.
  • ChatGPT-3.5: For chatbot functionality.

Screenshots πŸ“Έ

Authentication Screens

Home Screens

User Home Screen Doctor Home Screen

Appointment Management Screens

User Appointment Management Screen Doctor Appointment Management Screen
Pending Appointment Detail Screen Completed Appointment Detail Screen
Canceled Appointment Detail Screen Approved Appointment Screen
Appointment Confirmation Screen

Doctor Recommendations

Health Record Management Screens

Record List Screen Record Detail Screen
Add Record Screen Edit Record Screen

Communication and Feedback Screens

Call Screen Doctor Rating Screen
Review Rating Dialog

Examination Result Screens

Examination Results Screen Examination Result Detail Screen

Chat with doctors/admins

Chatbot

Medical Products Shop

Articles

Health Index Analysis

Record List Screen Record Detail Screen Add Record Screen

Contributing 🀝

Want to contribute? Great!

To fix a bug or enhance an existing module, follow these steps:

  • Fork the repo
  • Create a new branch (git checkout -b improve-feature)
  • Make the appropriate changes in the files
  • Add changes to reflect the changes made
  • Commit your changes (git commit -am 'Improve feature')
  • Push to the branch (git push origin improve-feature)
  • Create a Pull Request

Bug / Feature Request πŸ›βœ¨

If you encounter a bug or have a feature request, please open an issue by sending an email to [email protected]. Kindly provide details of your query and the expected result in the email.

To-do πŸ“

  • Add new consultation features.
  • Improve user interface and experience.
  • Enhance real-time communication capabilities.
  • Optimize performance and stability.

Team πŸ‘₯

Development Team

About

An advanced health consulting application featuring chat and video consultations, appointment management, health records, a GPT-powered chatbot, and a medical product marketplace. The app includes three modules for users, doctors, and admins. It integrates AI models for disease prediction to suggest suitable doctors for consultation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 99.7%
  • Other 0.3%