Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -23,6 +23,9 @@ def json_to_markdown(data) -> str:
|
|
| 23 |
Handles both:
|
| 24 |
- Full dict with patient_id, hcc_code, model_version, final_analysis
|
| 25 |
- Just a list of diagnoses
|
|
|
|
|
|
|
|
|
|
| 26 |
"""
|
| 27 |
try:
|
| 28 |
# Case 1: full dict
|
|
@@ -43,7 +46,7 @@ def json_to_markdown(data) -> str:
|
|
| 43 |
# Header
|
| 44 |
md = f"""
|
| 45 |
<div style="border:2px solid #4CAF50; padding:15px; border-radius:10px; background:#f9fdf9;">
|
| 46 |
-
<h2 style="color:#2e7d32;">📋
|
| 47 |
<p><b>🧾 Patient ID:</b> {patient_id}</p>
|
| 48 |
<p><b>🏷️ HCC Code:</b> {hcc_code}</p>
|
| 49 |
<p><b>⚙️ Model Version:</b> {model_version}</p>
|
|
@@ -58,8 +61,20 @@ def json_to_markdown(data) -> str:
|
|
| 58 |
<h3 style="color:#1565c0;">{idx}. {diag.get("diagnosis", "Unknown Diagnosis")}</h3>
|
| 59 |
<p><b>ICD-10:</b> {diag.get("icd10", "N/A")}</p>
|
| 60 |
<p><b>Reference:</b> <a href="{diag.get("reference","")}" target="_blank">{diag.get("reference","")}</a></p>
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
<p><b>Clinical Status:</b> {diag.get("clinical_status","N/A")}</p>
|
| 64 |
<p><b>Status Rationale:</b> {diag.get("status_rationale","")}</p>
|
| 65 |
"""
|
|
@@ -116,6 +131,7 @@ def json_to_markdown(data) -> str:
|
|
| 116 |
|
| 117 |
|
| 118 |
|
|
|
|
| 119 |
# ---------- Pipeline ----------
|
| 120 |
# ---------- Updated Pipeline (single PDF) ----------
|
| 121 |
def process_pipeline(pdf_file, hcc_code, model_version, csv_path=CSV_PATH, output_folder="outputs"):
|
|
|
|
| 23 |
Handles both:
|
| 24 |
- Full dict with patient_id, hcc_code, model_version, final_analysis
|
| 25 |
- Just a list of diagnoses
|
| 26 |
+
Priorities:
|
| 27 |
+
- Explicit = yes takes priority over implicit
|
| 28 |
+
- MEAT, Tests, Comorbidities are expandable
|
| 29 |
"""
|
| 30 |
try:
|
| 31 |
# Case 1: full dict
|
|
|
|
| 46 |
# Header
|
| 47 |
md = f"""
|
| 48 |
<div style="border:2px solid #4CAF50; padding:15px; border-radius:10px; background:#f9fdf9;">
|
| 49 |
+
<h2 style="color:#2e7d32;">📋 HCC Chart Validation Report </h2>
|
| 50 |
<p><b>🧾 Patient ID:</b> {patient_id}</p>
|
| 51 |
<p><b>🏷️ HCC Code:</b> {hcc_code}</p>
|
| 52 |
<p><b>⚙️ Model Version:</b> {model_version}</p>
|
|
|
|
| 61 |
<h3 style="color:#1565c0;">{idx}. {diag.get("diagnosis", "Unknown Diagnosis")}</h3>
|
| 62 |
<p><b>ICD-10:</b> {diag.get("icd10", "N/A")}</p>
|
| 63 |
<p><b>Reference:</b> <a href="{diag.get("reference","")}" target="_blank">{diag.get("reference","")}</a></p>
|
| 64 |
+
"""
|
| 65 |
+
|
| 66 |
+
# --- Explicit / Implicit Priority ---
|
| 67 |
+
explicit_ans = diag.get("answer_explicit", "N/A")
|
| 68 |
+
explicit_rat = diag.get("rationale_explicit", "")
|
| 69 |
+
implicit_ans = diag.get("answer_implicit", "N/A")
|
| 70 |
+
implicit_rat = diag.get("rationale_implicit", "")
|
| 71 |
+
|
| 72 |
+
if explicit_ans.lower() == "yes":
|
| 73 |
+
md += f"<p><b>Explicit:</b> {explicit_ans} — {explicit_rat}</p>"
|
| 74 |
+
else:
|
| 75 |
+
md += f"<p><b>Implicit:</b> {implicit_ans} — {implicit_rat}</p>"
|
| 76 |
+
|
| 77 |
+
md += f"""
|
| 78 |
<p><b>Clinical Status:</b> {diag.get("clinical_status","N/A")}</p>
|
| 79 |
<p><b>Status Rationale:</b> {diag.get("status_rationale","")}</p>
|
| 80 |
"""
|
|
|
|
| 131 |
|
| 132 |
|
| 133 |
|
| 134 |
+
|
| 135 |
# ---------- Pipeline ----------
|
| 136 |
# ---------- Updated Pipeline (single PDF) ----------
|
| 137 |
def process_pipeline(pdf_file, hcc_code, model_version, csv_path=CSV_PATH, output_folder="outputs"):
|