关于SDTM编程的一些想法(2) -- CO

前面的篇文章关于SDTM编程的一些想法(1) --Trial Design、DM开了个头,开始介绍SDTM数据集的编程思路,内容涉及了Trial Design、Special Purpose中的DM。这篇文章介绍Special Purpose中的CO数据集的编程注意点。

关于CO数据集的内容,临床试验CRF中Form介绍23:Comments(CO)数据集相关介绍了CO数据集收集的信息、信息来源以及一些变量。CO数据集的注释来源主要有两块:

  1. 在CRF中,与其他SDTM数据集信息一起收集的注释;
  2. 在CRF中,单独的页面,收集的注释。

COVAL

CO数据集中的Topic变量为COVAL,记录注释的信息,这个变量在记录中不能为空。当注释文本超过200 个字符时,注释的前200 个字符将位于COVAL 中,然后COVAL1 中,存储接下来的200 个字符,类似延伸到COVALn。对于COVA变量长度过长的情况,各公司一般都有相应的宏进行处理,也可以进行手动编程。这里有一个注意点,就是第200个字符处如果单词截断如何处理。一般完善的宏都会考虑这种情况,将截断的单词放到下一个COVALn变量中;手动编程处理时,两种处理方式的案例都遇到过。下面分享一下,手动编程处理的代码:

***考虑不考虑单词截断;
data co;
  set co_;
  length coval coval1-coval4  $200;
  if length(coval_) >200 then do;
    put "The length of COVAL is  greater than 200!";
    coval = substr(coval_,1,200);
    coval1 = substr(coval_,201,200);
    coval2 = substr(coval_,401,200);
    coval3 = substr(coval_,601,200);
    coval4 = substr(coval_,801,200);
  end;
  else coval = coval_;
run;



Rdomain

Rdomain,关联域名的缩写,对于与其他SDTM数据集信息一起收集的注释记录,填写对应的域名;对于单独的页面,收集的注释,Rdomain变量为空。

IDVAR 和 IDVARVAL

CO编程另一个需要注意的是IDVAR(标识变量) 和IDVARVAL(标识变量值)。对于CRF中单独页面收集的注释,与其他SDTM域没有关联,这两个变量值为空,没有什么需要注意的地方。

对于与其他SDTM数据集信息一起收集的注释,这两个是用来表示CO数据集记录与其他数据集记录之间的联系的,需要有值。通常IDVAR的值为“--SEQ”、“--GRPID”,IDVARVAL的值为与注释相关联的其他SDTM数据集记录的--SEQ的变量值。为获取IDVARVAL的值,需要让CO数据集与相关联的数据集进行拼接,而拼接需要考虑的是关键变量的选取

拼接的关键变量我们通常选用USUBJID、COSPID(--SPID)。相关联的记录对应的受试者(USUBJID)肯定是一个人,所以USUBJID为关键变量。而注释信息与其他数据集相关联的信息是一起收集的,而--SPID通常由收集的Folder、Form信息生成,所以对于两个相关联的记录的--SPID变量值是相同的,--SPID可以作为关键变量。

除了这两个变量,拼接时可能需要新增关键变量。这是由于原始数据集一条记录会生成多条SDTM数据集记录,这些记录的--SPID变量值可能相同,所以需要新增关键变量进行区分,从而准确定位CO数据集记录与其他数据集记录的关联关系。下面我给出一个拼接代码的示例:

proc sql noprint;
  create table co_ie as
    select a.*, strip(put(ieseq,best.)) as idvarval length = 40
    from co as a left join sdtm.ie as b
      on a.usubjid = b.usubjid and a.cospid = b.iespid;
quit;

以上就是SDTM CO数据集编程的一些注意点,若有疑问,欢迎评论区讨论。接下来会持续介绍其他数据集。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容