File size: 2,591 Bytes
889fe20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import streamlit as st
import pandas as pd
import base64

# Define the list of questions with their corresponding codes and URLs
questions = [
    {"question": "Do you have any symptoms of COVID-19?", "code": "U07.1", "code_type": "ICD10", "url": "https://www.cdc.gov/nchs/icd/icd10cm.htm"},
    {"question": "Have you had any surgeries in the past year?", "code": "0JH60ZZ", "code_type": "ICD10-PCS", "url": "https://www.cms.gov/Medicare/Coding/ICD10/2022-ICD-10-PCS-Codes-Version-110"},
    {"question": "Have you been diagnosed with any chronic conditions?", "code": "443.9", "code_type": "ICD9-CM", "url": "https://www.cms.gov/Medicare/Coding/ICD9ProviderDiagnosticCodes/codes"},
    {"question": "Have you had any diagnostic imaging tests in the past year?", "code": "70450", "code_type": "CPT", "url": "https://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets/Alpha-Numeric-HCPCS"},
    {"question": "Have you had any lab tests done in the past year?", "code": "19710-4", "code_type": "LOINC", "url": "https://loinc.org/"},
    {"question": "Have you used any medical equipment in the past year?", "code": "E1399", "code_type": "HCPCS", "url": "https://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets/Alpha-Numeric-HCPCS"}
]

# Define a function to create a DataFrame with the user's responses
def create_survey_df(questions):
    survey_dict = {"Assess Topic": [], "Assess Metric": [], "Code Emoji": [], "Code Topic": [], "Code Type": [], "Code": [], "Response": [], "Comment": []}
    for q in questions:
        survey_dict["Assess Topic"].append("Medical History")
        survey_dict["Assess Metric"].append(q["question"])
        survey_dict["Code Emoji"].append("πŸ’Š")
        survey_dict["Code Topic"].append(q["code"])
        survey_dict["Code Type"].append(q["code_type"])
        survey_dict["Code"].append(q["code"])
        survey_dict["Response"].append(st.radio("Answer", ["Yes", "No"]))
        survey_dict["Comment"].append(st.text_input("Comment (optional)"))
    return pd.DataFrame(survey_dict)

# Define the Streamlit app
def app():
    st.title("Medical History Survey")
    st.markdown("Please answer the following questions about your medical history.")
    survey_df = create_survey_df(questions)
    st.write(survey_df)

    # Allow the user to download the survey results as a CSV file
    if st.button("Download CSV"):
        csv = survey_df.to_csv(index=False)
        b64 = base64.b64encode(csv.encode()).decode()
        st.markdown(f'<a href="data:file/csv;base64,{b64}" download="survey_results.csv">Download CSV File</a>', unsafe_allow_html=True)