コード例 #1
0
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())
コード例 #2
0
    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
コード例 #3
0
    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)
コード例 #4
0
    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
コード例 #5
0
    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)
コード例 #6
0
    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
コード例 #7
0
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))
コード例 #8
0
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)
コード例 #9
0
 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
コード例 #10
0
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)
コード例 #11
0
 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
コード例 #12
0
    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)
コード例 #13
0
    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
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
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])