自动化生成报告程序

各位看官初看标题可能觉得很高大上,可能联想AI这一块,其实就是一个小Demo。这个程序的产生思想可能要追溯到学生时代,在每个学期的期末是不是都要评定什么个人、班级等荣誉;每个奖状在打印的时候是不是有些基本内容是相同的,只需要把对应的个人信息和奖项名称填进去就行了;但是对于一个硬件设施不好的学校,可能会有许多老师和同学共同完成这个工作(毕竟当时年少无知嘛,老师叫你工作是一种光荣);这无疑增加工作量,还降低了工作效率。要是有一个自动化的设备在里面输入几个指令就行了,然后设备就自动为你的需求而工作。

最近一个偶然的机会,接触到一家基因科技的公司的一个项目。他们的项目和我之前说的小事例很相似,该项目的主要实现目标是实验室检测得出的数据结果与报告模板结合批量生成报告(pdf)。我在网上搜寻了很多方法,什么模板引擎,什么实验室软件等等;都很麻烦。主要是他们公司想要看初稿,就针对他们公司的一个基因检测套餐模板做一个小demo;当然了,我每天要上班,下班以后给他们弄,不可能在这么短时间自己搞个系统出来,所以一些主流的后端语言我就没有使用(因为有些编程语言不能和报告文件后缀能够完美的匹配)。

我的思路是这样的,前期报告模板已word的形式确认后,用HTML+CSS等技术将报告模板以网页版呈现;报告生成demo在Liunx系统下,使用Python、php等技术,运用pdftk、wkhtml等格式转化软件进行格式上的处理;并采用Jinja2模板引擎和MarkupSafe模块对html自动转义和标记,同时高效的将源码转换成Pyhton字节码,加快模板执行时间;对现有表格数据批量快速导入SQL Server并结合php页面数据文件上传下载等功能对系统开发实现。最终实现了将得出的检测数据与与之对应的报告模板相结合,并生成最后的pdf格式报告。前端的报告模板代码我就不列出来了,下面附上.py代码截图,我还没传到Gitub上,有需要的可以留言,到时候我整理一下,把链接发出来,希望对大家有帮助,相互交流学习。

代码部署完了,怎么操作得到后面的报告呢?我在这里以win操作系统简单的写出步骤:

        首先,进入报告程序路径  (程序路径,如:cd /home/jlcao/TP53/report);

然后,在当前目录创建report文件夹,该文件夹即为创建的虚拟环境                                    (virtualenv-p<文件夹名>   如:/usr/local/bin/python3.5 report);

其次,激活虚拟环境(virtualenv) (source report/bin/activate);

再用pip安装依赖环境,运行requirements.txt  (pip install -r requirements.txt);

最后,python gen_report.py --result-dir result data/xxx.csv(xxx.csv为data文件夹数据文件) 执行此命令,即可在results文件夹里生成xxx.csv中指定的患者所有报告,报告保存在独立文件夹中。

其中,创建激活虚拟环境和安装依赖环境只需要开始的一次即可,后面直接将相应的数据上传到服务器,然后按步骤操作即可。

GitHub地址:https://github.com/caojiele/Automation-report  欢迎star!


扫描关注上方二维码查看更多精彩信息↑ ↑ ↑ 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,089评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • F56班级一键指南 DISC国际双证班F56期“哏儿都”交通住宿指引 byF53助推团长孟博 一大波美食已经到达F...
    拾忆芳华阅读 915评论 0 1
  • 清明时节雨纷纷。蒙蒙细雨让刚刚回暖的天气又冷了回去。阴雨天总是能让我心情压抑。耳机里放着欢快的音乐,气氛欢乐,自己...
    狼途陌路阅读 182评论 0 0
  • 2017年9月19日 星期二 五华 天气晴 30℃ 今天想来聊一下工具,工具原指工作时所需用的器具,后引申为为达到...
    陈贺雄阅读 333评论 3 0