Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Création des bibliothèques source et decode */
- libname decode "/folders/myfolders/Miniprojet/source/format"; /* endroit où se trouvent le catalogue de formats */
- libname source "/folders/myfolders/Miniprojet/source "; /* endroit où se trouvent tous les datasets sources */
- options fmtsearch=( decode SOURCE WORK);
- options ls=256;
- /* 2.5 Evènements indésirables */
- DATA SOURCE.ADVERSE_EVENT;
- SET SOURCE.ADVERSE_EVENT;
- /* 2.5.1 Création variables ae_start_date - ae_stop_date et restriction */
- ATTRIB ae_start_date FORMAT=DATE9.;
- ATTRIB ae_stop_date FORMAT=DATE9.;
- ATTRIB restriction length=3;
- /* Création de la date de début en donnant comme jour 01 si il n'existe pas, et janvier si le mois n'existe pas */
- ATTRIB _aestdtmo FORMAT=$3.;
- IF(AESTDTYY^='') THEN
- DO;
- IF (AESTDTDD='') THEN _aestdtdd = '01';
- ELSE _aestdtdd = AESTDTDD;
- IF (AESTDTMO='') THEN _aestdtmo = 'JAN';
- ELSE _aestdtmo = AESTDTMO;
- ae_start_date = input(catt(_aestdtdd, catt(_aestdtmo, AESTDTYY)), DATE9.);
- END;
- /* Création de la date de fin en donnant le dernier jours du mois si il n'existe pas, et décembre si le mois n'existe pas */
- ATTRIB _aeeddtmo FORMAT=$3.;
- IF(AEENDTYY^='') THEN
- DO;
- IF (AEENDTMO='') THEN _aeendtmo = 'DEC';
- ELSE _aeendtmo = AEENDTMO;
- IF (AEENDTDD='') THEN _aeendtdd = intnx('month',catt("01", catt(_aeendtmo, AEENDTYY)),1)-1;
- ELSE _aeendtdd = AEENDTDD;
- ae_stop_date = input(catt(_aeendtdd, catt(_aeendtmo, AEENDTYY)), DATE9.);
- END;
- RUN;
- /* Ne prendre que les évènements où la date de début est supérieure à la première visite du patient*/
- /* On fait une table des premières visites */
- DATA FIRST_VISIT;
- SET SOURCE.DATE_OF_VISIT (KEEP=USUBJID VISDT);
- RUN;
- /* Dans cette table comme son nom l'indique on ne garde que la première visite par patient*/
- PROC SORT DATA=FIRST_VISIT;
- BY USUBJID VISDT;
- RUN;
- PROC SORT DATA=FIRST_VISIT NODUPKEY OUT=FIRST_VISIT_2;
- BY USUBJID;
- RUN;
- /* On rajoute une colonne avec la première visite */
- PROC SORT DATA=SOURCE.ADVERSE_EVENT;
- BY USUBJID;
- RUN;
- PROC SORT DATA=FIRST_VISIT;
- BY USUBJID;
- RUN;
- DATA SOURCE.ADVERSE_EVENT;
- MERGE SOURCE.ADVERSE_EVENT (IN=mark1) WORK.FIRST_VISIT_2;
- by USUBJID ;
- if mark1 then output;
- RUN;
- DATA SOURCE.ADVERSE_EVENT;
- SET SOURCE.ADVERSE_EVENT;
- if(ae_start_date^='') THEN
- DO;
- if(ae_start_date>=VISDT) THEN restriction =1;
- END;
- RUN;
- /* Restriction pour exclure les lignes non voulues*/
- /*DATA SOURCE.ADVERSE_EVENT;
- SET SOURCE.ADVERSE_EVENT(WHERE=(restriction=1));
- RUN;*/
- /* 2° Fusion AE */
- DATA AE ;
- MERGE SOURCE.ADVERSE_EVENT ( IN=mark1 ) SOURCE.TREATMENT_ASSIGNMENT ( IN=mark2 KEEP= USUBJID TRTCD ASGNDTTM) ;
- by USUBJID ;
- if mark1 THEN output;
- RUN;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement