SAS编程|SDTM-DM人口学域

1.RFSTDTC 受试者参照开始日期/时间

        通常以首次用药日期作为参照。

2.RFENDTC受试者参照结束日期/时间

        研究结束日期,通常以治疗结束或末次用药为参照,取最大值。

3.RFXSTDTC 首次研究治疗日期/时间

        任意试验方案指定治疗的首次暴露日期,等同于最早一次EXSTDTC 的变量值。

4.RFXENDTC 末次研究治疗日期/时间

        任意试验方案指定治疗的末次暴露日期,等同于最迟一次EXENDTC 的变量值(当EXENDTC 没有采集或者为空,则等同于最后一次EXSTDTC 的值)。

如何在多次给药时间中提取首次研究治疗日期/末次研究治疗日期:

代码如下:

data dm4;
	set	raw.ec(where=(^missing(ECSCATNS)));
	EXSTDTC = catx('T',ECDAT,ECSTTIM); 
	EXENDTC = catx('T',ECDAT,ECENTIM);
	keep USUBJID EXSTDTC EXENDTC;
run;

proc sql;
  create table dm_4(label='RFXSTDTC RFXENDTC') as
  select USUBJID
		,min(EXSTDTC) as RFXSTDTC
		,max(EXENDTC) as RFXENDTC
  from dm4
  group by USUBJID;
quit;

5.RFPENDTC 参与结束日期/时间

        应对应于最后一个已知的接触日期。 例子包括完成日期,撤退日期,最后的随访日期,记录在案的随访丢失日期或死亡日期。

6.ACTARMCD 实际分组编码

        当为非计划组别(未存在于试验组别域)时,ACTARMCD 将是"UNPLAN”。 已随机化但未 给药的受试者会被赋予一个“NOTTRT”的值。 筛查失败的受试者应当赋予“SCRNFAIL”的值,未被分配的受试者应被赋值为“NOTASSGN”。 其他情况以试验组别值为准。

7.ACTARM 实际分组描述

        当为非计划组别(未存在于试验组别域)时,ACTARM 将是“Unplanned Treatment”。 已随机化但未 给药的受试者会被赋予一个“Not Treated”的值。 筛查失败的受试者应当赋予“Screen Failure”的值,未被分配的受试者应被赋值为“Not Assigned”。 其他情况以试验组别值为准。

例如:

if missing(ARM) then do;
		ARMCD='SCRNFAIL';
		ARM='筛选失败';
end;
	ACTARMCD=ARMCD;
	ACTARM=ARM;

8.人群标识

        应作为DM的补充修饰,放置于补充修饰数据集SUPPDM 中。QORIG来源赋值为“ASSIGNED”,QEVAL评估者赋值为“SPONSOR”。通常QORIG为“CRF”,QEVAL为空。

<think>嗯,用户想知道如何在药厂项目中实施SASSDTM和ADaM。首先,我需要回顾一下SDTM和ADaM的基本概念,以及它们在临床试验数据管理中的作用。SDTM是标准化数据模型,用于提交给监管机构,而ADaM则是分析数据集模型,支持统计分析和报告。用户可能已经了解这些,但需要具体的SAS实现方法。 接下来,我应该考虑SASSDTM和ADaM中的具体应用步骤。比如SDTM的数据转换,可能需要从原始数据映射到SDTM结构,使用SAS的PROC SQL或DATA步来处理。然后ADaM的数据集通常基于SDTM构建,需要添加分析变量,比如AVAL、CHG等,这时候可能需要使用SAS的宏或者自定义函数来提高效率。 用户提到的引用中有提到时间变量的处理,比如EXSTDTC和RFXENDTC,这些在SDTM中的时间变量需要正确转换到ADaM中,可能需要使用日期函数,如INTNX或INTCK。另外,引用里还提到分析参数变量需要加上前缀,比如AVALC,这可能涉及到变量重命名或条件语句处理。 用户可能还需要知道验证和文档方面的最佳实践,比如使用PROC COMPARE进行数据一致性检查,以及遵循CDISC标准。此外,问题生成部分需要涵盖性能优化、常见错误处理、工具使用和标准更新等,这些都是实施过程中可能遇到的挑战。 需要注意用户提供的引用内容,特别是关于时间变量和分析参数变量的处理,确保在回答中正确引用相关来源。同时,保持回答结构清晰,分步骤说明,并提供代码示例,这样用户能更好地理解和应用。</think>在药厂项目中实施SASSDTM(Study Data Tabulation Model)和ADaM(Analysis Data Model)需要遵循CDISC标准并掌握关键编程技术。以下是分步骤实施指南: ### 一、SDTM实施核心步骤 1. **原始数据转换** - 使用`PROC FORMAT`定义受控术语 - 通过`DATA STEP`实现变量名/标签转换: ```sas data SDTM.DM; set raw.demog(rename=(subjid=USUBJID birthdtc=BRTHDTC)); label USUBJID = "Unique Subject Identifier"; format BRTHDTC e8601da.; /* ISO 8601格式转换 */ run; ``` 2. **时间变量处理** - 根据引用[3]要求,使用`INTNX`函数计算首次暴露日期: ```sas RFSTDTC = put(min(EXSTDTC), e8601dt.); /* 取最早EXSTDTC值 */ ``` 3. **数据验证** - 用`PROC COMPARE`验证数据一致性 - 使用`PROC FREQ`检查受控术语合规性 ### 二、ADaM实施关键技术 1. **分析变量创建** - 根据引用[2]要求,添加AVAL前缀变量: ```sas data ADAM.ADSL; set SDTM.DM; AVISITN = input(visitnum, 8.); if not missing(AVISIT) then AVISITC = put(AVISIT, $visitfmt.); run; ``` 2. **参数化分析** - 使用宏实现分析参数标准化: ```sas %macro create_param(param=, unit=); AVAL = &param._raw * conversion_factor; AVALU = "&unit"; %mend; ``` 3. **时间对齐** - 使用`INTCK`函数实现分析时间窗计算: ```sas ADT = intnx('DAY', RFSTDTC, visitnum); ``` ### 三、最佳实践 1. **元数据驱动编程** - 使用`PROC SQL`从元数据自动生成变量列表 - 开发可复用的SAS宏库 2. **标准合规性** - 遵循引用[2]中ADaM IG要求的时间变量保留规则 - 实现引用[3]中的治疗暴露日期计算逻辑 3. **验证文档** - 生成define.xml元数据文件 - 使用`ODS`生成可追溯性报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值