************************************************************************ ** PROGRAM: ALLCAUSE_READMISSIONS_ARR.sas * * PROGRAMMER: SULE CALIKOGLU * * * PURPOSE: ALL CAUSE INTRA HOSPITAL READMISSIONS BASED ON ARR EPISODE DEFINITIONS- * * * Modified: * * ***********************************************************************; %LET FDATE=01JUL2010; /*FIRST DATE OF READMISSION PERIOD*/ %LET LDATE=30JUN2011; /*LAST DATE OF READMISSION PERIOD*/ %LET DAY=30; %LET POP=INTRA; LIBNAME INPC "M:\ARR\CASEMIX\FY2012"; /*MEASUREMENT YEAR DATA*/ LIBNAME OUT "M:\ARR\CASEMIX\FY2012"; LIBNAME REF "M:\FORMAT"; /*HOSPITAL NAMES DATA*/ %LET TABLENAME =M:\ARR\CASEMIX\FY2012\ARR_&POP.&DAY.READMISSIONRATES_FY2011.XLS; PROC FREQ DATA=INPC.eoc12base; TABLE HOSPID_R HOSPID; RUN; DATA INPATIENT; SET INPC.eoc12base; *INPATIENTP; ** create a system level hospital id to link hospitals and oncology readmissions; PROVIDER_ID=PUT(HOSPID_R,6.); IF HOSPID_R IN (210009, 210029, 210904) THEN PROVIDER_ID='JHHS'; /*LINKS ONLY 2 OUT OF 4*/ IF HOSPID_R IN (218994, 210002) THEN PROVIDER_ID='UMONC'; IF HOSPID_R IN (210012,210080,210040) THEN PROVIDER_ID='LBRG'; IF HOSPID_R IN (210015,210024,210034,210056) THEN PROVIDER_ID='MDSTAR'; /*LINKS ONLY 4 OUT OF 6*/ * REPLACE MRNUM WITH EMPI; UNIQUEID=CATS(PROVIDER_ID,empi); IF PAT_DISP IN ('20','22','24','26','23','28','29') THEN INTRANS=1; /*WITHIN HOSPITAL TRANSFERS TO REHAB,PYSCH,CHRONIC, subacute*/ ELSE INTRANS=0; IF PAT_DISP IN ('40','41','42') THEN OUTRANS=1; /*INTRASYSTEM TRANSFERS-OTHER ACURE, REHAB,PYSCH*/ ELSE OUTRANS=0; IF PAT_DISP='70' THEN DIED='D'; ELSE DIED=' '; RUN; data noempi; set inpatient (where=(empi=' ')); run; PROC FREQ DATA=INPATIENT; TABLE PROVIDER_ID; TITLE "CHECK SYSTEM ID"; RUN; ** IDENTIFY SAME DAY INTRA-TRANSFER CASES; PROC SORT DATA=INPATIENT; BY UNIQUEID ADMTDATE DISCDATE INTRANS OUTRANS DIED; RUN; DATA INPATIENT; SET INPATIENT; LAGIN=LAG(INTRANS); INTERVAL=ADMTDATE-LAG(DISCDATE); LAGHOSPID_R=LAG(HOSPID_R); LAGOUT=LAG(OUTRANS); BY UNIQUEID; IF FIRST.UNIQUEID THEN DO ; LAGIN=.; INTERVAL=.; LAGHOSPID_R=.; LAGOUT=.; END; ** SELECT READMISSIONS FOR HOSPICE AS TRANSFER; hospice=0; ARRAY DIAG (30) PRINDIAG DIAG1-DIAG29; DO i=1 TO 30; IF DIAG(i)='V667' THEN hospice=1; END; RUN; PROC FREQ DATA=INPATIENT; TABLE INTRANS LAGIN OUTRANS LAGOUT hospice/; TITLE "CHECK TRANSFER CODING"; RUN; DATA INPATIENT; LENGTH TRANSFER $ 10.; SET INPATIENT; IF LAGIN=1 and .