import asyncio import sys import os import re # Add the current directory to path so we can import qc_engine sys.path.append(os.path.dirname(__file__)) from qc_engine import qc_manager async def test_complex_report(): report_text = """ 姓名:张世红 性别:女 年龄:49 检查部位:全腹部螺旋CT平扫加扫50层 检查所见: 肝脏大小、形态正常、表面光整,肝脏各叶比例协调,肝左叶见多发点片状增高灶,肝内血管走行正常,肝内外胆管无扩张,胆囊不大,壁不厚,内未见明显异常。双肾见多发点片状致密增高灶,左侧输尿管腹段见多发点片状致密增高灶,最大直径约0.8cm,左肾积水;胰腺大小形态及密度正常,脾不大,质均匀,腹膜后未见肿大淋巴结。双侧血管走行未见明显异常,腹腔内结构正常,膀胱充盈良好,壁光滑无增厚,内未见明显异常灶度影。前列腺大小形态正常,内未见异常密度,双侧精囊腺正常,盆腔内未见肿大淋巴结。小肠内少量积气。 诊断结论: 1.左侧输尿管腹段多发结石,左肾积水; 2.双肾结石; 3.肝左叶内钙化灶 4.小肠内少量积气。 """ mock_report_data = { "report": report_text, "examinePart": "全腹部螺旋CT平扫加扫50层", "patient_info": { "sex": "女", "patientName": "张世红", "age": "49" }, "model": "consensus" } print("="*50) print("🚀 开始测试复杂样本:性别与器官严重冲突测试") print("="*50) print(f"姓名: {mock_report_data['patient_info']['patientName']}") print(f"性别: {mock_report_data['patient_info']['sex']}") print(f"检查部位: {mock_report_data['examinePart']}") print("-" * 20) try: result = await qc_manager.run_qc(mock_report_data) print("\n✅ 质控分析报告:") print(result) # 验证 JSON json_match = re.search(r"```json\s+([\s\S]*?)\s+```", result) if json_match: print("\n🔍 提取到的 JSON 结构:") print(json_match.group(1)) else: print("\n⚠️ 未能在结果中找到合法的 JSON 块") except Exception as e: print(f"\n❌ 测试失败: {e}") import traceback traceback.print_exc() if __name__ == "__main__": asyncio.run(test_complex_report())