/**********************************************************************\ Shows the use of id variables on different MEPS public-use files (pufs) and how to use these id variables to merge MEPS files.

/**********************************************************************\

PROGRAM:       C:\MEPS\PROG\EXAMPLE03.SAS

DESCRIPTION:  	THIS EXAMPLE SHOWS THE USE OF ID VARIABLES ON DIFFERENT
               MEPS PUBLIC-USE FILES (PUFs) AND HOW TO USE THESE ID
               VARIABLES TO MERGE MEPS FILES. 
		         
		         THIS EXAMPLE SHOWS PRINTS OF PERSON-LEVEL AND CONDITION-
		         LEVEL FILES TO SHOW THE USE OF THE ID VARIABLES. 
               
               DUPERSID (HC-079) IS A PERSON-LEVEL IDENTIFIER.
               CONDIDX (HC-078) IS A PERSON-CONDITION-LEVEL IDENTIFIER.

INPUT FILE:  	(1) C:\MEPS\DATA\H79.SAS7BDAT (2003 FULL-YEAR DATA FILE)
               (2) C:\MEPS\DATA\H78.SAS7BDAT (2003 CONDITIONS FILE)

\**********************************************************************/

FOOTNOTE 'PROGRAM: C:\MEPS\PROG\EXAMPLE03.SAS';

LIBNAME CDATA V8 'C:\MEPS\DATA';

TITLE1 'AHRQ MEPS DATA USERS WORKSHOP -- JULY 2006';
TITLE2 'ILLUSTRATING THE USE OF ID VARIABLES (DUPERSID, CONDIDX)';

PROC FORMAT;
   VALUE YESNO
   -9 = '-9 NOT ASCERTAINED'
   -1 = '-1 INAPPLICABLE'
   1 = '1 YES'
   2 = '2 NO';
   VALUE SEXF
   1 = '1 MALE'
   2 = '2 FEMALE';   
RUN;
 
/***** GET DUPERSID AND OTHER VARIABLES FROM HC-079 *****/

PROC SORT DATA= CDATA.H79 (KEEP= DUID PID DUPERSID AGE03X SEX PERWT03F 
                                    VARSTR VARPSU)
            OUT= FY2003;
   BY DUPERSID;
RUN;

TITLE3 'PRINT OF 50 HC-079 (2003 FULL-YEAR FILE) RECORDS TO SHOW DUPERSID';

PROC PRINT DATA= FY2003 (OBS= 50);
   VAR DUID PID DUPERSID AGE03X SEX ;
   FORMAT SEX SEXF. ;
RUN;

/***** GET DUPERSID, CONDIDX AND OTHER VARIABLES FROM HC-078 *****/

PROC SORT DATA= CDATA.H78 (KEEP= DUPERSID CONDN CONDIDX INJURY ICD9CODX)
            OUT= COND2003;
   BY DUPERSID CONDIDX;
RUN;

TITLE3 'PRINT OF 50 HC-078 (2003 CONDITIONS FILE) RECORDS TO SHOW';
TITLE4 'DUPERSID AND CONDIDX';

PROC PRINT DATA= COND2003 (OBS= 50);
   VAR DUPERSID CONDN CONDIDX INJURY ICD9CODX;
   FORMAT INJURY YESNO. ;
RUN;

/***** MERGE FILES TO CONNECT PERSON INFO WITH CONDITION INFO.  *****/
/***** THE MERGE MATCHES RECORDS BY USING THE DUPERSID VARIABLE *****/

DATA CONDINFO;
   MERGE FY2003 COND2003;
   BY DUPERSID;
RUN;

TITLE3 'PRINT OF 50 RECORDS FROM MERGED, CONDITION-LEVEL, FILE';

PROC PRINT DATA= CONDINFO (OBS = 50);
   VAR DUPERSID CONDIDX AGE03X SEX INJURY ICD9CODX;
   FORMAT SEX SEXF. INJURY YESNO. ;
RUN;

/***** MERGE FILES BUT NOW ONLY KEEP MATCHING RECORDS *****/

DATA CONDINFO_B;
   MERGE FY2003 (IN= A) COND2003 (IN= B);
   BY DUPERSID;
   IF A AND B;
RUN;

TITLE3 'PRINT OF 50 RECORDS FROM MERGED, CONDITION-LEVEL, FILE';
TITLE4 'WHERE ONLY MATCHED RECORDS WERE KEPT';

PROC PRINT DATA= CONDINFO_B (OBS = 50);
   VAR DUPERSID CONDIDX AGE03X SEX INJURY ICD9CODX;
   FORMAT SEX SEXF. INJURY YESNO. ;
RUN;