125742 45 S211 M5 c4591001 A 1mth P adds sas

Pfizer Documents (PHMPT/FDA)

Pfizer Bla Submission

Pfizer 12 15 Documents

7

Document text

file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]***********************************************************************************************;
**  Program Name    : adds.sas                                                               **;**  Date Created    : 07Mar2021                                                              **;**  Programmer Name :                                                                  **;
**  Purpose         : Create adds dataset                                                    **;**  Input data      : ds suppds sv adsl                                                      **;**  Output data     : adds.sas7bdat                                                          **;***********************************************************************************************;%let oprot=/Volumes/app/cdars/prod/sites/cdars4/prjC459/nda2_unblinded_esub/bla_euaext_esub_sdtm/saseng/cdisc3_0;%let prot=/Volumes/app/cdars/prod/sites/cdars4/
prjC459/nda2_unblinded_esub/euaext_esub_adam/saseng/cdisc3_0;
libname dataprot "&oprot./data" access=readonly;libname datvprot "&prot./data_vai";
proc printto print="&prot./analysis/esub/output/adds.rpt" 
        log="&prot./analysis/esub/logs/adds.log" new;run;
******************************************************************************************;
* Clean *;******************************************************************************************;
proc delete data=work._all_;
run;
******************************************************************************************;
* Format *;******************************************************************************************;
proc format;
    invalue epoch "SCREENING"=1 "OPEN LABEL TREATMENT"=7 "VACCINATION"=26         "FOLLOW-UP"=31 "REPEAT SCREENING 1"=101 "REPEAT SCREENING 2"=102;    invalue dsdecod "COMPLETED"=2 "SCREEN FAILURE"=13 "ADVERSE EVENT"=1 "DEATH"=3         "LOST TO FOLLOW-UP"=5 "OTHER"=7 "PHYSICIAN DECISION"=8 "PREGNANCY"=9         "PROTOCOL DEVIATION"=11 "STUDY TERMINATED BY SPONSOR"=14         "WITHDRAWAL BY SUBJECT"=16         "MEDICATION ERROR WITHOUT ASSOCIATED ADVERSE EVENT"=17         "NO LONGER MEETS ELIGIBILITY CRITERIA"=18         "REFUSED FURTHER STUDY PROCEDURES"=25 "WITHDRAWAL BY PARENT/GUARDIAN"=26;run;
******************************************************************************************;
* Process *;******************************************************************************************;
/* Readin SDTM and merge DS with SUPPDS */
data ds;    set dataprot.ds;
    if upcase(dscat)='DISPOSITION EVENT';
run;
(b) (4), (b) 
(6)
FDA-CBER-2022-5812-0072380
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]data suppds;
    set dataprot.suppds;
    where idvar="DSSEQ";run;
proc sort data=suppds;
    by studyid usubjid idvar idvarval;run;
proc transpose data=suppds out=suppds_h;
    by studyid usubjid idvar idvarval;    id qnam;    idlabel qlabel;    var qval;run;
data suppds_h (drop=idvar idvarval _NAME_ _LABEL_);
    set suppds_h;    DSSEQ=input(idvarval, best12.);run;
proc sort data=ds out=_ds1;
    by STUDYID USUBJID DSSEQ;run;
proc sort data=suppds_h out=_ds2;
    by STUDYID USUBJID DSSEQ;run;
data _spmdel_sdtm_temp_out1;
    merge _ds1(in=d1) _ds2(in=d2);    by STUDYID USUBJID DSSEQ;
    if d1;
run;
/* Derive ASTDT ASTTM */
data _ds1;    set _spmdel_sdtm_temp_out1;    ASTDT=input(DSSTDTC, ??is8601da.);    format ASTDT date9.;run;
/* Merge DS with ADSL */
proc sort data=_ds1;    by USUBJID;run;
proc sort data=datvprot.adsl out=_ds2;
    by USUBJID;run;
data _ds3;
    merge _ds1(in=d1) _ds2(in=d2 keep=Usubjid SUBJID SITEID AGE AGEU SEX SEXN RACE 
FDA-CBER-2022-5812-0072381
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]        RACEN ARACE ARACEN RANDFL SAFFL ARM ARMCD ACTARM ACTARMCD TRTSDT TRTSTM 
        TRTSDTM TRTEDT TRTETM TRTEDTM TRTSEQP TRTSEQA AGEGR1 AGEGR1N COHORT COHORTN 
        DOSALVL DOSALVLN DOSPLVL DOSPLVLN VAX101DT VAX102DT VAX10UDT VAX201DT         VAX202DT VAX20UDT UNBLNDDT VAX101 VAX102 VAX10U VAX201 VAX202 VAX20U TRT01A         TRT01AN TRT02A TRT02AN TRT01P TRT01PN TRT02P TRT02PN TR01SDT TR01STM TR01SDTM         TR01EDT TR01ETM TR01EDTM TR02SDT TR02STM TR02SDTM TR02EDT TR02ETM TR02EDTM         PHASE PHASEN EOSDCDT EOTDCDT BLDV6DT BLDV7DT AGEGR4 AGEGR4N PEDIMMFL MULENRFL         PEDREAFL HIVFL DS3KFL EOTXDCDT EOTXDCRS BDCSRDT X1CSRDT STCSRDT AGETR01         AGETRU01 RAND1FL SAF1FL SAF2FL TR01SDT TR01STM TR01SDTM TR01EDT TR01ETM         TR01EDTM TR02SDT TR02STM TR02SDTM TR02EDT TR02ETM TR02EDTM);    by USUBJID;
    if d1;
run;
data adds;
    length dsdecodn 8 dsphasen 8;    set _ds3;
    /* Imupte ADT */
    if ^missing(DSDTC) then        do;            length yr $4 mm dd $2;            yr=substr(DSDTC, 1, 4);            mm=substr(DSDTC, 6, 2);            dd=substr(DSDTC, 9, 2);            ;
            if yr ne ' ' then
                do;                    dflag=' ';
                    if (dd eq "  " or dd eq "-T") and mm ne " " then
                        do;                            dd='01';                            ;                        end;
                    if mm eq "  " or mm eq "--" then
                        do;                            mm='01';                            dd='01';                            ;                        end;                    newdate=(trim(left(yr))||'-'||trim(left(mm))||'-'||trim(left(dd)));                    ADT=input(newdate, ??is8601da.);                    format ADT date9.;                end;            drop yr mm dd dflag newdate;        end;
    /*  Create dsphasen and dsdecodn */
    dsphasen=input(dsphase, epoch.);
FDA-CBER-2022-5812-0072382
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]    dsdecodn=input(dsdecod, ?? dsdecod.);
run;
*****************************************************************************************;
* Date Imputation Rules. *;*****************************************************************************************;
/* Create M1PD2DT */
data sv1;    set dataprot.sv;    where visit in ("V3_MONTH1_POSTVAX2_L" "V7_MONTH1_S");    M1PD2DT=input(svstdtc, yymmdd10.);    format M1PD2DT date9.;    keep usubjid M1PD2DT;run;
/* Create M6PD2DT */
data sv2;    set dataprot.sv;    where visit in ("V4_MONTH6_L" "V8_MONTH6_S");    M6PD2DT=input(svstdtc, yymmdd10.);    format M6PD2DT date9.;    keep usubjid M6PD2DT;run;
/* Create M1PX2DT */
data sv3;    set dataprot.sv;    where visit in ("V103_MONTH1");    M1PX2DT=input(svstdtc, yymmdd10.);    format M1PX2DT date9.;    keep usubjid M1PX2DT;run;
/* Correct M1PD2DT */
data sv4;    set dataprot.sv;    where visit in ("V7_MONTH1_S_R");    _M1PD2DT=input(svstdtc, yymmdd10.);    format _M1PD2DT date9.;    keep usubjid _M1PD2DT;run;
proc sql undo_policy=none;
    create table adds as select a.*, b.M1PD2DT, c.M6PD2DT, d.M1PX2DT, e._M1PD2DT         from adds a left join sv1 b on a.usubjid=b.usubjid left join sv2 c on         a.usubjid=c.usubjid left join sv3 d on a.usubjid=d.usubjid left join sv4 e on         a.usubjid=e.usubjid;quit;
data Adds;
    set adds;
    if cohortn=1.16 then
FDA-CBER-2022-5812-0072383
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]        M1PD2DT=_M1PD2DT;
    if missing(M1PD2DT) and BLDV6DT ne . then
        M1PD2DT=BLDV6DT;
    if missing(M6PD2DT) and BLDV7DT ne . then
        M6PD2DT=BLDV7DT;    drop _M1PD2DT;    label M1PD2DT="1 Month Post Dose 2 Visit Date"         M6PD2DT="6 Months Post Dose 2 Visit Date"         M1PX2DT="1 Month Post Dose 4 Visit Date";run;
data adds;
    set adds;    attrib M1P2CUT label='1 Month PD2 Cutoff Date for Disposition'         format=date9. M1P2EXC label='Excluded from 1 Month Post Dose 2';    M1P2CUT=coalesce(BLDV6DT, M1PD2DT);
    if M1PD2DT>BLDV6DT>. then
        M1P2CUT=M1PD2DT;
    if missing(M1P2CUT) then
        do;
            if eosdcdt=eotdcdt>. then
                M1P2CUT=eosdcdt;            else if vax10udt>vax102dt>. then                M1P2CUT=vax10udt+42;            else if vax102dt ne . then                M1P2CUT=vax102dt+42;            else if vax10udt>vax101dt>. and vax102dt=. then                M1P2CUT=vax10udt+42;            else if vax102dt=. and vax101dt ne . then                M1P2CUT=vax101dt+42+42;
            if M1P2CUT>=vax201dt>. then
                M1P2CUT=vax201dt-1;        end;
    if dsphase="OPEN LABEL TREATMENT" then
        M1P2EXC='Y';    else if dsphase in ("FOLLOW-UP") then        do;
            if ASTDT>M1P2CUT>. then
                M1P2EXC='Y';
            if eosdcdt>eotdcdt and eosdcdt>M1P2CUT>. then
                M1P2EXC='Y';        end;run;
/* Calculate the study day */
FDA-CBER-2022-5812-0072384
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]data adds;
    set adds;
    If ^Missing(AstDt) and ^Missing(TrtSdt) then
        do;
            If AstDt lt TrtSdt then
                AstDy=AstDt - TrtSdt;            Else If AstDt ge TrtSdt then                AstDy=AstDt - TrtSdt + 1;        end;    ;    orig_dsdecod=dsdecod;run;
data final;
    retain STUDYID USUBJID SUBJID SITEID ADT ASTDT ASTDY DSPHASE DSPHASEN DSCAT         DSDECOD DSDECODN DSTERM DSPHASE DSRANGRP M1PD2DT M6PD2DT M1PX2DT M1P2CUT         M1P2EXC USUBJID SUBJID SITEID AGE AGEU SEX SEXN RACE RACEN ARACE ARACEN         RANDFL SAFFL ARM ARMCD ACTARM ACTARMCD TRTSDT TRTSTM TRTSDTM TRTEDT TRTETM         TRTEDTM TRTSEQP TRTSEQA AGEGR1 AGEGR1N COHORT COHORTN DOSALVL DOSALVLN         DOSPLVL DOSPLVLN VAX101DT VAX102DT VAX10UDT VAX201DT VAX202DT VAX20UDT         UNBLNDDT VAX101 VAX102 VAX10U VAX201 VAX202 VAX20U TRT01A TRT01AN TRT02A         TRT02AN TRT01P TRT01PN TRT02P TRT02PN TR01SDT TR01STM TR01SDTM TR01EDT         TR01ETM TR01EDTM TR02SDT TR02STM TR02SDTM TR02EDT TR02ETM TR02EDTM PHASE         PHASEN EOSDCDT EOTDCDT BLDV6DT BLDV7DT AGEGR4 AGEGR4N PEDIMMFL MULENRFL         PEDREAFL HIVFL DS3KFL EOTXDCDT EOTXDCRS BDCSRDT X1CSRDT STCSRDT AGETR01         AGETRU01 RAND1FL SAF1FL SAF2FL DOMAIN DSSEQ;    set adds(keep=STUDYID USUBJID SUBJID SITEID ADT ASTDT ASTDY DSPHASE DSPHASEN         DSCAT DSDECOD DSDECODN DSTERM DSPHASE DSRANGRP M1PD2DT M6PD2DT M1PX2DT         M1P2CUT M1P2EXC USUBJID SUBJID SITEID AGE AGEU SEX SEXN RACE RACEN ARACE         ARACEN RANDFL SAFFL ARM ARMCD ACTARM ACTARMCD TRTSDT TRTSTM TRTSDTM TRTEDT         TRTETM TRTEDTM TRTSEQP TRTSEQA AGEGR1 AGEGR1N COHORT COHORTN DOSALVL DOSALVLN         DOSPLVL DOSPLVLN VAX101DT VAX102DT VAX10UDT VAX201DT VAX202DT VAX20UDT         UNBLNDDT VAX101 VAX102 VAX10U VAX201 VAX202 VAX20U TRT01A TRT01AN TRT02A         TRT02AN TRT01P TRT01PN TRT02P TRT02PN TR01SDT TR01STM TR01SDTM TR01EDT         TR01ETM TR01EDTM TR02SDT TR02STM TR02SDTM TR02EDT TR02ETM TR02EDTM PHASE         PHASEN EOSDCDT EOTDCDT BLDV6DT BLDV7DT AGEGR4 AGEGR4N PEDIMMFL MULENRFL         PEDREAFL HIVFL DS3KFL EOTXDCDT EOTXDCRS BDCSRDT X1CSRDT STCSRDT AGETR01         AGETRU01 RAND1FL SAF1FL SAF2FL DOMAIN DSSEQ);    label ADT='Analysis Date' ASTDT='Analysis Start Date'         ASTDY='Analysis Start Relative Day'         DSDECODN='Standardized Disposition Term (N)'         DSPHASEN='Disposition Phase Code (N)';run;
proc sort data=final out=datvprot.adds(label='Disposition Analysis Dataset' 
        DROP=DSRANGRP);    by USUBJID DSSEQ;    quit;
proc printto;
run;
FDA-CBER-2022-5812-0072385
file:///J/...-45-0%20(0211)/0211/m5/datasets/c4591001/analysis/adam/programs-1mth/125742-45_S211_M5_c4591001-A_1mth-P-adds-sas.txt[7/5/2023 7:39:08 AM]
FDA-CBER-2022-5812-0072386