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. |
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. |
- π₯ 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.
- π₯ 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.
- π₯ 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.
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:
- 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
- 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
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.
- User Input:
- Users can either provide a detailed description of their symptoms or select symptoms from a list.
- Model Analysis:
- Model 1 processes detailed descriptions to predict the disease.
- Model 2 processes selected symptoms to predict the disease.
- Weighted Combination:
- The outputs of both models are combined using the weights (Model 1: 0.4, Model 2: 0.6).
- 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 | 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.
- Flutter SDK
- Dart SDK
- Python
- Flask
-
Clone the Repository
git clone https://github.com/bduy1011/SE121.O11-Do_An_1 cd SE121.O11-Do_An_1
-
Navigate to the API Directory
cd SE121.O11-Do_An_1/assist_health/lib/src/api
-
Run the API Server
python api.py
-
Run the Application
- Open the project in VSCode.
- Press the
Run
button on the IDE or use the command palette to run the application.
- 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.
- 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.
- 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.
- 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.
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
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.
- Add new consultation features.
- Improve user interface and experience.
- Enhance real-time communication capabilities.
- Optimize performance and stability.
Development Team