def document_consultation(): form = request.form['form'] provider = system.get_provider(request.form['provider']) datetime_str = request.form['datetime'] appointment = system.get_appointment(provider, datetime_str) if form == 'edit': if provider.is_gp() and appointment.referral != None: return render_template('document_consultation.html', appointment=appointment, referral=appointment.referral, edit=True, refer=True) return render_template('document_consultation.html', appointment=appointment, edit=True) if form == 'save' or form == 'save_edit': comment = request.form['comment'] medication = request.form['medication'] if form == 'save': system.move_appointment(appointment) if provider.is_gp(): if request.form['specialist'] != "": specialist = system.get_provider(request.form['specialist']) date = datetime.date(2018, appointment.datetime.month, appointment.datetime.day) referral = Referral(appointment.patient, specialist, date, request.form['referral'], system.get_referral_id()) system.add_referral(referral) appointment.update_details(comment, medication, referral) return render_template('document_consultation.html', appointment=appointment, referral=referral, save=True, refer=True) appointment.update_details(comment, medication); return render_template('document_consultation.html', appointment=appointment, save=True) return render_template('document_consultation.html', appointment=appointment, specialists=system.specialists())
def test_booking_same_appointment(self): print("test_booking_same_appointment") #add a new appointment with same detail from above providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) centreObj = system.get_centre("USYD Health Service") assert (centreObj.is_centre() == True) userObj = system.get_patient("*****@*****.**") assert (userObj.is_provider() == False) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm dying, please help me doctor!" referral_id = 0 try: apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) except BookingError as be: print(be.msg) assert (be.msg == "Booking error occured with fields: double book warning") assert (True) else: assert (False) pass
def test_successful_appointment_2(self): print("test_successful_booking_appointment_2") providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) centreObj = system.get_centre("USYD Health Service") assert (centreObj.is_centre() == True) userObj = system.get_patient("*****@*****.**") assert (userObj.is_provider() == False) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm dying, please help me doctor!" referral_id = 0 apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) assert (apmt.patient.full_name == userObj.full_name) assert (apmt.provider == providerObj) assert (apmt.healthcare_centre == centreObj) assert (apmt.datetime == datetimeObj) assert (apmt.patient_note == note) apmt.patient_note = None assert (apmt.patient_note == None)
def test_successful_appointment_with_specialist(self): print("test_booking_appointment_with_specialist") #add a new appointment with same detail from above providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) assert (providerObj.is_specialist() == True) centreObj = system.get_centre("UNSW Health Service") assert (centreObj.is_centre() == True) userObj = system.get_patient("*****@*****.**") assert (userObj.is_provider() == False) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm has tumour, please help me doctor!" referral_id = 0 try: apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) except BookingError as be: assert (False) else: assert (apmt.patient.full_name == userObj.full_name) assert (apmt.provider == providerObj) assert (apmt.healthcare_centre == centreObj) assert (apmt.datetime == datetimeObj) assert (apmt.patient_note == note) apmt.patient_note = None assert (apmt.patient_note == None) pass
def test_successful_appointment_1(self): print("test_successful_booking_appointment_1") providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) centreObj = system.get_centre("Sydney Children Hospital") assert (centreObj.is_centre() == True) userObj = system.get_patient("*****@*****.**") assert (userObj.is_provider() == False) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm very sick, please help me doctor!" referral_id = 0 apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) assert (apmt.patient.full_name == userObj.full_name) assert (apmt.provider == providerObj) assert (apmt.healthcare_centre == centreObj) assert (apmt.datetime == datetimeObj) assert (apmt.patient_note == note) apmt.patient_note = None assert (apmt.patient_note == None)
def test_provider_with_wrong_centre(self): print("test_booking_when_centre_not_exist") providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) centreObj = system.get_centre("Prince of Wales Hospital") assert (centreObj.is_centre() == True) userObj = system.get_patient("*****@*****.**") assert (userObj.is_provider() == False) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm bleeding, help me!" referral_id = 0 try: apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) except BookingError as be: print(be.msg) #assert(be.msg =="Booking error occured with fields: user") assert (True) else: assert (False) pass pass
def make_booking(): form = request.form['form'] provider = system.get_provider(request.form['email']) referral = -1 if 'referral' in request.form: referral = request.form['referral'] if form == 'book': if 'centre_name' in request.form: return render_template('booking.html', provider=provider, referral=referral, centre=request.form['centre_name']) else: return render_template('booking.html', provider=provider, referral=referral, centres=system.get_centres_of_provider(provider)) elif form == 'centre': return render_template('booking.html', provider=provider, referral=request.form['referral'], centre=request.form['centre']) elif form == 'month': month = request.form['month'] tmp, days = calendar.monthrange(2018, int(month)) return render_template('booking.html', provider=provider, referral=request.form['referral'], centre=request.form['centre'], month=month, dates=range(1, days+1)) elif form == 'date': month = request.form['month'] date = request.form['date'] dateObj = datetime.date(2018,int(month),int(date)) times = provider.is_available(system.current_appointments(),int(month),int(date)) tmp, days = calendar.monthrange(2018, int(month)) if len(times) == 0: return render_template('booking.html', provider=provider, referral=request.form['referral'], centre=request.form['centre'], month=month, date=date, selected_date=dateObj, times=times, dates=range(1, days+1), message="No timeslots are available. Please try again at a later time.") return render_template('booking.html', provider=provider, referral=request.form['referral'], centre=request.form['centre'], month=month, date=date, selected_date=dateObj, times=times, dates=range(1, days+1))
def book(provnum): provider = system.get_provider(provnum) if not provider: abort(404) if request.method == 'POST': date_format = "%d/%m/%Y" date = datetime.strptime(request.form['date'], date_format) date2 = datetime.date(date) reason = request.form['reason'] if 'check' in request.form: return render_template( 'booking_form.html', confirmation=True, form=request.form, choices = provider.timeslots ) elif 'confirm' in request.form: time = request.form['choice'] booking = system.make_booking(current_user, time,date2, provider,reason) return render_template('booking_confirm.html', booking=booking) return render_template('booking_form.html', provider=provider, choices = provider.timeslots)
def test_edit_pass_appointment(self): providerObj = system.get_provider("*****@*****.**") curr_apmts = system.get_current_appointments(providerObj) for curr_apmt in curr_apmts: system.move_appointment(curr_apmt) past_apmts = system.get_past_appointments(providerObj) assert past_apmts == curr_apmts pass
def provider_profile(email_address): provider = system.get_provider(email_address) centre_list = system.get_centres_of_provider(provider) if "rating" in request.form: rating = request.form['rating'] provider.add_rating(current_user, int(rating)) return render_template('profile.html', service=provider, centre_list=centre_list, rating=rating, user=current_user) return render_template('profile.html', service=provider, centre_list=centre_list, user=current_user)
def test_consult_messages(self): providerObj = system.get_provider("*****@*****.**") centreObj = system.get_centre("Sydney Children Hospital") userObj = system.get_patient("*****@*****.**") datetimeObj = datetime.datetime(2018, 1, 2, 10, 30) note = "I'm very sick, please help me doctor!" referral_id = 0 apmt = system.add_current_appointment(userObj, providerObj, centreObj, datetimeObj, note, referral_id) medication = "" comment = "" apmt.document_consultation(medication, comment) assert apmt.provider_comment == comment assert apmt.provider_medication == medication medication_1 = "Panadol" comment_1 = "Fever" apmt.document_consultation(medication, comment) assert apmt.provider_comment == comment assert apmt.provider_medication == medication
def test_provider_cannot_book(self): print("test_provider_cannot_book") providerObj = system.get_provider("*****@*****.**") assert (providerObj.is_provider() == True) centreObj = system.get_centre("USYD Health Service") assert (centreObj.is_centre() == True) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm a doctor, please help me too doctor!" referral_id = 0 try: apmt = system.add_current_appointment(providerObj, providerObj, centreObj, datetimeObj, note, referral_id) except BookingError as be: print(be.msg) #assert(be.msg =="Booking error occured with fields: double book warning") assert (True) else: assert (False)
def test_provider_not_exist(self): print("test_booking_when_provider_not_exist") centreObj = system.get_centre("USYD Health Service") assert (centreObj.is_centre() == True) userObj = system.get_provider("*****@*****.**") assert (userObj.is_provider() == True) datetimeObj = datetime.datetime(2018, 1, 1, 10, 30) note = "I'm a doctor, I also get sick!" referral_id = 0 try: apmt = system.add_current_appointment(userObj, None, centreObj, datetimeObj, note, referral_id) except BookingError as be: print(be.msg) #assert(be.msg =="Booking error occured with fields: Unknown provider or specialist, Provider/Centre Relation") assert (True) else: assert (False) pass
def confirm_booking(): month = request.form['month'] date = request.form['date'] centre = request.form['centre'] selected_time = request.form['time'] referral = request.form['referral'] hour, minute, tmp = request.form['time'].split(":") provider = system.get_provider(request.form['email']) centreObj = system.get_centre(centre) datetimeObj = datetime.datetime(2018,int(month),int(date),int(hour),int(minute)) userObj = system.get_patient(current_user.email_address) note = None if 'note' in request.form: note = request.form['note'] try: appointmentObj = system.add_appointment(userObj, provider, centreObj, datetimeObj, note, int(referral)) return render_template('booking.html', appointmentObj=appointmentObj, confirm=True) except BookingError as be: dateObj = datetime.date(2018,int(month),int(date)) tmp, days = calendar.monthrange(2018, int(month)) times = provider.is_available(system.current_appointments(),month,date) tmp, days = calendar.monthrange(2018, int(month)) dates = range(1, days+1) return render_template('booking.html', errors=be.errors, provider=provider, centre=centre, month=month, date=date, formatted_date=dateObj, times=times, dates=dates, referral = referral)
def appointment_details(): provider = system.get_provider(request.form['provider']) appointment = system.get_appointment(provider, request.form['datetime']) return render_template('appointment_details.html', result=appointment)
def provider(provnum): provider = system.get_provider(provnum) if not provider: abort(404) return render_template('provider_details.html', provider=provider,locations = provider.centres,choices = [1,2,3,4,5])