SlideShare a Scribd company logo
10 Steps to Easier SAS Code Maintenance Jessica Hampton, CIGNA 09/02/11
Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Steps 1-2: Chunking & Numbering ,[object Object],[object Object],09/02/11
Steps 1-2: example 09/02/11
Step 3: Initial Setup ,[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Step 3: Initial Setup example 09/02/11
Step 4: Final Cleanup ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Step 4: Final Cleanup 09/02/11
Step 5: Macro Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Step 6: Macro Variables ,[object Object],[object Object],[object Object],[object Object],09/02/11
Step 7: Macro Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Step 7: (continued) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Step 8: Parameterized Macros ,[object Object],[object Object],[object Object],[object Object],09/02/11
Step 8: Analysis 09/02/11 transfers immunocompromised state proc codes immunocompromised state diagnoses *For 11, also exclude anemia principal or secondary diagnoses *For 12, also exclude principal or secondary kidney disorder diagnoses include discharges with  principal  diagnosis code specified:  bacterial pneumonia UTI 11,12 transfers cardiac procedure codes in any field *For 7 only, also exclude kidney disease diagnoses if accompanied by hemodialysis procs include discharges with  principal  diagnosis code specified:  hypertension CHF angina 7*,8,13 transfers include discharges with  principal  diagnosis code specified: diabetes short term complications diabetes long term complications hypovolemia uncontrolled diabetes 1,3,10,14 Exclusions Numerator Measure
Step 8: Parameterized Macro 09/02/11 %macro transfer(filename=)/STORE SOURCE; /*identify and delete transfers from numerator*/ CREATE TABLE &filename._TRANS AS SELECT B.conf_id, B.admit_dt, A.disch_dt  FROM PQI.&filename A JOIN PQI.&filename B ON A.rhmo=B.rhmo AND A.bkey=B.bkey  AND A.disch_dt BETWEEN B.admit_dt AND intnx('DAY',B.admit_dt,-1)/*re-admitted within 24 hours of discharge date*/  WHERE A.conf_id <> B.conf_id  AND A.src_sys_prov_id <> B.src_sys_prov_id /*transferred from different facility*/ ; DELETE  FROM PQI.&filename  WHERE conf_ID IN  (SELECT conf_id FROM &filename._TRANS) ; %mend transfer;
Step 8: Putting it Together 09/02/11
Steps 9-10: Documentation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],09/02/11
References ,[object Object],[object Object],[object Object],09/02/11
Acknowledgement ,[object Object],[object Object],09/02/11

More Related Content

Similar to Steps to Easier SAS Code Maintenance

Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
zroserie
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
webhostingguy
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
David McCarter
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
David McCarter
 
MSSQL Queries.pdf
MSSQL Queries.pdfMSSQL Queries.pdf
MSSQL Queries.pdf
TarunKumar893717
 
Apps1
Apps1Apps1
Capistrano Overview
Capistrano OverviewCapistrano Overview
Capistrano Overview
Travis Roberts
 
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.docKSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
RizalAhmad66
 
Data Access Mobile Devices
Data Access Mobile DevicesData Access Mobile Devices
Data Access Mobile Devices
venkat987
 
Habits of Effective SAS Programmers
Habits of Effective SAS ProgrammersHabits of Effective SAS Programmers
Habits of Effective SAS Programmers
Sunil Gupta
 
PCD - Process control daemon
PCD - Process control daemonPCD - Process control daemon
PCD - Process control daemon
haish
 
6048618 cloning-procedure-of-r12-single-tier
6048618 cloning-procedure-of-r12-single-tier6048618 cloning-procedure-of-r12-single-tier
6048618 cloning-procedure-of-r12-single-tier
balaji29
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
Open Party
 
Cis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential filesCis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential files
CIS321
 
Program logic and design
Program logic and designProgram logic and design
Program logic and design
Chaffey College
 
Flow based programming in golang
Flow based programming in golangFlow based programming in golang
Flow based programming in golang
Anton Stepanenko
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan
 
Managing Changing Data: Part 2
Managing Changing Data: Part 2Managing Changing Data: Part 2
Managing Changing Data: Part 2
Safe Software
 
Recharge_report_Automation
Recharge_report_AutomationRecharge_report_Automation
Recharge_report_Automation
KIIT
 
Mike Tangedal Sas Solutions
Mike Tangedal Sas SolutionsMike Tangedal Sas Solutions
Mike Tangedal Sas Solutions
MinneapolisMike
 

Similar to Steps to Easier SAS Code Maintenance (20)

Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
MSSQL Queries.pdf
MSSQL Queries.pdfMSSQL Queries.pdf
MSSQL Queries.pdf
 
Apps1
Apps1Apps1
Apps1
 
Capistrano Overview
Capistrano OverviewCapistrano Overview
Capistrano Overview
 
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.docKSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
KSK1014 COMPUTER SYSTEM HARDWARE INSTALLATION.doc
 
Data Access Mobile Devices
Data Access Mobile DevicesData Access Mobile Devices
Data Access Mobile Devices
 
Habits of Effective SAS Programmers
Habits of Effective SAS ProgrammersHabits of Effective SAS Programmers
Habits of Effective SAS Programmers
 
PCD - Process control daemon
PCD - Process control daemonPCD - Process control daemon
PCD - Process control daemon
 
6048618 cloning-procedure-of-r12-single-tier
6048618 cloning-procedure-of-r12-single-tier6048618 cloning-procedure-of-r12-single-tier
6048618 cloning-procedure-of-r12-single-tier
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
 
Cis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential filesCis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential files
 
Program logic and design
Program logic and designProgram logic and design
Program logic and design
 
Flow based programming in golang
Flow based programming in golangFlow based programming in golang
Flow based programming in golang
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
 
Managing Changing Data: Part 2
Managing Changing Data: Part 2Managing Changing Data: Part 2
Managing Changing Data: Part 2
 
Recharge_report_Automation
Recharge_report_AutomationRecharge_report_Automation
Recharge_report_Automation
 
Mike Tangedal Sas Solutions
Mike Tangedal Sas SolutionsMike Tangedal Sas Solutions
Mike Tangedal Sas Solutions
 

Steps to Easier SAS Code Maintenance

  • 1. 10 Steps to Easier SAS Code Maintenance Jessica Hampton, CIGNA 09/02/11
  • 2.
  • 3.
  • 5.
  • 6. Step 3: Initial Setup example 09/02/11
  • 7.
  • 8. Step 4: Final Cleanup 09/02/11
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Step 8: Analysis 09/02/11 transfers immunocompromised state proc codes immunocompromised state diagnoses *For 11, also exclude anemia principal or secondary diagnoses *For 12, also exclude principal or secondary kidney disorder diagnoses include discharges with principal diagnosis code specified: bacterial pneumonia UTI 11,12 transfers cardiac procedure codes in any field *For 7 only, also exclude kidney disease diagnoses if accompanied by hemodialysis procs include discharges with principal diagnosis code specified: hypertension CHF angina 7*,8,13 transfers include discharges with principal diagnosis code specified: diabetes short term complications diabetes long term complications hypovolemia uncontrolled diabetes 1,3,10,14 Exclusions Numerator Measure
  • 15. Step 8: Parameterized Macro 09/02/11 %macro transfer(filename=)/STORE SOURCE; /*identify and delete transfers from numerator*/ CREATE TABLE &filename._TRANS AS SELECT B.conf_id, B.admit_dt, A.disch_dt FROM PQI.&filename A JOIN PQI.&filename B ON A.rhmo=B.rhmo AND A.bkey=B.bkey AND A.disch_dt BETWEEN B.admit_dt AND intnx('DAY',B.admit_dt,-1)/*re-admitted within 24 hours of discharge date*/ WHERE A.conf_id <> B.conf_id AND A.src_sys_prov_id <> B.src_sys_prov_id /*transferred from different facility*/ ; DELETE FROM PQI.&filename WHERE conf_ID IN (SELECT conf_id FROM &filename._TRANS) ; %mend transfer;
  • 16. Step 8: Putting it Together 09/02/11
  • 17.
  • 18.
  • 19.
  • 20.