def make_appointment(): # identify patient; choose doctor; show availability; choose availability; remove from doctor's availability; create appointment; # insert appointment # identify patient print "who is the patient?" patient = select_a_patient() print "which doctor do you want to schedule an appointment with?" doctor = make_a_selection(get_doctor_list()) selected_availability = select_a_timeslot(doctor) appointment = create_appointment(patient, selected_availability) print "congrats! you made an appointment." print "appointment details:" print_dict_list([appointment]) insert_appointment(appointment)
def select_a_timeslot(doctor): # get a list of available time slot of the doctor availability_list = [] cnx = get_connection() cursor = cnx.cursor() query = ( "SELECT Doctor_Availability_Id, Day_Of_Week, From_Time, To_Time, Organization.Name, Medical_Office.MedicalOfficeId, Doctor_Availability.Doctor_Id FROM Doctor_Availability " "JOIN Affiliation ON Affiliation.Doctor_Id = Doctor_Availability.Doctor_Id " "JOIN Medical_Office ON Medical_Office.MedicalOfficeId = Affiliation.MedicalOfficeId " "JOIN Organization ON Organization.Org_Id = Medical_Office.MedicalOfficeId " "WHERE Doctor_Availability.Doctor_Id = %(Doctor_Id)s" ) cursor.execute(query, doctor) for (availability_id, day_of_week, from_time, to_time, medical_office_name, medical_office_id, doctor_id) in cursor: availability_list.append( { "Doctor_Availability_Id": availability_id, "Day_Of_Week": day_of_week, "From_Time": from_time, "To_Time": to_time, "medical_office_name": medical_office_name, "MedicalOfficeId": medical_office_id, "Doctor_Id": doctor_id, } ) cursor.close() cnx.close() # select a time slot print "when do you want to see the doctor?" selected_availability = make_a_selection(availability_list) # delete the selected availabitlity cnx = get_connection() cursor = cnx.cursor() query = "DELETE FROM Doctor_Availability " "WHERE Doctor_Availability_Id = %(Doctor_Availability_Id)s" cursor.execute(query, selected_availability) cnx.commit() cursor.close() cnx.close() return selected_availability
def select_a_patient(): """:returns patient """ patient_list = get_patient_list() return make_a_selection(patient_list)