示例#1
0
def render_groupmarker(date):
    logged, username = get_login_status_webpage()
    return render_template("footprint_render_groupmarker.html",
                           logged=logged,
                           username=username,
                           title="Group Marker",
                           date=date)
示例#2
0
def render_heatmap(date):
    logged, username = get_login_status_webpage()
    return render_template("footprint_render_heatmap.html",
                           logged=logged,
                           username=username,
                           title="Heatmap",
                           date=date)
示例#3
0
def submit_assessment():
    logged, username = get_login_status_webpage()
    validation_error = False
    if "validation_error" in session:
        validation_error = True
        session.pop("validation_error", None)

    return render_template("self-assessment.html",
                           logged=logged,
                           username=username,
                           title="Take a self-assessment",
                           validation_error=validation_error)
示例#4
0
def view_assessment_history():
    if (check_logged_in()):
        logged, username = get_login_status_webpage()
        filename = username + ".json"
        if (S3.check_file_exists(filename)):
            obj = json.load(S3.download_file_to_object(filename))
            q1 = obj.get(
                "Have you had in-person closed contact with patients who diagnosed with coronavirus?",
                "unknown")
            q2 = obj.get(
                "Have you visited a place that patients who diagnosed with coronavirus has been to?",
                "unknown")
            q3 = obj.get(
                "Have you traveled to foreign countries in the last 14 days?",
                "unknown")
            q4 = obj.get("symptoms", [])
            result = obj.get("result", "unknown")

            if "suspicious" in result or "emergency" in result:
                risk_level = "danger"
            elif "isolation" in result:
                risk_level = "warning"
            else:
                risk_level = "success"

            return render_template("assessment_history.html",
                                   assessment_exist=True,
                                   q1=q1,
                                   q2=q2,
                                   q3=q3,
                                   q4=q4,
                                   result=result,
                                   risk_level=risk_level,
                                   username=username,
                                   logged=logged,
                                   title="Assessment History")
        else:
            return render_template("assessment_history.html",
                                   assessment_exist=False,
                                   username=username,
                                   logged=logged,
                                   title="Assessment History")

    else:
        return redirect(url_for("main"))
示例#5
0
def render_footprint():
    logged, username = get_login_status_webpage()

    if request.method == 'POST':
        date = request.form.get("date")
        type = request.form.get("maptype")
        print(date)
        print(type)
        if (type == "heatmap"):
            return redirect(url_for("render_heatmap", date=date))
            # redirect("/render_heatmap/{}".format(date))
        else:
            return redirect(url_for("render_groupmarker", date=date))
            # redirect("/render_groupmarker/{}".format(date))
    else:
        return render_template("footprint-render.html",
                               logged=logged,
                               username=username,
                               title="COVID-19 Tracking Map")
def footprint_upload():
    logged, username = get_login_status_webpage()
    validation_error = False

    if "validation_error" in session:
        validation_error = True
        session.pop("validation_error", None)

    if (check_logged_in()):
        user_id = session["user"]
        if "footprintcipher" in session:
            with_storage = True
        else:
            with_storage = False
        return render_template("footprint_collect.html",
                               user_id=user_id,
                               username=username,
                               logged=logged,
                               title="Footprint Submission",
                               with_storage=with_storage,
                               validation_error=validation_error)
    else:
        return redirect(url_for("main"))
示例#7
0
def evaluate_results():
    logged, username = get_login_status_webpage()
    if (check_logged_in()):
        user = session["user"]
        fever = request.form.get('fever')
        cough = request.form.get('cough')
        breath = request.form.get('breath')
        chest_pain = request.form.get('chest_pain')
        other_symptoms = request.form.get('other_symptoms')

        one = request.form.get('one')
        two = request.form.get('two')
        three = request.form.get('three')
        if one is None or two is None or three is None:
            session["validation_error"] = True
            return redirect(url_for("submit_assessment"))

        #Analyze the user's answer
        if (fever or cough or breath or chest_pain) and (one == "yes"):
            respond_type = 0
        elif (breath or chest_pain) and (one == "no"):
            respond_type = 1
        elif (fever or cough or other_symptoms) or (one == "yes") or (
                one == "unknown") or (two == "yes") or (three == "yes"):
            respond_type = 2
        else:
            respond_type = 3

        #find assessment result according to respond_type
        comment = [
            "Your status is suspicious and you should test for COVID-19",
            "Please call 911 or go directly to nearest emergency",
            "Please do a self-isolation for 14 days and keep monitoring on your health status",
            "You are safe for now. Please keep staying at home"
        ]
        response = comment[respond_type]

        #write result file
        file_path = user + ".json"
        symptoms = []
        if (fever != None):
            symptoms.append(fever)

        if (cough != None):
            symptoms.append(cough)

        if (breath != None):
            symptoms.append(breath)

        if (chest_pain != None):
            symptoms.append(chest_pain)

        if (other_symptoms != ""):
            symptoms.append(other_symptoms)

        json_object = {
            "Have you had in-person closed contact with patients who diagnosed with coronavirus?":
            one,
            "Have you visited a place that patients who diagnosed with coronavirus has been to?":
            two,
            "Have you traveled to foreign countries in the last 14 days?":
            three,
            "symptoms":
            symptoms,
            "result":
            response
        }

        #check if the result file already exists
        if S3.check_file_exists(file_path):
            s3_response = S3.delete_file(file_path)
        #upload new result file to S3 bucket
        data = json.dumps(json_object)
        s3_response2 = S3.upload_file_from_object(data, file_path)

        #dynamodb
        keypair = {"user_id": user}
        updatelist = {
            "survey_result": {
                "Value": respond_type,
                "Action": 'PUT'
            }
        }
        updatelist_filepath = {
            "file_path": {
                "Value": file_path,
                "Action": 'PUT'
            }
        }
        dynamo.update_data("user", keypair, updatelist)
        dynamo.update_data("user", keypair, updatelist_filepath)

        # Risk level
        if "suspicious" in response or "emergency" in response:
            risk_level = "danger"
        elif "isolation" in response:
            risk_level = "warning"
        else:
            risk_level = "success"

        return render_template('assessment_result.html',
                               response=response,
                               risk_level=risk_level,
                               logged=logged,
                               username=username,
                               title="Self-Assessment Results")
    else:
        return redirect(url_for("main"))