/******************************************************************/ /* Title: CCS MENTAL HEALTH / SUBSTANCE ABUSE CATEGORIES */ /* LOAD SOFTWARE, VERSION 1.0 */ /* */ /* PROGRAM: CCS-MHSA_LOAD */ /* */ /* Description: This program creates the new CCS Mental Health */ /* and Substance Abuse (CCS-MHSA) categories using */ /* diagnoses from your SAS data. */ /* */ /* The program uses SAS informats to create the */ /* CCS-MHSA variables for both general and specific */ /* categories. */ /* */ /******************************************************************/ FILENAME INRAW1 'C:\DATA\CCS-MHSA_GENERAL_06.CSV'; * Modify path & name of format source file ; FILENAME INRAW2 'C:\DATA\CCS-MHSA_SPECIFIC_06.CSV'; * Modify path & name of format source file ; LIBNAME IN1 'C:\DATA\'; * Modify location of input discharge data; LIBNAME OUT1 'C:\DATA\'; * Modify location of output data; TITLE1 'CREATION OF CCS MENTAL HEALTH/SUBSTANCE ABUSE CATEGORIES'; TITLE2 'USE WITH DISCHARGE ADMINISTRATIVE DATA THAT HAS DIAGNOSIS CODES'; /*******************************************************************/ /* Macro Variables that must be set to define the characteristics */ /* of the input discharge data to the program */ /*******************************************************************/ * Enter the Maximum number of DXs on your SAS File; %LET NUMDX=15; * Enter your SAS file name; %LET CORE=NIS_2002_CCS; /*******************************************************************/ /* SAS Load the CCS-MHSA General and Specific CSV tools. Make SAS */ /* informats from each tool that will be used to create the */ /* CCS-MHSA variables. */ /*******************************************************************/ DATA INFORMAT1 ; INFILE INRAW1 DSD DLM=',' END = EOF FIRSTOBS=3; INPUT START : $CHAR5. LABEL : $CHAR3. ; RETAIN HLO " "; FMTNAME = "$MHSAG" ; TYPE = "J" ; OUTPUT; IF EOF THEN DO ; START = " " ; LABEL = " " ; HLO = "O"; OUTPUT ; END ; RUN; PROC FORMAT LIB=WORK CNTLIN = INFORMAT1 ; RUN; DATA INFORMAT2 ; INFILE INRAW2 DSD DLM=',' END = EOF FIRSTOBS=3; INPUT START : $CHAR5. LABEL : $CHAR4. ; RETAIN HLO " "; FMTNAME = "$MHSAS" ; TYPE = "J" ; OUTPUT; IF EOF THEN DO ; START = " " ; LABEL = " " ; HLO = "O"; OUTPUT ; END ; RUN; PROC FORMAT LIB=WORK CNTLIN = INFORMAT2 ; RUN; /*******************************************************************/ /* Create new CCS-MHSA variables for both general and specific */ /* categories. Run frequencies on new CCS-MHSA variables. */ /*******************************************************************/ DATA OUT1.ANALYSIS; SET IN1.&CORE; ARRAY MHSAG (*) $3 CCSMGEN1-CCSMGEN&NUMDX; * Suggested name for CCS-MHSA General variables; ARRAY MHSAS (*) $4 CCSMSPC1-CCSMSPC&NUMDX; * Suggested name for CCS-MHSA Specific variables; ARRAY DXS (*) $ DX1-DX&NUMDX; * Change diagnosis variable names to match your file; DO I = 1 TO &NUMDX; MHSAG(I) = INPUT(DXS(I),$MHSAG.); MHSAS(I) = INPUT(DXS(I),$MHSAS.); END; %Macro Labels; /***************************************************/ /* Create labels for the general and specific */ /* CCS-MHSA variables. */ /***************************************************/ %do I=1 %to &NUMDX; LABEL CCSMGEN&I = "CCS-MHSA General Variable &I" CCSMSPC&I = "CCS-MHSA Specific Variable &I" ; %end; %Mend Labels; %Labels; RUN; PROC CONTENTS DATA=OUT1.ANALYSIS; TITLE3 'CONTENTS OF FILE WITH NEW CCS-MHSA CATEGORIES'; RUN; PROC FREQ DATA=OUT1.ANALYSIS; TABLES CCSMGEN1-CCSMGEN&NUMDX CCSMSPC1-CCSMSPC&NUMDX / MISSING LIST; TITLE3 'FREQUENCY OF NEW CCS-MHSA CATEGORIES'; RUN;