{"title":"Controlling OpenCDISC validator using R","authors":"Martin Gregory","doi":"10.1179/1757092112Z.0000000002","DOIUrl":"https://doi.org/10.1179/1757092112Z.0000000002","url":null,"abstract":"The OpenCDISC Validator GUI writes output to a fixed location in the installation folder, a behaviour which is not acceptable in a server environment. Furthermore, on each call, the user must navigate to the location of the files to be checked. OpenCDISC does include a command line interface (CLI) which offers user control of both input and output locations but requires relatively complex commands. One solution is to use a scripting language to read the input parameters for the OpenCDISC CLI from a file and make the appropriate calls to OpenCDISC. This approach can be independent of operating system and also facilitates repeated runs. Scripting languages such as Perl or Python are well suited to such tasks but are not always available. We show that R, usually available for statistical analysis reasons, can also carry out such tasks with ease and in a manner which hides operating system level details from the programmer.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"128 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128186059","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The dataset generation for survival analysis with the ADaM Basic Data Structure for Time-to-Event Analyses (ADTTE) standard","authors":"Chengxin Li","doi":"10.1179/1757092112Z.0000000001","DOIUrl":"https://doi.org/10.1179/1757092112Z.0000000001","url":null,"abstract":"AbstractThis paper describes the method of survival and time to event analyses dataset generation with ADaM Basic Data Structure for Time-to-Event Analyses (ADTTE) standard with one clinical trial case study. The paper uses the simplest ADTTE model — single event with binary values for censoring variable among the three models. In this clinical trial case, the hierarchy structure is adopted to derive ADTTE analysis dataset transitioning among continuous analysis values and binary analysis values. To develop ADTTE dataset, in addition to following ADaM general rules, the key points are how to define STARTDT (Time to Event Origin Date for Subject) and ADT (Analysis Date) for study events, right censored, and other competing events for each parameter.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"147 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121318685","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A SAS macro to check SDTM domains against controlled terminology","authors":"G. Wendland","doi":"10.1179/175709311X13152986403310","DOIUrl":"https://doi.org/10.1179/175709311X13152986403310","url":null,"abstract":"AbstractThe SAS macro presented here allows programmers to check the compliance of SDTM domains with controlled terminology. The macro is based on two input metadata Excel files: one file contains variables/variable groups (e.g. --ACN) together with their corresponding 'codelist' term (e.g. ACN). The other is a reference list of all 'codelist' terms and their controlled terminology values (e.g. DOSE INCREASED, DOSE NOT CHANGED, etc.). Both files are based on the OpenCDISC standard checks for controlled terminology but could be customized to the sponsor's needs. The primary output consists of a list of all values that could not be found in the controlled terminology. Furthermore, the corresponding entries that have not been successfully mapped are also provided. Multiple studies and domains can be checked simultaneously. Therefore, programmers can use the macro at various stages, e.g. during the SDTM development process of a single domain, or when preparing multiple studies for pooling.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"272 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134021351","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Unit testing as a cornerstone of SAS application development","authors":"D. D. Tommaso, F. H. Roche","doi":"10.1179/175709311X13166801334316","DOIUrl":"https://doi.org/10.1179/175709311X13166801334316","url":null,"abstract":"AbstractConfidence in software is good, but certainty is better. The test strategy at the heart of a validation plan determines the level of certainty a software project achieves. Ad hoc testing may momentarily convince a developer that a program is complete, but is inappropriate for programs and results intended for others. Perfect testing, on the opposite end of the spectrum, is rarely achievable. Testing is an exercise in both discipline and balance. Learning, adopting, and adapting testing practices refined by software professionals can strengthen a programming team even more than pursuing subtle new programming techniques. The benefits to a development project can be dramatic. Unit testing has proven invaluable as a cornerstone of the validation plan for an ongoing SAS® development project, rewarding the team with efficiency and confidence just short of certainty. The following discussion summarizes the awareness and advantages we have gained from these recent experiences, and encourages the reader t...","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"313 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115970865","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Aspects of software development","authors":"Katja Glass","doi":"10.1179/175709311X13166801334235","DOIUrl":"https://doi.org/10.1179/175709311X13166801334235","url":null,"abstract":"AbstractA lot of aspects have to be considered for the software development and maintenance. This article will give an overview of some of them when dealing with the creation or maintenance of standard systems especially within the clinical environment. These aspects are estimations regarding effort, required group sizes, programming principles, ways to motivate the end users, and other aspects.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121789092","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Much ADaM about nothing — a proc away in a day","authors":"Endri, R. Hale","doi":"10.1179/175709311X13166801334037","DOIUrl":"https://doi.org/10.1179/175709311X13166801334037","url":null,"abstract":"AbstractCDISC is rapidly becoming adopted as the data standard for clinical trials and submissions of clinical trial data to the FDA. Within CDISC, ADaM datasets are an integral part of clinical study analysis and require significant data derivation to fulfill the needs of TLF provision. Can the creation of ADaM datasets be automated? Yes! This paper proposes an Excel-driven solution which greatly improves the efficiency and accuracy of ADaM dataset creation by defining ADaM dataset structure, complex variable derivation, and data checks within Excel. Using a library of SAS macros, the definitions then drive the automated production of SAS scripts which produce analysis ready datasets that meet the ADaM specification and which can be validated in accordance with regulatory requirements. Additionally, data check reports are created for Data Management to speed up the data cleaning process.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"28 11","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120913897","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Remapping of codes (and decodes) in analysis datasets for electronic submissions","authors":"J. Guettner","doi":"10.1179/175709311X13166801334118","DOIUrl":"https://doi.org/10.1179/175709311X13166801334118","url":null,"abstract":"AbstractFor electronic submissions, the U.S. Food and Drug Administration requests, according to the Study Data Specifications (version 1.6, June 2011), that variable names and codes in analysis datasets should be consistent across studies and, where feasible, the NCI CDISC Vocabulary should be used. For integrated analysis, it is necessary to harmonize codes across all studies. Unfortunately, during the life cycle of a product, codes may change either due to project needs or due to external circumstances, e.g. CDISC introduces new controlled terminology. For analysis datasets following the Analysis Data Model, there are often pairs of corresponding variables containing a code and a decode which both have to be updated. This paper describes a workflow to remap codes and also decodes for a study or an integrated database with a macro using metadata and standard SAS format datasets with a few additional variables.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122457536","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Producing comprehensive integrated summaries","authors":"M. Whitworth","doi":"10.1179/175709311X13152978689502","DOIUrl":"https://doi.org/10.1179/175709311X13152978689502","url":null,"abstract":"AbstractFar from being simply a summary of individual results, a comprehensive and detailed integrated summary allows companies to make informed decisions. This paper discusses the planning, creation, timing, and review of such a process highlighting the resources required and potential pitfalls you could encounter.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"163 10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129229839","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Introduction to numeric precision and representation issues: why 4.8 minus 4.6 is not always equal to 0.2","authors":"Nicola Tambascia","doi":"10.1179/175709311X13166801334398","DOIUrl":"https://doi.org/10.1179/175709311X13166801334398","url":null,"abstract":"AbstractNumeric precision and representation issues are well-known topics in computer science. Non computer scientists sometimes are not aware of the problems that occur with these issues. This paper provides a brief introduction to problems based on numeric precision and the presentation of numbers on computerized systems. Numbers are stored as binary numbers in computerized systems. However, not all floating-point numbers can be represented properly in the binary system. When calculating with numbers that cannot be stored exactly, the result may not be as expected. In our case, 4.8 and 4.6 can not be stored exactly and therefore, the result of 4.8 minus 4.6 will not be exactly 0.2. The conversion of floating-point numbers to a storable IEEE-754 binary number is illustrated. Finally, some SAS functions and options are introduced that may help to deal with the issue.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123643354","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"SAS code for the estimation and between-group comparison of cumulative incidence functions in competing risks survival analysis","authors":"S. Bond","doi":"10.1179/175709311X13141797023422","DOIUrl":"https://doi.org/10.1179/175709311X13141797023422","url":null,"abstract":"Abstract Competing risks extends survival data by also observing a cause of failure. Once a subject fails, it is impossible for him to subsequently fail from any other cause. A well-established tool for summarising competing risks data is the cumulative incidence estimate, which estimates the probability of a subject failing from a specific cause of interest before a given time. Comparisons of the cumulative incidence estimates between groups of subjects can be made using Gray's test. However, there is no commonly available SAS code to perform such analyses, which helps to perpetuate the mistaken use of Kaplan–Meier estimates and log-rank tests in the analysis of competing risks data. This paper presents SAS code to provide cumulative incidence estimates and Gray's tests.","PeriodicalId":253012,"journal":{"name":"Pharmaceutical Programming","volume":"117 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124662627","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}