**************************************************************************************; *** PROGRAM TO CALCULATE COMPREHENSIVE ALL CAUSE HOSPITAL READMISSIONS WEIGHT **; **************************************************************************************; LIBNAME BBB "M:\ARR\CASEMIX\FY2012"; /*MEASUREMENT YEAR DATA*/ *LIBNAME INPP "M:\INPT\20&PYR.\Confidential"; /*INITIAL MONTH DATA*/ LIBNAME HDATA "I:\NEW CMI FOR 2012\EOC12DATA\TEST"; LIBNAME CCC 'I:\NEW CMI FOR 2012\NORMALIZATION'; **********************************************************************************; *** CALCULATE APR DRG SEVERITY WEIGHT FOR ALL CAUSE INTRA HOSPITAL READMISSIONS **; **********************************************************************************; DATA HDATA.READMISSION; SET BBB.READMISSION; RUN; DATA HDATA.INITIAL_ADMISSION; SET BBB.READMISSION; WHERE ADMTYPE IN ('IA'); RUN; DATA HDATA.RE_ADMISSIONS; SET BBB.READMISSION; WHERE ADMTYPE IN ('RA'); RUN; PROC TRANSPOSE DATA=HDATA.RE_ADMISSIONS OUT=HDATA.RE_ADMS PREFIX=WEIGHT; BY EPISODEID ; *ID APR_DRG SEVERITY; VAR WEIGHT; RUN; *PROC FREQ DATA=HDATA.RE_ADMS; *TABLES EPISODEID / nocum nopercent OUT=HDATA.RE_ADMS1; *RUN; DATA HDATA.RE_ADMS (DROP=_NAME_); SET HDATA.RE_ADMS; IF WEIGHT1 = . THEN WEIGHT1 = 0; IF WEIGHT2 = . THEN WEIGHT2 = 0; IF WEIGHT3 = . THEN WEIGHT3 = 0; IF WEIGHT4 = . THEN WEIGHT4 = 0; IF WEIGHT5 = . THEN WEIGHT5 = 0; IF WEIGHT6 = . THEN WEIGHT6 = 0; IF WEIGHT7 = . THEN WEIGHT7 = 0; IF WEIGHT8 = . THEN WEIGHT8 = 0; RUN; PROC SORT DATA=HDATA.RE_ADMS; BY EPISODEID; RUN; PROC SORT DATA=HDATA.INITIAL_ADMISSION; BY EPISODEID; RUN; DATA HDATA.INITIAL_RE_ADMISSION; MERGE HDATA.INITIAL_ADMISSION HDATA.RE_ADMS; BY EPISODEID; RUN; DATA HDATA.INITIAL_RE_ADMISSION; SET HDATA.INITIAL_RE_ADMISSION; WHERE HOSPID_R IS NOT MISSING; WEIGHT_OLD=WEIGHT; WEIGHT=WEIGHT + WEIGHT1 + WEIGHT2 + WEIGHT3 + WEIGHT4 + WEIGHT5 + WEIGHT6 + WEIGHT7 + WEIGHT8; RUN; *****************************************************************************************************; *** CALCULATE TOTAL WEIGHT BY APR DRG AND SEVERITY LEVEL FOR CASES CLASSIFIED AS "ONLY ADMISSIONS" **; *****************************************************************************************************; PROC SUMMARY DATA=HDATA.READMISSION NWAY; WHERE ADMTYPE IN ('OA'); CLASS APR_DRG SEVERITY; VAR WEIGHT; OUTPUT OUT=HDATA.OAIAWGHT (DROP=_FREQ_ _TYPE_) N=I_CASES SUM=I_WEIGHT; RUN; *********************************************************************************************************************; *** CALCULATE TOTAL RE-ADMISSION WEIGHT BY APR DRG AND SEVERITY LEVEL FOR CASES CLASSIFIED AS "INITIAL ADMISSIONS" **; *********************************************************************************************************************; PROC SUMMARY DATA=HDATA.INITIAL_RE_ADMISSION NWAY; CLASS APR_DRG SEVERITY; VAR WEIGHT; OUTPUT OUT=HDATA.READWGHT_O (DROP=_FREQ_ _TYPE_) N=R_CASES SUM=R_WEIGHT; RUN; DATA HDATA.READWGHT (KEEP=APR_DRG SEVERITY R_CASES R_WEIGHT); SET HDATA.READWGHT_O; RUN; ***************************************************************************; *** MERGE FILES AND RECALCULATE FOR WEIGHT BY APR DRG AND SEVERITY LEVEL **; ***************************************************************************; PROC SORT DATA=HDATA.OAIAWGHT; BY APR_DRG SEVERITY; RUN; PROC SORT DATA=HDATA.READWGHT; BY APR_DRG SEVERITY; RUN; DATA HDATA.EOC_WGHT2011; MERGE HDATA.OAIAWGHT HDATA.READWGHT; BY APR_DRG SEVERITY; RUN; DATA HDATA.EOC_WGHT2011; SET HDATA.EOC_WGHT2011; IF R_CASES=. THEN R_CASES=0; IF R_WEIGHT=. THEN R_WEIGHT=0; CASES=I_CASES+R_CASES; WEIGHT=(I_WEIGHT+R_WEIGHT)/CASES; RUN; DATA HDATA.EOC_WGHTS (KEEP=APR_DRG SEVERITY CASES WEIGHT); SET HDATA.EOC_WGHT2011; RUN; ****************************************************************************************************************; *** UPDATE CALENDAR YEAR 2010 COMPREHENSIVE APR DRG SEVERITY WEIGHT FOR ALL CAUSE INTRA HOSPITAL READMISSIONS **; ****************************************************************************************************************; DATA HDATA.WGHT2011 (KEEP=APR_DRG SEVERITY CASES WEIGHT); SET CCC.WGHT2011; RUN; PROC SORT DATA=HDATA.EOC_WGHTS; BY APR_DRG SEVERITY; RUN; PROC SORT DATA=HDATA.WGHT2011; BY APR_DRG SEVERITY; RUN; DATA HDATA.WGHT2011; UPDATE HDATA.WGHT2011 HDATA.EOC_WGHTS; BY APR_DRG SEVERITY; RUN; DATA HDATA.WGHT2011; SET HDATA.WGHT2011; WHERE WEIGHT NE .; IF CASES=. THEN CASES=0; RUN;