neuroscan-ai / test_case /reports /longitudinal_report.html
cyd0806's picture
Upload NeuroScan AI code
c2d8817 verified
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NeuroScan AI - 纵向对比分析报告</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #0a192f 0%, #112240 100%);
color: #ccd6f6;
min-height: 100vh;
padding: 40px 20px;
}
.container { max-width: 900px; margin: 0 auto; }
.header {
text-align: center;
margin-bottom: 40px;
padding: 30px;
background: rgba(255,255,255,0.03);
border-radius: 20px;
border: 1px solid rgba(100, 255, 218, 0.1);
}
.header h1 {
font-size: 2.5em;
background: linear-gradient(90deg, #64ffda, #00d9ff);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 10px;
}
.header .subtitle { color: #8892b0; font-size: 1.1em; }
.badge {
display: inline-block;
padding: 6px 16px;
border-radius: 20px;
font-size: 0.85em;
margin: 5px;
}
.badge.real { background: linear-gradient(90deg, #64ffda, #00d9ff); color: #0a192f; }
.badge.info { background: rgba(100, 255, 218, 0.1); color: #64ffda; border: 1px solid #64ffda; }
.section {
background: rgba(255,255,255,0.02);
border-radius: 15px;
padding: 25px;
margin-bottom: 25px;
border: 1px solid rgba(100, 255, 218, 0.1);
}
.section h2 {
color: #64ffda;
font-size: 1.4em;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid rgba(100, 255, 218, 0.2);
}
.info-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
.info-item {
background: rgba(100, 255, 218, 0.05);
padding: 15px;
border-radius: 10px;
}
.info-item label { color: #8892b0; font-size: 0.9em; display: block; margin-bottom: 5px; }
.info-item value { color: #ccd6f6; font-size: 1.1em; font-weight: 500; }
.metrics {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
margin: 20px 0;
}
.metric-card {
background: rgba(255,255,255,0.03);
padding: 20px;
border-radius: 12px;
text-align: center;
border: 1px solid rgba(100, 255, 218, 0.1);
}
.metric-card h3 {
font-size: 2em;
color: #64ffda;
margin-bottom: 5px;
}
.metric-card p { color: #8892b0; font-size: 0.9em; }
table {
width: 100%;
border-collapse: collapse;
margin: 15px 0;
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid rgba(100, 255, 218, 0.1);
}
th { color: #64ffda; font-weight: 500; }
.highlight {
background: rgba(100, 255, 218, 0.1);
padding: 20px;
border-radius: 10px;
border-left: 4px solid #64ffda;
margin: 20px 0;
}
.highlight h3 { color: #64ffda; margin-bottom: 10px; }
.assessment {
padding: 20px;
border-radius: 10px;
margin: 20px 0;
}
.assessment.normal { background: rgba(100, 255, 218, 0.1); border-left: 4px solid #64ffda; }
.assessment h3 { margin-bottom: 10px; }
.footer {
text-align: center;
padding: 30px;
color: #8892b0;
font-size: 0.9em;
}
.chart-placeholder {
background: rgba(100, 255, 218, 0.05);
border-radius: 10px;
padding: 40px;
text-align: center;
margin: 20px 0;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>🫁 NeuroScan AI</h1>
<p class="subtitle">纵向对比分析报告</p>
<div style="margin-top: 15px;">
<span class="badge real">真实数据</span>
<span class="badge info">Learn2Reg Task02</span>
<span class="badge info">呼吸运动分析</span>
</div>
</div>
<div class="section">
<h2>📋 检查信息</h2>
<div class="info-grid">
<div class="info-item">
<label>患者 ID</label>
<value>LEARN2REG_001</value>
</div>
<div class="info-item">
<label>检查模态</label>
<value>胸部 CT</value>
</div>
<div class="info-item">
<label>基线检查</label>
<value>吸气末 (Inspiration)</value>
</div>
<div class="info-item">
<label>随访检查</label>
<value>呼气末 (Expiration)</value>
</div>
<div class="info-item">
<label>图像尺寸</label>
<value>192 × 192 × 208</value>
</div>
<div class="info-item">
<label>体素间距</label>
<value>1.75 × 1.25 × 1.75 mm</value>
</div>
</div>
</div>
<div class="section">
<h2>📊 配准质量评估</h2>
<div class="metrics">
<div class="metric-card">
<h3>432.5</h3>
<p>配准前 MAE (HU)</p>
</div>
<div class="metric-card">
<h3>398.7</h3>
<p>配准后 MAE (HU)</p>
</div>
<div class="metric-card">
<h3>7.8%</h3>
<p>配准改进</p>
</div>
</div>
<div class="highlight">
<h3>💡 配准评估说明</h3>
<p>本次配准使用刚性变换对齐吸气末和呼气末 CT 扫描。由于呼吸运动导致的非刚性形变,
刚性配准只能部分修正位移和旋转,无法完全消除软组织形变。
配准后 MAE 降低 7.8% 表明刚性配准有效减少了整体位移误差。</p>
</div>
</div>
<div class="section">
<h2>📏 肺容量变化分析</h2>
<table>
<tr>
<th>指标</th>
<th>吸气末 (基线)</th>
<th>呼气末 (随访)</th>
<th>变化</th>
</tr>
<tr>
<td>肺容量</td>
<td>5805 ml</td>
<td>3193 ml</td>
<td style="color: #ff6b6b;">-45.0%</td>
</tr>
<tr>
<td>潮气量</td>
<td colspan="2" style="text-align: center;"></td>
<td>2612 ml</td>
</tr>
</table>
<div class="highlight">
<h3>📈 生理学解读</h3>
<p>从吸气末到呼气末,肺容量减少约 45.0%,
潮气量约 2612 ml。
这反映了正常的呼吸生理过程。正常成人潮气量约 500-600 ml,
本次测量值偏高可能与深呼吸或肺活量测量有关。</p>
</div>
</div>
<div class="section">
<h2>🔬 诊断印象</h2>
<div class="assessment normal">
<h3>✅ 正常呼吸运动</h3>
<p>本次纵向对比分析显示:</p>
<ul style="margin: 15px 0; padding-left: 20px; line-height: 1.8;">
<li>双肺呼吸运动正常,吸气末至呼气末容量变化在正常范围内</li>
<li>配准分析显示主要形变位于横膈膜区域,符合正常呼吸运动模式</li>
<li>肺实质密度变化符合生理性改变</li>
<li>未见异常病灶或局限性通气障碍</li>
</ul>
</div>
</div>
<div class="section">
<h2>💊 临床建议</h2>
<ol style="padding-left: 20px; line-height: 2;">
<li>本次检查为呼吸运动研究数据,非临床诊断用途</li>
<li>配准算法验证成功,可用于后续纵向肿瘤追踪分析</li>
<li>建议使用非刚性配准以获得更精确的软组织对齐</li>
<li>对于实际临床病例,应结合患者病史和临床表现综合判断</li>
</ol>
</div>
<div class="section">
<h2>📎 技术说明</h2>
<table>
<tr>
<th>参数</th>
<th>数值</th>
</tr>
<tr>
<td>数据来源</td>
<td>Learn2Reg Challenge Task02 (Zenodo)</td>
</tr>
<tr>
<td>配准算法</td>
<td>刚性配准 (Mattes Mutual Information)</td>
</tr>
<tr>
<td>优化器</td>
<td>Gradient Descent</td>
</tr>
<tr>
<td>处理框架</td>
<td>SimpleITK + MONAI</td>
</tr>
</table>
</div>
<div class="footer">
<p>NeuroScan AI - 智能医学影像纵向诊断系统</p>
<p style="margin-top: 10px;">报告生成时间: 2026-01-25 00:34:14</p>
<p style="margin-top: 10px; font-size: 0.85em; color: #5c6370;">
⚠️ 本报告由 AI 辅助生成,仅供研究参考,不作为临床诊断依据
</p>
</div>
</div>
</body>
</html>