import sys import os import io # Force UTF-8 for stdout sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') # Add src to path sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'services/ai-service/src'))) from ai_med_extract.utils.prompt_loader import load_system_prompt from ai_med_extract.agents.patient_summary_agent import PatientSummarizerAgent # 1. Verify Prompt Loading for User-Friendly instructions prompt = load_system_prompt("clinical_summary_optimized.txt") print("--- Loaded User-Friendly Prompt Snippet ---") print(prompt[:300] + "...") assert "" in prompt assert "accessible to patients and their families" in prompt print("✅ Prompt contains layperson-friendly instructions.") # 2. Verify Agent Headers agent = PatientSummarizerAgent() patient_data = { "patientname": "John Doe", "agey": "65", "gender": "Male", "patientid": "12345", "result": { "encounters": [{ "visit_date": "2024-01-01", "chief_complaint": "Chest Pain", "diagnosis": ["Acute Myocardial Infarction"], "dr_notes": "Patient stable on lisinopril.", "vitals": {"BP": "120/80"}, "medications": ["Lisinopril 10mg"] }] } } raw_summary = "## Clinical Snapshot (Current Status)\n- Patient Status: Stable\n- Primary Issue: Heart Attack [Myocardial Infarction]\n> ⚠️ Blood pressure is stable." formatted = agent.format_clinical_output(raw_summary, patient_data) print("\n--- Formatted Output Headers ---") print(formatted[:500] + "...") assert "PATIENT CLINICAL SUMMARY REPORT" in formatted assert "Who this report is for" in formatted assert "What needs to be addressed now" in formatted print("✅ Agent uses user-friendly headers.") # 3. Verify Evaluation Output eval_out = agent.evaluate_summary_against_guidelines(raw_summary, patient_data) print("\n--- Evaluation Output ---") print(eval_out[:300] + "...") assert "Quality & Accuracy Check" in eval_out assert "Health Information Standards" in eval_out print("✅ Evaluation output is user-friendly.") print("\n🚀 USER-FRIENDLY VERIFICATION SUCCESSFUL!")