# 核对包说明 这个包是我们用程序处理你们交来的资料之后的结果,想请你们帮忙看一看:程序读到的报告和临床信息对不对,在造影视频上圈的病灶、取的关键帧、算出的 TIC 参数是否合理,问题清单里列的情况是否属实。不用填表,有意见直接告诉我们就好。 我们的系统给每个病例配了三位 AI 专家,分别只看临床信息、超声(报告和造影视频)、MR 报告,再让它们会诊。三位专家能看到的全部资料,我们叫「资料库」;包里的报告、临床信息、关键帧和 TIC 参数,就是它们看到的原样。这一版共 $total_cases 例:$passed_cases 例进了资料库,$skipped_cases 例因为资料或视频上的问题没进,原因写在问题清单里。 $ceus_note **包里有患者资料(报告、临床信息、超声图像和视频、病理诊断),只在我们双方之间传,请不要转给别人。** ## 一、包里有什么 - **说明.pdf**(这份说明)、**问题清单.csv**、**病例总表.csv**、**标准答案/**(3 张表):几张表见第六节。 - **病例/**:每个进了资料库的病例一个文件夹,名字是病例号(如 P001)。打开能看到: - **临床信息.csv**:临床那位 AI 专家看到的临床信息,列名沿用你们临床工作簿的原列名。$codes_note - **超声报告.pdf**、**MR报告.pdf**:报告里的描述部分,一字未改。结论(印象)部分写着诊断倾向,没有给 AI 专家,这里也就没有。 - **关键帧/**:「医生截图.png」是你们截的图;其余是程序从造影视频里取的画面,文件名如「D3_第12.4秒.png」,秒数是视频里的时间;没取到的时刻没有图。 - **TIC曲线.png**:时间-强度曲线图,见第四节。 - **TIC参数.csv**:11 个灌注参数,胰腺实质和病灶各一组,见第五节。 - **回放视频.mp4**:原视频上叠加了程序画的轮廓。 图片和视频都是原样,没有压缩或缩放。 ```{=openxml} 供我们追溯用:构建号 $build_id · 视频处理运行号 $ceus_run_id · 生成于 $generated_date ``` ## 二、看一个病例的建议顺序 1. **先读超声报告和 MR 报告**,心里有个病灶的样子。 2. **看关键帧文件夹里的医生截图**,确认是哪个病灶。 3. **看回放视频。** 绿框和紫圈是你们在视频上画的:绿框圈病灶,紫圈圈一块正常的胰腺实质。黄色线(造影那一屏)和绿色线(灰阶那一屏)是程序画的病灶轮廓;蓝色线圈出的是程序认为一直不进造影剂的部分(如囊液)。病灶轮廓内去掉蓝色部分,剩下的一般是囊壁、分隔、实性成分这些会进造影剂的部分,后面叫「病灶(去暗区)」。青色小圆圈是程序在病灶旁边挑的一小块背景,用来检查整段视频里机器的整体亮度(增益)有没有变化。请看轮廓是否一直跟着病灶、蓝色部分是否确实不增强。 4. **再看 TIC 曲线图**(第四节)**和关键帧**(第三节,每张是不是对应的时刻),**最后看 TIC 参数**(第五节)。 ## 三、7 个关键帧是什么时刻 - **B0**:增强之前,病灶还没变亮。 - **D1**:造影剂到达,病灶开始变亮。 - **D2**:变亮最快的时刻。 - **D3**:病灶最亮的时刻(峰值)。 - **D4**:变暗最快的时刻(廓清最快)。 - **F1**:推注后第 $f1_s 秒。 - **F2**:推注后第 $f2_s 秒;前后 $f2_tol_s 秒内没有能用的画面就不取。 B0 和 D1–D4 的找法:程序用一条平滑曲线分别去贴合「病灶整体」和「病灶(去暗区)」两条亮度曲线。两条都贴合上,才在病灶(去暗区)那条平滑曲线上定出这 5 个时刻,各取离它最近的一帧;其中 D1–D4 按时间先后取,后一个必须比前一个晚。两条里有一条没贴合上,这 5 个关键帧就都没有。 F1、F2 按超声表里的「推注开始时间s」换算。这个数我们理解为「视频第 0 秒时已经推注了多少秒」,所以推注后第 $f1_s 秒就在视频第 $f1_s − 这个数 秒。**如果你们的意思不是这样,请一定告诉我们**,否则 F1、F2 取的都是错的时刻。 「重复帧」是病灶那块画面和前一帧几乎一模一样的帧:视频录制时同一张画面被存了好几遍,它不是新的时刻,所以不用。「能用的画面」指不是重复帧、而且这一帧里程序认得出病灶区域的帧。 ## 四、TIC 曲线图上的英文 - **TIC: Lognormal fit**:图的标题,时间-强度曲线和贴合它的平滑曲线。 - **Time (s)**、**Grayscale intensity**:横轴是视频时间(秒),纵轴是画面亮度(灰度)。 - **roi_all raw**:蓝色小点,病灶整体(轮廓以内全部)每一帧的亮度。 - **roi_perf (dark removed) raw**:橙色小点,病灶(去暗区)每一帧的亮度。 - **roi_pan reference raw**:紫色小点,紫圈(胰腺实质)每一帧的亮度。 - **名字后面是 Lognormal fit 的粗实线**:程序贴合出的平滑曲线,只画贴合上的。 - **roi_pan reference Lognormal fit [QC rejected]**:紫色虚线,紫圈曲线没贴合上,仍画出来供参考;这时 TIC 参数里胰腺实质那一组是空的。 - **D1 model … D4 model**:竖虚线,平滑曲线上 D1–D4 的时刻。 - **竖线名字后面带方括号的**,表示这个时刻没取到关键帧:[no_frame_in_window] 这个时刻附近没有能用的画面;[no_ordered_frame] 附近能用的画面都不晚于前一个关键帧取的那一帧;[not_covered] 这个时刻不在视频里;[anchor_undefined] 两条病灶曲线没有都贴合上。 - **No plottable TIC data**:没有能画的数据。 ## 五、TIC 参数怎么看 TIC参数.csv 每行一个参数,两组数并排:**胰腺实质(紫圈)**和**病灶(去暗区)**,用意是让病灶和正常胰腺对着看。下面说的「开始变亮」「退回增强前水平」都是按切线定的:在变亮最快那一点(D2)画切线,与增强前水平的交点算开始变亮;在变暗最快那一点(D4)画切线,与增强前水平的交点算退回增强前水平。 - **PE 峰值增强**:最亮时比增强前亮了多少。 - **TTP 达峰时间**:最亮的时刻。 - **WiR 最大洗入斜率**:变亮最快时每秒亮多少。 - **RT 上升时间**:从开始变亮到最亮用了多久。 - **WiAUC 洗入曲线下面积**:从开始变亮到最亮这一段曲线下的面积,反映这段时间进来的造影剂多少。 - **WiPI 洗入灌注指数**:WiAUC 除以 RT,即变亮这一段的平均增强程度。 - **WoR 最大洗出斜率**:变暗最快时每秒暗多少,是负数。 - **FT 下降时间**:从最亮到退回增强前水平用了多久。 - **WoAUC 洗出曲线下面积**:从最亮到退回增强前水平这一段的面积。 - **WiWoAUC 洗入洗出曲线下面积**:上面两段面积加起来。 - **mTTl 平均渡越时间**:从开始变亮到退回增强前水平这一段里,造影剂平均停留了多久,从开始变亮算起;l 表示只在这一段(local)里算。 看这些数时请注意三点。一是数值在视频画面的亮度(灰度,0–255)上算,不是超声机内部的回声强度,单看一个数意义不大,主要看两组的对比。二是时间从视频第一帧算起,不是从推注算起。三是参数都从贴合出的平滑曲线上算:某一组曲线没贴合上,这一组整列空着,表的最后一行写了原因;个别格子空着,是视频录得不够长(如还没退回增强前水平就结束了),这一项算不出来,就空着,不去估。 ## 六、几张表 - **问题清单.csv**:一个问题一行:病例号、视频号(你们交付包里视频的编号,如 U001)、环节(资料核对、造影视频处理、TIC 曲线、关键帧、紫圈)和一句话说明;同一个原因引起的几件事合成一行。「资料核对」是资料本身的问题,你们改好重交就行;其余是程序处理视频和曲线时遇到的,想请你们看看那段视频本身有没有异常,告诉我们就好。 - **病例总表.csv**:全部病例一例一行:进没进资料库、没进的原因、造影视频处理成功没有(没成功时写停在第几步)、7 个关键帧各在视频第几秒。 - **标准答案/化名对照.csv**:资料库里代替病例号的化名与病例号的对照。 - **标准答案/诊断.csv**:三张表的病理诊断编码(1 IPMN,2 SPN,3 MCN,4 SCN)。 - **标准答案/报告复核句.csv**:报告描述里含「考虑」「可能」「倾向」「提示」的句子。这些句子目前仍留在给 AI 专家的报告里,想请你们看看它们算不算带出了诊断倾向、该不该删掉。