如同用pinnacle生成define.xml一样的思路,我们先可以用sas生成Excel文件,即包含sdrg需要的表格Sheet。最后利用Python充当pinnacle 21的角色,将Excel当做输入数据集,然后利用Python生成固定的标题模块以及自己的一些文字注释,其实就是一些解释性的话语。所以还是让大家写程序多写注释的好处。解释的话无处不在,包括p21验证规则报告出来的实在解决不了的warning, 后面加上自己的文字注释(多写注释)。报告文件最后一列变量值即是你的comments, freetext。即是解释性(INTP)的话语,是给别人看的,不是用来统计的。就如同rawdata某些病理诊断解释性的文本,最多能做个listing。报告的结果其实是一个数据集,最后一列该是sas programmer写诊断解释(warning解释)的时候了。所以这个应该是整个sdrg最核心的部分之一,其他基本也是变化不大,除了对某些domain特殊情况进行解释,如dm数据集某个受试者随机化但未吃药,还有些随机错误,重复筛选等,可以都说明一下,让监管方无话可说。除非监管方刨根问底,说你的解释我不太信,我要现场调查,哈哈。这样不管是CRO还是药企都没用,即使你写了sdrg.docx别人还得继续追问确认,甚至不相信任何纸上谈兵,非要去现场调查。彻查到底,哈哈。当然sdrg还是要写的,别人继续追问是别人的事,你干涉不了。废话不多说,我们来看看怎么实现sdrg两步搞定。
第一步: 用sas生成spread sheet
当我们把需要的数据集生成好了之后,后面就需要proc report生成Excel文件了。
生成Excel文件:
接下来是Python程序:
1. 首先导入相关python docx相关模块。(这些解释性的废话也是要说的,不然别人看不懂!)
2. 设置word文档标题。包括一级标题,二级标题,三级标题。
3. 定义写段落的函数,我们知道,写文档无非是在写一段一段解释性的文字。由单词到句子到段落。
4. 由生成的Excel文件是一个一个sheet, 这就需要读取table,这里定义一个读取table的函数。
5.定义读取spec.xlsx里面变量的函数。
5.读取sdrg封面
6.自动生成word文档目录。
7.需要的Excel文件:
1) sas生成的sdrg需要的table
2)sdtm spec.xlsx用来列出一些SUPP变量
8.读取sdrg需要的一些基本的table信息
9.读取spec中重要的一些domain的变量名、label等信息。
最后来看一下生成的sdrg.docx的样子
最后,一个大概的sdrg文档基本形成,至于问题核查的解释,可以在excel里面先写好最后读取到word文档。或者先不写空着,最后在word文档里面大家一起愉快的写,还有审阅模式,看看谁造的句子比较文雅,不要说一些口语性的土话,当然你是大佬,你说方言,朴素的土话,只要能解释清楚,都是好句子,别人也都不敢说什么。最后希望这篇文章能带给大家一些启示。