Skip to content

Commit ba8c0dd

Browse files
Add files via upload
1 parent e33588c commit ba8c0dd

File tree

1 file changed

+262
-1
lines changed

1 file changed

+262
-1
lines changed

README.md

Lines changed: 262 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,262 @@
1-
# MEDICS
1+
2+
# Medics: A Medical Information and Appointment System
3+
4+
**Medics** is a comprehensive medical software built in Python that helps patients input diagnoses, retrieve medical information, and schedule appointments with doctors. The system also provides a doctor portal to view patient details and manage appointments. All data is stored in an Excel-based database for easy integration and portability.
5+
6+
---
7+
8+
## Table of Contents
9+
10+
1. [Introduction](#introduction)
11+
2. [Features](#features)
12+
3. [Technology Stack](#technology-stack)
13+
4. [System Requirements](#system-requirements)
14+
5. [Installation Guide](#installation-guide)
15+
1. [Clone the Repository](#clone-the-repository)
16+
2. [Install Dependencies](#install-dependencies)
17+
3. [Database Setup](#database-setup)
18+
6. [Usage](#usage)
19+
1. [Running the Application](#running-the-application)
20+
2. [Patient Login](#patient-login)
21+
3. [Doctor Login](#doctor-login)
22+
4. [Diagnosis Submission](#diagnosis-submission)
23+
5. [Appointment Scheduling](#appointment-scheduling)
24+
7. [Excel Database Structure](#excel-database-structure)
25+
1. [Patient Sheet](#patient-sheet)
26+
2. [Doctor Sheet](#doctor-sheet)
27+
8. [Code Breakdown](#code-breakdown)
28+
1. [Patient Class](#patient-class)
29+
2. [Doctor Class](#doctor-class)
30+
3. [Appointment Management](#appointment-management)
31+
9. [Error Handling and Debugging](#error-handling-and-debugging)
32+
10. [Development Guidelines](#development-guidelines)
33+
11. [Unit Testing](#unit-testing)
34+
12. [Continuous Integration (CI)](#continuous-integration-ci)
35+
13. [Known Issues](#known-issues)
36+
14. [Contribution Guide](#contribution-guide)
37+
15. [FAQs](#faqs)
38+
16. [License](#license)
39+
40+
---
41+
42+
<a name="introduction"></a>
43+
44+
## 1. Introduction
45+
46+
Welcome to the **Medics** repository. This software is designed for medical professionals and patients, making it easier to diagnose conditions, view medical records, and schedule appointments. The system is built using Python, with data stored in Excel files for portability and ease of use. Whether you're a patient seeking medical information or a doctor managing appointments, **Medics** is here to simplify the process.
47+
48+
### Use Cases:
49+
- Patients can log in, enter diagnoses, view medical information, and book appointments.
50+
- Doctors can view their patients' details and manage appointments efficiently.
51+
- Hospitals can use this system as a lightweight alternative for managing patient records.
52+
53+
---
54+
55+
<a name="features"></a>
56+
57+
## 2. Features
58+
59+
- **Patient Login and Registration**: Secure login system for patients to access their dashboard.
60+
- **Doctor Login**: Doctors have their portal to view assigned patients and manage schedules.
61+
- **Diagnosis Management**: Patients can enter symptoms and receive feedback on their condition.
62+
- **Appointment Booking**: Patients can book appointments with available doctors.
63+
- **Doctor Dashboard**: Doctors can view patient records, including their diagnoses and appointment details.
64+
- **Excel Integration**: All data is stored in local Excel files for easy data management.
65+
- **Error Handling**: The system includes comprehensive error handling for smoother user experience.
66+
- **User-friendly UI**: Simple UI that caters to both patients and doctors.
67+
68+
---
69+
70+
<a name="technology-stack"></a>
71+
72+
## 3. Technology Stack
73+
74+
- **Programming Language**: Python 3.x
75+
- **Database**: Excel (via pandas and openpyxl libraries)
76+
- **Libraries**:
77+
- `pandas`: For data manipulation and Excel file interaction.
78+
- `openpyxl`: For Excel file handling.
79+
- `tkinter`: For user interface design.
80+
- **IDE**: Compatible with all major Python IDEs (PyCharm, VSCode, etc.)
81+
82+
---
83+
84+
<a name="system-requirements"></a>
85+
86+
## 4. System Requirements
87+
88+
- **Python**: Version 3.7 or above.
89+
- **Pandas Library**: Version 1.3.0 or above.
90+
- **openpyxl**: Version 3.0.7 or above.
91+
- **Operating System**: Compatible with Windows, macOS, and Linux.
92+
- **Memory**: Minimum 512MB RAM for light usage, 1GB or more recommended.
93+
94+
---
95+
96+
<a name="installation-guide"></a>
97+
98+
## 5. Installation Guide
99+
100+
Follow these steps to install and run the Medics software on your local machine.
101+
102+
### 5.1 Clone the Repository
103+
104+
First, clone the repository to your local machine using the following command:
105+
106+
```bash
107+
git clone https://github.com/username/medics.git
108+
```
109+
110+
### 5.2 Install Dependencies
111+
112+
Navigate into the project directory and install the required Python packages:
113+
114+
```bash
115+
cd medics
116+
pip install -r requirements.txt
117+
```
118+
119+
Alternatively, you can manually install dependencies:
120+
121+
```bash
122+
pip install pandas openpyxl
123+
```
124+
125+
### 5.3 Database Setup
126+
127+
Ensure that you have the necessary Excel files (patients.xlsx and doctors.xlsx) in the root directory. If not, create them manually or run the following script to generate template files:
128+
129+
```bash
130+
python setup_database.py
131+
```
132+
133+
---
134+
135+
<a name="usage"></a>
136+
137+
## 6. Usage
138+
139+
### 6.1 Running the Application
140+
141+
Once you have installed all dependencies, run the following command to start the application:
142+
143+
```bash
144+
python medics.py
145+
```
146+
147+
### 6.2 Patient Login
148+
149+
- Upon running the program, the user will be prompted to enter their username and password.
150+
- Once authenticated, patients can access their medical dashboard.
151+
152+
### 6.3 Doctor Login
153+
154+
- Doctors use a separate login page to access their dashboard, where they can manage patients and appointments.
155+
156+
### 6.4 Diagnosis Submission
157+
158+
- Patients can input their symptoms or diagnoses in the input fields.
159+
- After submission, the system will retrieve related medical information from the database.
160+
161+
### 6.5 Appointment Scheduling
162+
163+
- Patients can view available doctors and schedule appointments directly from their dashboard.
164+
- Appointments are stored in the Excel database for both patients and doctors.
165+
166+
---
167+
168+
<a name="excel-database-structure"></a>
169+
170+
## 7. Excel Database Structure
171+
172+
The Excel files are critical to how Medics stores and manages data. Below is the structure for both files:
173+
174+
### 7.1 Patient Sheet
175+
176+
| Column Name | Data Type | Description |
177+
|------------------|------------|--------------------------------------------------|
178+
| Patient Name | String | The full name of the patient. |
179+
| Username | String | The patient's username for login. |
180+
| Password | String | The patient's password (encrypted). |
181+
| Diagnosis | String | The diagnosis or symptoms entered by the patient.|
182+
| Appointment Date | DateTime | The date and time of the scheduled appointment. |
183+
| Doctor Assigned | String | The doctor assigned to the patient. |
184+
185+
### 7.2 Doctor Sheet
186+
187+
| Column Name | Data Type | Description |
188+
|-------------------|------------|--------------------------------------------------|
189+
| Doctor Name | String | The full name of the doctor. |
190+
| Username | String | The doctor's username for login. |
191+
| Password | String | The doctor's password (encrypted). |
192+
| Assigned Patients | List | A list of patients assigned to the doctor. |
193+
194+
---
195+
196+
<a name="code-breakdown"></a>
197+
198+
## 8. Code Breakdown
199+
200+
Here is an overview of the important code components in the Medics system.
201+
202+
### 8.1 Patient Class
203+
204+
```python
205+
class Patient:
206+
def __init__(self, username, password):
207+
self.username = username
208+
self.password = password
209+
# Fetch patient details from Excel file.
210+
self.patient_data = self.load_patient_data()
211+
212+
def load_patient_data(self):
213+
# Logic to load patient data from patients.xlsx
214+
pass
215+
216+
def submit_diagnosis(self, diagnosis):
217+
# Logic to update diagnosis in the Excel file.
218+
pass
219+
220+
def schedule_appointment(self, doctor, date):
221+
# Logic to schedule an appointment in the Excel file.
222+
pass
223+
```
224+
225+
### 8.2 Doctor Class
226+
227+
```python
228+
class Doctor:
229+
def __init__(self, username, password):
230+
self.username = username
231+
self.password = password
232+
# Fetch doctor details from Excel file.
233+
self.doctor_data = self.load_doctor_data()
234+
235+
def load_doctor_data(self):
236+
# Logic to load doctor data from doctors.xlsx
237+
pass
238+
239+
def view_patients(self):
240+
# Logic to view all assigned patients.
241+
pass
242+
```
243+
244+
### 8.3 Appointment Management
245+
246+
```python
247+
def assign_patient_to_doctor(patient, doctor):
248+
# Logic to assign a patient to a specific doctor in the Excel sheet.
249+
pass
250+
```
251+
252+
---
253+
254+
<a name="error-handling-and-debugging"></a>
255+
256+
## 9. Error Handling and Debugging
257+
258+
To ensure smooth operation, the following error handling mechanisms are implemented:
259+
260+
- **Invalid Login**: If a patient or doctor enters incorrect login credentials, the system will prompt an error message.
261+
- **Empty Diagnosis**: The system will not allow a patient to submit an empty diagnosis field.
262+
- **Excel File Access**: If the Excel files are inaccessible or corrupted, the system will prompt the user to restore the files.

0 commit comments

Comments
 (0)