1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,

Slides:



Advertisements
Similar presentations
Dimitri Kutsenko (Entimo AG)
Advertisements

Running a model's adjoint to obtain derivatives, while more efficient and accurate than other methods, such as the finite difference method, is a computationally.
System Integration Verification and Validation
Test Automation Success: Choosing the Right People & Process
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Kendle Implementation of Clinical Data Acquisition Standards Harmonization Dr Elke Sennewald Kendle 9th German CDISC User Group Meeting Berlin, 28 September.
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Copyright © 2009 PMI RiskSIGNovember 5-6, 2009 “Project Risk Management – An International Perspective” RiskSIG - Advancing the State of the Art A collaboration.
CONFIDENTIAL Integration of SDTM File Creation into Study Analysis: A Practical Approach Anna Kunina, Edzel Cabanero, Efim Dynin, Lindley Frahm 04Apr2008.
CS 201 Functions Debzani Deb.
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Operations 1 What.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
On Comparing Classifiers: Pitfalls to Avoid and Recommended Approach Published by Steven L. Salzberg Presented by Prakash Tilwani MACS 598 April 25 th.
Measures Definition Workshop
Software Process and Product Metrics
PRE-PROGRAMMING PHASE
23 August 2015Michael Knoessl1 PhUSE 2008 Manchester / Michael Knoessl Implementing CDISC at Boehringer Ingelheim.
1 Chart of Account Conversion May 21, 2009 Presented by Matt Adelman.
Developing Enterprise Architecture
Biostatistics Analysis Center Center for Clinical Epidemiology and Biostatistics University of Pennsylvania School of Medicine Minimum Documentation Requirements.
Managing the Medico-Legal Risks of System Migration Liz Price Training and Consultancy Manager.
© 2011 Octagon Research Solutions, Inc. All Rights Reserved. The contents of this document are confidential and proprietary to Octagon Research Solutions,
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
1 Shawlands Academy Higher Computing Software Development Unit.
Model Bank Testing Accelerators “Ready-to-use” test scenarios to reduce effort, time and money.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
BIOTECH SUPPLY October 8-9, 2012 Crowne Plaza, Foster City, CA Solving the Missing Link Between Forecasting and ERP in Clinical Supply Optimization Michelle.
Understand Application Lifecycle Management
Teaching material for a course in Software Project Management & Software Engineering – part II.
Chapter 6 : Software Metrics
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Unit Testing -Ranjit Shewale Contents  Scope  Owner  Approach  Conventional approach  Object oriented approach  Tips for the.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Components of HIV/AIDS Case Surveillance: Case Report Forms and Sources.
VCU Information Systems Institute Advanced Delivery Methodology Courtesy of Data Management That Works.
Chapter 06 (Part I) Functions and an Introduction to Recursion.
Using Human Component Mapping TO ANALYSE & INTEGRATE HUMAN FACTORS ISSUES & RECORDS WITH RAILWAY HAZARD LOGS 1 Dr. Amanda C. Elliott, Simon Macmull & Harry.
This chapter is extracted from Sommerville’s slides. Text book chapter
The application of selective editing to the ONS Monthly Business Survey Emma Hooper Office for National Statistics
SAS Programmer in Teva Pharmaceuticals Job Description The basic responsibilities are to provide SAS programming support in deriving analysis datasets,
Presented by : Sébastien Lauzon (Finance Canada).
Supporting Industry Change Planning: Risk & Milestone Assessment Process & Tools 07/07/2014.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
Lessons from Programme Evaluation in Romania First Annual Conference on Evaluation Bucharest 18 February 2008.
With LMG Secretariat Future Processing Model Working Group Introduction Simon Collins 18 th March 2010 With London Market Group.
The Software Development Process
Java Fundamentals Usman Ependi UBD
Improvement Model and PDSA Cycles. Organ Donation The Service Improvement Model provides a framework to test, implement and sustain change ideas to overcome.
Program Development Cycle
Census Processing Baku Training Module.  Discuss:  Processing Strategies  Processing operations  Quality Assurance for processing  Technology Issues.
11 Software Design CSCU 411 Software Engineering.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Now what? 1.  I have short-listed projects I am interested in  I know the types of projects I would like to pursue  I have an idea of the resources.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning,
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
MANAGEMENT INFORMATION SYSTEM
A consolidated review of multiple analyses using JMP Clinical
Can Statistical monitoring really improve data integrity?
The Analyst Mindset in Statistical Programming
Patterns emerging from chaos
Software life cycle models
Learning to Program in Python
Chapter 13 Quality Management
Chapter 10 – Software Testing
Partner Implications from Seminar: New Approaches to Capacity Development Break-out Group: Role of Assessment frameworks.
Presentation transcript:

1 GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 1 Modular Programming Some Lessons Learned and Benefits Gained Ross Farrugia, Roche

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 2 Contents  Introduction  Planning  A real-life example  Implementation  Influence on validation  Benefits/Lessons learned  Conclusions

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 3 Introduction /* What is Modular Programming? */ %macro Wikipedia; “Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components, called modules” %mend Wikipedia;

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 4 Introduction /* What does that mean to us? */ Splitting our programs up where possible into clearly separated modules of code which can be easily maintained and re-used across different reporting events The easiest way of doing this being the use of macro modules – depending on your requirements you may choose different granularity of code/modules Note: even if macros are not used then at least structuring your program according to these ideals will make for greater maintainability, re-usabiltity, understandability, and more.

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 5 /* Where could this be used? */ In any program! Be it for mapping code, an analysis dataset, an output, …etc If we are performing any action that will need to be repeated again in future, then why not take this out into a separate module that can be referenced by any other program The module of code could perform a number of data steps or even just one function Introduction

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 6 Examples /* An AE analysis dataset program using modular programming */

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 7 Examples /* An efficacy analysis dataset */

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 8 Planning /* Requirement Analysis*/ When you are asked to create a program, start by breaking it up into set derivations (or coding tasks) required These will form your individual modules of code Consider run order of these modules, any dependencies, complexity, and the overall efficiency of the program - these factors will impact your modular design

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 9 Visual

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 10 Planning /* Separate macro VS module of code within your program */ Is this piece of code likely to need to be repeated in this program or in another program on this study? Could this be re-used on future studies? Is this code complex enough to justify the extra overhead of creating a separate macro?

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 11 Planning /* Considerations if you decide on a separate macro */ Is the requirement applicable at the project level or just specific to a study? Does the derivation rule apply only to a single domain of data or multiple? /* Considerations for project/across-project level */ What rules have you seen here in previous study requirements? What are you aware is requested or could possibly be for future studies?

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 12 A real-life example /* Requirement */ AE analysis dataset requiring flag variables for the following 3 cases: “Most severe adverse event by treatment cycle” “Most severe treatment-related adverse event by treatment cycle” “Most severe during infusion adverse event by visit”

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 13 A real-life example /* Planning */ The programmer identified that the fundamental code would be the same across the 3 derivations. They then looked back to a past requirement on an old study where this was also needed for a different domain, cardiac symptoms. So it was decided the macro could be designed to use across domains. By consulting the team it was decided that this could be a future requirement on any subset of adverse events, not just ‘treatment- related’ or ‘during infusion’, so this would also need to be made flexible.

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 14 A real-life example /* Result */ %g_cycfg - a macro to flag events according to some user-defined “worst” criteria by timepoint The flexibilities to allow this are shown below:

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 15 A real-life example /* Result */ Now if we take the “Most severe treatment-related adverse event by treatment cycle” variable, this would have been programmed just as:

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 16 Implementation /* Project standards */ Naming conventions:  Generic macros - ‘%g_xxx’  Domain specific macros we use the first 2 letters to indicate the domain, e.g. %ae_xxx, %dm_xxx, %lb_xxx  Utility macros - ‘%u_xxx’ Generic specifications:

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 17 Implementation Generic program template  May be useful to set up a generic template for programmers to start with  Agreed programming conventions applied Keep a Macro Index file  Helpful for new starters on your project

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 18 Implementation /* Backward compatibility considerations */ The easiest method we found was to just add a new macro parameter that has no impact on the old ones But a more efficient solution for programming run times could be to update existing macro parameters. In this case, use regression testing  set up an area where you can run benchmark programs up front using your initial macro  then once macro is updated you can re-run these later to verify no impact

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 19 Influence on validation Using modular programming can not only make first line programming more efficient, but also validation Firstly by re-using already validated macro modules the level of future QC can be reduced But even more beneficial in my opinion is when unit testing is used for initial QC Modular programming and unit testing can go hand-in-hand to create clear and robust programs that can assure us of programming accuracy regardless of the input data. If you decide to adopt any of the approaches shown above then I highly recommend trying out unit testing too.

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 20 Benefits  Many software quality factors can be improved by modular programming  Re-usability is the key driver  Programs can easily be picked up, adapted and understood across all studies  Future study programs take significantly less time to produce and validate  Consistency of derivations across studies is increased  Takes limited SAS experience to create future study programs

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 21 Lessons learned  Project macros do need to be well managed (e.g. macro index)  Can take extra time for new starters on your project to pick up  Macros do take more initial time investment  Macros can easily be over-complicated with many different parameters, when really separate macros may have been the ideal  Be careful to ensure efficiency of the program  Backward compatibility should be in your forethoughts  Planning up front is key!

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 22 If modular programming is in the minds of the team from an early stage, then this approach definitely can give substantial future efficiency for just a little extra initial time spent Then when you’re thinking project-level remember it is highly beneficial to have project rules and requirements defined and considered to gain real benefits Ensuring true re-usability and avoiding re-inventing rules means that we can re-produce and deliver more timely and with greater consistency of the rest of the project deliverables Conclusions

GLOBAL BIOMETRICS Biostatistics Clinical Data Management Epidemiology & Patient Reported Outcomes Statistical Programming and Analysis Strategic Planning, Operations and Collaborations 23