Add-Vishnu commited on
Commit
31e5847
·
1 Parent(s): 2f56b68

Added interface for contraindications, created a function to get original format dataset

Browse files
Files changed (1) hide show
  1. app.py +72 -32
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
- drug_list = []
30
- data_dict = {}
31
- data_dict = eval(drugs)
32
- for cat,med in data_dict.items():
 
33
  for i in med:
34
- drug_list.append(i)
35
- return (gr.update(choices=eval(symptoms),visible=True,interactive=True)),(gr.update(choices=eval(investigations),visible=True,interactive=True)),(gr.update(choices=drug_list,visible=True,interactive=True)),(gr.update(choices=eval(advices),visible=True,interactive=True))
 
 
 
 
 
 
 
 
 
36
 
37
 
38
  def get_list(disease):
39
  print(disease)
40
- sympto = ast.literal_eval((data[data['diseases']==str(disease)]).iloc[0][1])
41
- investigations = ast.literal_eval((data[data['diseases']==str(disease)]['investigations']).iloc[0])
42
- drugs = ast.literal_eval((data[data['diseases']==str(disease)]["Drug type: Drugs"]).iloc[0])
43
- advices = ast.literal_eval((data[data['diseases']==str(disease)]["Advices"]).iloc[0])
44
- return sympto,investigations,drugs,advices
 
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 save_data(disease,symp_data,invest_data,drug_data,advice_data,drug_dict):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  user = ""
60
  for username, logged_in in logged_in_users.items():
61
- if logged_in:
62
- user = username
63
- print("In save:",user)
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
- disease.change(get_list,disease,[symptoms,investigations,drugs,advices])
 
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)