chore: version 5
Browse files- README.md +2 -2
- app.py +256 -139
- data/Testing_preprocessed.csv +43 -43
- data/Training_preprocessed.csv +0 -0
- deployment_logit/client.zip +0 -0
- deployment_logit/server.zip +0 -0
- deployment_logit/versions.json +1 -0
- deployment_logit_11/client.zip +0 -0
- deployment_logit_11/server.zip +0 -0
- deployment_logit_11/versions.json +1 -0
- deployment_logit_12/client.zip +0 -0
- deployment_logit_12/server.zip +0 -0
- deployment_logit_12/versions.json +1 -0
- deployment_logit_13/client.zip +0 -0
- deployment_logit_13/server.zip +0 -0
- deployment_logit_13/versions.json +1 -0
- deployment_xgb/client.zip +0 -0
- deployment_xgb/server.zip +0 -0
- deployment_xgb/versions.json +1 -0
- symptoms_categories.py +22 -37
- utils.py +20 -10
README.md
CHANGED
|
@@ -6,7 +6,7 @@ colorTo: blue
|
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 3.33.1
|
| 8 |
app_file: app.py
|
| 9 |
-
pinned:
|
| 10 |
tags:
|
| 11 |
- FHE
|
| 12 |
- PPML
|
|
@@ -22,7 +22,7 @@ python_version: 3.10.6
|
|
| 22 |
|
| 23 |
## Running the application on your machine
|
| 24 |
|
| 25 |
-
From this directory, i.e
|
| 26 |
|
| 27 |
### Do once
|
| 28 |
|
|
|
|
| 6 |
sdk: gradio
|
| 7 |
sdk_version: 3.33.1
|
| 8 |
app_file: app.py
|
| 9 |
+
pinned: true
|
| 10 |
tags:
|
| 11 |
- FHE
|
| 12 |
- PPML
|
|
|
|
| 22 |
|
| 23 |
## Running the application on your machine
|
| 24 |
|
| 25 |
+
From this directory, i.e., `health_prediction`, you can proceed with the following steps.
|
| 26 |
|
| 27 |
### Do once
|
| 28 |
|
app.py
CHANGED
|
@@ -2,8 +2,9 @@ import subprocess
|
|
| 2 |
import time
|
| 3 |
from typing import Dict, List, Tuple
|
| 4 |
|
| 5 |
-
import gradio as gr
|
| 6 |
import numpy as np
|
|
|
|
| 7 |
import requests
|
| 8 |
from symptoms_categories import SYMPTOMS_LIST
|
| 9 |
from utils import (
|
|
@@ -13,6 +14,8 @@ from utils import (
|
|
| 13 |
INPUT_BROWSER_LIMIT,
|
| 14 |
KEYS_DIR,
|
| 15 |
SERVER_URL,
|
|
|
|
|
|
|
| 16 |
clean_directory,
|
| 17 |
get_disease_name,
|
| 18 |
load_data,
|
|
@@ -37,7 +40,29 @@ def is_none(obj) -> bool:
|
|
| 37 |
Returns:
|
| 38 |
bool: True if the object is None or empty, False otherwise.
|
| 39 |
"""
|
| 40 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
|
| 43 |
# <!> This function has been paused due to UI issues.
|
|
@@ -106,22 +131,25 @@ def get_features_fn(*checked_symptoms: Tuple[str]) -> Dict:
|
|
| 106 |
"""
|
| 107 |
if not any(lst for lst in checked_symptoms if lst):
|
| 108 |
return {
|
| 109 |
-
error_box1: gr.update(
|
| 110 |
-
visible=True, value="Enter a default disease or select your own symptoms"
|
| 111 |
-
),
|
| 112 |
}
|
| 113 |
|
| 114 |
if len(pretty_print(checked_symptoms)) < 5:
|
| 115 |
print("Provide at least 5 symptoms.")
|
| 116 |
return {
|
| 117 |
-
error_box1: gr.update(visible=True, value="Provide at least 5 symptoms"),
|
| 118 |
-
user_vect_box1:
|
| 119 |
}
|
| 120 |
|
| 121 |
-
|
| 122 |
return {
|
| 123 |
error_box1: gr.update(visible=False),
|
| 124 |
-
user_vect_box1:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 125 |
}
|
| 126 |
|
| 127 |
|
|
@@ -141,7 +169,7 @@ def key_gen_fn(user_symptoms: List[str]) -> Dict:
|
|
| 141 |
if is_none(user_symptoms):
|
| 142 |
print("Error: Please submit your symptoms or select a default disease.")
|
| 143 |
return {
|
| 144 |
-
error_box2: gr.update(visible=True, value="Please submit your symptoms first
|
| 145 |
}
|
| 146 |
|
| 147 |
# Generate a random user ID
|
|
@@ -167,9 +195,11 @@ def key_gen_fn(user_symptoms: List[str]) -> Dict:
|
|
| 167 |
|
| 168 |
return {
|
| 169 |
error_box2: gr.update(visible=False),
|
| 170 |
-
key_box: serialized_evaluation_keys_shorten_hex,
|
| 171 |
-
user_id_box: user_id,
|
| 172 |
-
key_len_box:
|
|
|
|
|
|
|
| 173 |
}
|
| 174 |
|
| 175 |
|
|
@@ -186,7 +216,9 @@ def encrypt_fn(user_symptoms: np.ndarray, user_id: str) -> None:
|
|
| 186 |
print("Error in encryption step: Provide your symptoms and generate the evaluation keys.")
|
| 187 |
return {
|
| 188 |
error_box3: gr.update(
|
| 189 |
-
visible=True,
|
|
|
|
|
|
|
| 190 |
)
|
| 191 |
}
|
| 192 |
|
|
@@ -210,9 +242,9 @@ def encrypt_fn(user_symptoms: np.ndarray, user_id: str) -> None:
|
|
| 210 |
|
| 211 |
return {
|
| 212 |
error_box3: gr.update(visible=False),
|
| 213 |
-
user_vect_box2: user_symptoms,
|
| 214 |
-
quant_vect_box: quant_user_symptoms,
|
| 215 |
-
enc_vect_box: encrypted_quantized_user_symptoms_shorten_hex,
|
| 216 |
}
|
| 217 |
|
| 218 |
|
|
@@ -228,8 +260,9 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 228 |
return {
|
| 229 |
error_box4: gr.update(
|
| 230 |
visible=True,
|
| 231 |
-
value="Please
|
| 232 |
-
"
|
|
|
|
| 233 |
)
|
| 234 |
}
|
| 235 |
|
|
@@ -242,7 +275,9 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 242 |
f"The key has been generated correctly - {evaluation_key_path.is_file()=}"
|
| 243 |
)
|
| 244 |
|
| 245 |
-
return {
|
|
|
|
|
|
|
| 246 |
|
| 247 |
if not encrypted_input_path.is_file():
|
| 248 |
print(
|
|
@@ -252,7 +287,7 @@ def send_input_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 252 |
return {
|
| 253 |
error_box4: gr.update(
|
| 254 |
visible=True,
|
| 255 |
-
value="Please encrypt the data with the private key first.",
|
| 256 |
),
|
| 257 |
}
|
| 258 |
|
|
@@ -291,9 +326,12 @@ def run_fhe_fn(user_id: str) -> Dict:
|
|
| 291 |
return {
|
| 292 |
error_box5: gr.update(
|
| 293 |
visible=True,
|
| 294 |
-
value="Please
|
| 295 |
-
"
|
| 296 |
-
|
|
|
|
|
|
|
|
|
|
| 297 |
}
|
| 298 |
|
| 299 |
data = {
|
|
@@ -311,18 +349,19 @@ def run_fhe_fn(user_id: str) -> Dict:
|
|
| 311 |
error_box5: gr.update(
|
| 312 |
visible=True,
|
| 313 |
value=(
|
| 314 |
-
"An error occurred on the Server Side. "
|
| 315 |
"Please check connectivity and data transmission."
|
| 316 |
),
|
| 317 |
),
|
| 318 |
-
fhe_execution_time_box: gr.update(visible=
|
| 319 |
}
|
| 320 |
else:
|
|
|
|
| 321 |
print(f"response.ok: {response.ok}, {response.json()} - Computed")
|
| 322 |
|
| 323 |
return {
|
| 324 |
error_box5: gr.update(visible=False),
|
| 325 |
-
fhe_execution_time_box: gr.update(value=f"{response.json()} seconds"),
|
| 326 |
}
|
| 327 |
|
| 328 |
|
|
@@ -338,8 +377,8 @@ def get_output_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 338 |
return {
|
| 339 |
error_box6: gr.update(
|
| 340 |
visible=True,
|
| 341 |
-
value="Please
|
| 342 |
-
"
|
| 343 |
)
|
| 344 |
}
|
| 345 |
|
|
@@ -367,12 +406,13 @@ def get_output_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 367 |
return {error_box6: gr.update(visible=False), srv_resp_retrieve_data_box: "Data received"}
|
| 368 |
|
| 369 |
|
| 370 |
-
def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
| 371 |
"""Dencrypt the data on the `Client Side`.
|
| 372 |
|
| 373 |
Args:
|
| 374 |
user_id (str): The current user's ID
|
| 375 |
user_symptoms (np.ndarray): The user symptoms
|
|
|
|
| 376 |
|
| 377 |
Returns:
|
| 378 |
Decrypted output
|
|
@@ -382,8 +422,8 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 382 |
return {
|
| 383 |
error_box7: gr.update(
|
| 384 |
visible=True,
|
| 385 |
-
value="Please
|
| 386 |
-
"
|
| 387 |
)
|
| 388 |
}
|
| 389 |
|
|
@@ -395,10 +435,14 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 395 |
return {
|
| 396 |
error_box7: gr.update(
|
| 397 |
visible=True,
|
| 398 |
-
value="Please ensure that
|
| 399 |
-
"
|
| 400 |
-
"
|
| 401 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 402 |
}
|
| 403 |
|
| 404 |
# Load the encrypted output as bytes
|
|
@@ -412,11 +456,31 @@ def decrypt_fn(user_id: str, user_symptoms: np.ndarray) -> Dict:
|
|
| 412 |
# Deserialize, decrypt and post-process the encrypted output
|
| 413 |
output = client.deserialize_decrypt_dequantize(encrypted_output)
|
| 414 |
|
| 415 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 416 |
|
| 417 |
return {
|
| 418 |
error_box7: gr.update(visible=False),
|
| 419 |
-
decrypt_target_box:
|
| 420 |
}
|
| 421 |
|
| 422 |
|
|
@@ -426,15 +490,17 @@ def reset_fn():
|
|
| 426 |
clean_directory()
|
| 427 |
|
| 428 |
return {
|
| 429 |
-
|
| 430 |
-
user_id_box: None,
|
| 431 |
user_vect_box1: None,
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
|
|
|
|
|
|
|
|
|
|
| 438 |
decrypt_target_box: None,
|
| 439 |
error_box7: gr.update(visible=False),
|
| 440 |
error_box1: gr.update(visible=False),
|
|
@@ -448,31 +514,36 @@ def reset_fn():
|
|
| 448 |
**{box: None for box in check_boxes},
|
| 449 |
}
|
| 450 |
|
| 451 |
-
def change_tab(next_tab):
|
| 452 |
-
print(next_tab)
|
| 453 |
-
return gr.Tabs.update(selected=next_tab)
|
| 454 |
|
| 455 |
CSS = """
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
.gradio-container {background-color: white}
|
|
|
|
| 460 |
/* .feedback {font-size: 3px !important} */
|
| 461 |
-
#svelte-s1r2yt {color:
|
| 462 |
#svelte-s1r2yt {font-size: 25px}
|
| 463 |
#svelte-s1r2yt {font-weight: bold}
|
| 464 |
/* #them {text-align: center} */
|
| 465 |
"""
|
| 466 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 467 |
if __name__ == "__main__":
|
| 468 |
|
| 469 |
print("Starting demo ...")
|
| 470 |
|
| 471 |
clean_directory()
|
| 472 |
|
| 473 |
-
(X_train, X_test), (y_train, y_test), valid_symptoms = load_data()
|
| 474 |
|
| 475 |
with gr.Blocks(css=CSS) as demo:
|
|
|
|
| 476 |
|
| 477 |
# Link + images
|
| 478 |
gr.Markdown(
|
|
@@ -494,20 +565,31 @@ if __name__ == "__main__":
|
|
| 494 |
</p>
|
| 495 |
|
| 496 |
<p align="center">
|
| 497 |
-
<img width="100%" height="30%" src="https://raw.githubusercontent.com/kcelia/Img/main/
|
| 498 |
</p>
|
| 499 |
"""
|
| 500 |
)
|
| 501 |
|
| 502 |
-
|
| 503 |
-
|
| 504 |
-
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
|
| 510 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 511 |
|
| 512 |
# Box symptoms
|
| 513 |
check_boxes = []
|
|
@@ -523,59 +605,66 @@ if __name__ == "__main__":
|
|
| 523 |
)
|
| 524 |
check_boxes.append(check_box)
|
| 525 |
|
| 526 |
-
error_box1 = gr.Textbox(label="Error", visible=False)
|
| 527 |
|
| 528 |
# <!> This part has been paused due to UI issues.
|
| 529 |
|
| 530 |
# Default disease, picked from the dataframe
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
|
| 534 |
-
|
| 535 |
-
|
| 536 |
-
|
| 537 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 538 |
|
| 539 |
# User symptom vector
|
| 540 |
user_vect_box1 = gr.Textbox(label="User Symptoms Vector:", interactive=False)
|
| 541 |
|
| 542 |
# Submit botton
|
| 543 |
-
submit_button = gr.Button("Submit")
|
| 544 |
-
|
| 545 |
-
submit_button.click(
|
| 546 |
-
fn=get_features_fn,
|
| 547 |
-
inputs=[*check_boxes],
|
| 548 |
-
outputs=[user_vect_box1, error_box1],
|
| 549 |
-
)
|
| 550 |
|
| 551 |
# Clear botton
|
| 552 |
-
clear_button = gr.Button("Reset Space")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 553 |
|
| 554 |
-
next_tab = gr.Button('Next Step')
|
| 555 |
-
next_tab.click(lambda _:gr.Tabs.update(selected=1), None, tabs)
|
| 556 |
-
|
| 557 |
with gr.TabItem("2. Data Encryption", id=1):
|
| 558 |
-
gr.Markdown("<span style='color:
|
| 559 |
-
gr.Markdown("##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 560 |
|
| 561 |
-
gen_key_btn = gr.Button("Generate the
|
| 562 |
-
error_box2 = gr.Textbox(label="Error", visible=False)
|
| 563 |
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
key_len_box = gr.Textbox(label="Evaluation Key Size:", interactive=False)
|
| 571 |
|
| 572 |
# Evaluation key (truncated)
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
|
| 578 |
-
|
| 579 |
|
| 580 |
gen_key_btn.click(
|
| 581 |
key_gen_fn,
|
|
@@ -588,24 +677,31 @@ if __name__ == "__main__":
|
|
| 588 |
],
|
| 589 |
)
|
| 590 |
|
| 591 |
-
gr.Markdown("##
|
| 592 |
-
|
| 593 |
-
encrypt_btn = gr.Button("Encrypt the symptoms with the private key")
|
| 594 |
-
error_box3 = gr.Textbox(label="Error", visible=False)
|
| 595 |
|
|
|
|
|
|
|
| 596 |
|
| 597 |
with gr.Row():
|
| 598 |
with gr.Column(scale=1, min_width=600):
|
| 599 |
user_vect_box2 = gr.Textbox(
|
| 600 |
-
label="User Symptoms Vector:",
|
|
|
|
|
|
|
| 601 |
)
|
| 602 |
|
| 603 |
with gr.Column(scale=1, min_width=600):
|
| 604 |
-
quant_vect_box = gr.Textbox(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 605 |
|
| 606 |
with gr.Column(scale=1, min_width=600):
|
| 607 |
enc_vect_box = gr.Textbox(
|
| 608 |
-
label="Encrypted Vector:",
|
|
|
|
|
|
|
| 609 |
)
|
| 610 |
|
| 611 |
encrypt_btn.click(
|
|
@@ -620,15 +716,15 @@ if __name__ == "__main__":
|
|
| 620 |
)
|
| 621 |
|
| 622 |
gr.Markdown(
|
| 623 |
-
"##
|
| 624 |
-
"<span style='color:
|
| 625 |
)
|
| 626 |
|
| 627 |
-
error_box4 = gr.Textbox(label="Error", visible=False)
|
| 628 |
|
| 629 |
with gr.Row().style(equal_height=False):
|
| 630 |
with gr.Column(scale=4):
|
| 631 |
-
send_input_btn = gr.Button("Send the encrypted data")
|
| 632 |
with gr.Column(scale=1):
|
| 633 |
srv_resp_send_data_box = gr.Checkbox(
|
| 634 |
label="Data Sent", show_label=False, interactive=False
|
|
@@ -639,26 +735,29 @@ if __name__ == "__main__":
|
|
| 639 |
inputs=[user_id_box, user_vect_box1],
|
| 640 |
outputs=[error_box4, srv_resp_send_data_box],
|
| 641 |
)
|
| 642 |
-
|
|
|
|
| 643 |
with gr.Row().style(equal_height=True):
|
| 644 |
with gr.Column(scale=1):
|
| 645 |
-
prev_tab = gr.Button(
|
| 646 |
-
prev_tab.click(lambda _:gr.Tabs.update(selected=0), None, tabs)
|
| 647 |
|
| 648 |
with gr.Column(scale=1):
|
| 649 |
-
next_tab = gr.Button(
|
| 650 |
-
next_tab.click(lambda _:gr.Tabs.update(selected=2), None, tabs)
|
| 651 |
-
|
| 652 |
-
|
| 653 |
|
| 654 |
with gr.TabItem("3. FHE execution", id=2):
|
| 655 |
-
gr.Markdown("<span style='color:
|
| 656 |
-
gr.Markdown("##
|
|
|
|
|
|
|
|
|
|
|
|
|
| 657 |
|
| 658 |
-
run_fhe_btn = gr.Button("Run the FHE evaluation")
|
| 659 |
-
error_box5 = gr.Textbox(label="Error", visible=False)
|
| 660 |
fhe_execution_time_box = gr.Textbox(
|
| 661 |
-
label="Total FHE Execution Time:", interactive=False
|
| 662 |
)
|
| 663 |
|
| 664 |
run_fhe_btn.click(
|
|
@@ -667,28 +766,25 @@ if __name__ == "__main__":
|
|
| 667 |
outputs=[fhe_execution_time_box, error_box5],
|
| 668 |
)
|
| 669 |
|
|
|
|
| 670 |
with gr.Row().style(equal_height=True):
|
| 671 |
with gr.Column(scale=1):
|
| 672 |
-
prev_tab = gr.Button(
|
| 673 |
prev_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
| 674 |
|
| 675 |
with gr.Column(scale=1):
|
| 676 |
-
next_tab = gr.Button(
|
| 677 |
next_tab.click(lambda _: gr.Tabs.update(selected=3), None, tabs)
|
| 678 |
-
|
| 679 |
-
|
| 680 |
|
| 681 |
with gr.TabItem("4. Data Decryption", id=3):
|
| 682 |
-
gr.Markdown("<span style='color:
|
| 683 |
-
gr.Markdown(
|
| 684 |
-
"## Step 6: Get the data from the <span style='color:orange'>Server Side</span>"
|
| 685 |
-
)
|
| 686 |
|
| 687 |
-
error_box6 = gr.Textbox(label="Error", visible=False)
|
| 688 |
|
| 689 |
with gr.Row().style(equal_height=True):
|
| 690 |
with gr.Column(scale=4):
|
| 691 |
-
get_output_btn = gr.Button("Get data")
|
| 692 |
with gr.Column(scale=1):
|
| 693 |
srv_resp_retrieve_data_box = gr.Checkbox(
|
| 694 |
label="Data Received", show_label=False, interactive=False
|
|
@@ -700,11 +796,17 @@ if __name__ == "__main__":
|
|
| 700 |
outputs=[srv_resp_retrieve_data_box, error_box6],
|
| 701 |
)
|
| 702 |
|
| 703 |
-
gr.Markdown("##
|
| 704 |
|
| 705 |
-
|
| 706 |
-
|
| 707 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 708 |
|
| 709 |
decrypt_target_btn.click(
|
| 710 |
decrypt_fn,
|
|
@@ -712,8 +814,20 @@ if __name__ == "__main__":
|
|
| 712 |
outputs=[decrypt_target_box, error_box7],
|
| 713 |
)
|
| 714 |
|
| 715 |
-
|
| 716 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 717 |
|
| 718 |
clear_button.click(
|
| 719 |
reset_fn,
|
|
@@ -728,6 +842,9 @@ if __name__ == "__main__":
|
|
| 728 |
error_box5,
|
| 729 |
error_box6,
|
| 730 |
error_box7,
|
|
|
|
|
|
|
|
|
|
| 731 |
user_id_box,
|
| 732 |
key_len_box,
|
| 733 |
key_box,
|
|
|
|
| 2 |
import time
|
| 3 |
from typing import Dict, List, Tuple
|
| 4 |
|
| 5 |
+
import gradio as gr # pylint: disable=import-error
|
| 6 |
import numpy as np
|
| 7 |
+
import pandas as pd
|
| 8 |
import requests
|
| 9 |
from symptoms_categories import SYMPTOMS_LIST
|
| 10 |
from utils import (
|
|
|
|
| 14 |
INPUT_BROWSER_LIMIT,
|
| 15 |
KEYS_DIR,
|
| 16 |
SERVER_URL,
|
| 17 |
+
TARGET_COLUMNS,
|
| 18 |
+
TRAINING_FILENAME,
|
| 19 |
clean_directory,
|
| 20 |
get_disease_name,
|
| 21 |
load_data,
|
|
|
|
| 40 |
Returns:
|
| 41 |
bool: True if the object is None or empty, False otherwise.
|
| 42 |
"""
|
| 43 |
+
return obj is None or (obj is not None and len(obj) < 1)
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def display_default_symptoms_fn(default_disease: str) -> Dict:
|
| 47 |
+
"""
|
| 48 |
+
Displays the symptoms of a given existing disease.
|
| 49 |
+
|
| 50 |
+
Args:
|
| 51 |
+
default_disease (str): Disease
|
| 52 |
+
Returns:
|
| 53 |
+
Dict: The according symptoms
|
| 54 |
+
"""
|
| 55 |
+
df = pd.read_csv(TRAINING_FILENAME)
|
| 56 |
+
df_filtred = df[df[TARGET_COLUMNS[1]] == default_disease]
|
| 57 |
+
|
| 58 |
+
return {
|
| 59 |
+
default_symptoms: gr.update(
|
| 60 |
+
visible=True,
|
| 61 |
+
value=pretty_print(
|
| 62 |
+
df_filtred.columns[df_filtred.eq(1).any()].to_list(), delimiter=", "
|
| 63 |
+
),
|
| 64 |
+
)
|
| 65 |
+
}
|
| 66 |
|
| 67 |
|
| 68 |
# <!> This function has been paused due to UI issues.
|
|
|
|
| 131 |
"""
|
| 132 |
if not any(lst for lst in checked_symptoms if lst):
|
| 133 |
return {
|
| 134 |
+
error_box1: gr.update(visible=True, value="⚠️ Please provide your chief complaints."),
|
|
|
|
|
|
|
| 135 |
}
|
| 136 |
|
| 137 |
if len(pretty_print(checked_symptoms)) < 5:
|
| 138 |
print("Provide at least 5 symptoms.")
|
| 139 |
return {
|
| 140 |
+
error_box1: gr.update(visible=True, value="⚠️ Provide at least 5 symptoms"),
|
| 141 |
+
user_vect_box1: None,
|
| 142 |
}
|
| 143 |
|
|
|
|
| 144 |
return {
|
| 145 |
error_box1: gr.update(visible=False),
|
| 146 |
+
user_vect_box1: gr.update(
|
| 147 |
+
visible=True, value=get_user_symptoms_from_checkboxgroup(pretty_print(checked_symptoms))
|
| 148 |
+
),
|
| 149 |
+
recap_symptoms_box: gr.update(
|
| 150 |
+
visible=True,
|
| 151 |
+
value=pretty_print(checked_symptoms, case_conversion=str.capitalize, delimiter=", "),
|
| 152 |
+
),
|
| 153 |
}
|
| 154 |
|
| 155 |
|
|
|
|
| 169 |
if is_none(user_symptoms):
|
| 170 |
print("Error: Please submit your symptoms or select a default disease.")
|
| 171 |
return {
|
| 172 |
+
error_box2: gr.update(visible=True, value="⚠️ Please submit your symptoms first."),
|
| 173 |
}
|
| 174 |
|
| 175 |
# Generate a random user ID
|
|
|
|
| 195 |
|
| 196 |
return {
|
| 197 |
error_box2: gr.update(visible=False),
|
| 198 |
+
key_box: gr.update(visible=False, value=serialized_evaluation_keys_shorten_hex),
|
| 199 |
+
user_id_box: gr.update(visible=True, value=user_id),
|
| 200 |
+
key_len_box: gr.update(
|
| 201 |
+
visible=False, value=f"{len(serialized_evaluation_keys) / (10**6):.2f} MB"
|
| 202 |
+
),
|
| 203 |
}
|
| 204 |
|
| 205 |
|
|
|
|
| 216 |
print("Error in encryption step: Provide your symptoms and generate the evaluation keys.")
|
| 217 |
return {
|
| 218 |
error_box3: gr.update(
|
| 219 |
+
visible=True,
|
| 220 |
+
value="⚠️ Please ensure that your symptoms have been submitted and "
|
| 221 |
+
"that you have generated the evaluation key.",
|
| 222 |
)
|
| 223 |
}
|
| 224 |
|
|
|
|
| 242 |
|
| 243 |
return {
|
| 244 |
error_box3: gr.update(visible=False),
|
| 245 |
+
user_vect_box2: gr.update(visible=False, value=user_symptoms),
|
| 246 |
+
quant_vect_box: gr.update(visible=False, value=quant_user_symptoms),
|
| 247 |
+
enc_vect_box: gr.update(visible=True, value=encrypted_quantized_user_symptoms_shorten_hex),
|
| 248 |
}
|
| 249 |
|
| 250 |
|
|
|
|
| 260 |
return {
|
| 261 |
error_box4: gr.update(
|
| 262 |
visible=True,
|
| 263 |
+
value="⚠️ Please check your connectivity \n"
|
| 264 |
+
"⚠️ Ensure that the symptoms have been submitted and the evaluation "
|
| 265 |
+
"key has been generated before sending the data to the server.",
|
| 266 |
)
|
| 267 |
}
|
| 268 |
|
|
|
|
| 275 |
f"The key has been generated correctly - {evaluation_key_path.is_file()=}"
|
| 276 |
)
|
| 277 |
|
| 278 |
+
return {
|
| 279 |
+
error_box4: gr.update(visible=True, value="⚠️ Please generate the private key first.")
|
| 280 |
+
}
|
| 281 |
|
| 282 |
if not encrypted_input_path.is_file():
|
| 283 |
print(
|
|
|
|
| 287 |
return {
|
| 288 |
error_box4: gr.update(
|
| 289 |
visible=True,
|
| 290 |
+
value="⚠️ Please encrypt the data with the private key first.",
|
| 291 |
),
|
| 292 |
}
|
| 293 |
|
|
|
|
| 326 |
return {
|
| 327 |
error_box5: gr.update(
|
| 328 |
visible=True,
|
| 329 |
+
value="⚠️ Please check your connectivity \n"
|
| 330 |
+
"⚠️ Ensure that the symptoms have been submitted, the evaluation "
|
| 331 |
+
"key has been generated and the server received the data "
|
| 332 |
+
"before processing the data.",
|
| 333 |
+
),
|
| 334 |
+
fhe_execution_time_box: None,
|
| 335 |
}
|
| 336 |
|
| 337 |
data = {
|
|
|
|
| 349 |
error_box5: gr.update(
|
| 350 |
visible=True,
|
| 351 |
value=(
|
| 352 |
+
"⚠️ An error occurred on the Server Side. "
|
| 353 |
"Please check connectivity and data transmission."
|
| 354 |
),
|
| 355 |
),
|
| 356 |
+
fhe_execution_time_box: gr.update(visible=False),
|
| 357 |
}
|
| 358 |
else:
|
| 359 |
+
time.sleep(1)
|
| 360 |
print(f"response.ok: {response.ok}, {response.json()} - Computed")
|
| 361 |
|
| 362 |
return {
|
| 363 |
error_box5: gr.update(visible=False),
|
| 364 |
+
fhe_execution_time_box: gr.update(visible=True, value=f"{response.json():.2f} seconds"),
|
| 365 |
}
|
| 366 |
|
| 367 |
|
|
|
|
| 377 |
return {
|
| 378 |
error_box6: gr.update(
|
| 379 |
visible=True,
|
| 380 |
+
value="⚠️ Please check your connectivity \n"
|
| 381 |
+
"⚠️ Ensure that the server has successfully processed and transmitted the data to the client.",
|
| 382 |
)
|
| 383 |
}
|
| 384 |
|
|
|
|
| 406 |
return {error_box6: gr.update(visible=False), srv_resp_retrieve_data_box: "Data received"}
|
| 407 |
|
| 408 |
|
| 409 |
+
def decrypt_fn(user_id: str, user_symptoms: np.ndarray, threshold: int = 0.5) -> Dict:
|
| 410 |
"""Dencrypt the data on the `Client Side`.
|
| 411 |
|
| 412 |
Args:
|
| 413 |
user_id (str): The current user's ID
|
| 414 |
user_symptoms (np.ndarray): The user symptoms
|
| 415 |
+
threshold (float): Probability confidence threshold
|
| 416 |
|
| 417 |
Returns:
|
| 418 |
Decrypted output
|
|
|
|
| 422 |
return {
|
| 423 |
error_box7: gr.update(
|
| 424 |
visible=True,
|
| 425 |
+
value="⚠️ Please check your connectivity \n"
|
| 426 |
+
"⚠️ Ensure that the client has successfully received the data from the server.",
|
| 427 |
)
|
| 428 |
}
|
| 429 |
|
|
|
|
| 435 |
return {
|
| 436 |
error_box7: gr.update(
|
| 437 |
visible=True,
|
| 438 |
+
value="⚠️ Please ensure that: \n"
|
| 439 |
+
"- the connectivity \n"
|
| 440 |
+
"- the symptoms have been submitted \n"
|
| 441 |
+
"- the evaluation key has been generated \n"
|
| 442 |
+
"- the server processed the encrypted data \n"
|
| 443 |
+
"- the Client received the data from the Server before decrypting the prediction",
|
| 444 |
+
),
|
| 445 |
+
decrypt_target_box: None,
|
| 446 |
}
|
| 447 |
|
| 448 |
# Load the encrypted output as bytes
|
|
|
|
| 456 |
# Deserialize, decrypt and post-process the encrypted output
|
| 457 |
output = client.deserialize_decrypt_dequantize(encrypted_output)
|
| 458 |
|
| 459 |
+
top3_diseases = np.argsort(output.flatten())[-3:][::-1]
|
| 460 |
+
top3_proba = output[0][top3_diseases]
|
| 461 |
+
|
| 462 |
+
if (
|
| 463 |
+
(top3_proba[0] < threshold)
|
| 464 |
+
or (np.sum(top3_proba) < threshold)
|
| 465 |
+
or (abs(top3_proba[0] - top3_proba[1]) < threshold)
|
| 466 |
+
):
|
| 467 |
+
out = (
|
| 468 |
+
"The prediction appears uncertain; including more symptoms may improve the results.\n\n"
|
| 469 |
+
"Here are the top3 predictions:"
|
| 470 |
+
)
|
| 471 |
+
else:
|
| 472 |
+
out = "Based on the information provided, here are the top3 predictions:"
|
| 473 |
+
|
| 474 |
+
out = (
|
| 475 |
+
f"{out}\n\n"
|
| 476 |
+
f"1. « {get_disease_name(top3_diseases[0])} » with a probability of {top3_proba[0]:.2%}\n"
|
| 477 |
+
f"2. « {get_disease_name(top3_diseases[1])} » with a probability of {top3_proba[1]:.2%}\n"
|
| 478 |
+
f"3. « {get_disease_name(top3_diseases[2])} » with a probability of {top3_proba[2]:.2%}\n"
|
| 479 |
+
)
|
| 480 |
|
| 481 |
return {
|
| 482 |
error_box7: gr.update(visible=False),
|
| 483 |
+
decrypt_target_box: out,
|
| 484 |
}
|
| 485 |
|
| 486 |
|
|
|
|
| 490 |
clean_directory()
|
| 491 |
|
| 492 |
return {
|
| 493 |
+
user_id_box: gr.update(visible=False, value=None, interactive=False),
|
|
|
|
| 494 |
user_vect_box1: None,
|
| 495 |
+
recap_symptoms_box: gr.update(visible=False, value=None),
|
| 496 |
+
default_symptoms: gr.update(visible=True, value=None),
|
| 497 |
+
disease_box: gr.update(visible=True, value=None),
|
| 498 |
+
user_vect_box2: gr.update(visible=False, value=None, interactive=False),
|
| 499 |
+
quant_vect_box: gr.update(visible=False, value=None, interactive=False),
|
| 500 |
+
enc_vect_box: gr.update(visible=True, value=None, interactive=False),
|
| 501 |
+
key_box: gr.update(visible=True, value=None, interactive=False),
|
| 502 |
+
key_len_box: gr.update(visible=False, value=None, interactive=False),
|
| 503 |
+
fhe_execution_time_box: gr.update(visible=True, value=None, interactive=False),
|
| 504 |
decrypt_target_box: None,
|
| 505 |
error_box7: gr.update(visible=False),
|
| 506 |
error_box1: gr.update(visible=False),
|
|
|
|
| 514 |
**{box: None for box in check_boxes},
|
| 515 |
}
|
| 516 |
|
|
|
|
|
|
|
|
|
|
| 517 |
|
| 518 |
CSS = """
|
| 519 |
+
#them {color: grey}
|
| 520 |
+
#them {font-size: 24px}
|
| 521 |
+
#them {font-weight: bold}
|
| 522 |
.gradio-container {background-color: white}
|
| 523 |
+
.gradio-button {color: red; font-size: 20px;}
|
| 524 |
/* .feedback {font-size: 3px !important} */
|
| 525 |
+
#svelte-s1r2yt {color: grey}
|
| 526 |
#svelte-s1r2yt {font-size: 25px}
|
| 527 |
#svelte-s1r2yt {font-weight: bold}
|
| 528 |
/* #them {text-align: center} */
|
| 529 |
"""
|
| 530 |
|
| 531 |
+
back_to_top_btn_html = """
|
| 532 |
+
<button id="toTopBtn" onclick="'parentIFrame' in window ? window.parentIFrame.scrollTo({top: 0, behavior:'smooth'}) : window.scrollTo({ top: 0 })">
|
| 533 |
+
<a style="color:white; text-decoration:none;">Back to Top!</a>
|
| 534 |
+
</button>
|
| 535 |
+
"""
|
| 536 |
+
|
| 537 |
if __name__ == "__main__":
|
| 538 |
|
| 539 |
print("Starting demo ...")
|
| 540 |
|
| 541 |
clean_directory()
|
| 542 |
|
| 543 |
+
(X_train, X_test), (y_train, y_test), valid_symptoms, diseases = load_data()
|
| 544 |
|
| 545 |
with gr.Blocks(css=CSS) as demo:
|
| 546 |
+
gr.HTML(back_to_top_btn_html)
|
| 547 |
|
| 548 |
# Link + images
|
| 549 |
gr.Markdown(
|
|
|
|
| 565 |
</p>
|
| 566 |
|
| 567 |
<p align="center">
|
| 568 |
+
<img width="100%" height="30%" src="https://raw.githubusercontent.com/kcelia/Img/main/cover_image.png">
|
| 569 |
</p>
|
| 570 |
"""
|
| 571 |
)
|
| 572 |
|
| 573 |
+
gr.Markdown("# Introduction")
|
| 574 |
+
gr.Markdown(
|
| 575 |
+
"Welcome to our Healthcare Prediction space using Fully Homomorphic Encryption (FHE) with Concrete ML library."
|
| 576 |
+
)
|
| 577 |
+
gr.Markdown(
|
| 578 |
+
"Through this user-friendly and secure client-server interface you can confidently submit your chief complaints, which you have locally "
|
| 579 |
+
"encrypted on your end and transmitted to an untrusted server for processing.\n\n"
|
| 580 |
+
"Thanks to the FHE scheme, the remote server is able to perform computations without ever decrypting the data and return result the encrypted to the client for local decryption. \n\n\n"
|
| 581 |
+
"FHE ensures end-to-end data encryption and guarantees patient privacy."
|
| 582 |
+
)
|
| 583 |
+
gr.Markdown(
|
| 584 |
+
"Disclaimer: We are not medical professionals. For accurate diagnosis and treatment, "
|
| 585 |
+
"please consult a qualified healthcare provider."
|
| 586 |
+
)
|
| 587 |
+
|
| 588 |
+
with gr.Tabs(eelem_id="them") as tabs:
|
| 589 |
+
with gr.TabItem("1. Chief Complaints", id=0):
|
| 590 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
| 591 |
+
gr.Markdown("## Provide your chief complaints")
|
| 592 |
+
gr.Markdown("Provide at least 5 chief complaints by filling in the boxes below. ")
|
| 593 |
|
| 594 |
# Box symptoms
|
| 595 |
check_boxes = []
|
|
|
|
| 605 |
)
|
| 606 |
check_boxes.append(check_box)
|
| 607 |
|
| 608 |
+
error_box1 = gr.Textbox(label="Error ❌", visible=False)
|
| 609 |
|
| 610 |
# <!> This part has been paused due to UI issues.
|
| 611 |
|
| 612 |
# Default disease, picked from the dataframe
|
| 613 |
+
gr.Markdown(
|
| 614 |
+
"You can choose an existing disease and explore its associated symptoms."
|
| 615 |
+
)
|
| 616 |
+
|
| 617 |
+
with gr.Row():
|
| 618 |
+
with gr.Column(scale=2):
|
| 619 |
+
disease_box = gr.Dropdown(sorted(diseases), label="Diseases 👆")
|
| 620 |
+
with gr.Column(scale=5):
|
| 621 |
+
default_symptoms = gr.Textbox(
|
| 622 |
+
label="Related Symptoms:", visible=True, interactive=False
|
| 623 |
+
)
|
| 624 |
+
|
| 625 |
+
disease_box.change(
|
| 626 |
+
fn=display_default_symptoms_fn, inputs=[disease_box], outputs=[default_symptoms]
|
| 627 |
+
)
|
| 628 |
|
| 629 |
# User symptom vector
|
| 630 |
user_vect_box1 = gr.Textbox(label="User Symptoms Vector:", interactive=False)
|
| 631 |
|
| 632 |
# Submit botton
|
| 633 |
+
submit_button = gr.Button("Submit 👆")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 634 |
|
| 635 |
# Clear botton
|
| 636 |
+
clear_button = gr.Button("Reset Space 🔁")
|
| 637 |
+
# Next tab
|
| 638 |
+
gr.Markdown("")
|
| 639 |
+
next_tab = gr.Button("Next Step 👉")
|
| 640 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
| 641 |
|
|
|
|
|
|
|
|
|
|
| 642 |
with gr.TabItem("2. Data Encryption", id=1):
|
| 643 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
| 644 |
+
gr.Markdown("## Key Generation")
|
| 645 |
+
gr.Markdown(
|
| 646 |
+
"In FHE schemes, a secret (enc/dec)ryption keys are generated for encrypting and decrypting data owned by the client. \n\n"
|
| 647 |
+
"Additionally, a public evaluation key is generated, enabling external entities to perform homomorphic operations on encrypted data, without the need to decrypt them. \n\n"
|
| 648 |
+
"The evaluation key will be transmitted to the server for further processing."
|
| 649 |
+
)
|
| 650 |
|
| 651 |
+
gen_key_btn = gr.Button("Generate the evaluation key 👆")
|
| 652 |
+
error_box2 = gr.Textbox(label="Error ❌", visible=False)
|
| 653 |
|
| 654 |
+
user_id_box = gr.Textbox(label="User ID:", interactive=False, visible=True)
|
| 655 |
+
# Evaluation key size
|
| 656 |
+
|
| 657 |
+
key_len_box = gr.Textbox(
|
| 658 |
+
label="Evaluation Key Size:", interactive=False, visible=False
|
| 659 |
+
)
|
|
|
|
| 660 |
|
| 661 |
# Evaluation key (truncated)
|
| 662 |
+
key_box = gr.Textbox(
|
| 663 |
+
label="Evaluation key (truncated):",
|
| 664 |
+
max_lines=3,
|
| 665 |
+
interactive=False,
|
| 666 |
+
visible=False,
|
| 667 |
+
)
|
| 668 |
|
| 669 |
gen_key_btn.click(
|
| 670 |
key_gen_fn,
|
|
|
|
| 677 |
],
|
| 678 |
)
|
| 679 |
|
| 680 |
+
gr.Markdown("## Encrypt the data")
|
|
|
|
|
|
|
|
|
|
| 681 |
|
| 682 |
+
encrypt_btn = gr.Button("Encrypt the data using the 🔒 private secret key 👆")
|
| 683 |
+
error_box3 = gr.Textbox(label="Error ❌", visible=False)
|
| 684 |
|
| 685 |
with gr.Row():
|
| 686 |
with gr.Column(scale=1, min_width=600):
|
| 687 |
user_vect_box2 = gr.Textbox(
|
| 688 |
+
label="User Symptoms Vector:",
|
| 689 |
+
interactive=False,
|
| 690 |
+
visible=False,
|
| 691 |
)
|
| 692 |
|
| 693 |
with gr.Column(scale=1, min_width=600):
|
| 694 |
+
quant_vect_box = gr.Textbox(
|
| 695 |
+
label="Quantized Vector:",
|
| 696 |
+
interactive=False,
|
| 697 |
+
visible=False,
|
| 698 |
+
)
|
| 699 |
|
| 700 |
with gr.Column(scale=1, min_width=600):
|
| 701 |
enc_vect_box = gr.Textbox(
|
| 702 |
+
label="Encrypted Vector:",
|
| 703 |
+
max_lines=3,
|
| 704 |
+
interactive=False,
|
| 705 |
)
|
| 706 |
|
| 707 |
encrypt_btn.click(
|
|
|
|
| 716 |
)
|
| 717 |
|
| 718 |
gr.Markdown(
|
| 719 |
+
"## Send the encrypted data to the "
|
| 720 |
+
"<span style='color:grey'>Server Side</span>"
|
| 721 |
)
|
| 722 |
|
| 723 |
+
error_box4 = gr.Textbox(label="Error ❌", visible=False)
|
| 724 |
|
| 725 |
with gr.Row().style(equal_height=False):
|
| 726 |
with gr.Column(scale=4):
|
| 727 |
+
send_input_btn = gr.Button("Send the encrypted data 👆")
|
| 728 |
with gr.Column(scale=1):
|
| 729 |
srv_resp_send_data_box = gr.Checkbox(
|
| 730 |
label="Data Sent", show_label=False, interactive=False
|
|
|
|
| 735 |
inputs=[user_id_box, user_vect_box1],
|
| 736 |
outputs=[error_box4, srv_resp_send_data_box],
|
| 737 |
)
|
| 738 |
+
|
| 739 |
+
gr.Markdown("\n\n")
|
| 740 |
with gr.Row().style(equal_height=True):
|
| 741 |
with gr.Column(scale=1):
|
| 742 |
+
prev_tab = gr.Button("👈 Previous Step")
|
| 743 |
+
prev_tab.click(lambda _: gr.Tabs.update(selected=0), None, tabs)
|
| 744 |
|
| 745 |
with gr.Column(scale=1):
|
| 746 |
+
next_tab = gr.Button("Next Step 👉")
|
| 747 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=2), None, tabs)
|
|
|
|
|
|
|
| 748 |
|
| 749 |
with gr.TabItem("3. FHE execution", id=2):
|
| 750 |
+
gr.Markdown("<span style='color:grey'>Server Side</span>")
|
| 751 |
+
gr.Markdown("## Run the FHE evaluation")
|
| 752 |
+
gr.Markdown(
|
| 753 |
+
"Once the server receives the encrypted data, it can process and compute the output without ever decrypting the data just as it would on clear data.\n\n"
|
| 754 |
+
"This server employs a logistic regression model that has been trained on this [data-set](https://github.com/anujdutt9/Disease-Prediction-from-Symptoms/tree/master/dataset)."
|
| 755 |
+
)
|
| 756 |
|
| 757 |
+
run_fhe_btn = gr.Button("Run the FHE evaluation 👆")
|
| 758 |
+
error_box5 = gr.Textbox(label="Error ❌", visible=False)
|
| 759 |
fhe_execution_time_box = gr.Textbox(
|
| 760 |
+
label="Total FHE Execution Time:", interactive=False, visible=True
|
| 761 |
)
|
| 762 |
|
| 763 |
run_fhe_btn.click(
|
|
|
|
| 766 |
outputs=[fhe_execution_time_box, error_box5],
|
| 767 |
)
|
| 768 |
|
| 769 |
+
gr.Markdown("\n\n")
|
| 770 |
with gr.Row().style(equal_height=True):
|
| 771 |
with gr.Column(scale=1):
|
| 772 |
+
prev_tab = gr.Button("👈 Previous Step")
|
| 773 |
prev_tab.click(lambda _: gr.Tabs.update(selected=1), None, tabs)
|
| 774 |
|
| 775 |
with gr.Column(scale=1):
|
| 776 |
+
next_tab = gr.Button("Next Step 👉 ")
|
| 777 |
next_tab.click(lambda _: gr.Tabs.update(selected=3), None, tabs)
|
|
|
|
|
|
|
| 778 |
|
| 779 |
with gr.TabItem("4. Data Decryption", id=3):
|
| 780 |
+
gr.Markdown("<span style='color:grey'>Client Side</span>")
|
| 781 |
+
gr.Markdown("## Get the data from the <span style='color:grey'>Server Side</span>")
|
|
|
|
|
|
|
| 782 |
|
| 783 |
+
error_box6 = gr.Textbox(label="Error ❌", visible=False)
|
| 784 |
|
| 785 |
with gr.Row().style(equal_height=True):
|
| 786 |
with gr.Column(scale=4):
|
| 787 |
+
get_output_btn = gr.Button("Get data 👆")
|
| 788 |
with gr.Column(scale=1):
|
| 789 |
srv_resp_retrieve_data_box = gr.Checkbox(
|
| 790 |
label="Data Received", show_label=False, interactive=False
|
|
|
|
| 796 |
outputs=[srv_resp_retrieve_data_box, error_box6],
|
| 797 |
)
|
| 798 |
|
| 799 |
+
gr.Markdown("## Decrypt the output")
|
| 800 |
|
| 801 |
+
recap_symptoms_box = gr.Textbox(
|
| 802 |
+
label="Summary of chief complaints:", visible=False, max_lines=3
|
| 803 |
+
)
|
| 804 |
+
|
| 805 |
+
decrypt_target_btn = gr.Button(
|
| 806 |
+
"Decrypt the output with the 🔒 private secret decryption key 👆"
|
| 807 |
+
)
|
| 808 |
+
error_box7 = gr.Textbox(label="Error ❌", visible=False)
|
| 809 |
+
decrypt_target_box = gr.Textbox(label="Decrypted Output:", interactive=False)
|
| 810 |
|
| 811 |
decrypt_target_btn.click(
|
| 812 |
decrypt_fn,
|
|
|
|
| 814 |
outputs=[decrypt_target_box, error_box7],
|
| 815 |
)
|
| 816 |
|
| 817 |
+
with gr.Row().style(equal_height=True):
|
| 818 |
+
with gr.Column(scale=1):
|
| 819 |
+
prev_tab = gr.Button("👈 Previous Step")
|
| 820 |
+
prev_tab.click(lambda _: gr.Tabs.update(selected=2), None, tabs)
|
| 821 |
+
|
| 822 |
+
with gr.Column(scale=1):
|
| 823 |
+
next_tab = gr.Button("👈 👈 Go back to start")
|
| 824 |
+
next_tab.click(lambda _: gr.Tabs.update(selected=0), None, tabs)
|
| 825 |
+
|
| 826 |
+
submit_button.click(
|
| 827 |
+
fn=get_features_fn,
|
| 828 |
+
inputs=[*check_boxes],
|
| 829 |
+
outputs=[user_vect_box1, error_box1, recap_symptoms_box],
|
| 830 |
+
)
|
| 831 |
|
| 832 |
clear_button.click(
|
| 833 |
reset_fn,
|
|
|
|
| 842 |
error_box5,
|
| 843 |
error_box6,
|
| 844 |
error_box7,
|
| 845 |
+
disease_box,
|
| 846 |
+
default_symptoms,
|
| 847 |
+
recap_symptoms_box,
|
| 848 |
user_id_box,
|
| 849 |
key_len_box,
|
| 850 |
key_box,
|
data/Testing_preprocessed.csv
CHANGED
|
@@ -1,43 +1,43 @@
|
|
| 1 |
-
itching,skin_rash,nodal_skin_eruptions,continuous_sneezing,shivering,chills,joint_pain,stomach_pain,acidity,ulcers_on_tongue,muscle_wasting,vomiting,burning_micturition,spotting_urination,fatigue,weight_gain,anxiety,cold_hands_and_feets,mood_swings,weight_loss,restlessness,lethargy,patches_in_throat,irregular_sugar_level,cough,high_fever,sunken_eyes,breathlessness,sweating,dehydration,indigestion,headache,yellowish_skin,dark_urine,nausea,loss_of_appetite,pain_behind_the_eyes,back_pain,constipation,abdominal_pain,
|
| 2 |
-
1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 3 |
-
0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 4 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 5 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 6 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 7 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 8 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 9 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 10 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 11 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 12 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 13 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 14 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 15 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 16 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 17 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 18 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,
|
| 19 |
-
0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 20 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,
|
| 21 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 22 |
-
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,
|
| 23 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 24 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 25 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 26 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,
|
| 27 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,
|
| 28 |
-
0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 29 |
-
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 30 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 31 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 32 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 33 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,
|
| 34 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 35 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 36 |
-
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 37 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 38 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 39 |
-
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 40 |
-
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 41 |
-
0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 42 |
-
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
| 43 |
-
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
|
|
|
|
| 1 |
+
itching,skin_rash,nodal_skin_eruptions,continuous_sneezing,shivering,chills,joint_pain,stomach_pain,acidity,ulcers_on_tongue,muscle_wasting,vomiting,burning_micturition,spotting_urination,fatigue,weight_gain,anxiety,cold_hands_and_feets,mood_swings,weight_loss,restlessness,lethargy,patches_in_throat,irregular_sugar_level,cough,high_fever,sunken_eyes,breathlessness,sweating,dehydration,indigestion,headache,yellowish_skin,dark_urine,nausea,loss_of_appetite,pain_behind_the_eyes,back_pain,constipation,abdominal_pain,diarrhea,mild_fever,yellow_urine,yellowing_of_eyes,acute_liver_failure,swelling_of_stomach,swelled_lymph_nodes,malaise,blurred_and_distorted_vision,phlegm,throat_irritation,redness_of_eyes,sinus_pressure,runny_nose,congestion,chest_pain,weakness_in_limbs,fast_heart_rate,pain_during_bowel_movements,pain_in_anal_region,bloody_stool,irritation_in_anus,neck_pain,dizziness,cramps,bruising,excess_body_fat,swollen_legs,swollen_blood_vessels,puffy_face_and_eyes,enlarged_thyroid,brittle_nails,swollen_extremeties,excessive_hunger,frequent_unprotected_sexual_intercourse_with_multiple_partners,drying_and_tingling_lips,slurred_speech,knee_pain,hip_joint_pain,muscle_weakness,stiff_neck,swelling_joints,movement_stiffness,spinning_movements,loss_of_balance,unsteadiness,weakness_of_one_body_side,loss_of_smell,bladder_discomfort,foul_smell_of_urine,continuous_feel_of_urine,passage_of_gases,internal_itching,toxic_look_(typhus),irritability,muscle_pain,altered_sensorium,red_spots_over_body,abnormal_menstruation,dischromic_patches,watering_from_eyes,increased_appetite,polyuria,family_history,mucoid_sputum,rusty_sputum,lack_of_concentration,visual_disturbances,receiving_blood_transfusion,receiving_unsterile_injections,stomach_bleeding,distention_of_abdomen,chronic_alcohol_abuse,severe_fluid_overload,blood_in_sputum,prominent_veins_on_calf,palpitations,painful_walking,pus_filled_pimples,blackheads,scurving,skin_peeling,silver_like_dusting,small_dents_in_nails,inflammatory_nails,blister,red_sore_around_nose,yellow_crust_ooze,prognosis,prognosis_encoded
|
| 2 |
+
1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Fungal Infection,14
|
| 3 |
+
0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Allergy,3
|
| 4 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Gerd,16
|
| 5 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Chronic Cholestasis,8
|
| 6 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Drug Reaction,13
|
| 7 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Peptic Ulcer,34
|
| 8 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Aids,1
|
| 9 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Diabetes ,11
|
| 10 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Gastroenteritis,15
|
| 11 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Bronchial Asthma,5
|
| 12 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypertension ,23
|
| 13 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Migraine,30
|
| 14 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Cervical Spondylosis,6
|
| 15 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Paralysis (Brain Hemorrhage),32
|
| 16 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Jaundice,28
|
| 17 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Malaria,29
|
| 18 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Chicken Pox,7
|
| 19 |
+
0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Dengue,10
|
| 20 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Typhoid,38
|
| 21 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis A,18
|
| 22 |
+
1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis B,19
|
| 23 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis C,20
|
| 24 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis D,21
|
| 25 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hepatitis E,22
|
| 26 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Alcoholic Hepatitis,2
|
| 27 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Tuberculosis,37
|
| 28 |
+
0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Common Cold,9
|
| 29 |
+
0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Pneumonia,35
|
| 30 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Dimorphic Hemmorhoids (Piles),12
|
| 31 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Heart Attack,17
|
| 32 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Varicose Veins,40
|
| 33 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypothyroidism,26
|
| 34 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hyperthyroidism,24
|
| 35 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Hypoglycemia,25
|
| 36 |
+
0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Osteoarthristis,31
|
| 37 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Arthritis,4
|
| 38 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Paroxymsal Positional Vertigo,33
|
| 39 |
+
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Acne,0
|
| 40 |
+
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,Urinary Tract Infection,39
|
| 41 |
+
0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,Psoriasis,36
|
| 42 |
+
0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,Impetigo,27
|
| 43 |
+
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,Fungal Infection,14
|
data/Training_preprocessed.csv
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
deployment_logit/client.zip
ADDED
|
Binary file (2.91 kB). View file
|
|
|
deployment_logit/server.zip
ADDED
|
Binary file (2.64 kB). View file
|
|
|
deployment_logit/versions.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_11/client.zip
ADDED
|
Binary file (2.91 kB). View file
|
|
|
deployment_logit_11/server.zip
ADDED
|
Binary file (2.63 kB). View file
|
|
|
deployment_logit_11/versions.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_12/client.zip
ADDED
|
Binary file (2.89 kB). View file
|
|
|
deployment_logit_12/server.zip
ADDED
|
Binary file (5.2 kB). View file
|
|
|
deployment_logit_12/versions.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_logit_13/client.zip
ADDED
|
Binary file (2.89 kB). View file
|
|
|
deployment_logit_13/server.zip
ADDED
|
Binary file (5.22 kB). View file
|
|
|
deployment_logit_13/versions.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
deployment_xgb/client.zip
ADDED
|
Binary file (88.5 kB). View file
|
|
|
deployment_xgb/server.zip
ADDED
|
Binary file (8.53 kB). View file
|
|
|
deployment_xgb/versions.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"concrete-ml": "1.0.3", "concrete-python": "1.0.0", "python": "3.10.6"}
|
symptoms_categories.py
CHANGED
|
@@ -7,16 +7,16 @@ Each variable contains a list of symptoms sthat can be pecific to a part of the
|
|
| 7 |
of similar symptoms.
|
| 8 |
"""
|
| 9 |
|
| 10 |
-
|
| 11 |
-
|
|
|
|
| 12 |
"stomach_pain",
|
| 13 |
"acidity",
|
| 14 |
"vomiting",
|
| 15 |
"indigestion",
|
| 16 |
"constipation",
|
| 17 |
"abdominal_pain",
|
| 18 |
-
"
|
| 19 |
-
"belly_pain",
|
| 20 |
"nausea",
|
| 21 |
"distention_of_abdomen",
|
| 22 |
"stomach_bleeding",
|
|
@@ -33,8 +33,8 @@ DIGESTIVE_SYSTEM_SYPTOMS = {
|
|
| 33 |
]
|
| 34 |
}
|
| 35 |
|
| 36 |
-
|
| 37 |
-
"
|
| 38 |
"itching",
|
| 39 |
"skin_rash",
|
| 40 |
"pus_filled_pimples",
|
|
@@ -50,11 +50,12 @@ SKIN_SYPTOMS = {
|
|
| 50 |
"yellow_crust_ooze",
|
| 51 |
"dischromic_patches",
|
| 52 |
"nodal_skin_eruptions",
|
|
|
|
| 53 |
]
|
| 54 |
}
|
| 55 |
|
| 56 |
ORL_SYMPTOMS = {
|
| 57 |
-
"
|
| 58 |
"loss_of_smell",
|
| 59 |
"continuous_sneezing",
|
| 60 |
"runny_nose",
|
|
@@ -70,7 +71,7 @@ ORL_SYMPTOMS = {
|
|
| 70 |
}
|
| 71 |
|
| 72 |
THORAX_SYMPTOMS = {
|
| 73 |
-
"
|
| 74 |
"breathlessness",
|
| 75 |
"chest_pain",
|
| 76 |
"cough",
|
|
@@ -84,7 +85,7 @@ THORAX_SYMPTOMS = {
|
|
| 84 |
}
|
| 85 |
|
| 86 |
EYES_SYMPTOMS = {
|
| 87 |
-
"
|
| 88 |
"sunken_eyes",
|
| 89 |
"redness_of_eyes",
|
| 90 |
"watering_from_eyes",
|
|
@@ -95,7 +96,7 @@ EYES_SYMPTOMS = {
|
|
| 95 |
}
|
| 96 |
|
| 97 |
VASCULAR_LYMPHATIC_SYMPTOMS = {
|
| 98 |
-
"
|
| 99 |
"cold_hands_and_feets",
|
| 100 |
"swollen_blood_vessels",
|
| 101 |
"swollen_legs",
|
|
@@ -104,14 +105,13 @@ VASCULAR_LYMPHATIC_SYMPTOMS = {
|
|
| 104 |
"prominent_veins_on_calf",
|
| 105 |
"yellowing_of_eyes",
|
| 106 |
"puffy_face_and_eyes",
|
| 107 |
-
"
|
| 108 |
-
"fluid_overload.1",
|
| 109 |
"swollen_extremeties",
|
| 110 |
]
|
| 111 |
}
|
| 112 |
|
| 113 |
UROLOGICAL_SYMPTOMS = {
|
| 114 |
-
"
|
| 115 |
"burning_micturition",
|
| 116 |
"spotting_urination",
|
| 117 |
"yellow_urine",
|
|
@@ -124,7 +124,7 @@ UROLOGICAL_SYMPTOMS = {
|
|
| 124 |
}
|
| 125 |
|
| 126 |
MUSCULOSKELETAL_SYMPTOMS = {
|
| 127 |
-
"
|
| 128 |
"joint_pain",
|
| 129 |
"muscle_wasting",
|
| 130 |
"muscle_pain",
|
|
@@ -143,13 +143,12 @@ MUSCULOSKELETAL_SYMPTOMS = {
|
|
| 143 |
]
|
| 144 |
}
|
| 145 |
|
| 146 |
-
|
| 147 |
-
"
|
| 148 |
"anxiety",
|
| 149 |
"restlessness",
|
| 150 |
"lethargy",
|
| 151 |
"mood_swings",
|
| 152 |
-
"depression",
|
| 153 |
"irritability",
|
| 154 |
"lack_of_concentration",
|
| 155 |
"fatigue",
|
|
@@ -158,13 +157,8 @@ FEELING_SYMPTOMS = {
|
|
| 158 |
"increased_appetite",
|
| 159 |
"weight_loss",
|
| 160 |
"loss_of_appetite",
|
| 161 |
-
"
|
| 162 |
"excessive_hunger",
|
| 163 |
-
]
|
| 164 |
-
}
|
| 165 |
-
|
| 166 |
-
OTHER_SYMPTOMS = {
|
| 167 |
-
"OTHER_SYMPTOMS": [
|
| 168 |
"ulcers_on_tongue",
|
| 169 |
"shivering",
|
| 170 |
"chills",
|
|
@@ -174,36 +168,27 @@ OTHER_SYMPTOMS = {
|
|
| 174 |
"sweating",
|
| 175 |
"internal_itching",
|
| 176 |
"mild_fever",
|
| 177 |
-
"toxic_look_(typhos)",
|
| 178 |
"acute_liver_failure",
|
| 179 |
"dehydration",
|
| 180 |
"headache",
|
| 181 |
-
"
|
| 182 |
"drying_and_tingling_lips",
|
| 183 |
"altered_sensorium",
|
| 184 |
-
]
|
| 185 |
-
}
|
| 186 |
-
|
| 187 |
-
PATIENT_HISTORY = {
|
| 188 |
-
"PATIENT_HISTORY": [
|
| 189 |
"family_history",
|
| 190 |
"receiving_blood_transfusion",
|
| 191 |
"receiving_unsterile_injections",
|
| 192 |
-
"
|
| 193 |
-
"coma",
|
| 194 |
]
|
| 195 |
}
|
| 196 |
|
| 197 |
SYMPTOMS_LIST = [
|
| 198 |
-
|
| 199 |
EYES_SYMPTOMS,
|
| 200 |
ORL_SYMPTOMS,
|
| 201 |
THORAX_SYMPTOMS,
|
| 202 |
-
|
| 203 |
UROLOGICAL_SYMPTOMS,
|
| 204 |
VASCULAR_LYMPHATIC_SYMPTOMS,
|
| 205 |
MUSCULOSKELETAL_SYMPTOMS,
|
| 206 |
-
|
| 207 |
-
PATIENT_HISTORY,
|
| 208 |
-
OTHER_SYMPTOMS,
|
| 209 |
]
|
|
|
|
| 7 |
of similar symptoms.
|
| 8 |
"""
|
| 9 |
|
| 10 |
+
|
| 11 |
+
DIGESTIVE_SYSTEM_SYMPTOMS = {
|
| 12 |
+
"DIGESTIVE_SYSTEM_CONCERNS": [
|
| 13 |
"stomach_pain",
|
| 14 |
"acidity",
|
| 15 |
"vomiting",
|
| 16 |
"indigestion",
|
| 17 |
"constipation",
|
| 18 |
"abdominal_pain",
|
| 19 |
+
"diarrhea",
|
|
|
|
| 20 |
"nausea",
|
| 21 |
"distention_of_abdomen",
|
| 22 |
"stomach_bleeding",
|
|
|
|
| 33 |
]
|
| 34 |
}
|
| 35 |
|
| 36 |
+
SKIN_SYMPTOMS = {
|
| 37 |
+
"SKIN_CONCERNS": [
|
| 38 |
"itching",
|
| 39 |
"skin_rash",
|
| 40 |
"pus_filled_pimples",
|
|
|
|
| 50 |
"yellow_crust_ooze",
|
| 51 |
"dischromic_patches",
|
| 52 |
"nodal_skin_eruptions",
|
| 53 |
+
"toxic_look_(typhus)",
|
| 54 |
]
|
| 55 |
}
|
| 56 |
|
| 57 |
ORL_SYMPTOMS = {
|
| 58 |
+
"ORL_CONCERNS": [
|
| 59 |
"loss_of_smell",
|
| 60 |
"continuous_sneezing",
|
| 61 |
"runny_nose",
|
|
|
|
| 71 |
}
|
| 72 |
|
| 73 |
THORAX_SYMPTOMS = {
|
| 74 |
+
"THORAX_CONCERNS": [
|
| 75 |
"breathlessness",
|
| 76 |
"chest_pain",
|
| 77 |
"cough",
|
|
|
|
| 85 |
}
|
| 86 |
|
| 87 |
EYES_SYMPTOMS = {
|
| 88 |
+
"EYES_CONCERNS": [
|
| 89 |
"sunken_eyes",
|
| 90 |
"redness_of_eyes",
|
| 91 |
"watering_from_eyes",
|
|
|
|
| 96 |
}
|
| 97 |
|
| 98 |
VASCULAR_LYMPHATIC_SYMPTOMS = {
|
| 99 |
+
"VASCULAR_LYMPHATIC_CONCERNS": [
|
| 100 |
"cold_hands_and_feets",
|
| 101 |
"swollen_blood_vessels",
|
| 102 |
"swollen_legs",
|
|
|
|
| 105 |
"prominent_veins_on_calf",
|
| 106 |
"yellowing_of_eyes",
|
| 107 |
"puffy_face_and_eyes",
|
| 108 |
+
"severe_fluid_overload",
|
|
|
|
| 109 |
"swollen_extremeties",
|
| 110 |
]
|
| 111 |
}
|
| 112 |
|
| 113 |
UROLOGICAL_SYMPTOMS = {
|
| 114 |
+
"UROLOGICAL_CONCERNS": [
|
| 115 |
"burning_micturition",
|
| 116 |
"spotting_urination",
|
| 117 |
"yellow_urine",
|
|
|
|
| 124 |
}
|
| 125 |
|
| 126 |
MUSCULOSKELETAL_SYMPTOMS = {
|
| 127 |
+
"MUSCULOSKELETAL_CONCERNS": [
|
| 128 |
"joint_pain",
|
| 129 |
"muscle_wasting",
|
| 130 |
"muscle_pain",
|
|
|
|
| 143 |
]
|
| 144 |
}
|
| 145 |
|
| 146 |
+
GENERAL_SYMPTOMS = {
|
| 147 |
+
"GENERAL_CONCERNS": [
|
| 148 |
"anxiety",
|
| 149 |
"restlessness",
|
| 150 |
"lethargy",
|
| 151 |
"mood_swings",
|
|
|
|
| 152 |
"irritability",
|
| 153 |
"lack_of_concentration",
|
| 154 |
"fatigue",
|
|
|
|
| 157 |
"increased_appetite",
|
| 158 |
"weight_loss",
|
| 159 |
"loss_of_appetite",
|
| 160 |
+
"excess_body_fat",
|
| 161 |
"excessive_hunger",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 162 |
"ulcers_on_tongue",
|
| 163 |
"shivering",
|
| 164 |
"chills",
|
|
|
|
| 168 |
"sweating",
|
| 169 |
"internal_itching",
|
| 170 |
"mild_fever",
|
|
|
|
| 171 |
"acute_liver_failure",
|
| 172 |
"dehydration",
|
| 173 |
"headache",
|
| 174 |
+
"frequent_unprotected_sexual_intercourse_with_multiple_partners",
|
| 175 |
"drying_and_tingling_lips",
|
| 176 |
"altered_sensorium",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 177 |
"family_history",
|
| 178 |
"receiving_blood_transfusion",
|
| 179 |
"receiving_unsterile_injections",
|
| 180 |
+
"chronic_alcohol_abuse",
|
|
|
|
| 181 |
]
|
| 182 |
}
|
| 183 |
|
| 184 |
SYMPTOMS_LIST = [
|
| 185 |
+
SKIN_SYMPTOMS,
|
| 186 |
EYES_SYMPTOMS,
|
| 187 |
ORL_SYMPTOMS,
|
| 188 |
THORAX_SYMPTOMS,
|
| 189 |
+
DIGESTIVE_SYSTEM_SYMPTOMS,
|
| 190 |
UROLOGICAL_SYMPTOMS,
|
| 191 |
VASCULAR_LYMPHATIC_SYMPTOMS,
|
| 192 |
MUSCULOSKELETAL_SYMPTOMS,
|
| 193 |
+
GENERAL_SYMPTOMS,
|
|
|
|
|
|
|
| 194 |
]
|
utils.py
CHANGED
|
@@ -16,7 +16,7 @@ INPUT_BROWSER_LIMIT = 635
|
|
| 16 |
SERVER_URL = "http://localhost:8000/"
|
| 17 |
|
| 18 |
CURRENT_DIR = Path(__file__).parent
|
| 19 |
-
DEPLOYMENT_DIR = CURRENT_DIR / "
|
| 20 |
KEYS_DIR = DEPLOYMENT_DIR / ".fhe_keys"
|
| 21 |
CLIENT_DIR = DEPLOYMENT_DIR / "client_dir"
|
| 22 |
SERVER_DIR = DEPLOYMENT_DIR / "server_dir"
|
|
@@ -31,8 +31,12 @@ TESTING_FILENAME = "./data/Testing_preprocessed.csv"
|
|
| 31 |
|
| 32 |
# pylint: disable=invalid-name
|
| 33 |
|
|
|
|
| 34 |
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
| 36 |
"""
|
| 37 |
Prettify and sort the input as a list of string.
|
| 38 |
|
|
@@ -43,20 +47,21 @@ def pretty_print(inputs):
|
|
| 43 |
List: The prettified and sorted list of inputs.
|
| 44 |
|
| 45 |
"""
|
| 46 |
-
# Convert to a list if necessary
|
| 47 |
-
if not isinstance(inputs, (List, Tuple)):
|
| 48 |
-
inputs = list(inputs)
|
| 49 |
-
|
| 50 |
# Flatten the list if required
|
| 51 |
pretty_list = []
|
| 52 |
for item in inputs:
|
| 53 |
if isinstance(item, list):
|
| 54 |
-
pretty_list.extend(
|
| 55 |
else:
|
| 56 |
-
pretty_list.append(
|
| 57 |
|
| 58 |
-
# Sort
|
| 59 |
pretty_list = sorted(list(set(pretty_list)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
|
| 61 |
return pretty_list
|
| 62 |
|
|
@@ -113,7 +118,12 @@ def load_data() -> Union[Tuple[pandas.DataFrame, numpy.ndarray], List]:
|
|
| 113 |
y_test = df_test[TARGET_COLUMNS[0]]
|
| 114 |
X_test = df_test.drop(columns=TARGET_COLUMNS, axis=1, errors="ignore")
|
| 115 |
|
| 116 |
-
return (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
|
| 118 |
|
| 119 |
def load_model(X_train: pandas.DataFrame, y_train: numpy.ndarray):
|
|
|
|
| 16 |
SERVER_URL = "http://localhost:8000/"
|
| 17 |
|
| 18 |
CURRENT_DIR = Path(__file__).parent
|
| 19 |
+
DEPLOYMENT_DIR = CURRENT_DIR / "deployment_logit_11"
|
| 20 |
KEYS_DIR = DEPLOYMENT_DIR / ".fhe_keys"
|
| 21 |
CLIENT_DIR = DEPLOYMENT_DIR / "client_dir"
|
| 22 |
SERVER_DIR = DEPLOYMENT_DIR / "server_dir"
|
|
|
|
| 31 |
|
| 32 |
# pylint: disable=invalid-name
|
| 33 |
|
| 34 |
+
from typing import List, Tuple
|
| 35 |
|
| 36 |
+
|
| 37 |
+
def pretty_print(
|
| 38 |
+
inputs, case_conversion=str.title, which_replace: str = "_", to_what: str = " ", delimiter=None
|
| 39 |
+
):
|
| 40 |
"""
|
| 41 |
Prettify and sort the input as a list of string.
|
| 42 |
|
|
|
|
| 47 |
List: The prettified and sorted list of inputs.
|
| 48 |
|
| 49 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
# Flatten the list if required
|
| 51 |
pretty_list = []
|
| 52 |
for item in inputs:
|
| 53 |
if isinstance(item, list):
|
| 54 |
+
pretty_list.extend(item)
|
| 55 |
else:
|
| 56 |
+
pretty_list.append(item)
|
| 57 |
|
| 58 |
+
# Sort
|
| 59 |
pretty_list = sorted(list(set(pretty_list)))
|
| 60 |
+
# Replace
|
| 61 |
+
pretty_list = [item.replace(which_replace, to_what) for item in pretty_list]
|
| 62 |
+
pretty_list = [case_conversion(item) for item in pretty_list]
|
| 63 |
+
if delimiter:
|
| 64 |
+
pretty_list = f"{delimiter.join(pretty_list)}."
|
| 65 |
|
| 66 |
return pretty_list
|
| 67 |
|
|
|
|
| 118 |
y_test = df_test[TARGET_COLUMNS[0]]
|
| 119 |
X_test = df_test.drop(columns=TARGET_COLUMNS, axis=1, errors="ignore")
|
| 120 |
|
| 121 |
+
return (
|
| 122 |
+
(X_train, X_test),
|
| 123 |
+
(y_train, y_test),
|
| 124 |
+
X_train.columns.to_list(),
|
| 125 |
+
df_train[TARGET_COLUMNS[1]].unique().tolist(),
|
| 126 |
+
)
|
| 127 |
|
| 128 |
|
| 129 |
def load_model(X_train: pandas.DataFrame, y_train: numpy.ndarray):
|