Program
Program
# File paths
PATIENTS_FILE = "pa ents.csv"
DOCTORS_FILE = "doctors.csv"
APPOINTMENTS_FILE = "appointments.csv"
def read_csv(file_path):
"""Reads a CSV file and returns the data as a list of dic onaries."""
try:
with open(file_path, mode="r", newline="") as file:
return list(csv.DictReader(file))
except FileNotFoundError:
return []
def display_doctors():
data = read_csv(DOCTORS_FILE)
if data:
print("\nDoctor Records:")
for row in data:
print(f"ID: {row['did']}, Name: {row['dname']}, Cell: {row['dcell']}")
else:
print("\nNo doctors found.")
def display_appointments():
data = read_csv(APPOINTMENTS_FILE)
if data:
print("\nAppointment Records:")
for row in data:
print(f"Transac on ID: {row[' d']}, Pa ent ID: {row['pid']}, "
f"Doctor ID: {row['did']}, Fees: {row['fees']}, Date: {row['Adate']}")
else:
print("\nNo appointments found.")
def add_doctor():
data = read_csv(DOCTORS_FILE)
did = input("Enter Doctor ID: ")
dname = input("Enter Doctor Name: ")
dcell = input("Enter Doctor Cell: ")
data.append({"did": did, "dname": dname, "dcell": dcell})
write_csv(DOCTORS_FILE, ["did", "dname", "dcell"], data)
print("Doctor added successfully!")
def add_appointment():
pa ents = read_csv(PATIENTS_FILE)
doctors = read_csv(DOCTORS_FILE)
if not pa ents:
print("No pa ents available. Add pa ents first.")
return
if not doctors:
print("No doctors available. Add doctors first.")
return
data = read_csv(APPOINTMENTS_FILE)
d = input("Enter Transac on ID: ")
pid = input("Enter Pa ent ID: ")
did = input("Enter Doctor ID: ")
fees = input("Enter Fees: ")
Adate = input("Enter Appointment Date (YYYY-MM-DD): ")
data.append({" d": d, "pid": pid, "did": did, "fees": fees, "Adate": Adate})
write_csv(APPOINTMENTS_FILE, [" d", "pid", "did", "fees", "Adate"], data)
print("Appointment added successfully!")
def main():
while True:
print("\n1. Display Pa ents")
print("2. Display Doctors")
print("3. Display Appointments")
print("4. Add Pa ent")
print("5. Add Doctor")
print("6. Add Appointment")
print("7. Exit")
if __name__ == "__main__":
main()