搜索
查看: 875|回复: 0

生信分析云平台产品开发-7分析报告的模板定制与自动生成

[复制链接]

9

主题

12

帖子

275

积分

中级会员

Rank: 3Rank: 3

积分
275
发表于 2019-10-22 11:26:19 | 显示全部楼层 |阅读模式
本帖最后由 豆浆包子 于 2019-12-2 14:18 编辑

前文链接:
在前文中描述了生信分析流程的整个设计、图形化、服务器端运行、批量运行与过程控制(手动停止,恢复运行、覆盖运行),本文尝试解决分析报告的模板定制与自动生成
需求分析:
  • 报告模板版式设计(视图)

    • 封面
    • 配色
    • Logo
    • 联系方式
    • 页眉页脚

  • 分析流程的输出数据(数据):

    • 通用信息:样本信息、患者信息、日期信息、检测项目、报告编号等等。


  • 分析流程输出的数据:如肿瘤项目中的SNV,CNV,SV等;可以是一个标准数据集,也可以是多个。
    下面是分析流程中SV的输出结果:根据项目需要定义,实际上还会加上各种关联的数据库的数据,也可以实现:
  • 分析流程输出图表:分析流程输出的图表,图片;最终显示在报告上面。

报告的自动生成,就是将分析流程的输出数据用模版填充,并提供下载。
技术选型
这里可以选择的技术大致有两种:
  • 将数据渲染显示为Web端(即网页)的形式,需要时候打印为PDF下载,这是最常用的方式。优点是下载之前可以预览报告,便于调整。缺点是,个性化定制能力稍差,调整范围不大。如果项目很多,则基本上共用一套模板,最多在颜色、字体上做些调整。就像某老板讲的从报告上一看就知道你用了哪套程序,同质化严重
  • 模板格式直接使用Office Word格式,由word设计模板版式,下载的时候填充数据,下载之后打开预览。优点是,毕竟word的使用门槛比设计web网页低得多。设计的灵活性大的多。而且,下载之后还可以人工修改、打印成PDF格式。缺点是,下载之前没有办法预览,没有web端显示那么直观。
    经过反复比对,为了提高整个平台的灵活性,避免过度同质化,这里采用Office Word文件格式来实现报告模板的定制与报告生成。

技术实现
要将设计好的word格式文件,作为模板使用,就需要一套语法,将准备好的数据集用变量显示,生成报告的时候用实际数据替换变量得到报告。
这里举一个简单的例子:
如下图,年龄字段这里做了简单的逻辑判断,如果patient.patientAge==null显示为""空字符,如果patient.patientAge!=null则直接显示patient.patientAge对应的数值。
如下图:
通用数据格式,按照以上形式拼写:${变量名.属性名}来表示相应的值,对于分析流程输出的数据集,也需要设计好语法,与之对应。
对应的数据如下图,实际上还会加上各种关联的数据库的数据,如有需要也可以实现。:
CNV分析输出的图片插入模板:
对应字段${image['cnv_scatter.png']}输出报告后如下图:
本文使用的报告模板报告输出附件中下载: 报告模板及报告输出.zip (208.82 KB, 下载次数: 39)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-7-13 08:30 , Processed in 0.028755 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.