Ejemplo n.º 1
0
def nursePastAppt():
    if not helper.check_nurse_privilege():
        return redirect("/loadHomePage")

    end_date = datetime.datetime.strptime(request.form['endDate'],
                                          helper.DATE_FORMAT)
    nurse_id = current_user.get_id()
    if request.form['startDate']:
        start_date = datetime.datetime.strptime(request.form['startDate'],
                                                helper.DATE_FORMAT)
        apps = helper.dept_appts(user=current_user, period=(end_date-start_date).days,\
          start_date=start_date).filter(Application.status==StatusEnum.finished)
    else:  # if startDate is None then get all past appts
        apps = helper.dept_appts(user=current_user, direction="past",\
          start_date=end_date).filter(Application.status==StatusEnum.finished)

    helper.load_id2name_map()
    return make_response(
        jsonify([{
            "appID": app.id,
            "date": app.date.strftime(helper.DATE_FORMAT),
            "time": app.time.strftime(helper.TIME_FORMAT),
            "doctor": helper.id2name(app.doctor_id),
            "patient": helper.id2name(app.patient_id),
            "symptoms": app.symptoms
        } for app in apps]))
Ejemplo n.º 2
0
def nurseFutureAppt():
    if not helper.check_nurse_privilege():
        return redirect("/loadHomePage")

    nurse_id = current_user.get_id()
    start_date = datetime.datetime.strptime(request.form['startDate'],
                                            helper.DATE_FORMAT)
    start_date_str = request.form['startDate']
    today_str = datetime.datetime.strftime(datetime.datetime.now(),
                                           helper.DATE_FORMAT)

    if request.form['endDate']:
        end_date = datetime.datetime.strptime(request.form['endDate'],
                                              helper.DATE_FORMAT)
        future_appt_filter = helper.dept_appts(
            user=current_user,
            direction="future",
            period=(end_date - start_date).days,
            start_date=start_date).filter(
                Application.status == StatusEnum.approved)
        if start_date_str == today_str:
            nowTime = datetime.datetime.strftime(datetime.datetime.today(),
                                                 helper.TIME_FORMAT)
            future_appts = future_appt_filter.filter(
                Application.time >= nowTime).all()
        else:
            future_appts = future_appt_filter.all()
    else:
        future_appt_filter = helper.dept_appts(
            user=current_user, direction="future",
            start_date=start_date).filter(
                Application.status == StatusEnum.approved)
        if start_date_str == today_str:
            nowTime = datetime.datetime.strftime(datetime.datetime.today(),
                                                 helper.TIME_FORMAT)
            future_appts = future_appt_filter.filter(
                Application.time >= nowTime).all()
        else:
            future_appt_filter.all()

    helper.load_id2name_map()

    def response_generator(app):
        return {
            "appID": app.id,
            "date": app.date.strftime(helper.DATE_FORMAT),
            "time": app.time.strftime(helper.TIME_FORMAT),
            "doctor": helper.id2name(app.doctor_id),
            "patient": helper.id2name(app.patient_id),
            "symptoms": app.symptoms
        }

    return make_response(
        jsonify([response_generator(app) for app in future_appts]), 200)
Ejemplo n.º 3
0
def nursePendingApp():
    if not helper.check_nurse_privilege():
        return redirect("/loadHomePage")

    # look up Time_slot table for next 7 days time_slot id
    next7d_slotid = helper.day2slotid(period=7)
    nurse_id = current_user.get_id()
    pending_app = helper.dept_appts(user=current_user, period=7).\
            filter(
             Application.status==StatusEnum.pending,
             Application.time_slot_id.in_(next7d_slotid)).all()

    helper.load_id2name_map()

    def response_generator(app):
        return {
            "appID": app.id,
            "date": app.date.strftime(helper.DATE_FORMAT),
            "time": app.time.strftime(helper.TIME_FORMAT),
            "doctor": helper.id2name(app.doctor_id),
            "patient": helper.id2name(app.patient_id),
            "symptoms": app.symptoms
        }

    ret = [response_generator(app) for app in pending_app]
    return make_response(jsonify(ret), 200)
Ejemplo n.º 4
0
def nurseOnGoingAppt():
    if not helper.check_nurse_privilege():
        return redirect("/loadHomePage")

    helper.load_id2name_map()
    nurse_id = current_user.get_id()
    nowtime = datetime.datetime.now()

    # filter1: today's appts; filter2: status=approved
    today_approved_appts = helper.dept_appts(user=current_user, period=0).\
     filter(
      Application.status == StatusEnum.approved
      ).all()

    # filter2: now() in timeslot
    now_approved_appts = []
    for appt in today_approved_appts:
        appt_date_time = datetime.datetime.combine(appt.date, appt.time)
        if appt_date_time <= nowtime <= appt_date_time + timedelta(minutes=30):
            now_approved_appts.append(appt)
    return make_response(
        jsonify([{
            "appID": appt.id,
            "date": appt.date.strftime(helper.DATE_FORMAT),
            "time": appt.time.strftime(helper.TIME_FORMAT),
            "doctor": helper.id2name(appt.doctor_id),
            "patient": helper.id2name(appt.patient_id),
            "symptoms": appt.symptoms
        } for appt in now_approved_appts]))
Ejemplo n.º 5
0
def nurseTodayAppt():
    if not helper.check_nurse_privilege():
        return redirect("/loadHomePage")

    nurseID = current_user.get_id()
    # department ID of current nurse
    today_depts_appts = helper.dept_appts(
        user=current_user,
        period=0).filter(Application.status == StatusEnum.approved).all()

    helper.load_id2name_map()

    def response_generator(app):
        return {
            "appID": app.id,
            "date": app.date.strftime(helper.DATE_FORMAT),
            "time": app.time.strftime(helper.TIME_FORMAT),
            "doctor": helper.id2name(app.doctor_id),
            "patient": helper.id2name(app.patient_id),
            "symptoms": app.symptoms
        }

    return make_response(
        jsonify([response_generator(app) for app in today_depts_appts]), 200)