各位看官初看標題可能覺得很高大上,可能聯想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!