A platform facilitating communication between doctors and patients, wherein their interactions are transcribed and processed by an advanced Language Model (LLM). The generated results are then provided to both the doctor and the patient, enhancing the quality of their question-and-answer sessions, enabling more thorough analysis, and aiding in the retention of pertinent medical history. This innovative solution aims to streamline healthcare communication, fostering improved understanding and collaboration between healthcare professionals and their patients.
Our system should meet the following requirements:
Patient:
- Patients should easily locate and connect with suitable doctors based on specialization, location, and availability.
- Seamless payment integration to facilitate secure and convenient transactions for medical services.
- Patients should have the capability to schedule, reschedule, or cancel appointments with their chosen healthcare provider.
- Enable patients to engage in comprehensive consultations through video, audio, and chat functionalities.
- Empower patients to efficiently manage their health information by adding, updating, or deleting clinical records.
- Allow patients to book necessary laboratory tests and receive timely results through the platform.
- Provide a platform for patients to conveniently purchase prescribed medicines with integrated delivery options.
Doctor:
- Doctors should have a comprehensive view of past and upcoming patient appointments, enabling effective time management.
- Facilitate the withdrawal of earnings securely and efficiently for healthcare services provided.
- Grant doctors the authority to accept or reject appointment requests based on their availability.
- Empower doctors to prescribe lab tests and medications, tracking patient adherence and progress.
- Provide doctors with instant access to patients' historical clinical records for informed decision-making.
- Ensure the system's dependability and consistency to foster trust among users.
- Guarantee the system's continuous accessibility, minimizing delays to provide real-time interactions.
- Design the system to scale effortlessly, accommodating a growing user base while maintaining optimal performance.
- Implement robust tracking mechanisms and analytics tools to gather insights into system usage, user satisfaction, and overall performance. This data can be used for continuous improvement and strategic decision-making.
Frontend:
- Angular Material
- NgRx
- WebRTC
Backend:
- Django Rest Framework
- Django Filter for filtering querysets
- Django Channels
DevOps:
- AWS RDS
- AWS EC2
- AWS S3
- Docker
- GitHub CI/CD
- Datadog
Machine Learning:
- LangChain
- Meilisearch
- Tensorflow
- LLM Model (OpenAI/Open Source)
Other:
- Redis
- Celery
- JWT
- Swagger API documentation
- Google Maps API
- Twilio (SMS or Voice)
ERD Models for the HealthLink.
- Endpoint:
/api/top/suggestion.json
- Through this API, patients will be able to search a doctor.
Parameters
- city: Wah
Returns
{
"results": {
"matches": [
{
"suggestion": "Dentist",
"original": "Dentist",
"display_name": "SPECIALITY",
"category": "subspeciality",
"type": "doctor"
}
]
}
}
- Endpoint:
/api/search/doctors/
- Through this API, patients will be able to search a doctor.
Parameters
- city: Delhi
- q: Dentist
- page: 2
Returns
{
"doctors": [
{
"id": 7347,
"profile_photo_url": "https://images1-fabric.practo.com/",
"doctor_name": "Dr. Janak Raj Sabharwal",
"specialization": "Dentist",
"experience_years": 43,
"city": "Vikas Puri",
"available_days": ["MONDAY", "TUESDAY"],
"consultation_fees": 1000,
"wait_time": 15,
"reviews_count": 86
}
]
}
- Endpoint:
/api/view/doctor/
- Through this API, patients will be able to view detailed information about a specific doctor.
Parameters
- id: 7347
Returns
{
"doctor": {
"id": 7347,
"profile_photo_url": "https://images1-fabric.practo.com/",
"doctor_name": "Dr. Janak Raj Sabharwal",
"specialization": "Dentist",
"qualifications": "MBBS",
"experience_years": 43,
"city": "Vikas Puri",
"available_timings": "20:00",
"available_days": ["MONDAY", "TUESDAY"],
"consultation_fees": 1000,
"summary": "He completed BDS Degree in 1981",
"wait_time": 15,
"recommendation_percent": 96,
"patients_count": 390,
"reviews_count": 86
}
}
- Endpoint:
/api/book/appointment/
- Through this API, patients can book an appointment with a specific doctor.
Parameters
- doctor_id: 7347
- appointment_date: "2024-02-15"
- appointment_time: "10:30 AM"
- patient_name: "John Doe"
- patient_email: "john.doe@example.com"
Returns
{
"appointment": {
"id": 12345,
"doctor_id": 7347,
"patient_name": "John Doe",
"appointment_date": "2024-02-15",
"appointment_time": "10:30 AM",
"status": "confirmed"
}
}
- Endpoint:
/api/cancel/appointment/
- Through this API, patients can cancel a previously booked appointment.
Parameters
- appointment_id: 12345
Returns
{
"status": "cancelled",
"message": "Appointment successfully cancelled."
}
- Endpoint:
/api/patient/records/
- Through this API, patients can retrieve and manage their clinical records.
Parameters
- patient_id: 9876
Returns
{
"records": [
{
"record_id": 1,
"date": "2024-01-15",
"description": "Routine Checkup",
"prescription": "Paracetamol 500mg, Rest"
},
{
"record_id": 2,
"date": "2024-02-01",
"description": "Follow-up",
"prescription": "Antibiotics, Painkillers"
}
]
}
- Endpoint:
/api/book/labtest/
- Through this API, patients can book laboratory tests.
Parameters
- patient_id: 9876
- test_name: "Blood Test"
- appointment_date: "2024-02-10"
Returns
{
"lab_test_booking": {
"booking_id": 54321,
"patient_id": 9876,
"test_name": "Blood Test",
"appointment_date": "2024-02-10",
"status": "scheduled"
}
}
- Endpoint:
/api/purchase/medicine/
- Through this API, patients can purchase prescribed medicines.
Parameters
- patient_id: 9876
- medicine_name: "Paracetamol"
- quantity: 2
Returns
{
"medicine_purchase": {
"purchase_id": 987654,
"patient_id": 9876,
"medicine_name": "Paracetamol",
"quantity": 2,
"total_cost": 10.00,
"delivery_status": "pending"
}
}
- Endpoint:
/api/doctor/earnings/
- Through this API, doctors can view their earnings.
Parameters
- doctor_id: 7347
Returns
{
"earnings": {
"doctor_id": 7347,
"total_earnings": 5000.00,
"withdrawable_amount": 4500.00
}
}
- Endpoint:
/api/withdraw/earnings/
- Through this API, doctors can withdraw their earnings.
Parameters
- doctor_id: 7347
- amount: 2000.00
Returns
{
"status": "success",
"message": "Earnings withdrawal successful. Amount: 2000.00"
}
- Endpoint:
/api/patient/clinical/records/
- Through this API, patients can retrieve their comprehensive clinical records.
Parameters
- patient_id: 9876
Returns
{
"clinical_records": [
{
"record_id": 1,
"date": "2024-01-15",
"description": "Routine Checkup",
"prescription": "Paracetamol 500mg, Rest",
"test_results": {
"Blood Test": "Normal",
"X-ray": "No abnormalities detected"
}
},
{
"record_id": 2,
"date": "2024-02-01",
"description": "Follow-up",
"prescription": "Antibiotics, Painkillers",
"test_results": {
"Blood Test": "Abnormal (Low Hemoglobin)",
"CT Scan": "No issues found"
}
}
]
}
- Endpoint:
/api/doctor/appointment/requests/
- Through this API, doctors can view and manage appointment requests.
Parameters
- doctor_id: 7347
Returns
{
"appointment_requests": [
{
"request_id": 98765,
"patient_name": "John Doe",
"appointment_date": "2024-02-15",
"appointment_time": "10:30 AM",
"status": "pending"
},
{
"request_id": 98766,
"patient_name": "Jane Doe",
"appointment_date": "2024-02-20",
"appointment_time": "02:00 PM",
"status": "accepted"
}
]
}
- Endpoint:
/api/accept/appointment/request/
- Through this API, doctors can accept a pending appointment request.
Parameters
- request_id: 98765
Returns
{
"status": "accepted",
"message": "Appointment request successfully accepted."
}
- Endpoint:
/api/reject/appointment/request/
- Through this API, doctors can reject a pending appointment request.
Parameters
- request_id: 98765
Returns
{
"status": "rejected",
"message": "Appointment request successfully rejected."
}
- Endpoint:
/api/system/health/check/
- Through this API, perform a health check on the system.
Parameters
- None
Returns
{
"status": "ok",
"message": "System is healthy and operational."
}