Dependency Macro Ensuring data reliability in healthcare analytics

Slides:



Advertisements
Similar presentations
PhUSE 2010 Unit Testing and Code Coverage Assessment with SASUnit - Key Technologies for Development of reliable SAS Macros - HMS Analytical Software.
Advertisements

Create and use your own Electronic Business Card Create and send a simple business card Traditional paper business cards have been around for a long time.
Efficient, Productive, Time-Saving Solutions TRANSACTION AUDITING Part of our RISK MANAGEMENT SUITE FOR LAWSON S3 Thank you for taking the time to view.
“What do you want me to do now?”
Banner Self Service Instructions for completing a W-4 Federal Employee Withholding Allowance Certificate January 6,
1 Information Sharing and Assessment Systems How to find out whether you need to apply for Children Index access or attend to CAF training Next slide Click.
Asset: Academic Survey System & Evaluation Tool Bert G. Wachsmuth Seton Hall University.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Desktop Security: Worms and Viruses Brian Arkills, C&C NDC-Sysmgt.
Ogden Air Logistics Center. Purpose of Excel2FV Many agencies produce point lists of different data (target lists, force locations, etc.) in either Excel.
Jason Morrill NCOAUG Training Day February, 2008
Website Redesign Features: Simple Navigation New Professional Look Easily Edit Content on Every Page Post New Jobs / Apply From Website Integration of.
NOTE: Trial balance should be tallied before closing.  Step1: Check free Disk space on Drive where Oracle is Installed. Free space must be approx. twice.
Let’s Make An Form! Bonney Armstrong GD 444 Westwood College February 9, 2005.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Mid-West Tri State Users Group Meeting Agenda l Overview of Event, Condition, Action (ECA) l What’s new in release 7.0 l Designing effective workflows.
Windows Server ® 2008 File Services Infrastructure Planning and Design Published: October 2008 Updated: July 2009.
Lead Management Tool Partner User Guide March 15, 2013
Session Objectives • Login to PeopleSoft Test Framework(PTF)
SIGNZ Mail Merge / Merge / Labels SIGNZ Mail Merge / Merge / Labels.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Has Agent Scripting Got You FRUSTRATED?. Agent Scripting Simplified!
Steps for posting a training (single event or series) to the regional calendar R&C Regional Calendar.
1 MSTE Visual SourceSafe For more information, see:
While You Were Sleeping… SAS Is Hard At Work Andrea Wainwright- Zimmerman.
Lawson Mid-America User Group Spring 2016 Meeting.
How to develop a VoIP softphone in C# by using OZEKI VoIP SIP SDK This presentation demonstrates the first steps concerning to how to develop a fully-functional.
IPitomy SIP Trunks 101 Programing and activating SIP Trunks with IPitomy’s assisted turn-up.
Why your Road Runner Web Mail Bounced back?. As per the recent report more than 31 million s are bounced daily. They never reach to the destinations.
The next big thing from Boyum IT
SchoolSuccess for Coordinators
Section 10.1 Define scripting
Preparing for a successful upgrade
Essentials of UrbanCode Deploy v6.1 QQ147
Here’s an overview of the three-part setup process.
Greg Steffens Noumena Solutions
Platform Overview Provide your marketing and sales groups with a single, integrated, web based on-demand platform that allows them to easily automate and.
An Overview of Concepts and Navigation
CSE 341 Section 1 (9/28) With thanks to Dan Grossman, et. al. from previous versions of these slides.
Eclipse Navigation & Usage.
IT.CAS.Web2.0 Kyle Erickson
1. Open any Office 2016 app, such as Word, and create a new document.
LCGAA nightlies infrastructure
WELCOME To Onextel Media PVT LTD.
The Price IS Right: What can the billing module do for me?
IS IT EFFECTIVE TO RUN ONLINE DATING BACKGROUND CHECKS YOURSELF?
Best Outlook Tips & Tricks James Mehraa. Why to use MS Outlook These days life have become a fast lane, less time but so much to do. Everyone is running.
The Effectiveness of Test-first Programming
ETS Submission Process for New Project Applications
CSE341: Programming Languages Section 1
CSE341: Programming Languages Section 1
asset: Academic Survey System & Evaluation Tool
Inovonics Wireless Corporation
Partnered or Group Projects
Ensuring a Remote Server is Available
TEACHER ACCESS CENTER TRAINING TAC 4.1 GRADEBOOK SETUP AUGUST 2, 2018
Hunter Glanz & Josh Horstman
Game Loop Update & Draw.
Stay Connected to Work Away from Work: A Simple Approach to Send s from SAS® using VBScript Paper #
Managing Business Contacts
Never Cut and Paste Again
Let’s Talk About Variable Attributes
Detecting Runtime Errors and Exiting from Nested Macros Gracefully
Automating SAS through the Power of VB Script
Passing Simple and Complex Parameters In and Out of Macros
Matthew Slaughter is Research Analyst at the Kaiser Permanente Center for Health Research in Portland, OR. He provides programming, analytical, and data.
SAS/Graph to help data Dose/Concentration consistency review
Tips and Tricks for Using Macros to Automate SAS Reporting.
I-9 Designee Training Hello and welcome to I-9 training! The Office of Human Resources is excited to partner with you in completing this important process.
Writing Robust SAS Macros
Presentation transcript:

Dependency Macro Ensuring data reliability in healthcare analytics Lissa Bayang is a data consultant at Kaiser Permanente and has been using SAS in public health and healthcare for more than 10 years . Wayne Leonetti is a senior database analyst at Kaiser Permanente. He has been using SAS in healthcare since 1993 and became SAS Certified (v6) in 1999. Introduce yourself: your background (public health), now with Kaiser as a data consultant. First used SAS around 16 years ago in graduate school but consistently using it for about 10 years. It took awhile getting used to but now realize the power of SAS. Discuss why you decided to write this program. Rely on databases and other programs to run and we encounter delays.

Agenda Overview Setting up the macro Key parts Options Conclusion Questions This macro is fairly simple compared to others. Mention these

Overview of the macro Definition Purpose Where? Macro placed before main program Purpose How do we know that the data is ready? How recent is the data? Where? Used for high priority programs that need most recent data such as daily reports, and interactive population management tools

Setting up the macro %macro Depend ( Fylname, tLimit = '12:00:00't, Delay = 300, eMail = , Subj = , Mesg = ); File name Maximum time limit that you want this macro to check Time delay between checking the files while being updated Email information with a subject and a message Tlimit: You can set this to whatever time you want. Delay is in seconds. Everything here can be overridden in the call program.

Key parts %local rc fid fidc ModifyDT Done Fail; %let Done = N; %let Fail = N; rc = return code fid = file ID (open) / fidc (close) ModifyDT = Current date that you need your file to be This program will run if the dataset is not updated or if the process fails (timeframe has passed). ModifyDT usually uses the current date.

Nuts and Bolts %do %until(&Done=Y or &Fail=Y); %end; %let rc=%sysfunc(filename(onefile,&fylname)); %let fid=%sysfunc(fopen(&onefile)); %let ModifyDT=%qsysfunc(finfo(&fid,Last Modified)); %let fidc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(onefile)); data _null_; tdt = datepart(input("&ModifyDT",datetime20.)); if tdt = date() then call symput("Done","Y"); else if time() gt &tLimit then call symput("Fail","Y"); else SleepTime = sleep(&delay,1); run; %end; This is where you set up your dates, the return codes, etc. Until the dataset is found or the process fails, this macro will continue to run until the allotted time you set or if one of the values are fulfilled. It looks for the return codes, the file ID, and the current date. Once the macro loop is done, it will either continue to your subsequent programming or it will terminate if you put the abend option. It will then send an email to the programmer if it fais.

Options %abort abend; %end; %mend Depend; You can choose to terminate the program if the macro fails (e.g. does not update or goes beyond the time frame) Option to override the initial setup %Depend(Z:\Data\SAS\Databases\Tobacco\smokingdb.sas7bdat, delay=15, tLimit='09:00:00’t, email=lissa.bayang@kp.org, subj=Tobacco Touches, mesg=process failed) These options allow you to terminate the program if the macro fails which means that any other programs dependent on this will not run. You can omit this. Also, the options in the call program allow you to be flexible. This also allow global usage of this macro.

Conclusion Very customizable Consider options depending on your needs Integrate with almost any program Tested with local Base SAS but can be run in server mode

Questions?

Contact Information Name: Lissa Bayang Company: Kaiser Permanente City/State: Roseville, CA Phone: (916) 746-3526 Email: lissa.bayang@kp.org