Spaces:
Sleeping
Sleeping
Commit
·
31e5847
1
Parent(s):
2f56b68
Added interface for contraindications, created a function to get original format dataset
Browse files
app.py
CHANGED
|
@@ -25,23 +25,34 @@ def login(username, password):
|
|
| 25 |
else:
|
| 26 |
return False
|
| 27 |
|
| 28 |
-
def get_symp(symptoms,investigations,drugs,advices):
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
| 33 |
for i in med:
|
| 34 |
-
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
|
| 38 |
def get_list(disease):
|
| 39 |
print(disease)
|
| 40 |
-
sympto =
|
| 41 |
-
investigations =
|
| 42 |
-
drugs =
|
| 43 |
-
advices =
|
| 44 |
-
|
|
|
|
| 45 |
#------------------------------------------------
|
| 46 |
# api = HfApi()
|
| 47 |
|
|
@@ -55,24 +66,51 @@ filename = "demo1.csv"
|
|
| 55 |
# # Load the repository
|
| 56 |
# repo = HfFolder.(repo_name, api=api, username=username)
|
| 57 |
#---------------------------------------------------------
|
| 58 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
user = ""
|
| 60 |
for username, logged_in in logged_in_users.items():
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
try:
|
| 66 |
-
drug_dict = eval(drug_dict)
|
| 67 |
-
drug_keys = drug_dict.keys()
|
| 68 |
-
user_drug_dict = {}
|
| 69 |
-
for i in drug_data:
|
| 70 |
-
for j in drug_keys:
|
| 71 |
-
if i in drug_dict[j]:
|
| 72 |
-
user_drug_dict.setdefault(j, []).append(i)
|
| 73 |
-
except Exception as e:
|
| 74 |
-
print("Yes it is here: ",e)
|
| 75 |
-
# break
|
| 76 |
# ---------------------------------------------
|
| 77 |
# Read the existing content of the CSV file
|
| 78 |
# file_path = repo.filename_to_path(filename)
|
|
@@ -89,7 +127,7 @@ def save_data(disease,symp_data,invest_data,drug_data,advice_data,drug_dict):
|
|
| 89 |
with open("./demo1.csv", mode="a") as csvfile:
|
| 90 |
print("In open csv file",csvfile)
|
| 91 |
csv_writer = csv.writer(csvfile)
|
| 92 |
-
csv_writer.writerow([disease,symp_data,invest_data,user_drug_dict,advice_data,user])
|
| 93 |
print("Done writing!!")
|
| 94 |
except:
|
| 95 |
print("An Exception occured")
|
|
@@ -105,16 +143,18 @@ with gr.Blocks() as demo:
|
|
| 105 |
investigations = gr.Textbox(visible=False)
|
| 106 |
drugs = gr.Textbox(visible=False)
|
| 107 |
advices = gr.Textbox(visible=False)
|
| 108 |
-
|
|
|
|
| 109 |
with gr.Box():
|
| 110 |
symptoms_box = gr.CheckboxGroup(label="Symptoms",visible=False)
|
| 111 |
investigations_box = gr.CheckboxGroup(label="Investigations",visible=False)
|
| 112 |
# drugs_box = gr.Box(visible=False)
|
| 113 |
drugs_box = gr.CheckboxGroup(label="Drugs",visible=False)
|
| 114 |
advices_box = gr.CheckboxGroup(label="Advices",visible=False)
|
|
|
|
| 115 |
save = gr.Button(value="Save")
|
| 116 |
|
| 117 |
-
fetch.click(get_symp, inputs=[symptoms,investigations,drugs,advices],outputs=[symptoms_box,investigations_box,drugs_box,advices_box])
|
| 118 |
-
save.click(save_data,inputs=[disease,symptoms_box,investigations_box,drugs_box,advices_box,drugs],outputs=[]).then(fn=None,_js=js)
|
| 119 |
if __name__ == "__main__":
|
| 120 |
demo.launch(auth=login)
|
|
|
|
| 25 |
else:
|
| 26 |
return False
|
| 27 |
|
| 28 |
+
def get_symp(symptoms,investigations,drugs,advices,contraindications):
|
| 29 |
+
all_drugs = []
|
| 30 |
+
all_contras = []
|
| 31 |
+
drug_dict = eval(drugs)
|
| 32 |
+
contra_dict = eval(contraindications)
|
| 33 |
+
for cat,med in drug_dict.items():
|
| 34 |
for i in med:
|
| 35 |
+
all_drugs.append(i)
|
| 36 |
+
|
| 37 |
+
for dru,con in contra_dict.items():
|
| 38 |
+
for i in con:
|
| 39 |
+
lol = ""
|
| 40 |
+
for ikey,ival in i.items():
|
| 41 |
+
lol+=ival+":"
|
| 42 |
+
all_contras.append(lol[:-1])
|
| 43 |
+
print(all_contras)
|
| 44 |
+
# print(all)
|
| 45 |
+
return (gr.update(choices=eval(symptoms),visible=True,interactive=True)),(gr.update(choices=eval(investigations),visible=True,interactive=True)),(gr.update(choices=all_drugs,visible=True,interactive=True)),(gr.update(choices=eval(advices),visible=True,interactive=True)),(gr.update(choices=all_contras,visible=True,interactive=True))
|
| 46 |
|
| 47 |
|
| 48 |
def get_list(disease):
|
| 49 |
print(disease)
|
| 50 |
+
sympto = eval((data[data['diseases']==str(disease)]['symptoms']).iloc[0])
|
| 51 |
+
investigations = eval((data[data['diseases']==str(disease)]['investigations']).iloc[0])
|
| 52 |
+
drugs = eval((data[data['diseases']==str(disease)]["Drug type: Drugs"]).iloc[0])
|
| 53 |
+
advices = eval((data[data['diseases']==str(disease)]["Advices"]).iloc[0])
|
| 54 |
+
contras = eval((data[data['diseases']==str(disease)]["contraindications"]).iloc[0])
|
| 55 |
+
return sympto,investigations,drugs,advices,contras
|
| 56 |
#------------------------------------------------
|
| 57 |
# api = HfApi()
|
| 58 |
|
|
|
|
| 66 |
# # Load the repository
|
| 67 |
# repo = HfFolder.(repo_name, api=api, username=username)
|
| 68 |
#---------------------------------------------------------
|
| 69 |
+
def get_original_format(drug_data,drug_dict,contra_data,contra_dict):
|
| 70 |
+
# print("Drug_dict: ",drug_dict)
|
| 71 |
+
# print("Drug_dict_type_before: ",type(drug_dict))
|
| 72 |
+
# print("Drug_dict_type_after: ",type(drug_dict))
|
| 73 |
+
drug_dict = eval(drug_dict)
|
| 74 |
+
drug_keys = drug_dict.keys()
|
| 75 |
+
# print("keys: ",drug_keys)
|
| 76 |
+
|
| 77 |
+
user_drug_dict = {}
|
| 78 |
+
for i in drug_data:
|
| 79 |
+
for j in drug_keys:
|
| 80 |
+
if i in drug_dict[j]:
|
| 81 |
+
user_drug_dict.setdefault(j, []).append(i)
|
| 82 |
+
|
| 83 |
+
contra_list = []
|
| 84 |
+
for i in contra_data:
|
| 85 |
+
contra = i.split(':')
|
| 86 |
+
inner_dict = {}
|
| 87 |
+
inner_dict['Contraindication'] = contra[0]
|
| 88 |
+
inner_dict['Reason'] = contra[1]
|
| 89 |
+
print(inner_dict)
|
| 90 |
+
contra_list.append(inner_dict)
|
| 91 |
+
|
| 92 |
+
user_contra_dict = {}
|
| 93 |
+
contra_dict = eval(contra_dict)
|
| 94 |
+
contra_keys = contra_dict.keys()
|
| 95 |
+
for i in contra_list:
|
| 96 |
+
for j in contra_keys:
|
| 97 |
+
if i in contra_dict[j]:
|
| 98 |
+
user_contra_dict.setdefault(j, []).append(i)
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
return user_drug_dict,user_contra_dict
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
def save_data(disease,symp_data,invest_data,drug_data,advice_data,contra_data,drug_dict,contra_dict):
|
| 108 |
user = ""
|
| 109 |
for username, logged_in in logged_in_users.items():
|
| 110 |
+
if logged_in:
|
| 111 |
+
user = username
|
| 112 |
+
print(user)
|
| 113 |
+
user_drug_dict,user_contra_dict = get_original_format(drug_data,drug_dict,contra_data,contra_dict)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
# ---------------------------------------------
|
| 115 |
# Read the existing content of the CSV file
|
| 116 |
# file_path = repo.filename_to_path(filename)
|
|
|
|
| 127 |
with open("./demo1.csv", mode="a") as csvfile:
|
| 128 |
print("In open csv file",csvfile)
|
| 129 |
csv_writer = csv.writer(csvfile)
|
| 130 |
+
csv_writer.writerow([disease,symp_data,invest_data,user_drug_dict,advice_data,user_contra_dict,user])
|
| 131 |
print("Done writing!!")
|
| 132 |
except:
|
| 133 |
print("An Exception occured")
|
|
|
|
| 143 |
investigations = gr.Textbox(visible=False)
|
| 144 |
drugs = gr.Textbox(visible=False)
|
| 145 |
advices = gr.Textbox(visible=False)
|
| 146 |
+
contraindications = gr.Textbox(visible=False)
|
| 147 |
+
disease.change(get_list,disease,[symptoms,investigations,drugs,advices,contraindications])
|
| 148 |
with gr.Box():
|
| 149 |
symptoms_box = gr.CheckboxGroup(label="Symptoms",visible=False)
|
| 150 |
investigations_box = gr.CheckboxGroup(label="Investigations",visible=False)
|
| 151 |
# drugs_box = gr.Box(visible=False)
|
| 152 |
drugs_box = gr.CheckboxGroup(label="Drugs",visible=False)
|
| 153 |
advices_box = gr.CheckboxGroup(label="Advices",visible=False)
|
| 154 |
+
contra_box = gr.CheckboxGroup(label="Contraindications",visible=False)
|
| 155 |
save = gr.Button(value="Save")
|
| 156 |
|
| 157 |
+
fetch.click(get_symp, inputs=[symptoms,investigations,drugs,advices,contraindications],outputs=[symptoms_box,investigations_box,drugs_box,advices_box,contra_box])
|
| 158 |
+
save.click(save_data,inputs=[disease,symptoms_box,investigations_box,drugs_box,advices_box,contra_box,drugs,contraindications],outputs=[]).then(fn=None,_js=js)
|
| 159 |
if __name__ == "__main__":
|
| 160 |
demo.launch(auth=login)
|