图形化开放式生信分析云平台产品开发 - 7 分析报告的模板定制与自动生成
前文链接:
图形化开放式生信分析云平台产品开发 - 1 需求分析及技术实现
图形化开放式生信分析云平台产品开发 - 2 样本信息处理
图形化开放式生信分析云平台产品开发 - 3 生信分析流程的进化
图形化开放式生信分析云平台产品开发 - 4 生信分析流程的图形化
图形化开放式生信分析云平台产品开发 - 5 生信分析流程服务器端运行
图形化开放式生信分析云平台产品开发 - 6 生信分析流程批量运行与过程控制
在前文中描述了生信分析流程的整个设计、图形化、服务器端运行、批量运行与过程控制(手动停止,恢复运行、覆盖运行),本文尝试解决分析报告的模板定制与自动生成。
需求分析:
-
报告模板版式设计(视图):
- 封面
- 配色
- Logo
- 联系方式
- 页眉页脚
-
分析流程的输出数据(数据):
- 通用信息:样本信息、患者信息、日期信息、检测项目、报告编号等等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5as87s3T-1571713440404)(https://i.loli.net/2019/10/18/eiQsRqtD6uwVHKB.png)]
-
分析流程输出的数据:如肿瘤项目中的SNV,CNV,SV等;可以是一个标准数据集,也可以是多个。
下面是分析流程中SV的输出结果:根据项目需要定义,实际上还会加上各种关联的数据库的数据,也可以实现:
-
分析流程输出图表:分析流程输出的图表,图片;最终显示在报告上面。
报告的自动生成,就是将分析流程的输出数据用模版填充,并提供下载。
技术选型
这里可以选择的技术大致有两种:
-
将数据渲染显示为Web端(即网页)的形式,需要时候打印为PDF下载,这是最常用的方式。优点是下载之前可以预览报告,便于调整。缺点是,个性化定制能力稍差,调整范围不大。如果项目很多,则基本上共用一套模板,最多在颜色、字体上做些调整。就像某老板讲的从报告上一看就知道你用了哪套程序,同质化严重
-
模板格式直接使用Office Word格式,由word设计模板版式,下载的时候填充数据,下载之后打开预览。优点是,毕竟word的使用门槛比设计web网页低得多。设计的灵活性大的多。而且,下载之后还可以人工修改、打印成PDF格式。缺点是,下载之前没有办法预览,没有web端显示那么直观。
经过反复比对,为了提高整个平台的灵活性,避免过度同质化,这里采用Office Word文件格式来实现报告模板的定制与报告生成。
技术实现
要将设计好的word格式文件,作为模板使用,就需要一套语法,将准备好的数据集用变量显示,生成报告的时候用实际数据替换变量得到报告。
这里举一个简单的例子:
如下图,年龄字段这里做了简单的逻辑判断,如果patient.patientAge==null显示为""空字符,如果patient.patientAge!=null则直接显示patient.patientAge对应的数值。
如下图:
通用数据格式,按照以上形式拼写:${变量名.属性名}来表示相应的值,对于分析流程输出的数据集,也需要设计好语法,与之对应。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BgUCcxAK-1571713440405)(https://i.loli.net/2019/10/18/or6n4D1guW5adip.png)]
对应的数据如下图,实际上还会加上各种关联的数据库的数据,如有需要也可以实现。:
CNV分析输出的图片插入模板:
对应字段${image[‘cnv_scatter.png’]}输出报告后如下图:
欢迎回复讨论或者加入QQ群:853718264