Upload
phungdang
View
213
Download
0
Embed Size (px)
Citation preview
SK Health Quality Council
Vision
Saskatchewan residents have the highest quality of health care.
Mission Improve the quality of care and the caring experience in
Saskatchewan.
SK Health Quality Council
Government-funded independent agency Measure and report on state of health care system
Promote improvement
Engage partners
Building a better health care system
What is it? Ten question pen and paper survey
Completed in physicians’ offices
Purpose
Measure patient experience in primary care practices
Continuity of care
Wait times
Communication with provider
Rating of care experience
The PES Questions Did you see the doctor you wanted to today?
Rate the clinic on a scale from 1 to 10.
During this office visit, did the care provider: Spend enough time with you?
Explain things in a way that was easy to understand?
Listen and respect you as a partner in care?
Involve you in decisions about your care as much as you wanted?
Challenges Massive amounts of data to process
500+ surveys per month
32 clinics (and growing….)
HQC must achieve
High quality reports
Free of errors
Professional looking
Minimal turn-around time
Minimal analyst time
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
* INDICATOR 1;
ODS PDF text=TITLE;
proc sgplot;
proc report;
ODS PDF text=FOOTNOTES;
.
.
.
* INDICATOR 10;
ODS PDF text=TITLE;
proc sgplot;
proc report;
ODS PDF text=FOOTNOTES;
ODS PDF CLOSE;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
* INDICATOR 1;
ODS PDF text=TITLE;
proc sgplot;
proc report;
ODS PDF text=FOOTNOTES;
.
.
.
* INDICATOR 10;
ODS PDF text=TITLE;
proc sgplot;
proc report;
ODS PDF text=FOOTNOTES;
ODS PDF CLOSE;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&1; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&1; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&1; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE;; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE;; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ................ %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\Anonymous Clinic-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
MACRO runit;
%let prac1=1; ........................ %let prac30=30; %let prac_name1=Anonymous Clinic; .... %let prac_name30=Toontown Clinic; %do b = 1 %to 30;
ODS PDF file=‘C:\HQC\Reports\&&prac_name&b..-PES.pdf’;
%let ind1=1; ........... %let ind10=10; %do a = 1 %to 10; ODS LAYOUT;
data tmp; set lib.master_data_set; practice = &&prac&b; indicator = &&ind&a; run; ODS PDF text=TITLE; proc sgplot; proc report; ODS PDF text=FOOTNOTES; ODS PDF STARTPAGE=NOW; %end; ODS PDF CLOSE; %end;
MEND runit;
Warnings Beware the single apostrophe in macros
Will cause the macro to crash
* Even if it’s in a comment;
Epilogue Processing hundreds of reports monthly
Expanding use to other projects Pooled referrals (monthly)
Acute care patient experience survey (weekly)
Emergency department survey
Each month Analyst time: 1-2 hours
Processing time: 2 days
References Using Macros to Automate SAS Processing
http://www2.sas.com/proceedings/sugi29/126-29.pdf
Mission Possible: Putting a Table and Multiple Graphs on a Single-Page PDF with ODS and Basic GOPTIONS
http://support.sas.com/resources/papers/proceedings09/085-2009.pdf