Automation report是一款可以解决很多行业领域中设涉及到报告生成的需求,本项目最开始的初衷是为公司内部简化人工流程的一个环节,主要实现目的是将实验室检测得出的下机数据结果与对应的报告模版批量结合生成报告(.pdf)。
该项目的运行环境适合所有主流操作系统,笔者主要介绍的生产环境是Liunx,使用的是Python编译语言,运用了pdftk、wkhtml等格式转化软件进行格式上的处理;并采用Jinja2模板引擎和MarkupSafe模板对html自动转义和标记,同时高效的将源码转换成Python字节码,加快模板执行时间;对现有表格数据批量快速带入数据库中并结合java页面数据文件上传下载等功能对系统开发实现。最终实现了检测数据与与之对应的报告模板相结合,并生成最后的pdf格式报告。
1、将数据源转换完csv文件后(文件-另存为-文件类型(CSV(逗号分隔)(*.csv)-保存),用编程专用编辑器将编码确认为UTF-8(以小黑记事本为例,文件-编码-UTF-8-保存),将csv文件放入data文件夹中;
2、cd 进入报告程序路径 (程序路径,如:/home/jlcao/TP53/report);
3、virtualenv -p <文件夹名> (如:/usr/local/bin/python3.5 report)在当前目录创建report文件夹,该文件夹即为创建的虚拟环境。只需创建一次;
4、source report/bin/activate 激活虚拟环境(virtualenv);
5、pip install -r requirements.txt 用pip安装依赖环境,运行requirements.txt,只需运行一次;
6、python gen_report.py --result-dir results data/xxx.csv (xxx.csv为data文件夹数据文件,如:TP53-10个口腔拭子交付报告-20170710.csv) 执行此命令,即可在results文件夹里生成xxx.csv中指定的患者所有报告,报告保存在独立文件夹中,该文件夹名与读取的xxx.csv数据源名对应。