You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.5 KiB
66 lines
2.5 KiB
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())
|
|
|